Re: [PATCH] net: atlantic: AQC113: Initialize struct hw_atl2_priv fully

From: Janne Grunau

Date: Mon Oct 26 2026 - 10:55:04 EST


On Sat, Oct 24, 2026 at 07:19:59PM +0200, Janne Grunau wrote:
> Leaving parts of struct hw_atl2_priv uninitialized breaks data
> transmission on AQC113 NICs integrated in Apple silicon desktop Macs.
> Commit 6c1ca112a6e4 ("net: atlantic: fix AQC113 HW init: ART, L2 filter
> slot, MAC address") replaced a memset of the whole struct with memsets
> of a few fields and initialisation of l3l4_filters[].l[34]_index to -1.
> This leaves other fields uninitialized.

As sashiko pointed out this is false. The intention of the change was to
use fields previously initialized in hw_atl2_utils_get_filter_caps().
This wasn't obvious to from the commit message.

The issue I'm seeing is that hw_atl2_priv::l2_filters_base_index is 9 on
the affected system. This is mostly handled correctly in hw_atl2.c
itself but w_atl2_hw_packet_filter_set() wraps
hw_atl_b0_hw_packet_filter_set(). The latter doesn't know
l2_filters_base_index and enables/disables all filters from
HW_ATL_B0_MAC_MIN to HW_ATL_B0_MAC_MAX.
If l2_filters_base_index is larger than aq_nic_cfg_s.mc_list_count it
will disable the filters set in hw_atl2.c including the one for the MAC
address which breaks data transmission.

Disregard this patch I'll send a new series fixing the root cause.

Janne