summaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio
diff options
context:
space:
mode:
authorPeter Oberparleiter <peter.oberparleiter@de.ibm.com>2007-04-27 16:01:29 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2007-04-27 16:01:39 +0200
commitc9182e0f42c5646e670c2166b6d6638052d574af (patch)
treee00c9d7553302265e388d3a7732bfb596cb7daf3 /drivers/s390/cio
parente6b6e10ac1de116fc6d2288f185393014851cccf (diff)
downloadlinux-c9182e0f42c5646e670c2166b6d6638052d574af.tar.gz
linux-c9182e0f42c5646e670c2166b6d6638052d574af.tar.bz2
linux-c9182e0f42c5646e670c2166b6d6638052d574af.zip
[S390] cio: observe chpid valid flag
Check validity flag of CHPID description data before continuing with channel-path initialization. Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio')
-rw-r--r--drivers/s390/cio/chp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/s390/cio/chp.c b/drivers/s390/cio/chp.c
index 6e04521accd8..8a5839147f8a 100644
--- a/drivers/s390/cio/chp.c
+++ b/drivers/s390/cio/chp.c
@@ -339,6 +339,10 @@ int chp_new(struct chp_id chpid)
ret = chsc_determine_channel_path_description(chpid, &chp->desc);
if (ret)
goto out_free;
+ if ((chp->desc.flags & 0x80) == 0) {
+ ret = -ENODEV;
+ goto out_free;
+ }
/* Get channel-measurement characteristics. */
if (css_characteristics_avail && css_chsc_characteristics.scmc
&& css_chsc_characteristics.secm) {