Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp477339yba; Wed, 15 May 2019 04:50:50 -0700 (PDT) X-Google-Smtp-Source: APXvYqzctBXBUUKjvuN4QAqytcOxlYsMK9mfu+40bm2d9Uh2tn3MyPHiR04CBSuuBViUNM/AYif9 X-Received: by 2002:a62:f245:: with SMTP id y5mr46751991pfl.12.1557921050451; Wed, 15 May 2019 04:50:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557921050; cv=none; d=google.com; s=arc-20160816; b=Ppw7yx2TD8us8kwrgOLudppiAhyPLejeSuIyAIdzgUpU50vZLHyD1EfnW+8L6RYY+8 K4PNiWMo4AJ7xQzHLcZtD1bNOv484V7e+JbXXzxN5C2mee4M8r5HVX2p/kvRWLYNrGrF didAG5QzpwwykL8oJAAO1ow7yXING7BGQs5Np90VtnCIW6HFhLHWVhMhsA+FiXzxVlSn FqVsA+rW6h7Y0hACB5ZguZMq3ql/w8REuFnpl2invqW48udRTvbyOLEjvfsiC4MJRZAd 6TqJnzulIQnu1ZcmIRR+1GoBYxU2Lm5QMl/7XZv8Cmfj4ZCHkYdaFxDnIIwNKD1IQAU8 MXeg== 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=kUXDioKOf81F2N2zovv2DR25QhH45gEjZpPbp5/1D7E=; b=pX4vV4g9v6OttVFR74cuPnTHb46Yq7QatN0XXzOBsVnMacFRFHF+ZjMFAGHE3ss5gq L9JtVH0j3xd9s0tQTdK6tialBj9LcMOrHKXzlHrApKk9ELuWq3H4Stj7AFvXHYWn95lC H3TNguiq0gXidZCi+P5yt9w+Z69PaTFd4ArtOLLEI47JgJzy5bbdrD8XxCkP/mIkUYFb hO2+vafs09QO6WbmdZFPtwLblK1SIS9EJfCGEnFE5QNl1PBBjMENRsW62Slgm5x8IomC TmlwApnqKSOQU2QB2d7bXmvCiwW0CXXhLlos99ZxjMe82PXm/maMuc5H8FfviPRix95j V0Bg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YAhswP9K; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a27si2009841pfr.186.2019.05.15.04.50.36; Wed, 15 May 2019 04:50:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YAhswP9K; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731934AbfEOLs1 (ORCPT + 99 others); Wed, 15 May 2019 07:48:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:34466 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731044AbfEOLX4 (ORCPT ); Wed, 15 May 2019 07:23:56 -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 35DEF2089E; Wed, 15 May 2019 11:23:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1557919435; bh=mm+4p/CDHlIOW4P9dnJH9ZwrZ+oZpM1uzBgx3qcwYew=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YAhswP9KSPnOk7i6l+KFXMA/GcmJNGAYw6AQtwx23X3KNYDKvxl1B56fDJBzwu5Ym Vp8VPiEVqkiQmKGDsj6J4Cs+GU+ujBs1kfcyujxBg1V41nZ0ON3gnewSqDhABEzLnY LsfAdIegOA1AZKoXXjGdieRt3oFoHelo3vpdQDTA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ido Schimmel , Alex Kushnarov , Jiri Pirko , "David S. Miller" , Sasha Levin Subject: [PATCH 4.19 073/113] mlxsw: spectrum_switchdev: Add MDB entries in prepare phase Date: Wed, 15 May 2019 12:56:04 +0200 Message-Id: <20190515090659.078978131@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190515090652.640988966@linuxfoundation.org> References: <20190515090652.640988966@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 [ Upstream commit d4d0e40977ac450f32f2db5e4d8e23c9d2578899 ] The driver cannot guarantee in the prepare phase that it will be able to write an MDB entry to the device. In case the driver returned success during the prepare phase, but then failed to add the entry in the commit phase, a WARNING [1] will be generated by the switchdev core. Fix this by doing the work in the prepare phase instead. [1] [ 358.544486] swp12s0: Commit of object (id=2) failed. [ 358.550061] WARNING: CPU: 0 PID: 30 at net/switchdev/switchdev.c:281 switchdev_port_obj_add_now+0x9b/0xe0 [ 358.560754] CPU: 0 PID: 30 Comm: kworker/0:1 Not tainted 5.0.0-custom-13382-gf2449babf221 #1350 [ 358.570472] Hardware name: Mellanox Technologies Ltd. MSN2100-CB2FO/SA001017, BIOS 5.6.5 06/07/2016 [ 358.580582] Workqueue: events switchdev_deferred_process_work [ 358.587001] RIP: 0010:switchdev_port_obj_add_now+0x9b/0xe0 ... [ 358.614109] RSP: 0018:ffffa6b900d6fe18 EFLAGS: 00010286 [ 358.619943] RAX: 0000000000000000 RBX: ffff8b00797ff000 RCX: 0000000000000000 [ 358.627912] RDX: ffff8b00b7a1d4c0 RSI: ffff8b00b7a152e8 RDI: ffff8b00b7a152e8 [ 358.635881] RBP: ffff8b005c3f5bc0 R08: 000000000000022b R09: 0000000000000000 [ 358.643850] R10: 0000000000000000 R11: ffffa6b900d6fcc8 R12: 0000000000000000 [ 358.651819] R13: dead000000000100 R14: ffff8b00b65a23c0 R15: 0ffff8b00b7a2200 [ 358.659790] FS: 0000000000000000(0000) GS:ffff8b00b7a00000(0000) knlGS:0000000000000000 [ 358.668820] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 358.675228] CR2: 00007f00aad90de0 CR3: 00000001ca80d000 CR4: 00000000001006f0 [ 358.683188] Call Trace: [ 358.685918] switchdev_port_obj_add_deferred+0x13/0x60 [ 358.691655] switchdev_deferred_process+0x6b/0xf0 [ 358.696907] switchdev_deferred_process_work+0xa/0x10 [ 358.702548] process_one_work+0x1f5/0x3f0 [ 358.707022] worker_thread+0x28/0x3c0 [ 358.711099] ? process_one_work+0x3f0/0x3f0 [ 358.715768] kthread+0x10d/0x130 [ 358.719369] ? __kthread_create_on_node+0x180/0x180 [ 358.724815] ret_from_fork+0x35/0x40 Fixes: 3a49b4fde2a1 ("mlxsw: Adding layer 2 multicast support") Signed-off-by: Ido Schimmel Reported-by: Alex Kushnarov Tested-by: Alex Kushnarov Acked-by: Jiri Pirko Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index af673abdb4823..a4f237f815d1a 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -1585,7 +1585,7 @@ static int mlxsw_sp_port_mdb_add(struct mlxsw_sp_port *mlxsw_sp_port, u16 fid_index; int err = 0; - if (switchdev_trans_ph_prepare(trans)) + if (switchdev_trans_ph_commit(trans)) return 0; bridge_port = mlxsw_sp_bridge_port_find(mlxsw_sp->bridge, orig_dev); -- 2.20.1