From patchwork Sun Dec 17 16:16:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 849658 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="jqP7TKOq"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z08SN1m6Jz9sBW for ; Mon, 18 Dec 2017 03:16:52 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757207AbdLQQQr (ORCPT ); Sun, 17 Dec 2017 11:16:47 -0500 Received: from mail-wr0-f195.google.com ([209.85.128.195]:42900 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751812AbdLQQQp (ORCPT ); Sun, 17 Dec 2017 11:16:45 -0500 Received: by mail-wr0-f195.google.com with SMTP id s66so11955714wrc.9 for ; Sun, 17 Dec 2017 08:16:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=w38117EDRJ62eGZ2O69obmqwV/45wDBfCVOmbrXvt00=; b=jqP7TKOqLAX1xj+DGplSnVlbbhkM3L7qKKYMaXkpIQLjaEWkqCmdjKtrJMK01RR/1/ iuHYkCGianxY3PAaQTFx14cQhmvKCY9IS9T3zwN7G/r5vSZH+zwDqLY+ts26p9Bfuc7p ZU/KEPcVUYIK4o/lweL8Ho91SoeYDF8kW64roHsrygl8DgB73uShLwW6dJM1A/7TktoY WtX2DgOWdL2iOCfN+4P2kDmdQEp/w1mtsVpPfMWHez3sT4slblKUwVpUIUpIC/QEBrXU ZY58dwq/dFEcvUISgJONxH1ArY8TMekpyG51LkFt0yPjcsZuAHBH/+p9TQ17TkT/P14E btJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=w38117EDRJ62eGZ2O69obmqwV/45wDBfCVOmbrXvt00=; b=ufT/pQg6/gJTLpVCYyr7GeYDgzjxmASXUHBeJROkrUIj/ewCi+e1Xd8VP4tTRHwoeZ u7w6DgsPpTAlyvgn2zIyBLN0N6cJYV9wjBhqQEot5fsxuc8Nvk1yBPTcZuPNiQThGmmt H7+cOeKexzc8ijxBZMe9Qn3wCHRFQG/Sp5pw7d8y3ckRQUSljhPhJ6wO+EzqzX7NsQL+ 7IhwhtFH2VTdPLgCKNSapB+xUrLCTUYoizgH5N7NOmUc8Qeh0ig4CAPyuvZvkkh/PHMY TSuiOOK9KUth1M/EBV1P3TC+YbWkjvUI2J2gqzHxWpWs6fIEAQmVw1NlXARnFssP9L+P XUJQ== X-Gm-Message-State: AKGB3mJw1nVk81unvulEb9gN+RnBVXe4ZlM5egIyIErRwZoJNYkjfXk2 NKeZRMWPLoqtXQVKndBK4kBwRNP6 X-Google-Smtp-Source: ACJfBotxSaZYBdOkXnyKwPlDSB9WHUz4TkFfTGM5RQBY5qXstEBjK+8IDCGWbo7pSTTUeYEo87SdKA== X-Received: by 10.223.145.80 with SMTP id j74mr15450464wrj.250.1513527404693; Sun, 17 Dec 2017 08:16:44 -0800 (PST) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id m52sm2546240wrm.12.2017.12.17.08.16.44 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sun, 17 Dec 2017 08:16:44 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, petrm@mellanox.com, idosch@mellanox.com, mlxsw@mellanox.com Subject: [patch net] mlxsw: spectrum_router: Remove batch neighbour deletion causing FW bug Date: Sun, 17 Dec 2017 17:16:43 +0100 Message-Id: <20171217161643.2725-1-jiri@resnulli.us> X-Mailer: git-send-email 2.9.5 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Petr Machata This reverts commit 63dd00fa3e524c27cc0509190084ab147ecc8ae2. RAUHT DELETE_ALL seems to trigger a bug in FW. That manifests by later calls to RAUHT ADD of an IPv6 neighbor to fail with "bad parameter" error code. Signed-off-by: Petr Machata Fixes: 63dd00fa3e52 ("mlxsw: spectrum_router: Add batch neighbour deletion") Reviewed-by: Ido Schimmel Signed-off-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c index 72ef4f8..be657b8 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c @@ -2436,25 +2436,16 @@ static void mlxsw_sp_neigh_fini(struct mlxsw_sp *mlxsw_sp) rhashtable_destroy(&mlxsw_sp->router->neigh_ht); } -static int mlxsw_sp_neigh_rif_flush(struct mlxsw_sp *mlxsw_sp, - const struct mlxsw_sp_rif *rif) -{ - char rauht_pl[MLXSW_REG_RAUHT_LEN]; - - mlxsw_reg_rauht_pack(rauht_pl, MLXSW_REG_RAUHT_OP_WRITE_DELETE_ALL, - rif->rif_index, rif->addr); - return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(rauht), rauht_pl); -} - static void mlxsw_sp_neigh_rif_gone_sync(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_rif *rif) { struct mlxsw_sp_neigh_entry *neigh_entry, *tmp; - mlxsw_sp_neigh_rif_flush(mlxsw_sp, rif); list_for_each_entry_safe(neigh_entry, tmp, &rif->neigh_list, - rif_list_node) + rif_list_node) { + mlxsw_sp_neigh_entry_update(mlxsw_sp, neigh_entry, false); mlxsw_sp_neigh_entry_destroy(mlxsw_sp, neigh_entry); + } } enum mlxsw_sp_nexthop_type {