From patchwork Wed Feb 12 17:43:08 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janusz.Dziedzic@tieto.com X-Patchwork-Id: 3639581 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id BDBCF9F334 for ; Wed, 12 Feb 2014 17:43:32 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id E24422015D for ; Wed, 12 Feb 2014 17:43:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 451A520136 for ; Wed, 12 Feb 2014 17:43:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753377AbaBLRn2 (ORCPT ); Wed, 12 Feb 2014 12:43:28 -0500 Received: from mail-ee0-f44.google.com ([74.125.83.44]:45552 "EHLO mail-ee0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753197AbaBLRn1 (ORCPT ); Wed, 12 Feb 2014 12:43:27 -0500 Received: by mail-ee0-f44.google.com with SMTP id c13so4495746eek.17 for ; Wed, 12 Feb 2014 09:43:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tieto.com; s=google; h=from:to:cc:subject:date:message-id; bh=haRsrB9OXYQM09VMkGR5iCNxPZIjoYk/rgpp3GH4YQU=; b=BW5o2xsunB7qB8X8Udco6eXj2+mQROuBNK4zyf8mUE9TdY+wkxCmCCZwiCxSOiChur oqtGdoH91tbI8NIHIDJ/NvpJsOnOeoJNy/dM5a5oZDPXRWKQknkxGqF8FD5vA6JfbMsg ZZQvptmhYoNg8tqjT6mBXcCRyDUpSnkOoLphg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=haRsrB9OXYQM09VMkGR5iCNxPZIjoYk/rgpp3GH4YQU=; b=QaLQSqHUFE9o4I3iUbGc60Ztlq4YZ9og7OMU+O94usp6ks/VeoU+x5zIPNVeKwbcle U67sgF2e/p6MzC/2powCB5uL5gUIkClOBucio8cmkS/GwXohCjRKOCOEkn0huijgkIg7 na4r0DGWew93Pssic15FYyb54J43J696t6ScV8nDqB6LrQ88mgBIviHVFghLtzVYSxPI pKylZq/qFAMWKxPXGW/v97BbFDyJskOgHCLKelgQdmL0qhj6HtO0MMriExGmZGZKFNQ3 HPqWsNxruO5knIsABhzEK2YWQimzPOpTBm63ILvM3UuSw2bdOEZDRR6PautyzzOjwhJM rE7g== X-Gm-Message-State: ALoCoQlGl36crUkRzLclTdWt7A7MhiZba6cpsSkiYUANEkaQJUruMfc4O9wIJW2vd62+KoF0FJ4ZS2+q4rfsxTe4Chokoj2rfQ3HnOWZtlhsUYHcfwBQ37I= X-Received: by 10.14.149.131 with SMTP id x3mr5382434eej.7.1392227006414; Wed, 12 Feb 2014 09:43:26 -0800 (PST) Received: from localhost.localdomain (host-62-141-194-198.swidnica.mm.pl. [62.141.194.198]) by mx.google.com with ESMTPSA id m1sm83358090een.7.2014.02.12.09.43.24 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 12 Feb 2014 09:43:25 -0800 (PST) From: Janusz Dziedzic To: linux-wireless@vger.kernel.org Cc: johannes@sipsolutions.net, mcgrof@do-not-panic.com, linville@tuxdriver.com, Janusz Dziedzic Subject: [PATCH] crda: handle AUTO bw setting in db2rd Date: Wed, 12 Feb 2014 18:43:08 +0100 Message-Id: <1392226988-3878-1-git-send-email-janusz.dziedzic@tieto.com> X-Mailer: git-send-email 1.7.9.5 X-DomainID: tieto.com Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Handle AUTO bandwidth setting in db2rd. Don't add NL80211_ATTR_FREQ_RANGE_MAX_BW attribute in case of AUTO bw calculation. Signed-off-by: Janusz Dziedzic --- crda.c | 3 ++- reglib.c | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/crda.c b/crda.c index 0bf83a1..2fc5bce 100644 --- a/crda.c +++ b/crda.c @@ -127,7 +127,8 @@ static int put_reg_rule(const struct ieee80211_reg_rule *rule, struct nl_msg *ms NLA_PUT_U32(msg, NL80211_ATTR_REG_RULE_FLAGS, rule->flags); NLA_PUT_U32(msg, NL80211_ATTR_FREQ_RANGE_START, freq_range->start_freq_khz); NLA_PUT_U32(msg, NL80211_ATTR_FREQ_RANGE_END, freq_range->end_freq_khz); - NLA_PUT_U32(msg, NL80211_ATTR_FREQ_RANGE_MAX_BW, freq_range->max_bandwidth_khz); + if (freq_range->max_bandwidth_khz) + NLA_PUT_U32(msg, NL80211_ATTR_FREQ_RANGE_MAX_BW, freq_range->max_bandwidth_khz); NLA_PUT_U32(msg, NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN, power_rule->max_antenna_gain); NLA_PUT_U32(msg, NL80211_ATTR_POWER_RULE_MAX_EIRP, power_rule->max_eirp); diff --git a/reglib.c b/reglib.c index af38fe7..bb8ce96 100644 --- a/reglib.c +++ b/reglib.c @@ -1116,7 +1116,7 @@ reglib_parse_rule_args_cac(char *line, struct ieee80211_reg_rule *reg_rule) static int reglib_parse_rule(FILE *fp, struct ieee80211_reg_rule *reg_rule) { char line[1024]; - char *line_p; + char *line_p, *auto_p; unsigned int i; int r = 0; struct reglib_rule_parse_list *reglib_rule_parsers; @@ -1150,6 +1150,13 @@ static int reglib_parse_rule(FILE *fp, struct ieee80211_reg_rule *reg_rule) return -EINVAL; } + auto_p = strstr(line_p, "@ AUTO"); + if (auto_p) { + /* This will be much easier instead of adding new parser! */ + memcpy(&auto_p[0], "@ 0", 3); + memcpy(&auto_p[3], &auto_p[6], strlen(line_p) + 1 - (auto_p + 3 - line_p)); + } + for (i = 0; i < reglib_rule_parsers->n_parsers; i++) { r = reglib_rule_parsers->rule_parsers[i](line, reg_rule); if (r == 0)