07 Jan, 2009
1 commit
-
Replace s390_root_dev_register() with root_device_register() etc.
[Includes fix from Cornelia Huck]
Signed-off-by: Mark McLoughlin
Cc: Cornelia Huck
Signed-off-by: Greg Kroah-Hartman
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 -
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 -
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 -
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
25 Dec, 2008
2 commits
-
Signed-off-by: Ursula Braun
Signed-off-by: Martin Schwidefsky -
Provide a locking free version of iucv_message_receive and iucv_message_send
that do not call local_bh_enable in a spin_lock_(bh|irqsave)() context.Signed-off-by: Hendrik Brueckner
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 imbalanceSigned-off-by: Heiko Carstens
Signed-off-by: David S. Miller
21 Jul, 2008
2 commits
-
Conflicts:
net/sunrpc/svc.c
Signed-off-by: Ingo Molnar
-
Noticed by Stephen Rothwell.
Signed-off-by: David S. Miller
18 Jul, 2008
1 commit
-
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
16 Jul, 2008
2 commits
-
Conflicts:
arch/x86/xen/smp.c
kernel/sched_rt.c
net/iucv/iucv.cSigned-off-by: 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/MakefileSigned-off-by: Ingo Molnar
15 Jul, 2008
1 commit
-
Fix memory leak in error path in CPU_UP_PREPARE notifier.
Signed-off-by: Akinobu Mita
Signed-off-by: David S. Miller
14 Jul, 2008
1 commit
-
Cc: David S. Miller
Signed-off-by: Ursula Braun
Signed-off-by: Martin Schwidefsky
Signed-off-by: Heiko Carstens
26 Jun, 2008
2 commits
-
It's not even passed on to smp_call_function() anymore, since that
was removed. So kill it.Acked-by: Jeremy Fitzhardinge
Reviewed-by: Paul E. McKenney
Signed-off-by: Jens Axboe -
It's never used and the comments refer to nonatomic and retry
interchangably. So get rid of it.Acked-by: Jeremy Fitzhardinge
Signed-off-by: Jens Axboe
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 -
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 -
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_notifierThis 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
24 May, 2008
1 commit
-
Change references from for_each_cpu_mask to for_each_cpu_mask_nr
where appropriateReviewed-by: Paul Jackson
Reviewed-by: Christoph Lameter
Signed-off-by: Mike Travis
Signed-off-by: Ingo Molnar
Signed-off-by: Thomas Gleixner
10 Apr, 2008
3 commits
-
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.Signed-off-by: Cornelia Huck
Signed-off-by: Heiko Carstens
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
This BUG_ON is not needed, since all (debug) checks are also done
in smp_call_function() which gets called by this function.Signed-off-by: Heiko Carstens
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
Signed-off-by: Robert P. J. Day
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller
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' undeclaredSigned-off-by: Heiko Carstens
Signed-off-by: Josef 'Jeff' Sipek
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller
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 -
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 -
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
29 Jan, 2008
2 commits
-
these three list_head are all local variables, but can also use
LIST_HEAD.Signed-off-by: Denis Cheng
Signed-off-by: David S. Miller -
Many-many code in the kernel initialized the timer->function
and timer->data together with calling init_timer(timer). There
is already a helper for this. Use it for networking code.The patch is HUGE, but makes the code 130 lines shorter
(98 insertions(+), 228 deletions(-)).Signed-off-by: Pavel Emelyanov
Acked-by: Arnaldo Carvalho de Melo
Signed-off-by: David S. Miller
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
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
20 Oct, 2007
1 commit
-
Fix the various misspellings of "system", controller", "interrupt" and
"[un]necessary".Signed-off-by: Robert P. J. Day
Signed-off-by: Adrian Bunk
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 -
Signed-off-by: Heiko Carstens
Signed-off-by: Ursula Braun
Signed-off-by: David S. Miller -
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
27 Jul, 2007
1 commit
-
smp_call_function_single now has the same semantics as s390's
smp_call_function_on. Therefore convert to the *single variant
and get rid of some architecture specific code.Signed-off-by: Heiko Carstens
Signed-off-by: Martin Schwidefsky
15 Jul, 2007
3 commits
-
The accept_queue of an af_iucv socket will be corrupted, if
adding and deleting of entries in this queue occurs at the
same time (connect request from one client, while accept call
is processed for another client).
Solution: add locking when updating accept_qSigned-off-by: Ursula Braun
Acked-by: Frank Pavlic
Signed-off-by: David S. Miller -
An iucv deadlock may occur, where one CPU is spinning on the
iucv_table_lock for iucv_tasklet_fn(), while another CPU is holding
the iucv_table_lock for an iucv_path_connect() and is waiting for
the first CPU in an smp_call_function.
Solution: replace spin_lock in iucv_tasklet_fn by spin_trylock and
reschedule tasklet in case of non-granted lock.Signed-off-by: Ursula Braun
Acked-by: Frank Pavlic
Signed-off-by: David S. Miller -
Signed-off-by: Jennifer Hunt
Signed-off-by: Ursula Braun >braunu@de.ibm.com>
Acked-by: Frank Pavlic
Signed-off-by: David S. Miller