mac80211: fix ibss race
[safe/jmp/linux-2.6] / net / atm / proc.c
index b995b66..ab8419a 100644 (file)
@@ -78,7 +78,7 @@ static int __vcc_walk(struct sock **sock, int family, int *bucket, loff_t l)
 {
        struct sock *sk = *sock;
 
-       if (sk == (void *)1) {
+       if (sk == SEQ_START_TOKEN) {
                for (*bucket = 0; *bucket < VCC_HTABLE_SIZE; ++*bucket) {
                        struct hlist_head *head = &vcc_hash[*bucket];
 
@@ -98,7 +98,7 @@ try_again:
                sk = sk_head(&vcc_hash[*bucket]);
                goto try_again;
        }
-       sk = (void *)1;
+       sk = SEQ_START_TOKEN;
 out:
        *sock = sk;
        return (l < 0);
@@ -130,8 +130,8 @@ static void *vcc_seq_start(struct seq_file *seq, loff_t *pos)
        loff_t left = *pos;
 
        read_lock(&vcc_sklist_lock);
-       state->sk = (void *)1;
-       return left ? vcc_walk(state, left) : (void *)1;
+       state->sk = SEQ_START_TOKEN;
+       return left ? vcc_walk(state, left) : SEQ_START_TOKEN;
 }
 
 static void vcc_seq_stop(struct seq_file *seq, void *v)
@@ -151,8 +151,9 @@ static void *vcc_seq_next(struct seq_file *seq, void *v, loff_t *pos)
 
 static void pvc_info(struct seq_file *seq, struct atm_vcc *vcc)
 {
-       static const char *class_name[] = { "off","UBR","CBR","VBR","ABR" };
-       static const char *aal_name[] = {
+       static const char *const class_name[] =
+               {"off","UBR","CBR","VBR","ABR"};
+       static const char *const aal_name[] = {
                "---",  "1",    "2",    "3/4",  /*  0- 3 */
                "???",  "5",    "???",  "???",  /*  4- 7 */
                "???",  "???",  "???",  "???",  /*  8-11 */
@@ -178,7 +179,7 @@ static void pvc_info(struct seq_file *seq, struct atm_vcc *vcc)
 
 static const char *vcc_state(struct atm_vcc *vcc)
 {
-       static const char *map[] = { ATM_VS2TXT_MAP };
+       static const char *const map[] = { ATM_VS2TXT_MAP };
 
        return map[ATM_VF2VS(vcc->flags)];
 }
@@ -204,8 +205,8 @@ static void vcc_info(struct seq_file *seq, struct atm_vcc *vcc)
                        seq_printf(seq, "%3d", sk->sk_family);
        }
        seq_printf(seq, " %04lx  %5d %7d/%7d %7d/%7d [%d]\n", vcc->flags, sk->sk_err,
-                 atomic_read(&sk->sk_wmem_alloc), sk->sk_sndbuf,
-                 atomic_read(&sk->sk_rmem_alloc), sk->sk_rcvbuf,
+                 sk_wmem_alloc_get(sk), sk->sk_sndbuf,
+                 sk_rmem_alloc_get(sk), sk->sk_rcvbuf,
                  atomic_read(&sk->sk_refcnt));
 }
 
@@ -235,7 +236,7 @@ static int atm_dev_seq_show(struct seq_file *seq, void *v)
                "Itf Type    ESI/\"MAC\"addr "
                "AAL(TX,err,RX,err,drop) ...               [refcnt]\n";
 
-       if (v == (void *)1)
+       if (v == SEQ_START_TOKEN)
                seq_puts(seq, atm_dev_banner);
        else {
                struct atm_dev *dev = list_entry(v, struct atm_dev, dev_list);
@@ -269,7 +270,7 @@ static int pvc_seq_show(struct seq_file *seq, void *v)
        static char atm_pvc_banner[] =
                "Itf VPI VCI   AAL RX(PCR,Class) TX(PCR,Class)\n";
 
-       if (v == (void *)1)
+       if (v == SEQ_START_TOKEN)
                seq_puts(seq, atm_pvc_banner);
        else {
                struct vcc_state *state = seq->private;
@@ -301,7 +302,7 @@ static const struct file_operations pvc_seq_fops = {
 
 static int vcc_seq_show(struct seq_file *seq, void *v)
 {
-       if (v == (void *)1) {
+       if (v == SEQ_START_TOKEN) {
                seq_printf(seq, sizeof(void *) == 4 ? "%-8s%s" : "%-16s%s",
                        "Address ", "Itf VPI VCI   Fam Flags Reply "
                        "Send buffer     Recv buffer      [refcnt]\n");
@@ -335,10 +336,10 @@ static const struct file_operations vcc_seq_fops = {
 
 static int svc_seq_show(struct seq_file *seq, void *v)
 {
-       static char atm_svc_banner[] =
+       static const char atm_svc_banner[] =
                "Itf VPI VCI           State      Remote\n";
 
-       if (v == (void *)1)
+       if (v == SEQ_START_TOKEN)
                seq_puts(seq, atm_svc_banner);
        else {
                struct vcc_state *state = seq->private;
@@ -417,12 +418,10 @@ int atm_proc_dev_register(struct atm_dev *dev)
                goto err_out;
        sprintf(dev->proc_name,"%s:%d",dev->type, dev->number);
 
-       dev->proc_entry = proc_create(dev->proc_name, 0, atm_proc_root,
-                                     &proc_atm_dev_ops);
+       dev->proc_entry = proc_create_data(dev->proc_name, 0, atm_proc_root,
+                                          &proc_atm_dev_ops, dev);
        if (!dev->proc_entry)
                goto err_free_name;
-       dev->proc_entry->data = dev;
-       dev->proc_entry->owner = THIS_MODULE;
        return 0;
 err_free_name:
        kfree(dev->proc_name);
@@ -478,7 +477,6 @@ int __init atm_proc_init(void)
                                     atm_proc_root, e->proc_fops);
                if (!dirent)
                        goto err_out_remove;
-               dirent->owner = THIS_MODULE;
                e->dirent = dirent;
        }
        ret = 0;