[PATCH v2] nl80211: Pass "global" events to all interfaces
Benjamin Berg
benjamin at sipsolutions.net
Thu Aug 29 01:54:58 PDT 2024
Hi,
On Thu, 2024-08-29 at 08:01 +0000, Cermak Dominik wrote:
> Extending commit f136837202393a7e1f3182e9efdbf1aaa0c1a5c2.
Usually the format used is
commit <12 sha1 characters> ("message")
which would at least give the first line/subject of the commit message.
In this case, a little bit more context is probably a good idea,
especially if you reference it later using "still".
> We got connection failures because of outdated channel information.
> That's because the NL80211_CMD_REG_CHANGE event is important for all
> interfaces, but the early termination still kicks in because it is not
> directed to a specific wiphy.
> Therefore from three interfaces, only one got the updated channel list.
>
> Fix this by changing the early termination logic to only apply to events
> directed either to a specific interface index for wdev.
The logic looks good to me.
Benjamin
> Signed-off-by: Dominik Cermak <dominik.cermak at joynext.com>
> ---
> src/drivers/driver_nl80211_event.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/src/drivers/driver_nl80211_event.c
> b/src/drivers/driver_nl80211_event.c
> index 903207067..8e79b5848 100644
> --- a/src/drivers/driver_nl80211_event.c
> +++ b/src/drivers/driver_nl80211_event.c
> @@ -4257,7 +4257,13 @@ int process_global_event(struct nl_msg *msg,
> void *arg)
> wdev_id == bss->wdev_id)) {
> processed = true;
> do_process_drv_event(bss, gnlh->cmd,
> tb);
> - if (!wiphy_idx_set)
> + /* There are two types of events
> that may need to be
> + * delivered to multiple interfaces:
> + * 1. Events for a wiphy, as it can
> have multiple interfaces.
> + * 2. "Global" events, like
> NL80211_CMD_REG_CHANGE.
> + * Or in other words, terminate
> early only if it is
> + * directed to a specific interface
> or wdev. */
> + if (ifidx != -1 || wdev_id_set)
> return NL_SKIP;
> /* The driver instance could have
> been removed,
> * e.g., due to
> NL80211_CMD_RADAR_DETECT event,
More information about the Hostap
mailing list