s390/smp: save timestamp on external calls
[linux-drm-fsl-dcu.git] / arch / s390 / kernel / smp.c
index 9da95d8dfc62cbb013fc00aca4bcc4ea4b336c60..654c36ec0c603e09c84c37518bc9162598c2e001 100644 (file)
@@ -66,6 +66,7 @@ static DEFINE_PER_CPU(struct cpu *, cpu_device);
 struct pcpu {
        struct _lowcore *lowcore;       /* lowcore page(s) for the cpu */
        unsigned long ec_mask;          /* bit mask for ec_xxx functions */
+       unsigned long ec_clk;           /* sigp timestamp for ec_xxx */
        signed char state;              /* physical cpu state */
        signed char polarization;       /* physical polarization */
        u16 address;                    /* physical cpu address */
@@ -174,6 +175,7 @@ static void pcpu_ec_call(struct pcpu *pcpu, int ec_bit)
        if (test_and_set_bit(ec_bit, &pcpu->ec_mask))
                return;
        order = pcpu_running(pcpu) ? SIGP_EXTERNAL_CALL : SIGP_EMERGENCY_SIGNAL;
+       pcpu->ec_clk = get_tod_clock_fast();
        pcpu_sigp_retry(pcpu, order, 0);
 }