On Mon, Jan 06, 2025 at 08:51:40AM +0100, Buvaneswaran, Sujai wrote:
> > -----Original Message-----
> > From: Intel-wired-lan <intel-wired-lan-boun...@osuosl.org> On Behalf Of
> > Larysa Zaremba
> > Sent: Monday, December 9, 2024 7:39 PM
> > To: Nguyen, Anthony L <anthony.l.ngu...@intel.com>; intel-wired-
> > l...@lists.osuosl.org; net...@vger.kernel.org; linux-ker...@vger.kernel.org
> > Cc: Zaremba, Larysa <larysa.zare...@intel.com>; Kitszel, Przemyslaw
> > <przemyslaw.kits...@intel.com>; Andrew Lunn <andrew+net...@lunn.ch>;
> > Eric Dumazet <eduma...@google.com>; Michal Swiatkowski
> > <michal.swiatkow...@linux.intel.com>; Jakub Kicinski <k...@kernel.org>;
> > Paolo Abeni <pab...@redhat.com>; David S. Miller <da...@davemloft.net>
> > Subject: [Intel-wired-lan] [PATCH iwl-net] ice: do not configure destination
> > override for switchdev
> > 
> > After switchdev is enabled and disabled later, LLDP packets sending stops,
> > despite working perfectly fine before and during switchdev state.
> > To reproduce (creating/destroying VF is what triggers the reconfiguration):
> > 
> > devlink dev eswitch set pci/<address> mode switchdev echo '2' >
> > /sys/class/net/<ifname>/device/sriov_numvfs
> > echo '0' > /sys/class/net/<ifname>/device/sriov_numvfs
> > 
> > This happens because LLDP relies on the destination override functionality.
> > It needs to 1) set a flag in the descriptor, 2) set the VSI permission to 
> > make it
> > valid. The permissions are set when the PF VSI is first configured, but
> > switchdev then enables it for the uplink VSI (which is always the PF) once
> > more when configured and disables when deconfigured, which leads to
> > software-generated LLDP packets being blocked.
> > 
> > Do not modify the destination override permissions when configuring
> > switchdev, as the enabled state is the default configuration that is never
> > modified.
> > 
> > Fixes: 1a1c40df2e80 ("ice: set and release switchdev environment")
> > Reviewed-by: Michal Swiatkowski <michal.swiatkow...@linux.intel.com>
> > Signed-off-by: Larysa Zaremba <larysa.zare...@intel.com>
> > ---
> >  drivers/net/ethernet/intel/ice/ice_eswitch.c |  6 ------
> >  drivers/net/ethernet/intel/ice/ice_lib.c     | 18 ------------------
> >  drivers/net/ethernet/intel/ice/ice_lib.h     |  4 ----
> >  3 files changed, 28 deletions(-)
> > 
> Hi,
> 
> Observing below call trace while creating VFs in Switchdev mode with this 
> patch in net-queue.
> 
> [  +0.000188] ice 0000:b1:00.0: Enabling 1 VFs with 17 vectors and 16 queues 
> per VF
> [  +0.000062] list_add corruption. next->prev should be prev 
> (ff1d7c830300c6f0), but was ff282828ff282828. (next=ff1d7c5367d61330).
> [  +0.000015] ------------[ cut here ]------------
> [  +0.000001] kernel BUG at lib/list_debug.c:29!
> [  +0.000007] Oops: invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
> [  +0.000004] CPU: 81 UID: 0 PID: 2758 Comm: bash Kdump: loaded Not tainted 
> 6.13.0-rc3+ #1
> [  +0.000003] Hardware name: Dell Inc. PowerEdge R750/06V45N, BIOS 1.3.8 
> 08/31/2021
> [  +0.000002] RIP: 0010:__list_add_valid_or_report+0x61/0xa0
> [  +0.000008] Code: c7 c7 a8 97 b2 8f e8 7e e4 af ff 0f 0b 48 c7 c7 d0 97 b2 
> 8f e8 70 e4 af ff 0f 0b 4c 89 c1 48 c7 c7 f8 97 b2 8f e8 5f e4 af ff <0f> 0b 
> 48 89 d1 4c 89 c6 4c 89 ca 48 c7 c7 50 98 b2 8f e8 48 e4 af
> [  +0.000002] RSP: 0018:ff5ebf3d22093d20 EFLAGS: 00010246
> [  +0.000003] RAX: 0000000000000075 RBX: ff1d7c54143a1330 RCX: 
> 0000000000000000
> [  +0.000002] RDX: 0000000000000000 RSI: ff1d7c81f06a0bc0 RDI: 
> ff1d7c81f06a0bc0
> [  +0.000001] RBP: ff1d7c83030097d8 R08: 0000000000000000 R09: 
> ff5ebf3d22093bd8
> [  +0.000002] R10: ff5ebf3d22093bd0 R11: ffffffff901debc8 R12: 
> ff1d7c5367d61330
> [  +0.000001] R13: ff1d7c830300c6f0 R14: 0000000000000000 R15: 
> 0000000000000000
> [  +0.000002] FS:  00007fea5e4e4740(0000) GS:ff1d7c81f0680000(0000) 
> knlGS:0000000000000000
> [  +0.000002] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  +0.000001] CR2: 0000562ef57c7608 CR3: 000000019037c002 CR4: 
> 0000000000773ef0
> [  +0.000002] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 
> 0000000000000000
> [  +0.000001] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 
> 0000000000000400
> [  +0.000001] PKRU: 55555554
> [  +0.000002] Call Trace:
> [  +0.000003]  <TASK>
> [  +0.000002]  ? die+0x37/0x90
> [  +0.000007]  ? do_trap+0xdd/0x100
> [  +0.000004]  ? __list_add_valid_or_report+0x61/0xa0
> [  +0.000003]  ? do_error_trap+0x65/0x80
> [  +0.000002]  ? __list_add_valid_or_report+0x61/0xa0
> [  +0.000003]  ? exc_invalid_op+0x52/0x70
> [  +0.000005]  ? __list_add_valid_or_report+0x61/0xa0
> [  +0.000002]  ? asm_exc_invalid_op+0x1a/0x20
> [  +0.000007]  ? __list_add_valid_or_report+0x61/0xa0
> [  +0.000005]  ice_mbx_init_vf_info+0x3c/0x60 [ice]
> [  +0.000076]  ice_initialize_vf_entry+0x99/0xa0 [ice]
> 
> Regards,
> Sujai B
> 

Hello,
the problem was addressed by another patch [0] and is not related to this
change.

[0] 
https://patchwork.ozlabs.org/project/intel-wired-lan/patch/20250211174322.603652-1-marcin.szy...@linux.intel.com/

Reply via email to