Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp394257ybk; Wed, 13 May 2020 03:03:11 -0700 (PDT) X-Google-Smtp-Source: APiQypKAGGP91QXs7oOx8gdtE8ypk+PPrlHygmWKi70spG3Pu4KnYsuwHfrqm5C7y4Rpjn/+GIlV X-Received: by 2002:a17:906:7a1c:: with SMTP id d28mr17735851ejo.10.1589364191514; Wed, 13 May 2020 03:03:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589364191; cv=none; d=google.com; s=arc-20160816; b=ffd+P+3ACCU5AKsA+o+8XSXxCtIZXE4yForzdt5XgqZsrA9Vq75bJ3CBRZo6YGI8Z6 KU3DslwXGJ4EKrASFn1xUsM7lrAWE4oDf4BZP7EVVP+sjEd55adG5hEVFjn20BqGeDhh Wo64V3Sa7P8qBAug/wWSlci6chUM6K9or4rDbPVHbCeO+wuhnF6YAvIvtXP/5LlUp/QO GKBkLS1TsfoLk5ILGmFWJ5oZRJiFuVx0Kjgpc1iaGNJpffebY1rr1hbfjv48iAncZyN1 4ifRqX6MIMkEE9QMKWdSZLAGDhP2QraykbZRtfOrGHW6kS82i25WsgnNyGemT8Hmq9qq 3wiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=uvCv82mGry1Pd1vAfBlWD4GsxKRRliJyUUT1lesbrvc=; b=STIXjoeSOvVOlOBEdf08SDhhxLsoJwUy8i1HXjI5qWkZuMmZGFO1B3uPJgQ5cRtwHk 9xxynsRuTG8PbjqNS+nbVJHQdOMurB2SvtP9Lj/M4IzbvmJz9ABcpJ/Nu1XZdIZhf4Sf nQHCDfbn+W7UEqxRKVsLe0PTvakv66nUPAw9iANJWHDLTFcJqur98wfg9O594mgEUYfN zabNtLJhiJhtRUXayPkw2zEN1Vdyqh4GsIwqZiJ93mBvt8poqAjuWnZnCdUs+YI9saY+ 0VSw8kXVneeMEbWuKEoIXxYyjEiHYxu0pzkoGEoTzEUafaVtSX36ILrjQFUxOW9YZ8Hq xJeg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=zL7ZuXN3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t24si9286178ejb.144.2020.05.13.03.02.48; Wed, 13 May 2020 03:03:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=zL7ZuXN3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388578AbgEMKAU (ORCPT + 99 others); Wed, 13 May 2020 06:00:20 -0400 Received: from mail.kernel.org ([198.145.29.99]:53458 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387754AbgEMJwL (ORCPT ); Wed, 13 May 2020 05:52:11 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id AB6CA20575; Wed, 13 May 2020 09:52:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1589363531; bh=dHuJGjr6XK/FSo+1wCO++KttMGGK+sidM+ctbYH9GKE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zL7ZuXN38cuT978NATvXog5/+M0HVGI6ntNB66AMjtg1A4u4yQdenHkmNmEJgt8rO 1wrBvG5tO3J9igyU0i7Cd1QL3pOMpM3gmo0pVR/WTW4r0e34Xq56jSyEFK9hEq1p9P GqDqm0yb2EtTXb7mhLPNJs7kzLq9iwdX48RQ3aNw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ido Schimmel , Stefan Priebe - Profihost AG , Nikolay Aleksandrov , "David S. Miller" Subject: [PATCH 5.6 021/118] net: bridge: vlan: Add a schedule point during VLAN processing Date: Wed, 13 May 2020 11:44:00 +0200 Message-Id: <20200513094419.579670715@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200513094417.618129545@linuxfoundation.org> References: <20200513094417.618129545@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ido Schimmel [ Upstream commit 7979457b1d3a069cd857f5bd69e070e30223dd0c ] User space can request to delete a range of VLANs from a bridge slave in one netlink request. For each deleted VLAN the FDB needs to be traversed in order to flush all the affected entries. If a large range of VLANs is deleted and the number of FDB entries is large or the FDB lock is contented, it is possible for the kernel to loop through the deleted VLANs for a long time. In case preemption is disabled, this can result in a soft lockup. Fix this by adding a schedule point after each VLAN is deleted to yield the CPU, if needed. This is safe because the VLANs are traversed in process context. Fixes: bdced7ef7838 ("bridge: support for multiple vlans and vlan ranges in setlink and dellink requests") Signed-off-by: Ido Schimmel Reported-by: Stefan Priebe - Profihost AG Tested-by: Stefan Priebe - Profihost AG Acked-by: Nikolay Aleksandrov Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/bridge/br_netlink.c | 1 + 1 file changed, 1 insertion(+) --- a/net/bridge/br_netlink.c +++ b/net/bridge/br_netlink.c @@ -612,6 +612,7 @@ int br_process_vlan_info(struct net_brid v - 1, rtm_cmd); v_change_start = 0; } + cond_resched(); } /* v_change_start is set only if the last/whole range changed */ if (v_change_start)