Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp3336215yba; Mon, 6 May 2019 22:43:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqwwO9QHZ1lpVFstqttCcsA1SRFsOTalUwB+DIW3pF5zrTtLUPkXp/DrCCGF3Q3sn9+aIAe/ X-Received: by 2002:a63:cf:: with SMTP id 198mr36111394pga.228.1557207813492; Mon, 06 May 2019 22:43:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557207813; cv=none; d=google.com; s=arc-20160816; b=v1QSjwdO/VJhD/VkFhMzkyvczN9O5Z5w39Gwx7hsZgIWx2trRTTYdVyh64LgbCTinn pza3tNF+tcNK3XF6wllIZf42R2rCN+QGYEe7xMOx7STzXs86xPGkbIrc4qQ63DZD/DPf tgpD/8zUlYB2wCyqBMFWgIHBGLtJS/lrolC2+ekuTMRj0V3ChdHaSvIAmMvnb8W8qJpT NeMwX2vflTN1FxziTtkG3gaaz8TW7mO8X1hF7XFC0upQOx6Au/DzTbqOZK9gFcjfXnmB VKXjRPUDPsnlNVapvANUC8i8lKQPorI95pfJAr4esacIVro8VFcGFb0VNNG3BtedYaA2 iwOA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=45RmnnKW6pcSJzq+mZ2Ht5Jn/lbAJ1mDYBbTx/7eQFo=; b=i+mTCcuPtVE4T+/+lDnAgXlPxXz1d65xkcDXQqEShxN8ax2mp16C0FSEL5guaFn4cs XfYC3ve3B/pgXjCVQxwdJZ5JI9Ur/lxWIYiBWloOAPPxgaJdx+DBm90iXR1A574P3l25 /riClkT5lDNJ4RKqRdQ3tKW5aay+3Nsu3TYlyOY051se2CcE80E0nWz5xeSO2+6XNEaN NkI1bZ6LUQjmgk6cb0tlyKx+AnmzIzLleFozBVRqGMnFJwQXBCqBHYp475kMBEa9laF0 RwBIcOZCDhCFI7gDNNSzudTLlK/YaPDUO+ACH8UU8imFTLg6YV3HIwcev00S5nJ5Qvzw gg5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="cuXsI/K0"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f21si489622pgb.25.2019.05.06.22.43.18; Mon, 06 May 2019 22:43:33 -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="cuXsI/K0"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728748AbfEGFlW (ORCPT + 99 others); Tue, 7 May 2019 01:41:22 -0400 Received: from mail.kernel.org ([198.145.29.99]:60726 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729281AbfEGFlN (ORCPT ); Tue, 7 May 2019 01:41:13 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 91727216C8; Tue, 7 May 2019 05:41:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1557207672; bh=xB1tNO1j3rxBe2fALyoQaHHk4bUGFOXu+AFvL4TlhdE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cuXsI/K0Hg6wV2GWtj0PLwdQxYximIpNKlpeObizO9lLHfrxBncJFuPtkqQ/nq7S+ KvNYFL8SaDc18Vc2uZ7ImSkIGtE8YTZxd9LexFka0z0ovDOUyiL8H09oc1nPykNMjk rubhCYoa7ibPhyDim9I2oy/pqLEnvIOLjWQkZy7A= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ido Schimmel , Alex Kushnarov , Jiri Pirko , "David S . Miller" , Sasha Levin , netdev@vger.kernel.org Subject: [PATCH AUTOSEL 4.14 89/95] mlxsw: spectrum_switchdev: Add MDB entries in prepare phase Date: Tue, 7 May 2019 01:38:18 -0400 Message-Id: <20190507053826.31622-89-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190507053826.31622-1-sashal@kernel.org> References: <20190507053826.31622-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore 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 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 3ba9f2c079b2..8a1788108f52 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -1320,7 +1320,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