android_kernel_google_msm/drivers/s390/cio
Sebastian Ott 4305c46a62 s390/cio: fix pgid reserved check
commit d99e79ec55 upstream.

The check to whom a device is reserved is done by checking the path
state of the affected channel paths. If it turns out that one path is
flagged as reserved by someone else the whole device is marked as such.

However the meaning of the RESVD_ELSE bit is that the addressed device
is reserved to a different pathgroup (and not reserved to a different
LPAR). If we do this test on a path which is currently not a member of
the pathgroup we could erroneously mark the device as reserved to
someone else.

To fix this collect the reserved state for all potential members of the
pathgroup and only mark the device as reserved if all of those potential
members have the RESVD_ELSE bit set.

Acked-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-17 08:50:42 -08:00
..
airq.c
blacklist.c
blacklist.h
ccwgroup.c cio: remove {get,put}_driver 2012-01-24 16:00:35 -08:00
ccwreq.c
chp.c s390: add missing module.h/export.h includes 2011-10-31 19:30:58 -04:00
chp.h
chsc.c [S390] cio: fix chsc_chp_vary 2011-12-01 13:32:18 +01:00
chsc.h
chsc_sch.c compat: fix compile breakage on s390 2012-02-27 07:54:27 -08:00
chsc_sch.h
cio.c [S390] rework idle code 2012-03-11 11:59:28 -04:00
cio.h [S390] hibernate: directly trigger subchannel evaluation 2011-12-01 13:32:17 +01:00
cio_debug.h
cmf.c module_param: avoid bool abuse, add bint for special cases. 2012-01-13 09:32:17 +10:30
crw.c Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
css.c [S390] hibernate: directly trigger subchannel evaluation 2011-12-01 13:32:17 +01:00
css.h
device.c cio: remove {get,put}_driver 2012-01-24 16:00:35 -08:00
device.h
device_fsm.c [S390] cio: provide fake irb for transport mode IO 2011-12-01 13:32:18 +01:00
device_id.c
device_ops.c [S390] cio: provide fake irb for transport mode IO 2011-12-01 13:32:18 +01:00
device_pgid.c s390/cio: fix pgid reserved check 2013-01-17 08:50:42 -08:00
device_status.c
fcx.c
idset.c
idset.h
io_sch.h [S390] cio: provide fake irb for transport mode IO 2011-12-01 13:32:18 +01:00
ioasm.h
isc.c
itcw.c
Makefile
orb.h
qdio.h [S390] qdio: prevent dsci access without adapter interrupts 2011-10-30 15:16:47 +01:00
qdio_debug.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
qdio_debug.h
qdio_main.c [S390] qdio: log all adapter characteristics 2012-03-23 11:13:24 +01:00
qdio_setup.c [S390] qdio: log all adapter characteristics 2012-03-23 11:13:24 +01:00
qdio_thinint.c [S390] qdio: prevent dsci access without adapter interrupts 2011-10-30 15:16:47 +01:00