summaryrefslogtreecommitdiff
path: root/COPYING
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2010-07-27 19:29:38 +0200
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2010-07-27 19:29:42 +0200
commit33fea794b9deeb8ffb77e284eb37375b8f45a2c4 (patch)
tree4a9a1cbad368c1f6c2c79e334c68f8ca04721b98 /COPYING
parentf5cdac274c62ab61874374abb60f2310ab979295 (diff)
downloadlinux-3.10-33fea794b9deeb8ffb77e284eb37375b8f45a2c4.tar.gz
linux-3.10-33fea794b9deeb8ffb77e284eb37375b8f45a2c4.tar.bz2
linux-3.10-33fea794b9deeb8ffb77e284eb37375b8f45a2c4.zip
[S390] etr: fix clock synchronization race
The etr events switch-to-local and sync-check disable the synchronous clock and schedule a work queue that tries to get the clock back into sync. If another switch-to-local or sync-check event occurs while the work queue function etr_work_fn still runs the eacr.es bit and the clock_sync_word can become inconsistent because check_sync_clock only uses the clock_sync_word to determine if the clock is in sync or not. The second pass of the etr_work_fn will reset the eacr.es bit but will leave the clock_sync_word intact. Fix this race by moving the reset of the eacr.es bit into the switch-to-local and sync-check functions and by checking the eacr.es bit as well to decide if the clock needs to be synced. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'COPYING')
0 files changed, 0 insertions, 0 deletions