Merge branch 'linus' into cpus4096
Conflicts: arch/x86/xen/smp.c kernel/sched_rt.c net/iucv/iucv.c Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -1135,8 +1135,7 @@ static void iucv_callback_txdone(struct iucv_path *path,
|
||||
if (this)
|
||||
kfree_skb(this);
|
||||
}
|
||||
if (!this)
|
||||
printk(KERN_ERR "AF_IUCV msg tag %u not found\n", msg->tag);
|
||||
BUG_ON(!this);
|
||||
|
||||
if (sk->sk_state == IUCV_CLOSING) {
|
||||
if (skb_queue_empty(&iucv_sk(sk)->send_skb_q)) {
|
||||
@@ -1196,7 +1195,7 @@ static int __init afiucv_init(void)
|
||||
}
|
||||
cpcmd("QUERY USERID", iucv_userid, sizeof(iucv_userid), &err);
|
||||
if (unlikely(err)) {
|
||||
printk(KERN_ERR "AF_IUCV needs the VM userid\n");
|
||||
WARN_ON(err);
|
||||
err = -EPROTONOSUPPORT;
|
||||
goto out;
|
||||
}
|
||||
@@ -1210,7 +1209,6 @@ static int __init afiucv_init(void)
|
||||
err = sock_register(&iucv_sock_family_ops);
|
||||
if (err)
|
||||
goto out_proto;
|
||||
printk(KERN_INFO "AF_IUCV lowlevel driver initialized\n");
|
||||
return 0;
|
||||
|
||||
out_proto:
|
||||
@@ -1226,8 +1224,6 @@ static void __exit afiucv_exit(void)
|
||||
sock_unregister(PF_IUCV);
|
||||
proto_unregister(&iucv_proto);
|
||||
iucv_unregister(&af_iucv_handler, 0);
|
||||
|
||||
printk(KERN_INFO "AF_IUCV lowlevel driver unloaded\n");
|
||||
}
|
||||
|
||||
module_init(afiucv_init);
|
||||
|
@@ -480,7 +480,7 @@ static void iucv_setmask_mp(void)
|
||||
if (cpu_isset(cpu, iucv_buffer_cpumask) &&
|
||||
!cpu_isset(cpu, iucv_irq_cpumask))
|
||||
smp_call_function_single(cpu, iucv_allow_cpu,
|
||||
NULL, 0, 1);
|
||||
NULL, 1);
|
||||
preempt_enable();
|
||||
}
|
||||
|
||||
@@ -498,7 +498,7 @@ static void iucv_setmask_up(void)
|
||||
cpumask = iucv_irq_cpumask;
|
||||
cpu_clear(first_cpu(iucv_irq_cpumask), cpumask);
|
||||
for_each_cpu_mask_nr(cpu, cpumask)
|
||||
smp_call_function_single(cpu, iucv_block_cpu, NULL, 0, 1);
|
||||
smp_call_function_single(cpu, iucv_block_cpu, NULL, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -523,7 +523,7 @@ static int iucv_enable(void)
|
||||
rc = -EIO;
|
||||
preempt_disable();
|
||||
for_each_online_cpu(cpu)
|
||||
smp_call_function_single(cpu, iucv_declare_cpu, NULL, 0, 1);
|
||||
smp_call_function_single(cpu, iucv_declare_cpu, NULL, 1);
|
||||
preempt_enable();
|
||||
if (cpus_empty(iucv_buffer_cpumask))
|
||||
/* No cpu could declare an iucv buffer. */
|
||||
@@ -545,7 +545,7 @@ out:
|
||||
*/
|
||||
static void iucv_disable(void)
|
||||
{
|
||||
on_each_cpu(iucv_retrieve_cpu, NULL, 0, 1);
|
||||
on_each_cpu(iucv_retrieve_cpu, NULL, 1);
|
||||
kfree(iucv_path_table);
|
||||
}
|
||||
|
||||
@@ -580,7 +580,7 @@ static int __cpuinit iucv_cpu_notify(struct notifier_block *self,
|
||||
case CPU_ONLINE_FROZEN:
|
||||
case CPU_DOWN_FAILED:
|
||||
case CPU_DOWN_FAILED_FROZEN:
|
||||
smp_call_function_single(cpu, iucv_declare_cpu, NULL, 0, 1);
|
||||
smp_call_function_single(cpu, iucv_declare_cpu, NULL, 1);
|
||||
break;
|
||||
case CPU_DOWN_PREPARE:
|
||||
case CPU_DOWN_PREPARE_FROZEN:
|
||||
@@ -589,10 +589,10 @@ static int __cpuinit iucv_cpu_notify(struct notifier_block *self,
|
||||
if (cpus_empty(cpumask))
|
||||
/* Can't offline last IUCV enabled cpu. */
|
||||
return NOTIFY_BAD;
|
||||
smp_call_function_single(cpu, iucv_retrieve_cpu, NULL, 0, 1);
|
||||
smp_call_function_single(cpu, iucv_retrieve_cpu, NULL, 1);
|
||||
if (cpus_empty(iucv_irq_cpumask))
|
||||
smp_call_function_single(first_cpu(iucv_buffer_cpumask),
|
||||
iucv_allow_cpu, NULL, 0, 1);
|
||||
iucv_allow_cpu, NULL, 1);
|
||||
break;
|
||||
}
|
||||
return NOTIFY_OK;
|
||||
@@ -652,7 +652,7 @@ static void iucv_cleanup_queue(void)
|
||||
* pending interrupts force them to the work queue by calling
|
||||
* an empty function on all cpus.
|
||||
*/
|
||||
smp_call_function(__iucv_cleanup_queue, NULL, 0, 1);
|
||||
smp_call_function(__iucv_cleanup_queue, NULL, 1);
|
||||
spin_lock_irq(&iucv_queue_lock);
|
||||
list_for_each_entry_safe(p, n, &iucv_task_queue, list) {
|
||||
/* Remove stale work items from the task queue. */
|
||||
@@ -1559,16 +1559,11 @@ static void iucv_external_interrupt(u16 code)
|
||||
|
||||
p = iucv_irq_data[smp_processor_id()];
|
||||
if (p->ippathid >= iucv_max_pathid) {
|
||||
printk(KERN_WARNING "iucv_do_int: Got interrupt with "
|
||||
"pathid %d > max_connections (%ld)\n",
|
||||
p->ippathid, iucv_max_pathid - 1);
|
||||
WARN_ON(p->ippathid >= iucv_max_pathid);
|
||||
iucv_sever_pathid(p->ippathid, iucv_error_no_listener);
|
||||
return;
|
||||
}
|
||||
if (p->iptype < 0x01 || p->iptype > 0x09) {
|
||||
printk(KERN_ERR "iucv_do_int: unknown iucv interrupt\n");
|
||||
return;
|
||||
}
|
||||
BUG_ON(p->iptype < 0x01 || p->iptype > 0x09);
|
||||
work = kmalloc(sizeof(struct iucv_irq_list), GFP_ATOMIC);
|
||||
if (!work) {
|
||||
printk(KERN_WARNING "iucv_external_interrupt: out of memory\n");
|
||||
|
مرجع در شماره جدید
Block a user