Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 134920
b: refs/heads/master
c: b5850a7
h: refs/heads/master
v: v3
  • Loading branch information
Luis R. Rodriguez authored and John W. Linville committed Feb 27, 2009
1 parent fef44ce commit b6bbe7f
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 22 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: 79f6440c527c61bcd84edfbdeb390841b9fe5095
refs/heads/master: b5850a7a4fd5bcab4f6a2c49e5b4ab9ebb1d5d44
35 changes: 18 additions & 17 deletions trunk/net/wireless/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,13 @@ DEFINE_MUTEX(cfg80211_drv_mutex);
static struct dentry *ieee80211_debugfs_dir;

/* requires cfg80211_drv_mutex to be held! */
static struct cfg80211_registered_device *cfg80211_drv_by_wiphy(int wiphy)
static struct cfg80211_registered_device *
cfg80211_drv_by_wiphy_idx(int wiphy_idx)
{
struct cfg80211_registered_device *result = NULL, *drv;

list_for_each_entry(drv, &cfg80211_drv_list, list) {
if (drv->idx == wiphy) {
if (drv->wiphy_idx == wiphy_idx) {
result = drv;
break;
}
Expand All @@ -56,12 +57,12 @@ static struct cfg80211_registered_device *
__cfg80211_drv_from_info(struct genl_info *info)
{
int ifindex;
struct cfg80211_registered_device *bywiphy = NULL, *byifidx = NULL;
struct cfg80211_registered_device *bywiphyidx = NULL, *byifidx = NULL;
struct net_device *dev;
int err = -EINVAL;

if (info->attrs[NL80211_ATTR_WIPHY]) {
bywiphy = cfg80211_drv_by_wiphy(
bywiphyidx = cfg80211_drv_by_wiphy_idx(
nla_get_u32(info->attrs[NL80211_ATTR_WIPHY]));
err = -ENODEV;
}
Expand All @@ -78,14 +79,14 @@ __cfg80211_drv_from_info(struct genl_info *info)
err = -ENODEV;
}

if (bywiphy && byifidx) {
if (bywiphy != byifidx)
if (bywiphyidx && byifidx) {
if (bywiphyidx != byifidx)
return ERR_PTR(-EINVAL);
else
return bywiphy; /* == byifidx */
return bywiphyidx; /* == byifidx */
}
if (bywiphy)
return bywiphy;
if (bywiphyidx)
return bywiphyidx;

if (byifidx)
return byifidx;
Expand Down Expand Up @@ -143,16 +144,16 @@ int cfg80211_dev_rename(struct cfg80211_registered_device *rdev,
char *newname)
{
struct cfg80211_registered_device *drv;
int idx, taken = -1, result, digits;
int wiphy_idx, taken = -1, result, digits;

mutex_lock(&cfg80211_drv_mutex);

/* prohibit calling the thing phy%d when %d is not its number */
sscanf(newname, PHY_NAME "%d%n", &idx, &taken);
if (taken == strlen(newname) && idx != rdev->idx) {
/* count number of places needed to print idx */
sscanf(newname, PHY_NAME "%d%n", &wiphy_idx, &taken);
if (taken == strlen(newname) && wiphy_idx != rdev->wiphy_idx) {
/* count number of places needed to print wiphy_idx */
digits = 1;
while (idx /= 10)
while (wiphy_idx /= 10)
digits++;
/*
* deny the name if it is phy<idx> where <idx> is printed
Expand Down Expand Up @@ -222,9 +223,9 @@ struct wiphy *wiphy_new(struct cfg80211_ops *ops, int sizeof_priv)

mutex_lock(&cfg80211_drv_mutex);

drv->idx = wiphy_counter++;
drv->wiphy_idx = wiphy_counter++;

if (unlikely(drv->idx < 0)) {
if (unlikely(drv->wiphy_idx < 0)) {
wiphy_counter--;
mutex_unlock(&cfg80211_drv_mutex);
/* ugh, wrapped! */
Expand All @@ -235,7 +236,7 @@ struct wiphy *wiphy_new(struct cfg80211_ops *ops, int sizeof_priv)
mutex_unlock(&cfg80211_drv_mutex);

/* give it a proper name */
dev_set_name(&drv->wiphy.dev, PHY_NAME "%d", drv->idx);
dev_set_name(&drv->wiphy.dev, PHY_NAME "%d", drv->wiphy_idx);

mutex_init(&drv->mtx);
mutex_init(&drv->devlist_mtx);
Expand Down
2 changes: 1 addition & 1 deletion trunk/net/wireless/core.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ struct cfg80211_registered_device {
enum environment_cap env;

/* wiphy index, internal only */
int idx;
int wiphy_idx;

/* associate netdev list */
struct mutex devlist_mtx;
Expand Down
4 changes: 2 additions & 2 deletions trunk/net/wireless/nl80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ static int nl80211_send_wiphy(struct sk_buff *msg, u32 pid, u32 seq, int flags,
if (!hdr)
return -1;

NLA_PUT_U32(msg, NL80211_ATTR_WIPHY, dev->idx);
NLA_PUT_U32(msg, NL80211_ATTR_WIPHY, dev->wiphy_idx);
NLA_PUT_STRING(msg, NL80211_ATTR_WIPHY_NAME, wiphy_name(&dev->wiphy));
NLA_PUT_U8(msg, NL80211_ATTR_MAX_NUM_SCAN_SSIDS,
dev->wiphy.max_scan_ssids);
Expand Down Expand Up @@ -2763,7 +2763,7 @@ static int nl80211_send_scan_donemsg(struct sk_buff *msg,
if (!hdr)
return -1;

NLA_PUT_U32(msg, NL80211_ATTR_WIPHY, rdev->idx);
NLA_PUT_U32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx);
NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, netdev->ifindex);

/* XXX: we should probably bounce back the request? */
Expand Down
2 changes: 1 addition & 1 deletion trunk/net/wireless/sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ static ssize_t name ## _show(struct device *dev, \
return sprintf(buf, fmt "\n", dev_to_rdev(dev)->member); \
}

SHOW_FMT(index, "%d", idx);
SHOW_FMT(index, "%d", wiphy_idx);
SHOW_FMT(macaddress, "%pM", wiphy.perm_addr);

static struct device_attribute ieee80211_dev_attrs[] = {
Expand Down

0 comments on commit b6bbe7f

Please sign in to comment.