Skip to contentSkip to conversation

iucv / af_iucv patches for net-2.6.26

PATCH Applied Ursula Braun 2 participants 7 messages Apr 1, 2008 – Apr 10, 2008

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

cover iucv / af_iucv patches for net-2.6.26

Signature · 10 lines
Dave,

the following 3 patches are intended for 2.6.26.
They are built against git/davem/net-2.6.26.
They contain:
af_iucv: usage of newer non-deprecated __RW_LOCK_UNLOCKED macro
iucv:    get rid of in_atomic() use
iucv:    delay bus registration until core is ready

Regards, Ursula
#1 lore raw

PATCH 1/3 af_iucv: Use non-deprecated __RW_LOCK_UNLOCKED macro.

From: Robert P. J. Day <[email protected]>

---

 net/iucv/af_iucv.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
net/iucv/af_iucv.c +1 -1
Index: net-2.6.26-uschi/net/iucv/af_iucv.c
===================================================================
@@ -53,7 +53,7 @@ static int iucv_callback_connreq(struct 
 static void iucv_callback_connrej(struct iucv_path *, u8 ipuser[16]);
 
 static struct iucv_sock_list iucv_sk_list = {
-	.lock = RW_LOCK_UNLOCKED,
+	.lock = __RW_LOCK_UNLOCKED(iucv_sk_list.lock),
 	.autobind_name = ATOMIC_INIT(0)
 };
 
#3 lore raw

PATCH 2/3 iucv: get rid of in_atomic() use.

In reply to Ursula Braun

From: Heiko Carstens <[email protected]>

This BUG_ON is not needed, since all (debug) checks are also done in smp_call_function() which gets called by this function.

---

 net/iucv/iucv.c |    1 -
 1 file changed, 1 deletion(-)
net/iucv/iucv.c +0 -1
Index: net-2.6.26-uschi/net/iucv/iucv.c
===================================================================
@@ -795,7 +795,6 @@ int iucv_path_connect(struct iucv_path *
 	union iucv_param *parm;
 	int rc;
 
-	BUG_ON(in_atomic());
 	spin_lock_bh(&iucv_table_lock);
 	iucv_cleanup_queue();
 	parm = iucv_param[smp_processor_id()];
#5 lore raw

PATCH 3/3 iucv: Delay bus registration until core is ready.

In reply to Ursula Braun

From: Cornelia Huck <[email protected]>

If we register the iucv bus after the infrastructure is ready, userspace can start relying on it when it receives the uevent for the bus.

---

 net/iucv/iucv.c |   16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)
net/iucv/iucv.c +9 -7
Index: net-2.6.26-uschi/net/iucv/iucv.c
===================================================================
@@ -1608,13 +1608,10 @@ static int __init iucv_init(void)
 	rc = register_external_interrupt(0x4000, iucv_external_interrupt);
 	if (rc)
 		goto out;
-	rc = bus_register(&iucv_bus);
-	if (rc)
-		goto out_int;
 	iucv_root = s390_root_dev_register("iucv");
 	if (IS_ERR(iucv_root)) {
 		rc = PTR_ERR(iucv_root);
-		goto out_bus;
+		goto out_int;
 	}
 
 	for_each_online_cpu(cpu) {
@@ -1634,13 +1631,20 @@ static int __init iucv_init(void)
 			goto out_free;
 		}
 	}
-	register_hotcpu_notifier(&iucv_cpu_notifier);
+	rc = register_hotcpu_notifier(&iucv_cpu_notifier);
+	if (rc)
+		goto out_free;
 	ASCEBC(iucv_error_no_listener, 16);
 	ASCEBC(iucv_error_no_memory, 16);
 	ASCEBC(iucv_error_pathid, 16);
 	iucv_available = 1;
+	rc = bus_register(&iucv_bus);
+	if (rc)
+		goto out_cpu;
 	return 0;
 
+out_cpu:
+	unregister_hotcpu_notifier(&iucv_cpu_notifier);
 out_free:
 	for_each_possible_cpu(cpu) {
 		kfree(iucv_param[cpu]);
@@ -1649,8 +1653,6 @@ out_free:
 		iucv_irq_data[cpu] = NULL;
 	}
 	s390_root_dev_unregister(iucv_root);
-out_bus:
-	bus_unregister(&iucv_bus);
 out_int:
 	unregister_external_interrupt(0x4000, iucv_external_interrupt);
 out:
maintainer
#6 lore raw

Re: [patch 3/3] iucv: Delay bus registration until core is ready.

From: Ursula Braun <[email protected]>
Date: Tue, 01 Apr 2008 15:45:24 +0200

Quoted 9 lines

From: Cornelia Huck <[email protected]>

If we register the iucv bus after the infrastructure is ready, userspace can start relying on it when it receives the uevent for the bus.

Also applied, thanks.