summaryrefslogtreecommitdiff
path: root/drivers/s390/cio/idset.c
diff options
context:
space:
mode:
authorSebastian Ott <sebott@linux.vnet.ibm.com>2009-09-23 00:58:38 +0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-09-23 00:58:42 +0400
commit703e5c9993639284bc0a8929b6de362424df7019 (patch)
tree13d6348ca6e8a00aefa302c6a776bf50180a6ac7 /drivers/s390/cio/idset.c
parentb0a285d31bd475fdd4312e457288be558b705e55 (diff)
downloadlinux-703e5c9993639284bc0a8929b6de362424df7019.tar.xz
[S390] cio: introduce consistent subchannel scanning
Previously, there were multiple subchannel scanning mechanisms which could potentially conflict with each other. Fix this problem by moving blacklist and ccw driver triggered scanning to the existing evaluation method. Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/idset.c')
-rw-r--r--drivers/s390/cio/idset.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/s390/cio/idset.c b/drivers/s390/cio/idset.c
index 5c88faf5b897..4d10981c7cc1 100644
--- a/drivers/s390/cio/idset.c
+++ b/drivers/s390/cio/idset.c
@@ -120,3 +120,13 @@ int idset_is_empty(struct idset *set)
return 1;
return 0;
}
+
+void idset_add_set(struct idset *to, struct idset *from)
+{
+ unsigned long i, len;
+
+ len = min(__BITOPS_WORDS(to->num_ssid * to->num_id),
+ __BITOPS_WORDS(from->num_ssid * from->num_id));
+ for (i = 0; i < len ; i++)
+ to->bitmap[i] |= from->bitmap[i];
+}