[S390] cio: Make ccw_dev_id_is_equal() more robust.
authorCornelia Huck <cornelia.huck@de.ibm.com>
Mon, 4 Dec 2006 14:40:54 +0000 (15:40 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 4 Dec 2006 14:40:54 +0000 (15:40 +0100)
Using memcmp to compare ccw_dev_id implies that the whole structure (incl.
padding) has always been completely initialized to sane values. Comparing
the structures field by field doesn't make such assumptions.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
include/asm-s390/cio.h

index cabd5bb74b5a4e2d29d73d0eea386d112879ca37..d927850309800b2bcb64762639ab3834e0c3296b 100644 (file)
@@ -278,7 +278,10 @@ struct ccw_dev_id {
 static inline int ccw_dev_id_is_equal(struct ccw_dev_id *dev_id1,
                                      struct ccw_dev_id *dev_id2)
 {
-       return !memcmp(dev_id1, dev_id2, sizeof(struct ccw_dev_id));
+       if ((dev_id1->ssid == dev_id2->ssid) &&
+           (dev_id1->devno == dev_id2->devno))
+               return 1;
+       return 0;
 }
 
 extern int diag210(struct diag210 *addr);