linux/drivers/s390
Cornelia Huck 6eff208f47 [S390] cio: Fix I/O subchannel refcounting.
Subchannel refcounting was incorrect in some places, especially
a refcount was missing when ccw_device_call_sch_unregister()
was called and the refcount was not correctly switched after
moving devices.

Fix this by establishing the following rules:
- The ccw_device obtains a reference on its parent subchannel
  when dev.parent is set and gives it up in its release
  function. This is needed because we need a parent reference
  for correct refcounting even before the ccw device is (if at
  all) registered.
- When calling device_move(), obtain a reference on the new
  subchannel before moving the ccw device and give up the
  reference on the old parent after moving. This brings the
  refcount in line with the first rule.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2008-12-25 13:39:08 +01:00
..
block [S390] struct device - replace bus_id with dev_name(), dev_set_name() 2008-12-25 13:39:03 +01:00
char [S390] vmcp: remove BKL 2008-12-25 13:38:54 +01:00
cio [S390] cio: Fix I/O subchannel refcounting. 2008-12-25 13:39:08 +01:00
crypto [S390] ap: Minor code beautification. 2008-12-25 13:38:57 +01:00
kvm [S390] kvm_s390: Fix oops in virtio device detection with "mem=" 2008-11-14 18:18:52 +01:00
net [S390] service level interface. 2008-12-25 13:39:00 +01:00
scsi [S390] struct device - replace bus_id with dev_name(), dev_set_name() 2008-12-25 13:39:03 +01:00
ebcdic.c
Makefile s390: KVM guest: virtio device support, and kvm hypercalls 2008-04-27 12:00:51 +03:00
s390_rdev.c [S390] bus_id -> dev_set_name() changes 2008-10-10 21:33:50 +02:00
s390mach.c [S390] stp support. 2008-07-14 10:02:09 +02:00
s390mach.h [S390] stp support. 2008-07-14 10:02:09 +02:00
sysinfo.c [S390] service level interface. 2008-12-25 13:39:00 +01:00