linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 2.6.15-mm4] sem2mutex: netfilter x_table.c
@ 2006-01-14 14:30 Ingo Molnar
  2006-01-14 14:36 ` [patch 2.6.15-mm4] sem2mutex: autofs4 wq_sem Ingo Molnar
  2006-01-18  2:30 ` [netfilter-core] [patch 2.6.15-mm4] sem2mutex: netfilter x_table.c Patrick McHardy
  0 siblings, 2 replies; 5+ messages in thread
From: Ingo Molnar @ 2006-01-14 14:30 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Harald Welte, coreteam, Arjan van de Ven, linux-kernel

From: Ingo Molnar <mingo@elte.hu>

semaphore to mutex conversion.

the conversion was generated via scripts, and the result was validated
automatically via a script as well.

build tested.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
----

 net/netfilter/x_tables.c |   56 ++++++++++++++++++++++++-----------------------
 1 files changed, 29 insertions(+), 27 deletions(-)

Index: linux/net/netfilter/x_tables.c
===================================================================
--- linux.orig/net/netfilter/x_tables.c
+++ linux/net/netfilter/x_tables.c
@@ -21,10 +21,12 @@
 #include <linux/seq_file.h>
 #include <linux/string.h>
 #include <linux/vmalloc.h>
+#include <linux/mutex.h>
 
 #include <linux/netfilter/x_tables.h>
 #include <linux/netfilter_arp.h>
 
+
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>");
 MODULE_DESCRIPTION("[ip,ip6,arp]_tables backend module");
@@ -32,7 +34,7 @@ MODULE_DESCRIPTION("[ip,ip6,arp]_tables 
 #define SMP_ALIGN(x) (((x) + SMP_CACHE_BYTES-1) & ~(SMP_CACHE_BYTES-1))
 
 struct xt_af {
-	struct semaphore mutex;
+	struct mutex mutex;
 	struct list_head match;
 	struct list_head target;
 	struct list_head tables;
@@ -58,11 +60,11 @@ xt_register_target(int af, struct xt_tar
 {
 	int ret;
 
-	ret = down_interruptible(&xt[af].mutex);
+	ret = mutex_lock_interruptible(&xt[af].mutex);
 	if (ret != 0)
 		return ret;
 	list_add(&target->list, &xt[af].target);
-	up(&xt[af].mutex);
+	mutex_unlock(&xt[af].mutex);
 	return ret;
 }
 EXPORT_SYMBOL(xt_register_target);
@@ -70,9 +72,9 @@ EXPORT_SYMBOL(xt_register_target);
 void
 xt_unregister_target(int af, struct xt_target *target)
 {
-	down(&xt[af].mutex);
+	mutex_lock(&xt[af].mutex);
 	LIST_DELETE(&xt[af].target, target);
-	up(&xt[af].mutex);
+	mutex_unlock(&xt[af].mutex);
 }
 EXPORT_SYMBOL(xt_unregister_target);
 
@@ -81,12 +83,12 @@ xt_register_match(int af, struct xt_matc
 {
 	int ret;
 
-	ret = down_interruptible(&xt[af].mutex);
+	ret = mutex_lock_interruptible(&xt[af].mutex);
 	if (ret != 0)
 		return ret;
 
 	list_add(&match->list, &xt[af].match);
-	up(&xt[af].mutex);
+	mutex_unlock(&xt[af].mutex);
 
 	return ret;
 }
@@ -95,9 +97,9 @@ EXPORT_SYMBOL(xt_register_match);
 void
 xt_unregister_match(int af, struct xt_match *match)
 {
-	down(&xt[af].mutex);
+	mutex_lock(&xt[af].mutex);
 	LIST_DELETE(&xt[af].match, match);
-	up(&xt[af].mutex);
+	mutex_unlock(&xt[af].mutex);
 }
 EXPORT_SYMBOL(xt_unregister_match);
 
@@ -114,21 +116,21 @@ struct xt_match *xt_find_match(int af, c
 	struct xt_match *m;
 	int err = 0;
 
-	if (down_interruptible(&xt[af].mutex) != 0)
+	if (mutex_lock_interruptible(&xt[af].mutex) != 0)
 		return ERR_PTR(-EINTR);
 
 	list_for_each_entry(m, &xt[af].match, list) {
 		if (strcmp(m->name, name) == 0) {
 			if (m->revision == revision) {
 				if (try_module_get(m->me)) {
-					up(&xt[af].mutex);
+					mutex_unlock(&xt[af].mutex);
 					return m;
 				}
 			} else
 				err = -EPROTOTYPE; /* Found something. */
 		}
 	}
-	up(&xt[af].mutex);
+	mutex_unlock(&xt[af].mutex);
 	return ERR_PTR(err);
 }
 EXPORT_SYMBOL(xt_find_match);
@@ -139,21 +141,21 @@ struct xt_target *xt_find_target(int af,
 	struct xt_target *t;
 	int err = 0;
 
-	if (down_interruptible(&xt[af].mutex) != 0)
+	if (mutex_lock_interruptible(&xt[af].mutex) != 0)
 		return ERR_PTR(-EINTR);
 
 	list_for_each_entry(t, &xt[af].target, list) {
 		if (strcmp(t->name, name) == 0) {
 			if (t->revision == revision) {
 				if (try_module_get(t->me)) {
-					up(&xt[af].mutex);
+					mutex_unlock(&xt[af].mutex);
 					return t;
 				}
 			} else
 				err = -EPROTOTYPE; /* Found something. */
 		}
 	}
-	up(&xt[af].mutex);
+	mutex_unlock(&xt[af].mutex);
 	return ERR_PTR(err);
 }
 EXPORT_SYMBOL(xt_find_target);
@@ -214,7 +216,7 @@ int xt_find_revision(int af, const char 
 {
 	int have_rev, best = -1;
 
-	if (down_interruptible(&xt[af].mutex) != 0) {
+	if (mutex_lock_interruptible(&xt[af].mutex) != 0) {
 		*err = -EINTR;
 		return 1;
 	}
@@ -222,7 +224,7 @@ int xt_find_revision(int af, const char 
 		have_rev = target_revfn(af, name, revision, &best);
 	else
 		have_rev = match_revfn(af, name, revision, &best);
-	up(&xt[af].mutex);
+	mutex_unlock(&xt[af].mutex);
 
 	/* Nothing at all?  Return 0 to try loading module. */
 	if (best == -1) {
@@ -290,20 +292,20 @@ struct xt_table *xt_find_table_lock(int 
 {
 	struct xt_table *t;
 
-	if (down_interruptible(&xt[af].mutex) != 0)
+	if (mutex_lock_interruptible(&xt[af].mutex) != 0)
 		return ERR_PTR(-EINTR);
 
 	list_for_each_entry(t, &xt[af].tables, list)
 		if (strcmp(t->name, name) == 0 && try_module_get(t->me))
 			return t;
-	up(&xt[af].mutex);
+	mutex_unlock(&xt[af].mutex);
 	return NULL;
 }
 EXPORT_SYMBOL_GPL(xt_find_table_lock);
 
 void xt_table_unlock(struct xt_table *table)
 {
-	up(&xt[table->af].mutex);
+	mutex_unlock(&xt[table->af].mutex);
 }
 EXPORT_SYMBOL_GPL(xt_table_unlock);
 
@@ -343,7 +345,7 @@ int xt_register_table(struct xt_table *t
 	int ret;
 	struct xt_table_info *private;
 
-	ret = down_interruptible(&xt[table->af].mutex);
+	ret = mutex_lock_interruptible(&xt[table->af].mutex);
 	if (ret != 0)
 		return ret;
 
@@ -369,7 +371,7 @@ int xt_register_table(struct xt_table *t
 
 	ret = 0;
  unlock:
-	up(&xt[table->af].mutex);
+	mutex_unlock(&xt[table->af].mutex);
 	return ret;
 }
 EXPORT_SYMBOL_GPL(xt_register_table);
@@ -378,10 +380,10 @@ void *xt_unregister_table(struct xt_tabl
 {
 	struct xt_table_info *private;
 
-	down(&xt[table->af].mutex);
+	mutex_lock(&xt[table->af].mutex);
 	private = table->private;
 	LIST_DELETE(&xt[table->af].tables, table);
-	up(&xt[table->af].mutex);
+	mutex_unlock(&xt[table->af].mutex);
 
 	return private;
 }
@@ -445,7 +447,7 @@ static void *xt_tgt_seq_start(struct seq
 	if (!list)
 		return NULL;
 
-	if (down_interruptible(&xt[af].mutex) != 0)
+	if (mutex_lock_interruptible(&xt[af].mutex) != 0)
 		return NULL;
 	
 	return xt_get_idx(list, seq, *pos);
@@ -474,7 +476,7 @@ static void xt_tgt_seq_stop(struct seq_f
 	struct proc_dir_entry *pde = seq->private;
 	u_int16_t af = (unsigned long)pde->data & 0xffff;
 
-	up(&xt[af].mutex);
+	mutex_unlock(&xt[af].mutex);
 }
 
 static int xt_name_seq_show(struct seq_file *seq, void *v)
@@ -606,7 +608,7 @@ static int __init xt_init(void)
 		return -ENOMEM;
 
 	for (i = 0; i < NPROTO; i++) {
-		init_MUTEX(&xt[i].mutex);
+		mutex_init(&xt[i].mutex);
 		INIT_LIST_HEAD(&xt[i].target);
 		INIT_LIST_HEAD(&xt[i].match);
 		INIT_LIST_HEAD(&xt[i].tables);

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [patch 2.6.15-mm4] sem2mutex: autofs4 wq_sem
  2006-01-14 14:30 [patch 2.6.15-mm4] sem2mutex: netfilter x_table.c Ingo Molnar
@ 2006-01-14 14:36 ` Ingo Molnar
  2006-01-18  2:30 ` [netfilter-core] [patch 2.6.15-mm4] sem2mutex: netfilter x_table.c Patrick McHardy
  1 sibling, 0 replies; 5+ messages in thread
From: Ingo Molnar @ 2006-01-14 14:36 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Arjan van de Ven, linux-kernel, raven

From: Ingo Molnar <mingo@elte.hu>

semaphore to mutex conversion.

the conversion was generated via scripts, and the result was validated
automatically via a script as well.

build and boot tested.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
----

 fs/autofs4/autofs_i.h |    3 ++-
 fs/autofs4/inode.c    |    2 +-
 fs/autofs4/waitq.c    |   16 ++++++++--------
 3 files changed, 11 insertions(+), 10 deletions(-)

Index: linux/fs/autofs4/autofs_i.h
===================================================================
--- linux.orig/fs/autofs4/autofs_i.h
+++ linux/fs/autofs4/autofs_i.h
@@ -13,6 +13,7 @@
 /* Internal header file for autofs */
 
 #include <linux/auto_fs4.h>
+#include <linux/mutex.h>
 #include <linux/list.h>
 
 /* This is the range of ioctl() numbers we claim as ours */
@@ -102,7 +103,7 @@ struct autofs_sb_info {
 	int reghost_enabled;
 	int needs_reghost;
 	struct super_block *sb;
-	struct semaphore wq_sem;
+	struct mutex wq_mutex;
 	spinlock_t fs_lock;
 	struct autofs_wait_queue *queues; /* Wait queue pointer */
 };
Index: linux/fs/autofs4/inode.c
===================================================================
--- linux.orig/fs/autofs4/inode.c
+++ linux/fs/autofs4/inode.c
@@ -269,7 +269,7 @@ int autofs4_fill_super(struct super_bloc
 	sbi->sb = s;
 	sbi->version = 0;
 	sbi->sub_version = 0;
-	init_MUTEX(&sbi->wq_sem);
+	mutex_init(&sbi->wq_mutex);
 	spin_lock_init(&sbi->fs_lock);
 	sbi->queues = NULL;
 	s->s_blocksize = 1024;
Index: linux/fs/autofs4/waitq.c
===================================================================
--- linux.orig/fs/autofs4/waitq.c
+++ linux/fs/autofs4/waitq.c
@@ -178,7 +178,7 @@ int autofs4_wait(struct autofs_sb_info *
 		return -ENOENT;
 	}
 
-	if (down_interruptible(&sbi->wq_sem)) {
+	if (mutex_lock_interruptible(&sbi->wq_mutex)) {
 		kfree(name);
 		return -EINTR;
 	}
@@ -194,7 +194,7 @@ int autofs4_wait(struct autofs_sb_info *
 		/* Can't wait for an expire if there's no mount */
 		if (notify == NFY_NONE && !d_mountpoint(dentry)) {
 			kfree(name);
-			up(&sbi->wq_sem);
+			mutex_unlock(&sbi->wq_mutex);
 			return -ENOENT;
 		}
 
@@ -202,7 +202,7 @@ int autofs4_wait(struct autofs_sb_info *
 		wq = kmalloc(sizeof(struct autofs_wait_queue),GFP_KERNEL);
 		if ( !wq ) {
 			kfree(name);
-			up(&sbi->wq_sem);
+			mutex_unlock(&sbi->wq_mutex);
 			return -ENOMEM;
 		}
 
@@ -218,10 +218,10 @@ int autofs4_wait(struct autofs_sb_info *
 		wq->status = -EINTR; /* Status return if interrupted */
 		atomic_set(&wq->wait_ctr, 2);
 		atomic_set(&wq->notified, 1);
-		up(&sbi->wq_sem);
+		mutex_unlock(&sbi->wq_mutex);
 	} else {
 		atomic_inc(&wq->wait_ctr);
-		up(&sbi->wq_sem);
+		mutex_unlock(&sbi->wq_mutex);
 		kfree(name);
 		DPRINTK("existing wait id = 0x%08lx, name = %.*s, nfy=%d",
 			(unsigned long) wq->wait_queue_token, wq->len, wq->name, notify);
@@ -282,19 +282,19 @@ int autofs4_wait_release(struct autofs_s
 {
 	struct autofs_wait_queue *wq, **wql;
 
-	down(&sbi->wq_sem);
+	mutex_lock(&sbi->wq_mutex);
 	for ( wql = &sbi->queues ; (wq = *wql) != 0 ; wql = &wq->next ) {
 		if ( wq->wait_queue_token == wait_queue_token )
 			break;
 	}
 
 	if ( !wq ) {
-		up(&sbi->wq_sem);
+		mutex_unlock(&sbi->wq_mutex);
 		return -EINVAL;
 	}
 
 	*wql = wq->next;	/* Unlink from chain */
-	up(&sbi->wq_sem);
+	mutex_unlock(&sbi->wq_mutex);
 	kfree(wq->name);
 	wq->name = NULL;	/* Do not wait on this queue */
 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [netfilter-core] [patch 2.6.15-mm4] sem2mutex: netfilter x_table.c
  2006-01-14 14:30 [patch 2.6.15-mm4] sem2mutex: netfilter x_table.c Ingo Molnar
  2006-01-14 14:36 ` [patch 2.6.15-mm4] sem2mutex: autofs4 wq_sem Ingo Molnar
@ 2006-01-18  2:30 ` Patrick McHardy
  2006-01-18  2:46   ` Andrew Morton
  2006-01-18  8:15   ` Ingo Molnar
  1 sibling, 2 replies; 5+ messages in thread
From: Patrick McHardy @ 2006-01-18  2:30 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Andrew Morton, Harald Welte, coreteam, linux-kernel, Arjan van de Ven

Ingo Molnar wrote:
> From: Ingo Molnar <mingo@elte.hu>
> 
> semaphore to mutex conversion.
> 
> the conversion was generated via scripts, and the result was validated
> automatically via a script as well.

I haven't followed all the mutex patches, is this intended
for mainline or for -mm?


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [netfilter-core] [patch 2.6.15-mm4] sem2mutex: netfilter x_table.c
  2006-01-18  2:30 ` [netfilter-core] [patch 2.6.15-mm4] sem2mutex: netfilter x_table.c Patrick McHardy
@ 2006-01-18  2:46   ` Andrew Morton
  2006-01-18  8:15   ` Ingo Molnar
  1 sibling, 0 replies; 5+ messages in thread
From: Andrew Morton @ 2006-01-18  2:46 UTC (permalink / raw)
  To: Patrick McHardy; +Cc: mingo, laforge, coreteam, linux-kernel, arjan

Patrick McHardy <kaber@trash.net> wrote:
>
> Ingo Molnar wrote:
> > From: Ingo Molnar <mingo@elte.hu>
> > 
> > semaphore to mutex conversion.
> > 
> > the conversion was generated via scripts, and the result was validated
> > automatically via a script as well.
> 
> I haven't followed all the mutex patches, is this intended
> for mainline or for -mm?

You're probably better off ignoring it all for now.  Once things have
settled down and all the sem2mutex patches have been finalised and
reasonably tested I'll send whatever hasn't been merged into subsystem
trees over to the relevant maintainers.

http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt might help
shed some light on the intricacies of -mm patches.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [netfilter-core] [patch 2.6.15-mm4] sem2mutex: netfilter x_table.c
  2006-01-18  2:30 ` [netfilter-core] [patch 2.6.15-mm4] sem2mutex: netfilter x_table.c Patrick McHardy
  2006-01-18  2:46   ` Andrew Morton
@ 2006-01-18  8:15   ` Ingo Molnar
  1 sibling, 0 replies; 5+ messages in thread
From: Ingo Molnar @ 2006-01-18  8:15 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: Andrew Morton, Harald Welte, coreteam, linux-kernel, Arjan van de Ven


* Patrick McHardy <kaber@trash.net> wrote:

> Ingo Molnar wrote:
> >From: Ingo Molnar <mingo@elte.hu>
> >
> >semaphore to mutex conversion.
> >
> >the conversion was generated via scripts, and the result was validated
> >automatically via a script as well.
> 
> I haven't followed all the mutex patches, is this intended
> for mainline or for -mm?

best would be if you could pick the patches up (if they look good to 
you, and if they pass testing with CONFIG_DEBUG_MUTEXES enabled), and 
thus they would flow upstream once you did a merge with Andrew or Linus
next time around.

we'll still keep them in -mm, just to get early feedback (and to make 
sure nothing is dropped on the floor), but the ultimate merging should 
happen via maintainers. [so that the mutex patches impact maintainer's 
workflow and their pending patches in the least minimal way.] If things 
clash with our mutex migration changes in -mm, we'll redo the affected 
-mm mutex patches whenever Andrew pulls a maintainer tree.

	Ingo

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-01-18  8:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-14 14:30 [patch 2.6.15-mm4] sem2mutex: netfilter x_table.c Ingo Molnar
2006-01-14 14:36 ` [patch 2.6.15-mm4] sem2mutex: autofs4 wq_sem Ingo Molnar
2006-01-18  2:30 ` [netfilter-core] [patch 2.6.15-mm4] sem2mutex: netfilter x_table.c Patrick McHardy
2006-01-18  2:46   ` Andrew Morton
2006-01-18  8:15   ` Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).