]> err.no Git - linux-2.6/blobdiff - net/mac80211/debugfs_key.c
mac80211: Drop out of associated state if link is lost
[linux-2.6] / net / mac80211 / debugfs_key.c
index 246938c32d4df6b8a3d27c27e3cf892a9c3dc8a9..c881524c87251ca39a02717663538f381248a836 100644 (file)
@@ -25,6 +25,7 @@ static ssize_t key_##name##_read(struct file *file,                   \
        return simple_read_from_buffer(userbuf, count, ppos, buf, res); \
 }
 #define KEY_READ_D(name) KEY_READ(name, name, 20, "%d\n")
+#define KEY_READ_X(name) KEY_READ(name, name, 20, "0x%x\n")
 
 #define KEY_OPS(name)                                                  \
 static const struct file_operations key_ ##name## _ops = {             \
@@ -39,7 +40,6 @@ static const struct file_operations key_ ##name## _ops = {            \
 #define KEY_CONF_READ(name, buflen, format_string)                     \
        KEY_READ(conf_##name, conf.name, buflen, format_string)
 #define KEY_CONF_READ_D(name) KEY_CONF_READ(name, 20, "%d\n")
-#define KEY_CONF_READ_X(name) KEY_CONF_READ(name, 20, "0x%x\n")
 
 #define KEY_CONF_OPS(name)                                             \
 static const struct file_operations key_ ##name## _ops = {             \
@@ -54,8 +54,10 @@ static const struct file_operations key_ ##name## _ops = {           \
 KEY_CONF_FILE(keylen, D);
 KEY_CONF_FILE(keyidx, D);
 KEY_CONF_FILE(hw_key_idx, D);
-KEY_CONF_FILE(flags, X);
+KEY_FILE(flags, X);
 KEY_FILE(tx_rx_count, D);
+KEY_READ(ifindex, sdata->dev->ifindex, 20, "%d\n");
+KEY_OPS(ifindex);
 
 static ssize_t key_algorithm_read(struct file *file,
                                  char __user *userbuf,
@@ -209,6 +211,7 @@ void ieee80211_debugfs_key_add(struct ieee80211_local *local,
        DEBUGFS_ADD(rx_spec);
        DEBUGFS_ADD(replays);
        DEBUGFS_ADD(key);
+       DEBUGFS_ADD(ifindex);
 };
 
 #define DEBUGFS_DEL(name) \
@@ -229,6 +232,7 @@ void ieee80211_debugfs_key_remove(struct ieee80211_key *key)
        DEBUGFS_DEL(rx_spec);
        DEBUGFS_DEL(replays);
        DEBUGFS_DEL(key);
+       DEBUGFS_DEL(ifindex);
 
        debugfs_remove(key->debugfs.stalink);
        key->debugfs.stalink = NULL;
@@ -258,11 +262,12 @@ void ieee80211_debugfs_key_sta_link(struct ieee80211_key *key,
                                    struct sta_info *sta)
 {
        char buf[50];
+       DECLARE_MAC_BUF(mac);
 
        if (!key->debugfs.dir)
                return;
 
-       sprintf(buf, "../../stations/" MAC_FMT, MAC_ARG(sta->addr));
+       sprintf(buf, "../../stations/%s", print_mac(mac, sta->addr));
        key->debugfs.stalink =
                debugfs_create_symlink("station", key->debugfs.dir, buf);
 }