Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp6651077ybl; Wed, 15 Jan 2020 08:04:38 -0800 (PST) X-Google-Smtp-Source: APXvYqyWRB7qLGcqBQoG4OLYVwlRb0dMRVd7OCrUcIJ2Sb4Sahgf+aKev1tfYRVuczJy7wh0GpuE X-Received: by 2002:a9d:6e03:: with SMTP id e3mr3266384otr.46.1579104278397; Wed, 15 Jan 2020 08:04:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579104278; cv=none; d=google.com; s=arc-20160816; b=Ekn5YE9Zu0lOKeL82zZVl8daysBlPav1fCMKb3PfhJK0P4B6psrpivhaJ0b/IAOt1H iwn0zutUsTspiAGicxp7pf7n+2iwTKft5NKUaGX5gw//uLAH4RHMe9Hho4CaxUmmutqQ Q/5avPkuDcUKnoK2MehLED/WEk4GuMkSxLz6bRNPiG5ipUicnig9rIJ8TK3IxGaxJtPT HA3rCT8W/XvG9Fb05q9eowgiJLHOAsCjk8OtJo3DWHv3iKCpej2DmTicIE3PAinIQWid RMoYEpCCOXChUHgXA5XklMKt4qWutNF1hs5cAgdPSKRv1cioVXmryOACj/45HKDp/9fG E2jA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature; bh=t2xBhXzleIdfKvE3vvgdZ+bpOSyO6wtsZg7uA/deBo0=; b=HKNKtps/+tIBo6nNebOZmbzC+2kz0AY5o7fXWTuYQCmWVFETKvt363TXR66GsBo5qc OyA16QdJV8iaQYiZgo5WLhv4Rq5cXXaIthricDHIBdQKTODSNeiChV1SL7AyE1VcDOTs wLhRryN/lQXttFKiRDwN2YAX4Rq8aB64eK17z4UEw7sHBMXWfpn6bAI7KLsgV0bahMq4 2y7NoJkf5wDcYMX+88r7HBGdnoqYGKpVv7u0+eRRvlhpAfjctj5j3i3mKBV84hCaUtiy 8O7cRtY1Tnv6jQskPIf/idYWp26M+Qty8mQVunXONq+5NfOpOEG7y/YTyA2+to7+zjd+ 1KxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=mZaZoKPg; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j20si9455952oie.212.2020.01.15.08.04.14; Wed, 15 Jan 2020 08:04:38 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=mZaZoKPg; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728912AbgAOQEG (ORCPT + 99 others); Wed, 15 Jan 2020 11:04:06 -0500 Received: from mail-io1-f68.google.com ([209.85.166.68]:41569 "EHLO mail-io1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726132AbgAOQEF (ORCPT ); Wed, 15 Jan 2020 11:04:05 -0500 Received: by mail-io1-f68.google.com with SMTP id m25so2722738ioo.8 for ; Wed, 15 Jan 2020 08:04:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=t2xBhXzleIdfKvE3vvgdZ+bpOSyO6wtsZg7uA/deBo0=; b=mZaZoKPghE4pkJJxBHU/PusPMrirqKN8HOPM1jYhS/mzWGXBdSFAiobcApddDFhHGl SUoQ77gwUq1G8PWexyQ7ZiRaPP2hLrcj+i9T9QjhL68TxcNFMpohzTejNnQTS9ZARzUE 1OzZbfg5xNhR9G8SYrqH+InA+TNB2gfwVZvcIuy8NqlMhCg64PI1lrpOS2EzJW4EsIhg MB5VT6EF16j/OXNVwWDheSXwa8Y2ClxlQrvskdkDIA2vS9aivV7ePIT0KjdxJ763yZJv hrAJ21Ya2fxpL7356sBEtd9dCxssGZNXKWJLtRwaqU6KHWlr2A/KPvd5q8tzXASnprxA WhVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=t2xBhXzleIdfKvE3vvgdZ+bpOSyO6wtsZg7uA/deBo0=; b=CHetSdkR5LlzGuAbFqbnfllWRLsLEkw/VcADgA71c/uWhMssznK602ydXtk+5/a65Q BBdj5Lex0VR2ZX/UQQ5qZLOF4+betpqk42/TyZm5KrJOqLJmJZRX7UdqcBicNXflb6FO MonjZ5yrnbAZty9P90Tl6tu9tLiEUX3rFwcBa5FyrqaGvbZySe5ENr7Djv7tIZ2+lDvI hAuxSfoVXcG27MkKp8STJo4eE+K1yskMpJv9zQNliUthnbLSQ29Rkj4af1UrQGD40aID dfkDYi7pvU9A8d+gYKBV35XqY50a7thTBDTf17daAe4qswCo4WUu7z/QAZr0ByAhncTS O7TQ== X-Gm-Message-State: APjAAAVuYZattg9WjWK5kGgMmN7FKqXhQS9QHb+0FqOKhzVpSpWaBp7e G3PcTZwaMZh5dllWkUQPTnXxGfQ/fLYkWHFnxH2vlw== X-Received: by 2002:a6b:7310:: with SMTP id e16mr22797101ioh.107.1579104245107; Wed, 15 Jan 2020 08:04:05 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a6b:a0b:0:0:0:0:0 with HTTP; Wed, 15 Jan 2020 08:04:04 -0800 (PST) In-Reply-To: <20200115150123.7612-1-Orr.Mazor@tandemg.com> References: <20200115150123.7612-1-Orr.Mazor@tandemg.com> From: Tom Psyborg Date: Wed, 15 Jan 2020 17:04:04 +0100 Message-ID: Subject: Re: [PATCH] cfg80211: Fix regulatory data is reset in case all phys have disconnected To: Orr Mazor Cc: Johannes Berg , "linux-wireless@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org On 15/01/2020, Orr Mazor wrote: > In case no one is occupying a wiphy, all past regulatory data will be lost > as a result of reset to world reg domain. > > This includes any channel that is currently in NOP time as well as > in AVAILABLE state. > > This means that after detecting a radar on a channel the user might be > able to simply reset hostapd and get back to that channel, > this is a major issue. > > To solve this I have added a check before doing any resets. > > If the user (for example: hostapd) asks for a regdomain and we are > already in that regdomain, than we shouldn't reset that regdomain in case > of wiphy disconnection (for example: hostapd reset or killed). > > That way the regulatory data will be saved as long as we are > in the same regdomain. > > Since in that case we will anyway get back to the same regdomain > the only difference is we will now save the regulatory data, > won't lose it, and as a result won't get back to a channel that a radar > was detected on until NOP will be finished, as should be. > > Signed-off-by: Orr Mazor > --- > net/wireless/reg.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/net/wireless/reg.c b/net/wireless/reg.c > index d18cc05061a0..5049c487950b 100644 > --- a/net/wireless/reg.c > +++ b/net/wireless/reg.c > @@ -3180,6 +3180,16 @@ static void restore_regulatory_settings(bool > reset_user, bool cached) > } > spin_unlock(®_indoor_lock); > > + /* If the user asks for a regdomain and we are > + * already in that regdomain, than we shouldn't reset > + * the regdomain in the case of wiphy disconnection. > + */ > + if (cached && !reset_user && > + (!IS_ERR_OR_NULL(cfg80211_user_regdom)) && > + (!regdom_changes(cfg80211_user_regdom->alpha2))) { > + return; > + } > + > reset_regdomains(true, &world_regdom); > restore_alpha2(alpha2, reset_user); > > -- > 2.17.1 > > Which device have you tested this on?