Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 184535
b: refs/heads/master
c: be41f5c
h: refs/heads/master
i:
  184533: b7e07e1
  184531: 05bb930
  184527: 187574e
v: v3
  • Loading branch information
John W. Linville committed Feb 26, 2010
1 parent 4492f88 commit f58f72c
Show file tree
Hide file tree
Showing 307 changed files with 21,469 additions and 10,474 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 89612124d6d62230043ebd827a2b54ea5ea5280c
refs/heads/master: be41f5c7e3688a4555d7fbaa09578fd628bb4cdf
3 changes: 1 addition & 2 deletions trunk/Documentation/DocBook/mac80211.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ usage should require reading the full document.
this though and the recommendation to allow only a single
interface in STA mode at first!
</para>
!Finclude/net/mac80211.h ieee80211_if_init_conf
!Finclude/net/mac80211.h ieee80211_vif
</chapter>

<chapter id="rx-tx">
Expand Down Expand Up @@ -234,7 +234,6 @@ usage should require reading the full document.
<title>Multiple queues and QoS support</title>
<para>TBD</para>
!Finclude/net/mac80211.h ieee80211_tx_queue_params
!Finclude/net/mac80211.h ieee80211_tx_queue_stats
</chapter>

<chapter id="AP">
Expand Down
21 changes: 0 additions & 21 deletions trunk/Documentation/feature-removal-schedule.txt
Original file line number Diff line number Diff line change
Expand Up @@ -88,27 +88,6 @@ Who: Luis R. Rodriguez <lrodriguez@atheros.com>

---------------------------

What: CONFIG_WIRELESS_OLD_REGULATORY - old static regulatory information
When: March 2010 / desktop catchup

Why: The old regulatory infrastructure has been replaced with a new one
which does not require statically defined regulatory domains. We do
not want to keep static regulatory domains in the kernel due to the
the dynamic nature of regulatory law and localization. We kept around
the old static definitions for the regulatory domains of:

* US
* JP
* EU

and used by default the US when CONFIG_WIRELESS_OLD_REGULATORY was
set. We will remove this option once the standard Linux desktop catches
up with the new userspace APIs we have implemented.

Who: Luis R. Rodriguez <lrodriguez@atheros.com>

---------------------------

What: dev->power.power_state
When: July 2007
Why: Broken design for runtime control over driver power states, confusing
Expand Down
24 changes: 24 additions & 0 deletions trunk/Documentation/networking/regulatory.txt
Original file line number Diff line number Diff line change
Expand Up @@ -188,3 +188,27 @@ Then in some part of your code after your wiphy has been registered:
&mydriver_jp_regdom.reg_rules[i],
sizeof(struct ieee80211_reg_rule));
regulatory_struct_hint(rd);

Statically compiled regulatory database
---------------------------------------

In most situations the userland solution using CRDA as described
above is the preferred solution. However in some cases a set of
rules built into the kernel itself may be desirable. To account
for this situation, a configuration option has been provided
(i.e. CONFIG_CFG80211_INTERNAL_REGDB). With this option enabled,
the wireless database information contained in net/wireless/db.txt is
used to generate a data structure encoded in net/wireless/regdb.c.
That option also enables code in net/wireless/reg.c which queries
the data in regdb.c as an alternative to using CRDA.

The file net/wireless/db.txt should be kept up-to-date with the db.txt
file available in the git repository here:

git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-regdb.git

Again, most users in most situations should be using the CRDA package
provided with their distribution, and in most other situations users
should be building and using CRDA on their own rather than using
this option. If you are not absolutely sure that you should be using
CONFIG_CFG80211_INTERNAL_REGDB then _DO_NOT_USE_IT_.
2 changes: 1 addition & 1 deletion trunk/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -5863,7 +5863,7 @@ S: Maintained
F: drivers/input/misc/wistron_btns.c

WL1251 WIRELESS DRIVER
M: Kalle Valo <kalle.valo@nokia.com>
M: Kalle Valo <kalle.valo@iki.fi>
L: linux-wireless@vger.kernel.org
W: http://wireless.kernel.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/powerpc/configs/ppc64_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1000,7 +1000,6 @@ CONFIG_TIGON3=y
CONFIG_SPIDER_NET=m
CONFIG_GELIC_NET=m
CONFIG_GELIC_WIRELESS=y
# CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE is not set
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
# CONFIG_ATL1E is not set
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/powerpc/configs/ps3_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -593,7 +593,6 @@ CONFIG_MII=m
CONFIG_NETDEV_1000=y
CONFIG_GELIC_NET=y
CONFIG_GELIC_WIRELESS=y
# CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE is not set
# CONFIG_NETDEV_10000 is not set

#
Expand Down
14 changes: 0 additions & 14 deletions trunk/drivers/net/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2354,20 +2354,6 @@ config GELIC_WIRELESS
the driver automatically distinguishes the models, you can
safely enable this option even if you have a wireless-less model.

config GELIC_WIRELESS_OLD_PSK_INTERFACE
bool "PS3 Wireless private PSK interface (OBSOLETE)"
depends on GELIC_WIRELESS
select WEXT_PRIV
help
This option retains the obsolete private interface to pass
the PSK from user space programs to the driver. The PSK
stands for 'Pre Shared Key' and is used for WPA[2]-PSK
(WPA-Personal) environment.
If WPA[2]-PSK is used and you need to use old programs that
support only this old interface, say Y. Otherwise N.

If unsure, say N.

config FSL_PQ_MDIO
tristate "Freescale PQ MDIO"
depends on FSL_SOC
Expand Down
149 changes: 7 additions & 142 deletions trunk/drivers/net/ps3_gelic_wireless.c
Original file line number Diff line number Diff line change
Expand Up @@ -1389,113 +1389,6 @@ static int gelic_wl_get_mode(struct net_device *netdev,
return 0;
}

#ifdef CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE
/* SIOCIWFIRSTPRIV */
static int hex2bin(u8 *str, u8 *bin, unsigned int len)
{
unsigned int i;
static unsigned char *hex = "0123456789ABCDEF";
unsigned char *p, *q;
u8 tmp;

if (len != WPA_PSK_LEN * 2)
return -EINVAL;

for (i = 0; i < WPA_PSK_LEN * 2; i += 2) {
p = strchr(hex, toupper(str[i]));
q = strchr(hex, toupper(str[i + 1]));
if (!p || !q) {
pr_info("%s: unconvertible PSK digit=%d\n",
__func__, i);
return -EINVAL;
}
tmp = ((p - hex) << 4) + (q - hex);
*bin++ = tmp;
}
return 0;
};

static int gelic_wl_priv_set_psk(struct net_device *net_dev,
struct iw_request_info *info,
union iwreq_data *data, char *extra)
{
struct gelic_wl_info *wl = port_wl(netdev_priv(net_dev));
unsigned int len;
unsigned long irqflag;
int ret = 0;

pr_debug("%s:<- len=%d\n", __func__, data->data.length);
len = data->data.length - 1;
if (len <= 2)
return -EINVAL;

spin_lock_irqsave(&wl->lock, irqflag);
if (extra[0] == '"' && extra[len - 1] == '"') {
pr_debug("%s: passphrase mode\n", __func__);
/* pass phrase */
if (GELIC_WL_EURUS_PSK_MAX_LEN < (len - 2)) {
pr_info("%s: passphrase too long\n", __func__);
ret = -E2BIG;
goto out;
}
memset(wl->psk, 0, sizeof(wl->psk));
wl->psk_len = len - 2;
memcpy(wl->psk, &(extra[1]), wl->psk_len);
wl->psk_type = GELIC_EURUS_WPA_PSK_PASSPHRASE;
} else {
ret = hex2bin(extra, wl->psk, len);
if (ret)
goto out;
wl->psk_len = WPA_PSK_LEN;
wl->psk_type = GELIC_EURUS_WPA_PSK_BIN;
}
set_bit(GELIC_WL_STAT_WPA_PSK_SET, &wl->stat);
out:
spin_unlock_irqrestore(&wl->lock, irqflag);
pr_debug("%s:->\n", __func__);
return ret;
}

static int gelic_wl_priv_get_psk(struct net_device *net_dev,
struct iw_request_info *info,
union iwreq_data *data, char *extra)
{
struct gelic_wl_info *wl = port_wl(netdev_priv(net_dev));
char *p;
unsigned long irqflag;
unsigned int i;

pr_debug("%s:<-\n", __func__);
if (!capable(CAP_NET_ADMIN))
return -EPERM;

spin_lock_irqsave(&wl->lock, irqflag);
p = extra;
if (test_bit(GELIC_WL_STAT_WPA_PSK_SET, &wl->stat)) {
if (wl->psk_type == GELIC_EURUS_WPA_PSK_BIN) {
for (i = 0; i < wl->psk_len; i++) {
sprintf(p, "%02xu", wl->psk[i]);
p += 2;
}
*p = '\0';
data->data.length = wl->psk_len * 2;
} else {
*p++ = '"';
memcpy(p, wl->psk, wl->psk_len);
p += wl->psk_len;
*p++ = '"';
*p = '\0';
data->data.length = wl->psk_len + 2;
}
} else
/* no psk set */
data->data.length = 0;
spin_unlock_irqrestore(&wl->lock, irqflag);
pr_debug("%s:-> %d\n", __func__, data->data.length);
return 0;
}
#endif

/* SIOCGIWNICKN */
static int gelic_wl_get_nick(struct net_device *net_dev,
struct iw_request_info *info,
Expand Down Expand Up @@ -1571,8 +1464,10 @@ static int gelic_wl_start_scan(struct gelic_wl_info *wl, int always_scan,
init_completion(&wl->scan_done);
/*
* If we have already a bss list, don't try to get new
* unless we are doing an ESSID scan
*/
if (!always_scan && wl->scan_stat == GELIC_WL_SCAN_STAT_GOT_LIST) {
if ((!essid_len && !always_scan)
&& wl->scan_stat == GELIC_WL_SCAN_STAT_GOT_LIST) {
pr_debug("%s: already has the list\n", __func__);
complete(&wl->scan_done);
goto out;
Expand Down Expand Up @@ -1673,7 +1568,7 @@ static void gelic_wl_scan_complete_event(struct gelic_wl_info *wl)
}
}

/* put them in the newtork_list */
/* put them in the network_list */
for (i = 0, scan_info_size = 0, scan_info = buf;
scan_info_size < data_len;
i++, scan_info_size += be16_to_cpu(scan_info->size),
Expand Down Expand Up @@ -2009,7 +1904,7 @@ static int gelic_wl_do_wpa_setup(struct gelic_wl_info *wl)
/* PSK type */
wpa->psk_type = cpu_to_be16(wl->psk_type);
#ifdef DEBUG
pr_debug("%s: sec=%s psktype=%s\nn", __func__,
pr_debug("%s: sec=%s psktype=%s\n", __func__,
wpasecstr(wpa->security),
(wpa->psk_type == GELIC_EURUS_WPA_PSK_BIN) ?
"BIN" : "passphrase");
Expand All @@ -2019,9 +1914,9 @@ static int gelic_wl_do_wpa_setup(struct gelic_wl_info *wl)
* the debug log because this dumps your precious
* passphrase/key.
*/
pr_debug("%s: psk=%s\n",
pr_debug("%s: psk=%s\n", __func__,
(wpa->psk_type == GELIC_EURUS_WPA_PSK_BIN) ?
(char *)"N/A" : (char *)wpa->psk);
"N/A" : wpa->psk);
#endif
#endif
/* issue wpa setup */
Expand Down Expand Up @@ -2406,40 +2301,10 @@ static const iw_handler gelic_wl_wext_handler[] =
IW_IOCTL(SIOCGIWNICKN) = gelic_wl_get_nick,
};

#ifdef CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE
static struct iw_priv_args gelic_wl_private_args[] =
{
{
.cmd = GELIC_WL_PRIV_SET_PSK,
.set_args = IW_PRIV_TYPE_CHAR |
(GELIC_WL_EURUS_PSK_MAX_LEN + 2),
.name = "set_psk"
},
{
.cmd = GELIC_WL_PRIV_GET_PSK,
.get_args = IW_PRIV_TYPE_CHAR |
(GELIC_WL_EURUS_PSK_MAX_LEN + 2),
.name = "get_psk"
}
};

static const iw_handler gelic_wl_private_handler[] =
{
gelic_wl_priv_set_psk,
gelic_wl_priv_get_psk,
};
#endif

static const struct iw_handler_def gelic_wl_wext_handler_def = {
.num_standard = ARRAY_SIZE(gelic_wl_wext_handler),
.standard = gelic_wl_wext_handler,
.get_wireless_stats = gelic_wl_get_wireless_stats,
#ifdef CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE
.num_private = ARRAY_SIZE(gelic_wl_private_handler),
.num_private_args = ARRAY_SIZE(gelic_wl_private_args),
.private = gelic_wl_private_handler,
.private_args = gelic_wl_private_args,
#endif
};

static struct net_device * __devinit gelic_wl_alloc(struct gelic_card *card)
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/wireless/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ config AIRO_CS
depends on PCMCIA && (BROKEN || !M32R)
select WIRELESS_EXT
select WEXT_SPY
select WEXT_PRIV
select CRYPTO
select CRYPTO_AES
---help---
Expand Down
25 changes: 6 additions & 19 deletions trunk/drivers/net/wireless/adm8211.c
Original file line number Diff line number Diff line change
Expand Up @@ -302,18 +302,6 @@ static int adm8211_get_stats(struct ieee80211_hw *dev,
return 0;
}

static int adm8211_get_tx_stats(struct ieee80211_hw *dev,
struct ieee80211_tx_queue_stats *stats)
{
struct adm8211_priv *priv = dev->priv;

stats[0].len = priv->cur_tx - priv->dirty_tx;
stats[0].limit = priv->tx_ring_size - 2;
stats[0].count = priv->dirty_tx;

return 0;
}

static void adm8211_interrupt_tci(struct ieee80211_hw *dev)
{
struct adm8211_priv *priv = dev->priv;
Expand Down Expand Up @@ -1400,24 +1388,24 @@ static void adm8211_configure_filter(struct ieee80211_hw *dev,
}

static int adm8211_add_interface(struct ieee80211_hw *dev,
struct ieee80211_if_init_conf *conf)
struct ieee80211_vif *vif)
{
struct adm8211_priv *priv = dev->priv;
if (priv->mode != NL80211_IFTYPE_MONITOR)
return -EOPNOTSUPP;

switch (conf->type) {
switch (vif->type) {
case NL80211_IFTYPE_STATION:
priv->mode = conf->type;
priv->mode = vif->type;
break;
default:
return -EOPNOTSUPP;
}

ADM8211_IDLE();

ADM8211_CSR_WRITE(PAR0, le32_to_cpu(*(__le32 *)conf->mac_addr));
ADM8211_CSR_WRITE(PAR1, le16_to_cpu(*(__le16 *)(conf->mac_addr + 4)));
ADM8211_CSR_WRITE(PAR0, le32_to_cpu(*(__le32 *)vif->addr));
ADM8211_CSR_WRITE(PAR1, le16_to_cpu(*(__le16 *)(vif->addr + 4)));

adm8211_update_mode(dev);

Expand All @@ -1427,7 +1415,7 @@ static int adm8211_add_interface(struct ieee80211_hw *dev,
}

static void adm8211_remove_interface(struct ieee80211_hw *dev,
struct ieee80211_if_init_conf *conf)
struct ieee80211_vif *vif)
{
struct adm8211_priv *priv = dev->priv;
priv->mode = NL80211_IFTYPE_MONITOR;
Expand Down Expand Up @@ -1773,7 +1761,6 @@ static const struct ieee80211_ops adm8211_ops = {
.prepare_multicast = adm8211_prepare_multicast,
.configure_filter = adm8211_configure_filter,
.get_stats = adm8211_get_stats,
.get_tx_stats = adm8211_get_tx_stats,
.get_tsf = adm8211_get_tsft
};

Expand Down
Loading

0 comments on commit f58f72c

Please sign in to comment.