aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/css.c
diff options
context:
space:
mode:
authorSebastian Ott <sebott@linux.ibm.com>2018-06-13 16:26:23 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2018-07-17 07:27:51 +0200
commit87dc8a01281a4543ed25c367dace6e0f267e0dd1 (patch)
treee190bcc45782fcfc87e49a0900aa181fba302590 /drivers/s390/cio/css.c
parents390/kvm: fix deadlock when killed by oom (diff)
downloadlinux-dev-87dc8a01281a4543ed25c367dace6e0f267e0dd1.tar.xz
linux-dev-87dc8a01281a4543ed25c367dace6e0f267e0dd1.zip
s390/cio: ensure that a chpid is registered only once
Improve locking in chp_new to make sure that we don't register the same chpid twice. Chpid registration was synchronized via the machine check handler thread but we also have codepaths to look for new chpids triggered independent of that thread (during IPL or resume from hibernate). Signed-off-by: Sebastian Ott <sebott@linux.ibm.com> Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/css.c')
-rw-r--r--drivers/s390/cio/css.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c
index 9263a0fb3858..830a83ec4987 100644
--- a/drivers/s390/cio/css.c
+++ b/drivers/s390/cio/css.c
@@ -244,8 +244,7 @@ static void ssd_register_chpids(struct chsc_ssd_info *ssd)
for (i = 0; i < 8; i++) {
mask = 0x80 >> i;
if (ssd->path_mask & mask)
- if (!chp_is_registered(ssd->chpid[i]))
- chp_new(ssd->chpid[i]);
+ chp_new(ssd->chpid[i]);
}
}