linux/drivers/s390/cio
Martin Schwidefsky 8c071b0f19 s390/time: correct use of store clock fast
The result of the store-clock-fast (STCKF) instruction is a bit fuzzy.
It can happen that the value stored on one CPU is smaller than the value
stored on another CPU, although the order of the stores is the other
way around. This can cause deltas of get_tod_clock() values to become
negative when they should not be.

We need to be more careful with store-clock-fast, this patch partially
reverts git commit e4b7b4238e666682555461fa52eecd74652f36bb "time:
always use stckf instead of stck if available". The get_tod_clock()
function now uses the store-clock-extended (STCKE) instruction.
get_tod_clock_fast() can be used if the fuzziness of store-clock-fast
is acceptable e.g. for wait loops local to a CPU.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2013-10-22 09:16:40 +02:00
..
airq.c s390: convert interrupt handling to use generic hardirq 2013-08-22 12:20:04 +02:00
blacklist.c s390/cio: add condev keyword to cio_ignore 2013-05-02 15:50:20 +02:00
blacklist.h
ccwgroup.c s390: replace strict_strtoul() with kstrtoul() 2013-08-22 12:20:00 +02:00
ccwreq.c [S390] cio: add message for timeouts on internal I/O 2011-10-30 15:16:41 +01:00
chp.c s390/cio: add channel ID sysfs attribute 2013-05-15 16:47:39 +02:00
chp.h s390/cio: collect format 1 channel-path description data 2013-04-17 14:07:26 +02:00
chsc_sch.c s390/chsc: Use snprintf instead of sprintf 2013-06-26 21:10:16 +02:00
chsc_sch.h [S390] cio: Add chsc subchannel driver. 2008-07-14 10:02:12 +02:00
chsc.c s390/qdio: cleanup chsc SADC usage 2013-06-26 21:10:15 +02:00
chsc.h s390/qdio: cleanup chsc SADC usage 2013-06-26 21:10:15 +02:00
cio_debug.h
cio.c s390/time: correct use of store clock fast 2013-10-22 09:16:40 +02:00
cio.h s390: convert interrupt handling to use generic hardirq 2013-08-22 12:20:04 +02:00
cmf.c s390: replace strict_strtoul() with kstrtoul() 2013-08-22 12:20:00 +02:00
crw.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
css.c s390/cio: fix unlocked access of global bitmap 2013-08-30 08:57:22 +02:00
css.h s390/hibernate: add early resume function 2013-08-30 08:57:15 +02:00
device_fsm.c s390/time: rename tod clock access functions 2013-02-14 15:55:10 +01:00
device_id.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
device_ops.c s390/cio: make use of newly added format 1 channel-path data 2013-04-17 14:07:26 +02:00
device_pgid.c s390/cio: handle unknown pgroup state 2013-02-14 15:55:09 +01:00
device_status.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
device.c s390: replace strict_strtoul() with kstrtoul() 2013-08-22 12:20:00 +02:00
device.h s390/cio: fix early init counter usage 2013-04-17 14:07:33 +02:00
eadm_sch.c s390/irq: remove split irq fields from /proc/stat 2013-01-08 10:57:07 +01:00
eadm_sch.h s390/cio: add eadm subchannel driver 2012-09-26 15:45:00 +02:00
fcx.c [S390] drivers: Correct size given to memset 2009-12-18 17:43:32 +01:00
idset.c s390/cio: Use BITS_TO_LONGS() instead of __BITOPS_WORDS() 2013-04-17 14:07:29 +02:00
idset.h s390/css: stop stsch loop after cc 3 2012-10-18 17:50:08 +02:00
io_sch.h s390/cio: dont abort verification after missing irq 2013-02-14 15:55:07 +01:00
ioasm.h [S390] cio: move asms to generic header 2011-03-15 17:08:23 +01:00
isc.c [S390] cio: introduce isc_(un)register functions. 2008-07-14 10:02:11 +02:00
itcw.c [S390] cio: reduce memory consumption of itcw structures 2011-01-05 12:47:29 +01:00
Makefile s390/cio: add eadm subchannel driver 2012-09-26 15:45:00 +02:00
orb.h s390: add eadm related structures 2012-09-26 15:44:57 +02:00
qdio_debug.c constify a bunch of struct file_operations instances 2013-04-09 14:16:20 -04:00
qdio_debug.h qdio: remove unused parameters 2013-02-28 09:37:12 +01:00
qdio_main.c s390/time: correct use of store clock fast 2013-10-22 09:16:40 +02:00
qdio_setup.c s390/qdio: cleanup chsc SSQD usage 2013-06-26 21:10:14 +02:00
qdio_thinint.c s390/airq: simplify adapter interrupt code 2013-06-26 21:10:28 +02:00
qdio.h s390/qdio: cleanup chsc SADC usage 2013-06-26 21:10:15 +02:00
scm.c s390/scm: process availability 2013-03-07 09:52:24 +01:00