From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A7C8BC433DF for ; Fri, 9 Oct 2020 17:47:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4CE402222C for ; Fri, 9 Oct 2020 17:47:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IzhGtF+a" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387928AbgJIRrU (ORCPT ); Fri, 9 Oct 2020 13:47:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56018 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730673AbgJIRrU (ORCPT ); Fri, 9 Oct 2020 13:47:20 -0400 Received: from mail-vk1-xa43.google.com (mail-vk1-xa43.google.com [IPv6:2607:f8b0:4864:20::a43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1ED7FC0613D2 for ; Fri, 9 Oct 2020 10:47:20 -0700 (PDT) Received: by mail-vk1-xa43.google.com with SMTP id l23so1252686vkm.1 for ; Fri, 09 Oct 2020 10:47:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=NrplCNhyYjIuAK++3rSBS/2tDTEQRphlqGjzusEVaew=; b=IzhGtF+a2KhIlKIEPEOIa6Qzaio0VWtdjmeg22Pqqaw54j+E9kaavom/B4EbUpYg3h In/6QexWxleZrNSV+/lXJNGd7e+kRW+0Kt1B9EA2I4qcV6v6+47YQ2CuRxvle5n77DQU Sx+akorqUBFB1jm+OT6KjD0ogBv6COBsJgxTnXUGC9/YRhWm6J31+yhOZsZ9r8JFN5YZ U+0bS4HFEw+2Nj/zn0Th/rnJjn9RkdExUJmFuRGXuE6sUYZWL7x+tdsfcpnOdW/Gy5XO QdILGDdYCpv9Dcy3r+TZ190eMWFWVVO9ThpRLNyLneIagmZgcAg3iekFzAZ6Ph4UkpGk l7cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=NrplCNhyYjIuAK++3rSBS/2tDTEQRphlqGjzusEVaew=; b=MUuKQPiiu98n+AM8Sftj+27WYaxAvKMBAOBXoAEE4LLEbyAbxW7Zatp5LYzpCrAp0w CAMtnHlJTdfAUp6qcHFLEhF2icef+CJZ8DtEbG5qEVTcAC8R/QZgkvN+btXieAC/gm+F D4wpEkFHopDCvlPfJPWvH+/u8cMh3a5+o6BpCH1HlCwjjy9yR9vEjpgB4yXv/a8ygeBF 0vfldPvEIKoME9RpGIF6SAuEA9K+rZAQNtwmPEGsxOpF+3yHSWSgWAunxRmqgxYpDR7z cvTEUFqI6QWlKcVi7c3/Kl0wGP+laSY65ckINcYGeEA6W4YJxXSAnuhUJ3MCC4/v5w2Z cGQg== X-Gm-Message-State: AOAM531qJ8BXwt9Gskin9YLmA4FvwUzTpjZl2QmWqh4iXeJa6GiXobpj Ux1GI1U9Kj3hQgpT4RrTuw0r97wENXU= X-Google-Smtp-Source: ABdhPJwuMGrVUZktorEyoF++Joc9sPIxMqUfbnVm07FzBWApX7BRto/4b+milKqxz7f0vhvhyGgh2A== X-Received: by 2002:a1f:8c0e:: with SMTP id o14mr8479044vkd.2.1602265638395; Fri, 09 Oct 2020 10:47:18 -0700 (PDT) Received: from mail-vs1-f54.google.com (mail-vs1-f54.google.com. [209.85.217.54]) by smtp.gmail.com with ESMTPSA id p130sm1249667vke.14.2020.10.09.10.47.17 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 09 Oct 2020 10:47:17 -0700 (PDT) Received: by mail-vs1-f54.google.com with SMTP id r1so4378136vsi.12 for ; Fri, 09 Oct 2020 10:47:17 -0700 (PDT) X-Received: by 2002:a67:684e:: with SMTP id d75mr8802635vsc.28.1602265636761; Fri, 09 Oct 2020 10:47:16 -0700 (PDT) MIME-Version: 1.0 References: <20201007231050.1438704-1-anthony.l.nguyen@intel.com> <20201007231050.1438704-3-anthony.l.nguyen@intel.com> In-Reply-To: <20201007231050.1438704-3-anthony.l.nguyen@intel.com> From: Willem de Bruijn Date: Fri, 9 Oct 2020 13:46:39 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [net-next 2/3] i40e: Fix MAC address setting for a VF via Host/VM To: Tony Nguyen Cc: David Miller , Jakub Kicinski , Aleksandr Loktionov , Network Development , nhorman@redhat.com, sassmann@redhat.com, Arkadiusz Kubalewski , Andrew Bowers Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Wed, Oct 7, 2020 at 7:11 PM Tony Nguyen wrote: > > From: Aleksandr Loktionov > > Fix MAC setting flow for the PF driver. > > Without this change the MAC address setting was interpreted > incorrectly in the following use cases: > 1) Print incorrect VF MAC or zero MAC > ip link show dev $pf > 2) Don't preserve MAC between driver reload > rmmod iavf; modprobe iavf > 3) Update VF MAC when macvlan was set > ip link add link $vf address $mac $vf.1 type macvlan > 4) Failed to update mac address when VF was trusted > ip link set dev $vf address $mac > > This includes all other configurations including above commands. > > Signed-off-by: Aleksandr Loktionov > Signed-off-by: Arkadiusz Kubalewski > Tested-by: Andrew Bowers > Signed-off-by: Tony Nguyen If this is a fix, should it target net and/or is there a commit for a Fixes tag? > @@ -2740,6 +2744,7 @@ static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg) > { > struct virtchnl_ether_addr_list *al = > (struct virtchnl_ether_addr_list *)msg; > + bool was_unimac_deleted = false; > struct i40e_pf *pf = vf->pf; > struct i40e_vsi *vsi = NULL; > i40e_status ret = 0; > @@ -2759,6 +2764,8 @@ static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg) > ret = I40E_ERR_INVALID_MAC_ADDR; > goto error_param; > } > + if (ether_addr_equal(al->list[i].addr, vf->default_lan_addr.addr)) > + was_unimac_deleted = true; > } > vsi = pf->vsi[vf->lan_vsi_idx]; > > @@ -2779,10 +2786,25 @@ static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg) > dev_err(&pf->pdev->dev, "Unable to program VF %d MAC filters, error %d\n", > vf->vf_id, ret); > > + if (vf->trusted && was_unimac_deleted) { > + struct i40e_mac_filter *f; > + struct hlist_node *h; > + u8 *macaddr = NULL; > + int bkt; > + > + /* set last unicast mac address as default */ > + spin_lock_bh(&vsi->mac_filter_hash_lock); > + hash_for_each_safe(vsi->mac_filter_hash, bkt, h, f, hlist) { > + if (is_valid_ether_addr(f->macaddr)) > + macaddr = f->macaddr; nit: could break here