07 Jan, 2009

1 commit


06 Jan, 2009

4 commits

  • If the iucv module is compiled in/loaded but no user is registered cpu
    hot remove doesn't work. Reason for that is that the iucv cpu hotplug
    notifier on CPU_DOWN_PREPARE checks if the iucv_buffer_cpumask would
    be empty after the corresponding bit would be cleared. However the bit
    was never set since iucv wasn't enable. That causes all cpu hot unplug
    operations to fail in this scenario.
    To fix this use iucv_path_table as an indicator wether iucv is enabled
    or not.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Heiko Carstens
     
  • Free iucv path after iucv_path_sever() calls in iucv_callback_connreq()
    (path_pending() iucv callback).
    If iucv_path_accept() fails, free path and free/kill newly created socket.

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Hendrik Brueckner
     
  • For certain types of AFIUCV socket connect failures IUCV connections
    are left over. Add some cleanup-statements to avoid cluttered IUCV
    connections.

    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • If the iucv_path_connect() call fails then return an error code that
    corresponds to the iucv_path_connect() failure condition; instead of
    returning -ECONNREFUSED for any failure.

    This helps to improve error handling for user space applications
    (e.g. inform the user that the z/VM guest is not authorized to
    connect to other guest virtual machines).

    The error return codes are based on those described in connect(2).

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Hendrik Brueckner
     

25 Dec, 2008

2 commits


30 Sep, 2008

1 commit

  • fb65a7c091529bfffb1262515252c0d0f6241c5c ("iucv: Fix bad merging.") fixed
    a merge error, but in a wrong way. We now end up with the bug below.
    This patch corrects the mismerge like it was intended.

    BUG: scheduling while atomic: swapper/1/0x00000000
    Modules linked in:
    CPU: 1 Not tainted 2.6.27-rc7-00094-gc0f4d6d #9
    Process swapper (pid: 1, task: 000000003fe7d988, ksp: 000000003fe838c0)
    0000000000000000 000000003fe839b8 0000000000000002 0000000000000000
    000000003fe83a58 000000003fe839d0 000000003fe839d0 0000000000390de6
    000000000058acd8 00000000000000d0 000000003fe7dcd8 0000000000000000
    000000000000000c 000000000000000d 0000000000000000 000000003fe83a28
    000000000039c5b8 0000000000015e5e 000000003fe839b8 000000003fe83a00
    Call Trace:
    ([] show_trace+0xe6/0x134)
    [] __schedule_bug+0xa2/0xa8
    [] schedule+0x49c/0x910
    [] schedule_timeout+0xc4/0x114
    [] wait_for_common+0xe8/0x1b4
    [] call_usermodehelper_exec+0xa6/0xec
    [] kobject_uevent_env+0x418/0x438
    [] bus_add_driver+0x1e4/0x298
    [] driver_register+0x90/0x18c
    [] netiucv_init+0x168/0x2c8
    [] do_one_initcall+0x3e/0x17c
    [] kernel_init+0x1ce/0x248
    [] kernel_thread_starter+0x6/0xc
    [] kernel_thread_starter+0x0/0xc
    iucv: NETIUCV driver initialized
    initcall netiucv_init+0x0/0x2c8 returned with preemption imbalance

    Signed-off-by: Heiko Carstens
    Signed-off-by: David S. Miller

    Heiko Carstens
     

21 Jul, 2008

2 commits


18 Jul, 2008

1 commit


16 Jul, 2008

2 commits

  • Conflicts:

    arch/x86/xen/smp.c
    kernel/sched_rt.c
    net/iucv/iucv.c

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Conflicts:

    arch/powerpc/Kconfig
    arch/s390/kernel/time.c
    arch/x86/kernel/apic_32.c
    arch/x86/kernel/cpu/perfctr-watchdog.c
    arch/x86/kernel/i8259_64.c
    arch/x86/kernel/ldt.c
    arch/x86/kernel/nmi_64.c
    arch/x86/kernel/smpboot.c
    arch/x86/xen/smp.c
    include/asm-x86/hw_irq_32.h
    include/asm-x86/hw_irq_64.h
    include/asm-x86/mach-default/irq_vectors.h
    include/asm-x86/mach-voyager/irq_vectors.h
    include/asm-x86/smp.h
    kernel/Makefile

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

15 Jul, 2008

1 commit


14 Jul, 2008

1 commit


26 Jun, 2008

2 commits


10 Jun, 2008

3 commits

  • The first 4 bytes of data to be sent are stored additionally into
    the message class field of the send request. A receiving target
    program (not an af_iucv socket program) can make use of this
    information to pre-screen incoming messages.

    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • The code used preempt_disable() to prevent cpu hotplug, however that
    doesn't protect for cpus being added. So use get_online_cpus() instead.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Heiko Carstens
     
  • WARNING: net/iucv/built-in.o(.exit.text+0x9c): Section mismatch in
    reference from the function iucv_exit() to the variable
    .cpuinit.data:iucv_cpu_notifier

    This warning is caused by a reference from unregister_hotcpu_notifier()
    from an exit function to a cpuinitdata annotated data structurre.
    This is a false positive warning since for the non CPU_HOTPLUG case
    unregister_hotcpu_notifier() is a nop.
    Use __refdata instead of __cpuinitdata to get rid of the warning.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Heiko Carstens
     

24 May, 2008

1 commit


10 Apr, 2008

3 commits


04 Mar, 2008

1 commit

  • Since a5fbb6d1064be885d2a6b82f625186753cf74848
    "KVM: fix !SMP build error" smp_call_function isn't a define anymore
    that folds into nothing but a define that calls up_smp_call_function
    with all parameters. Hence we cannot #ifdef out the unused code
    anymore...
    This seems to be the preferred method, so do this for s390 as well.

    net/iucv/iucv.c: In function 'iucv_cleanup_queue':
    net/iucv/iucv.c:657: error: '__iucv_cleanup_queue' undeclared

    Signed-off-by: Heiko Carstens
    Signed-off-by: Josef 'Jeff' Sipek
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Heiko Carstens
     

08 Feb, 2008

3 commits

  • The loop in iucv_callback_txdone presumes existence of an entry
    with msg->tag in the send_skb_q list. In error cases this
    assumption might be wrong and might cause an endless loop.
    Loop is rewritten to guarantee loop end in case of missing
    msg->tag entry in send_skb_q.

    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • A race has been detected in iucv_callback_txdone().
    skb_unlink has to be done inside the locked area.

    In addition checkings for successful allocations are inserted.

    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • Linux may hang when running af_iucv socket programs concurrently
    with a load of module netiucv. iucv_register() tries to take the
    iucv_table_lock with spin_lock_irq. This conflicts with
    iucv_connect() which has a need for an smp_call_function while
    holding the iucv_table_lock.
    Solution: use bh-disabling locking in iucv_register()

    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Ursula Braun
     

29 Jan, 2008

2 commits


20 Nov, 2007

1 commit

  • The iucv is the only user of the various functions that are used to bring
    parts of cpus up and down. Its the only allocpercpu user that will do
    I/O on per cpu objects (which is difficult to do with virtually mapped memory).
    And its the only use of allocpercpu where a GFP_DMA allocation is done.

    Remove the allocpercpu calls from iucv and code the allocation and freeing
    manually. After this patch it is possible to remove a large part of
    the allocpercpu API.

    Signed-off-by: Christoph Lameter
    Signed-off-by: Martin Schwidefsky

    Christoph Lameter
     

01 Nov, 2007

1 commit

  • Finally, the zero_it argument can be completely removed from
    the callers and from the function prototype.

    Besides, fix the checkpatch.pl warnings about using the
    assignments inside if-s.

    This patch is rather big, and it is a part of the previous one.
    I splitted it wishing to make the patches more readable. Hope
    this particular split helped.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     

20 Oct, 2007

1 commit


11 Oct, 2007

3 commits

  • AF_IUCV socket programs may waste Linux storage, because af_iucv
    allocates an skb whenever posted by the receive callback routine and
    receives the message immediately.
    Message receival is now postponed if data from previous callbacks has
    not yet been transferred to the receiving socket program. Instead a
    message handle is saved in a message queue as a reminder. Once
    messages could be given to the receiving socket program, there is
    an additional checking for entries in the message queue, followed
    by skb allocation and message receival if applicable.

    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • Signed-off-by: Heiko Carstens
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Heiko Carstens
     
  • This patch passes in the namespace a new socket should be created in
    and has the socket code do the appropriate reference counting. By
    virtue of this all socket create methods are touched. In addition
    the socket create methods are modified so that they will fail if
    you attempt to create a socket in a non-default network namespace.

    Failing if we attempt to create a socket outside of the default
    network namespace ensures that as we incrementally make the network stack
    network namespace aware we will not export functionality that someone
    has not audited and made certain is network namespace safe.
    Allowing us to partially enable network namespaces before all of the
    exotic protocols are supported.

    Any protocol layers I have missed will fail to compile because I now
    pass an extra parameter into the socket creation code.

    [ Integrated AF_IUCV build fixes from Andrew Morton... -DaveM ]

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     

27 Jul, 2007

1 commit


15 Jul, 2007

3 commits