diff options
author | David S. Miller <davem@davemloft.net> | 2008-07-18 05:39:39 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-18 05:39:39 -0400 |
commit | 49997d75152b3d23c53b0fa730599f2f74c92c65 (patch) | |
tree | 46e93126170d02cfec9505172e545732c1b69656 /net/iucv | |
parent | a0c80b80e0fb48129e4e9d6a9ede914f9ff1850d (diff) | |
parent | 5b664cb235e97afbf34db9c4d77f08ebd725335e (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
Documentation/powerpc/booting-without-of.txt
drivers/atm/Makefile
drivers/net/fs_enet/fs_enet-main.c
drivers/pci/pci-acpi.c
net/8021q/vlan.c
net/iucv/iucv.c
Diffstat (limited to 'net/iucv')
-rw-r--r-- | net/iucv/af_iucv.c | 8 | ||||
-rw-r--r-- | net/iucv/iucv.c | 30 |
2 files changed, 19 insertions, 19 deletions
diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c index 58e4aee3e696..29f7baa25110 100644 --- a/net/iucv/af_iucv.c +++ b/net/iucv/af_iucv.c | |||
@@ -1136,8 +1136,7 @@ static void iucv_callback_txdone(struct iucv_path *path, | |||
1136 | if (this) | 1136 | if (this) |
1137 | kfree_skb(this); | 1137 | kfree_skb(this); |
1138 | } | 1138 | } |
1139 | if (!this) | 1139 | BUG_ON(!this); |
1140 | printk(KERN_ERR "AF_IUCV msg tag %u not found\n", msg->tag); | ||
1141 | 1140 | ||
1142 | if (sk->sk_state == IUCV_CLOSING) { | 1141 | if (sk->sk_state == IUCV_CLOSING) { |
1143 | if (skb_queue_empty(&iucv_sk(sk)->send_skb_q)) { | 1142 | if (skb_queue_empty(&iucv_sk(sk)->send_skb_q)) { |
@@ -1197,7 +1196,7 @@ static int __init afiucv_init(void) | |||
1197 | } | 1196 | } |
1198 | cpcmd("QUERY USERID", iucv_userid, sizeof(iucv_userid), &err); | 1197 | cpcmd("QUERY USERID", iucv_userid, sizeof(iucv_userid), &err); |
1199 | if (unlikely(err)) { | 1198 | if (unlikely(err)) { |
1200 | printk(KERN_ERR "AF_IUCV needs the VM userid\n"); | 1199 | WARN_ON(err); |
1201 | err = -EPROTONOSUPPORT; | 1200 | err = -EPROTONOSUPPORT; |
1202 | goto out; | 1201 | goto out; |
1203 | } | 1202 | } |
@@ -1211,7 +1210,6 @@ static int __init afiucv_init(void) | |||
1211 | err = sock_register(&iucv_sock_family_ops); | 1210 | err = sock_register(&iucv_sock_family_ops); |
1212 | if (err) | 1211 | if (err) |
1213 | goto out_proto; | 1212 | goto out_proto; |
1214 | printk(KERN_INFO "AF_IUCV lowlevel driver initialized\n"); | ||
1215 | return 0; | 1213 | return 0; |
1216 | 1214 | ||
1217 | out_proto: | 1215 | out_proto: |
@@ -1227,8 +1225,6 @@ static void __exit afiucv_exit(void) | |||
1227 | sock_unregister(PF_IUCV); | 1225 | sock_unregister(PF_IUCV); |
1228 | proto_unregister(&iucv_proto); | 1226 | proto_unregister(&iucv_proto); |
1229 | iucv_unregister(&af_iucv_handler, 0); | 1227 | iucv_unregister(&af_iucv_handler, 0); |
1230 | |||
1231 | printk(KERN_INFO "AF_IUCV lowlevel driver unloaded\n"); | ||
1232 | } | 1228 | } |
1233 | 1229 | ||
1234 | module_init(afiucv_init); | 1230 | module_init(afiucv_init); |
diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c index d8e0635aace0..a598c7384840 100644 --- a/net/iucv/iucv.c +++ b/net/iucv/iucv.c | |||
@@ -480,7 +480,7 @@ static void iucv_setmask_mp(void) | |||
480 | if (cpu_isset(cpu, iucv_buffer_cpumask) && | 480 | if (cpu_isset(cpu, iucv_buffer_cpumask) && |
481 | !cpu_isset(cpu, iucv_irq_cpumask)) | 481 | !cpu_isset(cpu, iucv_irq_cpumask)) |
482 | smp_call_function_single(cpu, iucv_allow_cpu, | 482 | smp_call_function_single(cpu, iucv_allow_cpu, |
483 | NULL, 0, 1); | 483 | NULL, 1); |
484 | put_online_cpus(); | 484 | put_online_cpus(); |
485 | } | 485 | } |
486 | 486 | ||
@@ -498,7 +498,7 @@ static void iucv_setmask_up(void) | |||
498 | cpumask = iucv_irq_cpumask; | 498 | cpumask = iucv_irq_cpumask; |
499 | cpu_clear(first_cpu(iucv_irq_cpumask), cpumask); | 499 | cpu_clear(first_cpu(iucv_irq_cpumask), cpumask); |
500 | for_each_cpu_mask(cpu, cpumask) | 500 | for_each_cpu_mask(cpu, cpumask) |
501 | smp_call_function_single(cpu, iucv_block_cpu, NULL, 0, 1); | 501 | smp_call_function_single(cpu, iucv_block_cpu, NULL, 1); |
502 | } | 502 | } |
503 | 503 | ||
504 | /** | 504 | /** |
@@ -523,7 +523,12 @@ static int iucv_enable(void) | |||
523 | rc = -EIO; | 523 | rc = -EIO; |
524 | get_online_cpus(); | 524 | get_online_cpus(); |
525 | for_each_online_cpu(cpu) | 525 | for_each_online_cpu(cpu) |
526 | <<<<<<< HEAD:net/iucv/iucv.c | ||
526 | smp_call_function_single(cpu, iucv_declare_cpu, NULL, 0, 1); | 527 | smp_call_function_single(cpu, iucv_declare_cpu, NULL, 0, 1); |
528 | ======= | ||
529 | smp_call_function_single(cpu, iucv_declare_cpu, NULL, 1); | ||
530 | preempt_enable(); | ||
531 | >>>>>>> 5b664cb235e97afbf34db9c4d77f08ebd725335e:net/iucv/iucv.c | ||
527 | if (cpus_empty(iucv_buffer_cpumask)) | 532 | if (cpus_empty(iucv_buffer_cpumask)) |
528 | /* No cpu could declare an iucv buffer. */ | 533 | /* No cpu could declare an iucv buffer. */ |
529 | goto out_path; | 534 | goto out_path; |
@@ -546,9 +551,13 @@ out: | |||
546 | */ | 551 | */ |
547 | static void iucv_disable(void) | 552 | static void iucv_disable(void) |
548 | { | 553 | { |
554 | <<<<<<< HEAD:net/iucv/iucv.c | ||
549 | get_online_cpus(); | 555 | get_online_cpus(); |
550 | on_each_cpu(iucv_retrieve_cpu, NULL, 0, 1); | 556 | on_each_cpu(iucv_retrieve_cpu, NULL, 0, 1); |
551 | put_online_cpus(); | 557 | put_online_cpus(); |
558 | ======= | ||
559 | on_each_cpu(iucv_retrieve_cpu, NULL, 1); | ||
560 | >>>>>>> 5b664cb235e97afbf34db9c4d77f08ebd725335e:net/iucv/iucv.c | ||
552 | kfree(iucv_path_table); | 561 | kfree(iucv_path_table); |
553 | } | 562 | } |
554 | 563 | ||
@@ -586,7 +595,7 @@ static int __cpuinit iucv_cpu_notify(struct notifier_block *self, | |||
586 | case CPU_ONLINE_FROZEN: | 595 | case CPU_ONLINE_FROZEN: |
587 | case CPU_DOWN_FAILED: | 596 | case CPU_DOWN_FAILED: |
588 | case CPU_DOWN_FAILED_FROZEN: | 597 | case CPU_DOWN_FAILED_FROZEN: |
589 | smp_call_function_single(cpu, iucv_declare_cpu, NULL, 0, 1); | 598 | smp_call_function_single(cpu, iucv_declare_cpu, NULL, 1); |
590 | break; | 599 | break; |
591 | case CPU_DOWN_PREPARE: | 600 | case CPU_DOWN_PREPARE: |
592 | case CPU_DOWN_PREPARE_FROZEN: | 601 | case CPU_DOWN_PREPARE_FROZEN: |
@@ -595,10 +604,10 @@ static int __cpuinit iucv_cpu_notify(struct notifier_block *self, | |||
595 | if (cpus_empty(cpumask)) | 604 | if (cpus_empty(cpumask)) |
596 | /* Can't offline last IUCV enabled cpu. */ | 605 | /* Can't offline last IUCV enabled cpu. */ |
597 | return NOTIFY_BAD; | 606 | return NOTIFY_BAD; |
598 | smp_call_function_single(cpu, iucv_retrieve_cpu, NULL, 0, 1); | 607 | smp_call_function_single(cpu, iucv_retrieve_cpu, NULL, 1); |
599 | if (cpus_empty(iucv_irq_cpumask)) | 608 | if (cpus_empty(iucv_irq_cpumask)) |
600 | smp_call_function_single(first_cpu(iucv_buffer_cpumask), | 609 | smp_call_function_single(first_cpu(iucv_buffer_cpumask), |
601 | iucv_allow_cpu, NULL, 0, 1); | 610 | iucv_allow_cpu, NULL, 1); |
602 | break; | 611 | break; |
603 | } | 612 | } |
604 | return NOTIFY_OK; | 613 | return NOTIFY_OK; |
@@ -658,7 +667,7 @@ static void iucv_cleanup_queue(void) | |||
658 | * pending interrupts force them to the work queue by calling | 667 | * pending interrupts force them to the work queue by calling |
659 | * an empty function on all cpus. | 668 | * an empty function on all cpus. |
660 | */ | 669 | */ |
661 | smp_call_function(__iucv_cleanup_queue, NULL, 0, 1); | 670 | smp_call_function(__iucv_cleanup_queue, NULL, 1); |
662 | spin_lock_irq(&iucv_queue_lock); | 671 | spin_lock_irq(&iucv_queue_lock); |
663 | list_for_each_entry_safe(p, n, &iucv_task_queue, list) { | 672 | list_for_each_entry_safe(p, n, &iucv_task_queue, list) { |
664 | /* Remove stale work items from the task queue. */ | 673 | /* Remove stale work items from the task queue. */ |
@@ -1565,16 +1574,11 @@ static void iucv_external_interrupt(u16 code) | |||
1565 | 1574 | ||
1566 | p = iucv_irq_data[smp_processor_id()]; | 1575 | p = iucv_irq_data[smp_processor_id()]; |
1567 | if (p->ippathid >= iucv_max_pathid) { | 1576 | if (p->ippathid >= iucv_max_pathid) { |
1568 | printk(KERN_WARNING "iucv_do_int: Got interrupt with " | 1577 | WARN_ON(p->ippathid >= iucv_max_pathid); |
1569 | "pathid %d > max_connections (%ld)\n", | ||
1570 | p->ippathid, iucv_max_pathid - 1); | ||
1571 | iucv_sever_pathid(p->ippathid, iucv_error_no_listener); | 1578 | iucv_sever_pathid(p->ippathid, iucv_error_no_listener); |
1572 | return; | 1579 | return; |
1573 | } | 1580 | } |
1574 | if (p->iptype < 0x01 || p->iptype > 0x09) { | 1581 | BUG_ON(p->iptype < 0x01 || p->iptype > 0x09); |
1575 | printk(KERN_ERR "iucv_do_int: unknown iucv interrupt\n"); | ||
1576 | return; | ||
1577 | } | ||
1578 | work = kmalloc(sizeof(struct iucv_irq_list), GFP_ATOMIC); | 1582 | work = kmalloc(sizeof(struct iucv_irq_list), GFP_ATOMIC); |
1579 | if (!work) { | 1583 | if (!work) { |
1580 | printk(KERN_WARNING "iucv_external_interrupt: out of memory\n"); | 1584 | printk(KERN_WARNING "iucv_external_interrupt: out of memory\n"); |