[PATCH] fix boot hang on some architectures

From: James Bottomley
Date: Sat Apr 02 2005 - 14:47:23 EST


Well, this is a brown paper bag for someone. The new protocol
registration locking uses a rwlock to limit access to the protocol list.
Unfortunately, the initialisation:

static rwlock_t proto_list_lock;

Only works to initialise the lock as unlocked on platforms whose unlock
signal is all zeros. On other platforms, they think it's already locked
and hang forever.

Signed-off-by: James Bottomley <James.Bottomley@xxxxxxxxxxxx>


===== net/core/sock.c 1.67 vs edited =====
--- 1.67/net/core/sock.c 2005-03-26 17:04:35 -06:00
+++ edited/net/core/sock.c 2005-04-02 13:37:20 -06:00
@@ -1352,7 +1352,7 @@

EXPORT_SYMBOL(sk_common_release);

-static rwlock_t proto_list_lock;
+static DEFINE_RWLOCK(proto_list_lock);
static LIST_HEAD(proto_list);

int proto_register(struct proto *prot, int alloc_slab)


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/