From nobody Thu Dec 18 14:35:27 2025 Received: from mx0a-000eb902.pphosted.com (mx0a-000eb902.pphosted.com [205.220.165.212]) (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 20F1122B8AC; Tue, 8 Apr 2025 15:42:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.212 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744126933; cv=fail; b=pVCKt43igWuUl1xsMEV1N2VrJNa8+dKg99N+dnTwwx/+g9fbx0vmK/gqFwDFjtXg99hy99wJcpiU0IvEmwWGmxJULzbQy/p2HC1d7MaHh8+DmGvAIeam1D41asF90d8jYSLFDd+uRYzZRyDlE4NH5B3OiTA2xcnwiZgcF/+YqM8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744126933; c=relaxed/simple; bh=RpqFxKkKGZdOrrYJWruSzuIVF7iebLUhnnnuE8FX3OM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mUwnuXaWXOvRjP7xgdbtbVxYEmbW60Hcn035qUKyrp4eV0PNttilDbAXD2c+SktoRUZU/b91HR+KZT86xyi/Sdz+yOOSh48eMuT5ikznJroIyTYXCuGorLbvxZRhAybFs0Ri6pR0VVj9Nb95rp7bXV75XhDkMplRxMv1Ge8Sgds= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=garmin.com; spf=pass smtp.mailfrom=garmin.com; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b=SC5m6j0a; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b=cgdbqCoI; arc=fail smtp.client-ip=205.220.165.212 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=garmin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garmin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b="SC5m6j0a"; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b="cgdbqCoI" Received: from pps.filterd (m0220294.ppops.net [127.0.0.1]) by mx0a-000eb902.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 538FP4Oj015286; Tue, 8 Apr 2025 10:41:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garmin.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps1; bh=iOno2 KeS17/kb2NdqfsXsrQHj1MoyCme0ya9xcNBmdY=; b=SC5m6j0al682TKLWBjJ6C ZnGNj2IBfmoT8LAbqjbIlJjKeBynOKklB8f6PA5KbNRGW+RSFLkl+aEieNG6qXaS S3NSDBPJ7F5AaurpWmx9gwBSmeXZrzh/9Ts6S4R7sAC6yjRptKQW/f4i5/9tMV2D 25ZEQj/7/rbOtvTE4ZhsBaVAerRg2thUvlnTRqr21pRqsc+RzYhW38wcJAj3/Lod jktfAvKsFXnv1Gr+94PVJQS2bBCwpsTDxUL+2+Cir4Hu3yfQhef/DDr+vksDYaCr a1TOJRygy85sSIfZ+cG7ulz/bWgzFO8uaFOeKFjCWDVWge1EOznfNMbVdWt7LHK3 A== Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2044.outbound.protection.outlook.com [104.47.58.44]) by mx0a-000eb902.pphosted.com (PPS) with ESMTPS id 45w22hrmrg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 08 Apr 2025 10:41:48 -0500 (CDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Qfqyj3rFtqdyKJbzw13/MfMCOsfVynDM4EaXnca1UR37fw/tu0TY6LOt6nV8halBAiTBf28WcxuYkGeTGXF1CDL4lKPpNV3LPQrCMeyFGFBMYlhdwc26B++rWwyQfnzOmnHtmt7B+cnrXo6CnLeJW96P9pLBiU9xFDwrdDh2qNWuE9KAlTH3UipheOp0OK3t/tP2Z52PIaj6yoOLAnV8DYLs7LlxC+m8x9WGqwwUqw+rzS5ogiffD9fTa34iuyMhhDEgqfr4gqkcmRGHyegk8qXf7Q5jkyuFc7IhDyop0sEhIX8glenZ6zxdQHzcs8h8CPWQRBB17B/yEx8QgM/Jnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=iOno2KeS17/kb2NdqfsXsrQHj1MoyCme0ya9xcNBmdY=; b=mK+/8nrBCl+admFIe+WZTWnKdUMWjSQphDoIspnBuV96moLbBq89qgFHZMZpxLSheF4Q4KINkWhloRJK4npG5ZcU053igg+JtYHkC8c0tkEKohbg+kDJzjDBN7JfyX8MvC26lxq5IcvOHXUBqQL0GdYhewV59q7lX0KRM0AKxcRwD3XojH0Y5VXP8sWYlxHchkv9jnd3keIbZA5W1NNrZgL6QXKtD9y0MOy32zYtd62TyB4AkNbGhwL4zReCvC4+XEVRASdvNfV3VEvObMFul/Kmja7ektkppu8S9hP0Ofcest+i9jNlJEZH9kvhOQYvnFVN3IwxlJ+XY1hAWGUIww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 204.77.163.244) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=garmin.com; dmarc=pass (p=reject sp=quarantine pct=100) action=none header.from=garmin.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garmin.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iOno2KeS17/kb2NdqfsXsrQHj1MoyCme0ya9xcNBmdY=; b=cgdbqCoIkQw2GY/RcpwWn2GMfdx/+I4/4m5xHYB35B+RGi5ccV2BWsqm/3X9HjdLry05yAPs8MiE7zVAL1gBoxeV045GxYRNGCy8v3q3kX+dr5DYwJ+Drvi55AqNo3amQ/LiSbBl0vc+gIrPZ5Apa99z7Aagjns6Xve2+sQ4dHjaRgkTecaGBV32G/hf1ZXmNYjWGFacyUSK36kKRYUzVfcuTWIUv3Gxe1NDBGTntILFTc2keRv3LbfzvIYU/ki6v+Di9Zhnp74bsCnNNWf7zY5+bffAMyeNQu/+O4sR2mbVtzAUtbsp98ycb63q/A+S34ijV//dpTu1hypZDUZuvA== Received: from CY5P221CA0123.NAMP221.PROD.OUTLOOK.COM (2603:10b6:930:1f::18) by PH0PR04MB7254.namprd04.prod.outlook.com (2603:10b6:510:1b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Tue, 8 Apr 2025 15:41:46 +0000 Received: from CY4PEPF0000E9D2.namprd03.prod.outlook.com (2603:10b6:930:1f:cafe::c5) by CY5P221CA0123.outlook.office365.com (2603:10b6:930:1f::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.19 via Frontend Transport; Tue, 8 Apr 2025 15:41:46 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 204.77.163.244) smtp.mailfrom=garmin.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=garmin.com; Received-SPF: Pass (protection.outlook.com: domain of garmin.com designates 204.77.163.244 as permitted sender) receiver=protection.outlook.com; client-ip=204.77.163.244; helo=edgetransport.garmin.com; pr=C Received: from edgetransport.garmin.com (204.77.163.244) by CY4PEPF0000E9D2.mail.protection.outlook.com (10.167.241.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 15:41:46 +0000 Received: from kc3wpa-exmb3.ad.garmin.com (10.65.32.83) by cv1wpa-edge1 (10.60.4.252) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Tue, 8 Apr 2025 10:41:32 -0500 Received: from cv1wpa-exmb2.ad.garmin.com (10.5.144.72) by kc3wpa-exmb3.ad.garmin.com (10.65.32.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1258.34; Tue, 8 Apr 2025 10:41:33 -0500 Received: from cv1wpa-exmb2.ad.garmin.com (10.5.144.72) by CV1WPA-EXMB2.ad.garmin.com (10.5.144.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 8 Apr 2025 10:41:33 -0500 Received: from CAR-4RCMR33.ad.garmin.com (10.5.209.17) by smtp.garmin.com (10.5.144.72) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Tue, 8 Apr 2025 10:41:32 -0500 From: Joseph Huang To: CC: Joseph Huang , Joseph Huang , Nikolay Aleksandrov , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , "Paolo Abeni" , Roopa Prabhu , Simon Horman , , Subject: [Patch v4 net-next 1/3] net: bridge: mcast: Add offload failed mdb flag Date: Tue, 8 Apr 2025 11:41:09 -0400 Message-ID: <20250408154116.3032467-2-Joseph.Huang@garmin.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250408154116.3032467-1-Joseph.Huang@garmin.com> References: <20250408154116.3032467-1-Joseph.Huang@garmin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D2:EE_|PH0PR04MB7254:EE_ X-MS-Office365-Filtering-Correlation-Id: a03027b7-a297-4e37-261f-08dd76b3dee0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1WqMjj0t65baRz4SbsEQLKL8uCMjExMowVZwj38hSQEGSeJrvJzt6rxgJpFL?= =?us-ascii?Q?o9BYvxeyAxPoD0llpGWzjPVeSoNPSFAp5MLOr3zPD8O2vjI/8j/M2fI6V45U?= =?us-ascii?Q?TAdtc7i05edaVMTeLL5gt2MqUyc+vyC0Cz4gT4n/ofNUNZXfbV32E4hrgEPq?= =?us-ascii?Q?8tXxFq9QqerYFXExAAZTV637taF5dUzbpC8yOiwdWE+RtcM+k9JWi6GBOCe/?= =?us-ascii?Q?xOZjOT3M01JrxfnosPAR6Q1pn0wka5nAwaDuPnDR+guJQejJ5xlZmc/odOXR?= =?us-ascii?Q?6Q3nM3njiQyLOx+gM2vbYc0v94MZGuN92k86RFlMy11jMwrS0wqCkotwfMiz?= =?us-ascii?Q?F0qnsXVYGzM2uMueXZC1xhlvIKeJe3cHrsOTKMDKi0+En0oYAHJIg4yjGjTz?= =?us-ascii?Q?R8Z7FGyQckb4GCSN8TO2DoYKPzgBLMfX9SRNLMlAapCF6myHLbMY1fNwbfDT?= =?us-ascii?Q?uLg881JRnLaRgTx/n8q+8xP9YBH+KXFdUMWiy0kP18WcnUuXDJOE7rMNSdZc?= =?us-ascii?Q?K5eaD5AazKhNKyksaeZgt9FGnobAC9dhtUMT0qDp85moR4zix1xk4n6193HQ?= =?us-ascii?Q?Zz+o7OxnY/oOn7UDPqogSIHUR19J15J5rGWwU/I1yUHybOPqskTTWxsH6TeW?= =?us-ascii?Q?0lo9KPULEY3O2cui4QINxaURL10tnenWspslvgjjJBFxPakyqO46AEf/f+wr?= =?us-ascii?Q?MPG+JiDVdqj9DWIItTi0/YynkTDqLq9ZKqeYWDRC+tw0/iIcna493uda/vzg?= =?us-ascii?Q?UMsb3IUkLze20KTEmgfixT56OUfOlaE7E/2Z0SM5GbDGh+tWOCL0/+RmXDyb?= =?us-ascii?Q?bUlfzRSM8dHtZf31F3m6Gu522Q7zAr4FV98oZdj+BsctipzwyrRv6drkw3VA?= =?us-ascii?Q?8NFXY/i3yuriIZGmbDDaRKy7rFgGnxHXfbgQa4sHmoDmZGkUbH0YZTDT5Pl/?= =?us-ascii?Q?E4jgN+h4hgnPAvo4T+fFpCrJqn1og99YQSorXylSrnnuRsNxC/EoPI/LiU6T?= =?us-ascii?Q?OEf4jkEPQbERz1R80CNgvEtA0NEK2tahEBLIb41yZDKArc/aWIwii9CP/FlT?= =?us-ascii?Q?5YjUEyMtDgixGx+OIePOwB4stGcNLnKhSz9hmYq+FoSrcaGVSETvrLE+Sezh?= =?us-ascii?Q?HhOZCnU9Nz0izKMpA+U2shgPatiacKYslwbcrarixQyrS/6Y/pmmsY+JBFcV?= =?us-ascii?Q?RHK5H7Lta8u7kr5mahre7p9/apEABwTXa/jCkk1fbgk/RXJVDB6aRW9lgMrX?= =?us-ascii?Q?xi46Rnn6N4q3VuYT4Ws+O5C1HY1QE/qT0dyIjaM7mWReXj4a2US0cGzqPVzm?= =?us-ascii?Q?NLGPgRuEashBfrZWPmsQM8HS4WHlwjsVYxJDbdmGwCRPNW2DR3hBGrTLsPK4?= =?us-ascii?Q?42fX0uCtm/MMgIGMqicS6O2FcYtna9rkluXkhB0JkMjrNrxEh4Fk+mhXz65g?= =?us-ascii?Q?6FtWlYko3BPt9Qn8LXwK8oxjj6q4Ewvhsf9qjJY2rFt1OG+LuT3LviGfixIZ?= =?us-ascii?Q?ipOnCJvc5yWme+s=3D?= X-Forefront-Antispam-Report: CIP:204.77.163.244;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:edgetransport.garmin.com;PTR:extedge.garmin.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1102; X-OriginatorOrg: garmin.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 15:41:46.5371 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a03027b7-a297-4e37-261f-08dd76b3dee0 X-MS-Exchange-CrossTenant-Id: 38d0d425-ba52-4c0a-a03e-2a65c8e82e2d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=38d0d425-ba52-4c0a-a03e-2a65c8e82e2d;Ip=[204.77.163.244];Helo=[edgetransport.garmin.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D2.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR04MB7254 X-Proofpoint-ORIG-GUID: 9I0z8VBV8aTVhhD-OaW1iRKWwiyP21Rz X-Authority-Analysis: v=2.4 cv=dqrbC0g4 c=1 sm=1 tr=0 ts=67f543bd cx=c_pps a=di3315gfm3qlniCp1Rh91A==:117 a=YA0UzX50FYCGjWi3QxTvkg==:17 a=h8e1o3o8w34MuCiiGQrqVE4VwXA=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=XR8D0OoHHMoA:10 a=qm69fr9Wx_0A:10 a=NbHB2C0EAAAA:8 a=vr0dFHqqAAAA:8 a=nTqqLMH9PYxWBGmw_pQA:9 a=P4ufCv4SAa-DfooDzxyN:22 cc=ntf X-Proofpoint-GUID: 9I0z8VBV8aTVhhD-OaW1iRKWwiyP21Rz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-04-08_06,2025-04-08_03,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=845 lowpriorityscore=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 malwarescore=0 suspectscore=0 impostorscore=0 phishscore=0 priorityscore=1501 clxscore=1015 classifier=spam authscore=0 authtc=n/a authcc=notification route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2502280000 definitions=main-2504080108 Content-Type: text/plain; charset="utf-8" Add MDB_FLAGS_OFFLOAD_FAILED and MDB_PG_FLAGS_OFFLOAD_FAILED to indicate that an attempt to offload the MDB entry to switchdev has failed. Signed-off-by: Joseph Huang Acked-by: Nikolay Aleksandrov --- include/uapi/linux/if_bridge.h | 9 +++++---- net/bridge/br_mdb.c | 2 ++ net/bridge/br_private.h | 20 +++++++++++++++----- net/bridge/br_switchdev.c | 9 +++++---- 4 files changed, 27 insertions(+), 13 deletions(-) diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h index a5b743a2f775..f2a6de424f3f 100644 --- a/include/uapi/linux/if_bridge.h +++ b/include/uapi/linux/if_bridge.h @@ -699,10 +699,11 @@ struct br_mdb_entry { #define MDB_TEMPORARY 0 #define MDB_PERMANENT 1 __u8 state; -#define MDB_FLAGS_OFFLOAD (1 << 0) -#define MDB_FLAGS_FAST_LEAVE (1 << 1) -#define MDB_FLAGS_STAR_EXCL (1 << 2) -#define MDB_FLAGS_BLOCKED (1 << 3) +#define MDB_FLAGS_OFFLOAD (1 << 0) +#define MDB_FLAGS_FAST_LEAVE (1 << 1) +#define MDB_FLAGS_STAR_EXCL (1 << 2) +#define MDB_FLAGS_BLOCKED (1 << 3) +#define MDB_FLAGS_OFFLOAD_FAILED (1 << 4) __u8 flags; __u16 vid; struct { diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c index 1a52a0bca086..0639691cd19b 100644 --- a/net/bridge/br_mdb.c +++ b/net/bridge/br_mdb.c @@ -144,6 +144,8 @@ static void __mdb_entry_fill_flags(struct br_mdb_entry = *e, unsigned char flags) e->flags |=3D MDB_FLAGS_STAR_EXCL; if (flags & MDB_PG_FLAGS_BLOCKED) e->flags |=3D MDB_FLAGS_BLOCKED; + if (flags & MDB_PG_FLAGS_OFFLOAD_FAILED) + e->flags |=3D MDB_FLAGS_OFFLOAD_FAILED; } =20 static void __mdb_entry_to_br_ip(struct br_mdb_entry *entry, struct br_ip = *ip, diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index 1054b8a88edc..5f9d6075017e 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -306,11 +306,12 @@ struct net_bridge_fdb_flush_desc { u16 vlan_id; }; =20 -#define MDB_PG_FLAGS_PERMANENT BIT(0) -#define MDB_PG_FLAGS_OFFLOAD BIT(1) -#define MDB_PG_FLAGS_FAST_LEAVE BIT(2) -#define MDB_PG_FLAGS_STAR_EXCL BIT(3) -#define MDB_PG_FLAGS_BLOCKED BIT(4) +#define MDB_PG_FLAGS_PERMANENT BIT(0) +#define MDB_PG_FLAGS_OFFLOAD BIT(1) +#define MDB_PG_FLAGS_FAST_LEAVE BIT(2) +#define MDB_PG_FLAGS_STAR_EXCL BIT(3) +#define MDB_PG_FLAGS_BLOCKED BIT(4) +#define MDB_PG_FLAGS_OFFLOAD_FAILED BIT(5) =20 #define PG_SRC_ENT_LIMIT 32 =20 @@ -1343,6 +1344,15 @@ br_multicast_ctx_matches_vlan_snooping(const struct = net_bridge_mcast *brmctx) =20 return !!(vlan_snooping_enabled =3D=3D br_multicast_ctx_is_vlan(brmctx)); } + +static inline void +br_multicast_set_pg_offload_flags(struct net_bridge_port_group *p, + bool offloaded) +{ + p->flags &=3D ~(MDB_PG_FLAGS_OFFLOAD | MDB_PG_FLAGS_OFFLOAD_FAILED); + p->flags |=3D (offloaded ? MDB_PG_FLAGS_OFFLOAD : + MDB_PG_FLAGS_OFFLOAD_FAILED); +} #else static inline int br_multicast_rcv(struct net_bridge_mcast **brmctx, struct net_bridge_mcast_port **pmctx, diff --git a/net/bridge/br_switchdev.c b/net/bridge/br_switchdev.c index 7b41ee8740cb..57e1863edf93 100644 --- a/net/bridge/br_switchdev.c +++ b/net/bridge/br_switchdev.c @@ -505,8 +505,8 @@ static void br_switchdev_mdb_complete(struct net_device= *dev, int err, void *pri struct net_bridge_port *port =3D data->port; struct net_bridge *br =3D port->br; =20 - if (err) - goto err; + if (err =3D=3D -EOPNOTSUPP) + goto notsupp; =20 spin_lock_bh(&br->multicast_lock); mp =3D br_mdb_ip_get(br, &data->ip); @@ -516,11 +516,12 @@ static void br_switchdev_mdb_complete(struct net_devi= ce *dev, int err, void *pri pp =3D &p->next) { if (p->key.port !=3D port) continue; - p->flags |=3D MDB_PG_FLAGS_OFFLOAD; + + br_multicast_set_pg_offload_flags(p, !err); } out: spin_unlock_bh(&br->multicast_lock); -err: +notsupp: kfree(priv); } =20 --=20 2.49.0 From nobody Thu Dec 18 14:35:27 2025 Received: from mx0b-000eb902.pphosted.com (mx0b-000eb902.pphosted.com [205.220.177.212]) (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 2D3A722B8C4; Tue, 8 Apr 2025 15:42:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.212 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744126933; cv=fail; b=GdCQrCQCYfa7e6Si1IBtz+Ivk92waamoBtRRK1DPs9pMi3/gLZKP145C+SBsjdheImddjLIVddLxJRvjzh4ZgWpzt1J0Ez2H8Pd5EzQYSrVDHnovyiIfRUeZZAL2jo0KFaX73WKf4qbPavA4rnJCJHdcMDnYRZQw7m+9Kf8cb/Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744126933; c=relaxed/simple; bh=BVVBpa3x9tins8KUWLlm6NrkQieYoD0NB2b3BdTxNpA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YyDjToMAbOvGon9Ah+5UOsvls8wSIz1b7Q+UxYMx00zJ8rLD53yZcIFYdo4Vu21ePhVJ+y1il5fH3CocCoKnK2+g4fJy+26bKmfva//d9nHW3qBxrgV49WjzNWTLP8uTDhCLAJXdxIQds8LFBF9UpHkVMi4FMsYbvSXPTNplRJY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=garmin.com; spf=pass smtp.mailfrom=garmin.com; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b=w89BaesB; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b=FESBAh6G; arc=fail smtp.client-ip=205.220.177.212 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=garmin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garmin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b="w89BaesB"; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b="FESBAh6G" Received: from pps.filterd (m0220298.ppops.net [127.0.0.1]) by mx0a-000eb902.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 538FOVBq032711; Tue, 8 Apr 2025 10:41:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garmin.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps1; bh=LAPdk 4IKWbWVNG4e99TR1bO0ub4bMqDP88F7DcxUx/4=; b=w89BaesBddrmOuZIaUcBw rRSKnykXFmeFVQHjpuhYnbeLoshOWSOxUp+ICIqBqVUEYHESb8dh5TnqNYjCCCqJ xpepKmM3gWmFV9lyiviiEX/IeFiOu/SIbxHoHHHK7QODNkJbAmoA8m48AR9x7Swk L9micP3U75tC6G/xyLHlCkgNfvfE+aAAxdQOnooOuVokEBYUvOsaOio0g0+WOJVS nPdkMk5hA1y0SKa6zt86TwSJm2D1tq6mSQy0j6wi1UgTJawaaGzmQASK91OwOPqV QNEgO/9bsBDMczKRGjG2YynbTFw19Nx1iYyVgKeRYoCNGxxpi8wI8KIiF9DyYOHb A== Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2174.outbound.protection.outlook.com [104.47.58.174]) by mx0a-000eb902.pphosted.com (PPS) with ESMTPS id 45w0r98txk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 08 Apr 2025 10:41:41 -0500 (CDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ykyq0SabxXK5T+qWlmZFStpAEY5WF3keU9LQhNCyYqQQ2WWitToRLSJOHzIfBBM/6YfzRFAqgK5qTuaBoT6oZZLWWpcaXj7UdpW78nWFMiyMjJAf+tFkd35hLOOfrKWeK/d18Zg884LInY0Q3gziy0CpnKQcBphA4bTaAQ8Qy+A3jFeN8nNozT/uzBB1PWkDsfuX+E2tx4f/jsK/soMAD03o14WNNYLLYPWYv5tAqEOXX0Fy5lEWJqIVnuOpYvYBbLOFOMH7Ao/3EIywWYLOqDwizdYsse5IHNELxOrI6xVaZFr8mpemtjk/OmF1MCH9C4QIDz0hxN1t+wZoNKeVpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LAPdk4IKWbWVNG4e99TR1bO0ub4bMqDP88F7DcxUx/4=; b=Nm7PUpLaLNZ0oKiipC3nwAU73dWgx1vHe3xBoXLpvj6DRQ3uX11sjrQk8GVZU4iVzmQJ6KASxbhKKhHCGZAJud9JwSKCTxXfs4QSEcp/elnxOR5RovbTYh2mC3eWm93F56hBHWg083ddquyuXCpsbnhBxvnrFyTlSUyNDBvALPz1RDxu9kqo2FE58jSWVmq0O1F3JUxAz9snzLNNct/97A1Lg/ip72Im5uNqVjZYo9LZ+xzzfJpea0NJbK90E+lDS6dYSP6FO5D7uTL5sK8jbMbHwtC2kLxS1v8l0JzmMONX32hSa5/lE5rWtwQh++HN4ry4AHQocC25JK3wRFmR/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 204.77.163.244) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=garmin.com; dmarc=pass (p=reject sp=quarantine pct=100) action=none header.from=garmin.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garmin.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LAPdk4IKWbWVNG4e99TR1bO0ub4bMqDP88F7DcxUx/4=; b=FESBAh6Gp3HMDhr/0vD7xXmy8wP4dRAQL2GgKgRSMXfQ5GziofjC/gr/U/KBRbWzO+DFvm2Rgd1lHF46KGsz9wUldQCGnBOdCJLox6+wcxKhTRE2N9UZCJfKeDmpZ5MK5y8E7zZbKl9tvMextyhpXsYmX1fdY8iDy0Wlm9LDfy4zDYwkNp4829R3AgTRzaN30ESrgslEjPMMdLQUThg3tBiJb5VZ/J5h6nuWMbPOu+iRoFYZBA5s3GEi7FZdaVDHkVg510fMRcI8gOWkPhCGJpKfLdY1hT//LDCd6QDdQ/J2qicUWxfAsTNGJWmnHiXPJFRjVaR86lkDe0km01vhwQ== Received: from MN2PR11CA0026.namprd11.prod.outlook.com (2603:10b6:208:23b::31) by SJ0PR04MB7422.namprd04.prod.outlook.com (2603:10b6:a03:292::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 8 Apr 2025 15:41:39 +0000 Received: from BN2PEPF000055DA.namprd21.prod.outlook.com (2603:10b6:208:23b:cafe::af) by MN2PR11CA0026.outlook.office365.com (2603:10b6:208:23b::31) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.19 via Frontend Transport; Tue, 8 Apr 2025 15:41:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 204.77.163.244) smtp.mailfrom=garmin.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=garmin.com; Received-SPF: Pass (protection.outlook.com: domain of garmin.com designates 204.77.163.244 as permitted sender) receiver=protection.outlook.com; client-ip=204.77.163.244; helo=edgetransport.garmin.com; pr=C Received: from edgetransport.garmin.com (204.77.163.244) by BN2PEPF000055DA.mail.protection.outlook.com (10.167.245.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.0 via Frontend Transport; Tue, 8 Apr 2025 15:41:38 +0000 Received: from kc3wpa-exmb3.ad.garmin.com (10.65.32.83) by cv1wpa-edge1 (10.60.4.255) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Tue, 8 Apr 2025 10:41:36 -0500 Received: from cv1wpa-exmb3.ad.garmin.com (10.5.144.73) by kc3wpa-exmb3.ad.garmin.com (10.65.32.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.34; Tue, 8 Apr 2025 10:41:37 -0500 Received: from cv1wpa-exmb2.ad.garmin.com (10.5.144.72) by cv1wpa-exmb3.ad.garmin.com (10.5.144.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 8 Apr 2025 10:41:36 -0500 Received: from CAR-4RCMR33.ad.garmin.com (10.5.209.17) by smtp.garmin.com (10.5.144.72) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Tue, 8 Apr 2025 10:41:36 -0500 From: Joseph Huang To: CC: Joseph Huang , Joseph Huang , Nikolay Aleksandrov , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , "Paolo Abeni" , Roopa Prabhu , Simon Horman , , Subject: [Patch v4 net-next 2/3] net: bridge: Add offload_fail_notification bopt Date: Tue, 8 Apr 2025 11:41:10 -0400 Message-ID: <20250408154116.3032467-3-Joseph.Huang@garmin.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250408154116.3032467-1-Joseph.Huang@garmin.com> References: <20250408154116.3032467-1-Joseph.Huang@garmin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000055DA:EE_|SJ0PR04MB7422:EE_ X-MS-Office365-Filtering-Correlation-Id: e7178cf8-de56-498c-1a58-08dd76b3d9f4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?8sZjuS+ho8x06KZ8a+qaRrOnC4tUCEs4TjcnNCzqoUBtnORjG+CN0tEC3cN5?= =?us-ascii?Q?tqbr1bkwAj28g8VydRn+Lfyq6nT6DwjZgG3bFV9ROAAB3WPcXHBDd2zRZxtt?= =?us-ascii?Q?qakMZ+hayHahNXapu3rNjQhOzG7eqjEhBljJpJkbePgxkgNWS3rFKkvOADbt?= =?us-ascii?Q?sy7NTimHh4LjjzEQqV4h4XQBmvMRFoBsIgntcBb+zHUACMAC1EMDStyZ9url?= =?us-ascii?Q?RWGqA4abG8lTfDUk7X2jSeO2OKRmnkAQ3Lu/iYsgt+whaXwHgOtlQQASsSWa?= =?us-ascii?Q?OvM+venjj0KvNSiIAtgvhV7ffel+KwbdkiC3CZ43u48Vw8v+WL2Xhh0Un4q8?= =?us-ascii?Q?mWUoIoQCYo7qR+aZS+G2+7w2gYUpmkhHNNJRSC90/xl6FEV+9T5eJozZF309?= =?us-ascii?Q?SCn2oac6zbRKcxNYA4qyBwIYMMEsRxHHRLVP5Hzz19W3BOV0OhXa4trGM1xJ?= =?us-ascii?Q?0TE5Xw7jQbf6PIT3KIF4ikbZvOqw5HuKqsZRldhIO4RBcZr3Lnvtofff14eC?= =?us-ascii?Q?tmzUUpLYJBvH45O+2x4V8y4JlIAej9Sn/wDjfEkE9K2z8it6PstUL7gNwmjx?= =?us-ascii?Q?WYZWyDIniLPvX+7AsWlSP3gSfyxl+0gfUtFf9Z8L+BmyGlMYFnHQepy4uMZJ?= =?us-ascii?Q?upYb+KqrKD2Jz/1TMh91WP3k20PUb5PjEcbC/6R3yD44vijxYvYZEqAtX0S8?= =?us-ascii?Q?/bUFxDjdnNnqk8iwxEwgwn2DEtj2pHgArWaV3DPhwIYigzaBjTPVttWl5BRp?= =?us-ascii?Q?paL/5tXIoMEIRB6WBqeoHzpoIkeJN/atTOqFl8cvc2oovx8ZlyFiROvjwlNa?= =?us-ascii?Q?00lO1I89qm5aFTLZhwSh0joJtQpCNpS6c9Zt8djdURk5f6g20VZt2b+9p/yh?= =?us-ascii?Q?EJ0NhApfJUTDW97mIuenAhjI3iNfHoDMEb8Di6r+gDpnTSpoQ+QcAX6n315p?= =?us-ascii?Q?ZjqgIxK0REjzPXTwMfyIi/8F9OmmZFHagOjCRYOn+IxTzSW4kMfEl94aNTCS?= =?us-ascii?Q?bt9BbeyJ1eSQpIDhRg2zjHEfJx+gkdKQYrkyTkrdVODmkvvVoHSohvP7pyT2?= =?us-ascii?Q?JgUPq2TDoazn91VzmimIVoL8QHAlcx2xk5wGX7+X4iu9l/lfl0rmGT1j9i2V?= =?us-ascii?Q?ApH3wd7QQ2aA7fVUmUULIIwe+U8JBMzQ7397VGYu0Iyi2ashHZoGXWy/eIIf?= =?us-ascii?Q?1U5klk8657xk1mxgSARNzM13GJavuXp2E1d8cnBLTBAtqvTJvu2TN3W9fpBC?= =?us-ascii?Q?se8khp3deLm4LVPXke8OtGgwXX55pJLM8W3j1DBI3AF/ywuE4mmyKXbuOwnc?= =?us-ascii?Q?vpiAqZHU6TXbWyRp3n3lXYEhwsErGoKKRF2W0/YfsWyQJUnkhew/zQr4ImJg?= =?us-ascii?Q?RF7DioiKXFbg91B6aqei0SWAt1KY56Ok6B8qAS3TvHMQIyn4rRFb3NOv65Fb?= =?us-ascii?Q?IOSsudgeD9GZyrUoIemaovvo0wFaFyHB1QbdAm4S+HnU2suf/A5r0xeGRR0X?= =?us-ascii?Q?nZoYjsm5od1umbY=3D?= X-Forefront-Antispam-Report: CIP:204.77.163.244;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:edgetransport.garmin.com;PTR:extedge.garmin.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(7416014)(376014)(36860700013);DIR:OUT;SFP:1102; X-OriginatorOrg: garmin.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 15:41:38.2851 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e7178cf8-de56-498c-1a58-08dd76b3d9f4 X-MS-Exchange-CrossTenant-Id: 38d0d425-ba52-4c0a-a03e-2a65c8e82e2d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=38d0d425-ba52-4c0a-a03e-2a65c8e82e2d;Ip=[204.77.163.244];Helo=[edgetransport.garmin.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF000055DA.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR04MB7422 X-Proofpoint-GUID: f3jlXRoi9o4x2l68xuFz4lWkstO5dyKH X-Proofpoint-ORIG-GUID: f3jlXRoi9o4x2l68xuFz4lWkstO5dyKH X-Authority-Analysis: v=2.4 cv=DsZW+H/+ c=1 sm=1 tr=0 ts=67f543b5 cx=c_pps a=qvBKVd3KFl3zkoLf5jvq7Q==:117 a=YA0UzX50FYCGjWi3QxTvkg==:17 a=h8e1o3o8w34MuCiiGQrqVE4VwXA=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=XR8D0OoHHMoA:10 a=qm69fr9Wx_0A:10 a=NbHB2C0EAAAA:8 a=vr0dFHqqAAAA:8 a=KDSQBeb26tfA5DPfL6IA:9 a=P4ufCv4SAa-DfooDzxyN:22 cc=ntf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-04-08_06,2025-04-08_03,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 priorityscore=1501 suspectscore=0 phishscore=0 mlxscore=0 impostorscore=0 mlxlogscore=789 adultscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 classifier=spam authscore=0 authtc=n/a authcc=notification route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2502280000 definitions=main-2504080108 Content-Type: text/plain; charset="utf-8" Add BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION bool option. Signed-off-by: Joseph Huang Acked-by: Nikolay Aleksandrov --- include/uapi/linux/if_bridge.h | 1 + net/bridge/br.c | 5 +++++ net/bridge/br_private.h | 1 + 3 files changed, 7 insertions(+) diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h index f2a6de424f3f..73876c0e2bba 100644 --- a/include/uapi/linux/if_bridge.h +++ b/include/uapi/linux/if_bridge.h @@ -831,6 +831,7 @@ enum br_boolopt_id { BR_BOOLOPT_NO_LL_LEARN, BR_BOOLOPT_MCAST_VLAN_SNOOPING, BR_BOOLOPT_MST_ENABLE, + BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION, BR_BOOLOPT_MAX }; =20 diff --git a/net/bridge/br.c b/net/bridge/br.c index 183fcb362f9e..25dda554ca5b 100644 --- a/net/bridge/br.c +++ b/net/bridge/br.c @@ -284,6 +284,9 @@ int br_boolopt_toggle(struct net_bridge *br, enum br_bo= olopt_id opt, bool on, case BR_BOOLOPT_MST_ENABLE: err =3D br_mst_set_enabled(br, on, extack); break; + case BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION: + br_opt_toggle(br, BROPT_MDB_OFFLOAD_FAIL_NOTIFICATION, on); + break; default: /* shouldn't be called with unsupported options */ WARN_ON(1); @@ -302,6 +305,8 @@ int br_boolopt_get(const struct net_bridge *br, enum br= _boolopt_id opt) return br_opt_get(br, BROPT_MCAST_VLAN_SNOOPING_ENABLED); case BR_BOOLOPT_MST_ENABLE: return br_opt_get(br, BROPT_MST_ENABLED); + case BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION: + return br_opt_get(br, BROPT_MDB_OFFLOAD_FAIL_NOTIFICATION); default: /* shouldn't be called with unsupported options */ WARN_ON(1); diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index 5f9d6075017e..02188b7ff8e6 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -484,6 +484,7 @@ enum net_bridge_opts { BROPT_VLAN_BRIDGE_BINDING, BROPT_MCAST_VLAN_SNOOPING_ENABLED, BROPT_MST_ENABLED, + BROPT_MDB_OFFLOAD_FAIL_NOTIFICATION, }; =20 struct net_bridge { --=20 2.49.0 From nobody Thu Dec 18 14:35:27 2025 Received: from mx0a-000eb902.pphosted.com (mx0a-000eb902.pphosted.com [205.220.165.212]) (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 C6DD9226D0F; Tue, 8 Apr 2025 15:42:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.212 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744126931; cv=fail; b=R46DgSM2FJ6c3loUXS+BPxF8rEJTnLm6b6+JVcM843G1KTa1jwxAyGp/fBoGhYAAKzkcD0S4U8yibTI2MqF8LKKpmWPb9muu/TaRxjkKZLdtzVoCmU78GruvCnR4txHwVHIERNT3j1Gi+fWEnvWoEMkUfhoaKdqo0d4wNSTSz1s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744126931; c=relaxed/simple; bh=6QQC89fEF3RBWs4MMeOWpPDPu97abfPJE31SuXIv/w4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=UVcLrblEtWJhedQhwHcdvrJCN/PLxbzBRUhxj7igSy+OmovsNsWNz5WSTjb1RswYw4CDUgwJH6vsJwXI4UjgW2RLDsW636qyVZAfxgxG/P1O0kbZKi1GEKPxmCzrxxjLheDHQ3hTzGKkt3szM4J6ZwO7kchXo+zaSr44XHhP2Fc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=garmin.com; spf=pass smtp.mailfrom=garmin.com; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b=nnm7M0Wl; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b=AgwAHE8B; arc=fail smtp.client-ip=205.220.165.212 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=garmin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garmin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b="nnm7M0Wl"; dkim=pass (2048-bit key) header.d=garmin.com header.i=@garmin.com header.b="AgwAHE8B" Received: from pps.filterd (m0220295.ppops.net [127.0.0.1]) by mx0a-000eb902.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 538FO2sV027809; Tue, 8 Apr 2025 10:41:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garmin.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps1; bh=MJytl RCfNLemNs9CI6w86pE09ZcZ3F9E//U6KY0wcOk=; b=nnm7M0WlhZlaijwCYEeN1 0hZ0dEbEQjWcTUZt87ylP/giV9qcCjpDJil0ciHTH4EMCuTK6IKT6CDJMmLrzD9a 77yaPV8XT7LMGy+G1g3Yr0Xc9edaQE3cCARZDNn3L7o+atJynrOYHWNbEHmSyUj2 qnSxHsvFEl5bmg2mqMLEHAK+9xjOrnUprCT3l1RA5kkVcgbVoUM3tENy63YbK/// Pe1ADD1K98fXAUw5DwX/p1XIbXFeHvrWeqP6WjDGCzhS3Hh5Gg8aC3Ug03z/u5ec Z00Fbfa573nQz3vmbXZIZ2fG2qS4i9dc5/QidPFhyy64+QcgPnMuxAGHAmAKYRmt w== Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azlp17010019.outbound.protection.outlook.com [40.93.12.19]) by mx0a-000eb902.pphosted.com (PPS) with ESMTPS id 45w1s18pn4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 08 Apr 2025 10:41:52 -0500 (CDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bYEsUvD7BDbDQ2r6YFKGhtFjZUHIC6ik4NL6fLpGCjzDa68Aig7uzWDiECR3tGpDlJJaulDLwxO1blOTVFVrI7/mZrC74sxP+HG8DeR8cx7SVbKkrKAfHMjkscK771S2BWTap56SSIuM2nQEnnSnOLw2ZA8wsHk1zC7fq5piieQ7SZNJv/aZnaCTvnHXdWYgcFuEH59t+CqLxcBc/oIlrFizBa9qxU/Z2i+wbXd5CkNTButzBgktcQu2GoUy3GqXfTCyMM5cHHAgLVp0+gzEHT/zAnSworH4LiQo55mKmP9xLw4tKf6QMg/iUkbMqWW1t4CHTWj/bQelDSrb6/hqig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MJytlRCfNLemNs9CI6w86pE09ZcZ3F9E//U6KY0wcOk=; b=bl3IExUQXYepMN5MFVi2LkmYGpLGSu1b5lxhY4mPw/64sfdTUX/MPV/I42xcySHTkS47EoVI/VDfJeFLA2pG5T84pTO7Zkm7k2PYlABDf8lh6M9hFyYnBG4JlA43t1vC+u/5PbdtXSWi9+0DzyMZRjAhzYNaYHc/xmi13dZWrs79gwCH/ltUcK0ow/Jd02brV1cS7sVHII+A1ucR3R9pjGmglmBUtmqthZ6NXgZiUhLnX6dhQIPV599OMINGJGVCevJnMn2rorHpAu71BjNXWAPRJFdPx29ODt+ezbuO2wqpzwY7Vol2so7Jr/UYN6vDlk8IfMZYra1bPK8IJzuciw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 204.77.163.244) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=garmin.com; dmarc=pass (p=reject sp=quarantine pct=100) action=none header.from=garmin.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garmin.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MJytlRCfNLemNs9CI6w86pE09ZcZ3F9E//U6KY0wcOk=; b=AgwAHE8BoqAgGeL2bbPAeeeiK98gc5nCM6fG0euaiQ4RyHrO2AYug5n00xaTyk2U5F9yHHIrk0Su1zFQYRYlAWnJRDMhjsjOuoMOkCoAhINMnW0TMYhPLOAz67QO7Ogq0QGzm2BHcCnDdvd50eV4JPRN/zUlzUoDj0cjRZCy5smydZ2OIJSMvyJeJY7jbThcZckH7Umjh3Xyz4GyvMpWcEM3UOe/Ocvz9g36PMLbuf8MFriz7nxnNjVlCzAsZvK41dB7f3qwqqz95YactGjwa4CWoU7vZ0MLvkcP22OoFhsxvtB8V9jKxwHojqsR8oEboJunLZOh+3CC+jkWqohx2g== Received: from CY5P221CA0121.NAMP221.PROD.OUTLOOK.COM (2603:10b6:930:1f::19) by PH0PR04MB7208.namprd04.prod.outlook.com (2603:10b6:510:b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 8 Apr 2025 15:41:50 +0000 Received: from CY4PEPF0000E9D2.namprd03.prod.outlook.com (2603:10b6:930:1f:cafe::41) by CY5P221CA0121.outlook.office365.com (2603:10b6:930:1f::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.19 via Frontend Transport; Tue, 8 Apr 2025 15:41:50 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 204.77.163.244) smtp.mailfrom=garmin.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=garmin.com; Received-SPF: Pass (protection.outlook.com: domain of garmin.com designates 204.77.163.244 as permitted sender) receiver=protection.outlook.com; client-ip=204.77.163.244; helo=edgetransport.garmin.com; pr=C Received: from edgetransport.garmin.com (204.77.163.244) by CY4PEPF0000E9D2.mail.protection.outlook.com (10.167.241.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.22 via Frontend Transport; Tue, 8 Apr 2025 15:41:50 +0000 Received: from KC3WPA-EXMB5.ad.garmin.com (10.65.32.85) by cv1wpa-edge1 (10.60.4.252) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Tue, 8 Apr 2025 10:41:40 -0500 Received: from cv1wpa-exmb3.ad.garmin.com (10.5.144.73) by KC3WPA-EXMB5.ad.garmin.com (10.65.32.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.32; Tue, 8 Apr 2025 10:41:41 -0500 Received: from cv1wpa-exmb2.ad.garmin.com (10.5.144.72) by cv1wpa-exmb3.ad.garmin.com (10.5.144.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 8 Apr 2025 10:41:41 -0500 Received: from CAR-4RCMR33.ad.garmin.com (10.5.209.17) by smtp.garmin.com (10.5.144.72) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Tue, 8 Apr 2025 10:41:40 -0500 From: Joseph Huang To: CC: Joseph Huang , Joseph Huang , Nikolay Aleksandrov , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , "Paolo Abeni" , Roopa Prabhu , Simon Horman , , Subject: [Patch v4 net-next 3/3] net: bridge: mcast: Notify on mdb offload failure Date: Tue, 8 Apr 2025 11:41:11 -0400 Message-ID: <20250408154116.3032467-4-Joseph.Huang@garmin.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250408154116.3032467-1-Joseph.Huang@garmin.com> References: <20250408154116.3032467-1-Joseph.Huang@garmin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D2:EE_|PH0PR04MB7208:EE_ X-MS-Office365-Filtering-Correlation-Id: 66f0b30b-c863-4255-bf49-08dd76b3e0ff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|7416014|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?zJ8R/w4EY54cZaq8HrxPEin8s773BoRtmKW0iGLCMAUltTaPVFQzkIjwQwYw?= =?us-ascii?Q?xO2TVL2zaYjYgsQSpd22x7CVuLNye17tKMIQs1pYaxPuFe3VEKHyyVLeQ+Sq?= =?us-ascii?Q?OpuUurMKezJRBjt8rEQ0j/A7P4OvvyuiHvp0stMDeNlkZg9fARQgO2MpcQ1Q?= =?us-ascii?Q?kV2vZUt8p7OgCHaghtBlkzc/HULPky+Y9ka/NYhRW7AAnuNPXsohzLLyWfdK?= =?us-ascii?Q?phqflyUUSj1eRcV950w4yrklse+ZahKVAcYrJvpMIDmXMfIPRb/GNsKbX/kJ?= =?us-ascii?Q?etPpsWblkOiYYFH9y1wdg0FvjTpVtivYQSQ4b222pBtVuMl2lg+tc780d7hm?= =?us-ascii?Q?7KFnfVFyjovKUZaz2G63CD/nKiyG0O9mmkQLPWJeMz52X21NGRZuh3iwu2gL?= =?us-ascii?Q?7h4arsznm03n1pVQvAjihn76pNVmde/4lk/nDx1Q6CQiIlFcOarObPrOudd8?= =?us-ascii?Q?k+mPg30CW+HU+St2HliJA5u/GFIM31qyDIDl9gIGbOOdUgXRE6W0J6BQJ0Gm?= =?us-ascii?Q?XGqSsmwPa01TVoiNiM+HRFxAZtKNPzuOrUv56TPHQYdyTskvEiQ8GmDnFW2S?= =?us-ascii?Q?2geeWsYSmosWQuVlP3CdGAgXV487iM7OF39A6hEzCiuzrA1oGMNFRjJHbUHN?= =?us-ascii?Q?CXTUXLFquJcxeer/kisw/BThlcuns3cL8mz2kTn/i2N2xuNNJD0KzWnLW0z/?= =?us-ascii?Q?q7wV73aJBd17nmkQoMn3z9lwBB63H3yMFH14pZfj04sXJpibbt5zyq5fOz+Y?= =?us-ascii?Q?sEGQl4l6kSxlt1cQbBJTRDPWB8ksOOIMAj+lkTkO+A+DaKkw84J2moNYbDrP?= =?us-ascii?Q?aQq9631YrG2MMxGNqgGcgM6DjF+KF4A1sG+ysDQpHLl+7clG7JGgpT/92oXA?= =?us-ascii?Q?FcCeIWvkzFiCqUbx/U3kNUpc4T/VCYZtyH7UrMskwRtwvACKg9J+X5c8sZS1?= =?us-ascii?Q?bYh404On14HEAbrpE09mwdJgrtORCSt6WnMBZ3stI28hqEV+Sl/2jvfFcKmO?= =?us-ascii?Q?qNA3mwDY7/wzLaIs7OBXRDdFmIFxBYG37alcmF6TfC528Oqsua2ntCddvCl0?= =?us-ascii?Q?NBDNHQ65ebJSLbpQe67h5h2LtBN2jlOiveJBAEEc5nNFAP8Nx6A4vPj5WdIj?= =?us-ascii?Q?SmLKwVNUQ4W94Ey9hevYpYShs2XoRX4qDOS6DEnxZlEIvydwWQ98Fu8zGDfG?= =?us-ascii?Q?jW4tDgxd0YrYrq9U/TnsmA3PxXSoLn/lA0yJ/KUM8vVWnbOamPuajJ61leQb?= =?us-ascii?Q?W2SOGhG2IFYrcn+25udLuYrx7NYhpcXAnlFWjx53JZEMc9/eBP3jW3oB2kte?= =?us-ascii?Q?TWrf8Ve3P5Bp/0fkkH/LLmt+KwrtIeyYShx2yAR+qQAIUJPRgTiunk/HVNHO?= =?us-ascii?Q?ALl8b+NbKPm30JkUFBBwPQYXD6mDLDVXpaBGcoyMHvhx2riJds0IFLgH89TE?= =?us-ascii?Q?2SBbVnGtBVJyMlfJum0Kz5hipljpL4E1OTYE6CgBUsCy7gNzOJdEJcXP0I77?= =?us-ascii?Q?dl8qgRh1/uEnn+qWsdiQw+phbN2LnQ6N0fC+?= X-Forefront-Antispam-Report: CIP:204.77.163.244;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:edgetransport.garmin.com;PTR:extedge.garmin.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(7416014)(376014)(36860700013);DIR:OUT;SFP:1102; X-OriginatorOrg: garmin.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 15:41:50.0840 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 66f0b30b-c863-4255-bf49-08dd76b3e0ff X-MS-Exchange-CrossTenant-Id: 38d0d425-ba52-4c0a-a03e-2a65c8e82e2d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=38d0d425-ba52-4c0a-a03e-2a65c8e82e2d;Ip=[204.77.163.244];Helo=[edgetransport.garmin.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D2.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR04MB7208 X-Proofpoint-ORIG-GUID: nSmiOHH5Bn87pJdy2DXYzU06qhFeQOyX X-Authority-Analysis: v=2.4 cv=JrHxrN4C c=1 sm=1 tr=0 ts=67f543c0 cx=c_pps a=b4GTUaH8bIYRMqSiyTmTYA==:117 a=YA0UzX50FYCGjWi3QxTvkg==:17 a=h8e1o3o8w34MuCiiGQrqVE4VwXA=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=XR8D0OoHHMoA:10 a=qm69fr9Wx_0A:10 a=NbHB2C0EAAAA:8 a=vr0dFHqqAAAA:8 a=LF5D9LMcPqa3_lnOtKMA:9 a=P4ufCv4SAa-DfooDzxyN:22 cc=ntf X-Proofpoint-GUID: nSmiOHH5Bn87pJdy2DXYzU06qhFeQOyX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-04-08_06,2025-04-08_03,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 spamscore=0 adultscore=0 bulkscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 mlxlogscore=999 priorityscore=1501 suspectscore=0 impostorscore=0 classifier=spam authscore=0 authtc=n/a authcc=notification route=outbound adjust=0 reason=mlx scancount=1 engine=8.21.0-2502280000 definitions=main-2504080108 Content-Type: text/plain; charset="utf-8" Notify user space on mdb offload failure if mdb_offload_fail_notification is enabled. Signed-off-by: Joseph Huang Acked-by: Nikolay Aleksandrov --- net/bridge/br_mdb.c | 26 +++++++++++++++++++++----- net/bridge/br_private.h | 9 +++++++++ net/bridge/br_switchdev.c | 4 ++++ 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c index 0639691cd19b..5f53f387d251 100644 --- a/net/bridge/br_mdb.c +++ b/net/bridge/br_mdb.c @@ -519,16 +519,17 @@ static size_t rtnl_mdb_nlmsg_size(const struct net_br= idge_port_group *pg) rtnl_mdb_nlmsg_pg_size(pg); } =20 -void br_mdb_notify(struct net_device *dev, - struct net_bridge_mdb_entry *mp, - struct net_bridge_port_group *pg, - int type) +static void __br_mdb_notify(struct net_device *dev, + struct net_bridge_mdb_entry *mp, + struct net_bridge_port_group *pg, + int type, bool notify_switchdev) { struct net *net =3D dev_net(dev); struct sk_buff *skb; int err =3D -ENOBUFS; =20 - br_switchdev_mdb_notify(dev, mp, pg, type); + if (notify_switchdev) + br_switchdev_mdb_notify(dev, mp, pg, type); =20 skb =3D nlmsg_new(rtnl_mdb_nlmsg_size(pg), GFP_ATOMIC); if (!skb) @@ -546,6 +547,21 @@ void br_mdb_notify(struct net_device *dev, rtnl_set_sk_err(net, RTNLGRP_MDB, err); } =20 +void br_mdb_notify(struct net_device *dev, + struct net_bridge_mdb_entry *mp, + struct net_bridge_port_group *pg, + int type) +{ + __br_mdb_notify(dev, mp, pg, type, true); +} + +void br_mdb_flag_change_notify(struct net_device *dev, + struct net_bridge_mdb_entry *mp, + struct net_bridge_port_group *pg) +{ + __br_mdb_notify(dev, mp, pg, RTM_NEWMDB, false); +} + static int nlmsg_populate_rtr_fill(struct sk_buff *skb, struct net_device *dev, int ifindex, u16 vid, u32 pid, diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index 02188b7ff8e6..fc43ccc06ccb 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -1005,6 +1005,8 @@ int br_mdb_hash_init(struct net_bridge *br); void br_mdb_hash_fini(struct net_bridge *br); void br_mdb_notify(struct net_device *dev, struct net_bridge_mdb_entry *mp, struct net_bridge_port_group *pg, int type); +void br_mdb_flag_change_notify(struct net_device *dev, struct net_bridge_m= db_entry *mp, + struct net_bridge_port_group *pg); void br_rtr_notify(struct net_device *dev, struct net_bridge_mcast_port *p= mctx, int type); void br_multicast_del_pg(struct net_bridge_mdb_entry *mp, @@ -1354,6 +1356,13 @@ br_multicast_set_pg_offload_flags(struct net_bridge_= port_group *p, p->flags |=3D (offloaded ? MDB_PG_FLAGS_OFFLOAD : MDB_PG_FLAGS_OFFLOAD_FAILED); } + +static inline bool +br_mdb_should_notify(const struct net_bridge *br, u8 changed_flags) +{ + return br_opt_get(br, BROPT_MDB_OFFLOAD_FAIL_NOTIFICATION) && + (changed_flags & MDB_PG_FLAGS_OFFLOAD_FAILED); +} #else static inline int br_multicast_rcv(struct net_bridge_mcast **brmctx, struct net_bridge_mcast_port **pmctx, diff --git a/net/bridge/br_switchdev.c b/net/bridge/br_switchdev.c index 57e1863edf93..bbdf6a3ba941 100644 --- a/net/bridge/br_switchdev.c +++ b/net/bridge/br_switchdev.c @@ -504,6 +504,7 @@ static void br_switchdev_mdb_complete(struct net_device= *dev, int err, void *pri struct net_bridge_mdb_entry *mp; struct net_bridge_port *port =3D data->port; struct net_bridge *br =3D port->br; + u8 old_flags; =20 if (err =3D=3D -EOPNOTSUPP) goto notsupp; @@ -517,7 +518,10 @@ static void br_switchdev_mdb_complete(struct net_devic= e *dev, int err, void *pri if (p->key.port !=3D port) continue; =20 + old_flags =3D p->flags; br_multicast_set_pg_offload_flags(p, !err); + if (br_mdb_should_notify(br, old_flags ^ p->flags)) + br_mdb_flag_change_notify(br->dev, mp, p); } out: spin_unlock_bh(&br->multicast_lock); --=20 2.49.0