|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1 |
|
| #
8fa7292f |
| 05-Apr-2025 |
Thomas Gleixner <[email protected]> |
treewide: Switch/rename to timer_delete[_sync]()
timer_delete[_sync]() replaces del_timer[_sync](). Convert the whole tree over and remove the historical wrapper inlines.
Conversion was done with c
treewide: Switch/rename to timer_delete[_sync]()
timer_delete[_sync]() replaces del_timer[_sync](). Convert the whole tree over and remove the historical wrapper inlines.
Conversion was done with coccinelle plus manual fixups where necessary.
Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
show more ...
|
|
Revision tags: v6.14, v6.14-rc7, v6.14-rc6 |
|
| #
886653e3 |
| 03-Mar-2025 |
Anna-Maria Behnsen <[email protected]> |
vdso: Rework struct vdso_time_data and introduce struct vdso_clock
To support multiple PTP clocks, the VDSO data structure needs to be reworked. All clock specific data will end up in struct vdso_cl
vdso: Rework struct vdso_time_data and introduce struct vdso_clock
To support multiple PTP clocks, the VDSO data structure needs to be reworked. All clock specific data will end up in struct vdso_clock and in struct vdso_time_data there will be an array of VDSO clocks.
Now that all preparatory changes are in place:
Split the clock related struct members into a separate struct vdso_clock. Make sure all users are aware, that vdso_time_data is no longer initialized as an array and vdso_clock is now the array inside vdso_data. Remove the vdso_clock define, which mapped it to vdso_time_data for the transition.
Signed-off-by: Anna-Maria Behnsen <[email protected]> Signed-off-by: Nam Cao <[email protected]> Signed-off-by: Thomas Weißschuh <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Link: https://lore.kernel.org/all/[email protected]
show more ...
|
|
Revision tags: v6.14-rc5, v6.14-rc4, v6.14-rc3, v6.14-rc2 |
|
| #
f931f67c |
| 07-Feb-2025 |
Heiko Carstens <[email protected]> |
s390/time: Convert MACHINE_HAS_SCC to machine_has_scc()
Use static branch(es) to implement and use machine_has_scc() instead of a runtime check via MACHINE_HAS_SCC.
This comes with a cleanup of ear
s390/time: Convert MACHINE_HAS_SCC to machine_has_scc()
Use static branch(es) to implement and use machine_has_scc() instead of a runtime check via MACHINE_HAS_SCC.
This comes with a cleanup of early time initialization: the initial tod_clock_base value is now passed via the bootdata mechanism, instead of using absolute lowcore as transport vehicle from the decompressor to the kernel.
Also the early tod clock initialization is moved to the decompressor which allows to use a static branch with machine_has_scc() within the kernel.
Reviewed-by: Vasily Gorbik <[email protected]> Signed-off-by: Heiko Carstens <[email protected]> Signed-off-by: Vasily Gorbik <[email protected]>
show more ...
|
| #
9bf39a65 |
| 04-Feb-2025 |
Thomas Weißschuh <[email protected]> |
s390/vdso: Switch to generic storage implementation
The generic storage implementation provides the same features as the custom one. However it can be shared between architectures, making maintenanc
s390/vdso: Switch to generic storage implementation
The generic storage implementation provides the same features as the custom one. However it can be shared between architectures, making maintenance easier.
Co-developed-by: Nam Cao <[email protected]> Signed-off-by: Nam Cao <[email protected]> Signed-off-by: Thomas Weißschuh <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: Heiko Carstens <[email protected]> Link: https://lore.kernel.org/all/[email protected]
show more ...
|
|
Revision tags: v6.14-rc1, v6.13, v6.13-rc7, v6.13-rc6, v6.13-rc5, v6.13-rc4, v6.13-rc3 |
|
| #
5ad2abf9 |
| 10-Dec-2024 |
Easwar Hariharan <[email protected]> |
s390: kernel: convert timeouts to use secs_to_jiffies()
Commit b35108a51cf7 ("jiffies: Define secs_to_jiffies()") introduced secs_to_jiffies(). As the values here are a multiple of 1000, use secs_t
s390: kernel: convert timeouts to use secs_to_jiffies()
Commit b35108a51cf7 ("jiffies: Define secs_to_jiffies()") introduced secs_to_jiffies(). As the values here are a multiple of 1000, use secs_to_jiffies() instead of msecs_to_jiffies to avoid the multiplication.
This is converted using scripts/coccinelle/misc/secs_to_jiffies.cocci with the following Coccinelle rules:
@@ constant C; @@
- msecs_to_jiffies(C * 1000) + secs_to_jiffies(C)
@@ constant C; @@
- msecs_to_jiffies(C * MSEC_PER_SEC) + secs_to_jiffies(C)
[[email protected]: simplify cmm_set_timer()] Link: https://lkml.kernel.org/r/[email protected] Link: https://lkml.kernel.org/r/20241210-converge-secs-to-jiffies-v3-4-ddfefd7e9f2a@linux.microsoft.com Signed-off-by: Easwar Hariharan <[email protected]> Signed-off-by: Alexander Gordeev <[email protected]> Acked-by: Alexander Gordeev <[email protected]> Cc: Andrew Lunn <[email protected]> Cc: Anna-Maria Behnsen <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Christian Borntraeger <[email protected]> Cc: Christophe Leroy <[email protected]> Cc: Daniel Mack <[email protected]> Cc: David Airlie <[email protected]> Cc: David S. Miller <[email protected]> Cc: Dick Kennedy <[email protected]> Cc: Eric Dumazet <[email protected]> Cc: Florian Fainelli <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Haojian Zhuang <[email protected]> Cc: Heiko Carstens <[email protected]> Cc: Ilya Dryomov <[email protected]> Cc: Jack Wang <[email protected]> Cc: Jakub Kicinski <[email protected]> Cc: James Bottomley <[email protected]> Cc: James Smart <[email protected]> Cc: Jaroslav Kysela <[email protected]> Cc: Jeff Johnson <[email protected]> Cc: Jeff Johnson <[email protected]> Cc: Jens Axboe <[email protected]> Cc: Jeroen de Borst <[email protected]> Cc: Jiri Kosina <[email protected]> Cc: Joe Lawrence <[email protected]> Cc: Johan Hedberg <[email protected]> Cc: Josh Poimboeuf <[email protected]> Cc: Jozsef Kadlecsik <[email protected]> Cc: Julia Lawall <[email protected]> Cc: Kalle Valo <[email protected]> Cc: Louis Peens <[email protected]> Cc: Lucas De Marchi <[email protected]> Cc: Luiz Augusto von Dentz <[email protected]> Cc: Maarten Lankhorst <[email protected]> Cc: Madhavan Srinivasan <[email protected]> Cc: Marcel Holtmann <[email protected]> Cc: Martin K. Petersen <[email protected]> Cc: Maxime Ripard <[email protected]> Cc: Michael Ellerman <[email protected]> Cc: Miroslav Benes <[email protected]> Cc: Naveen N Rao <[email protected]> Cc: Nicholas Piggin <[email protected]> Cc: Nicolas Palix <[email protected]> Cc: Oded Gabbay <[email protected]> Cc: Ofir Bitton <[email protected]> Cc: Pablo Neira Ayuso <[email protected]> Cc: Paolo Abeni <[email protected]> Cc: Petr Mladek <[email protected]> Cc: Praveen Kaligineedi <[email protected]> Cc: Ray Jui <[email protected]> Cc: Robert Jarzmik <[email protected]> Cc: Rodrigo Vivi <[email protected]> Cc: Roger Pau Monné <[email protected]> Cc: Russell King <[email protected]> Cc: Scott Branden <[email protected]> Cc: Shailend Chand <[email protected]> Cc: Simona Vetter <[email protected]> Cc: Simon Horman <[email protected]> Cc: Sven Schnelle <[email protected]> Cc: Takashi Iwai <[email protected]> Cc: Thomas Hellström <[email protected]> Cc: Thomas Zimmermann <[email protected]> Cc: Vasily Gorbik <[email protected]> Cc: Xiubo Li <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc2, v6.13-rc1, v6.12, v6.12-rc7, v6.12-rc6, v6.12-rc5 |
|
| #
2d7de7a3 |
| 23-Oct-2024 |
Sven Schnelle <[email protected]> |
s390/time: Add PtP driver
Add a small PtP driver which allows user space to get the values of the physical and tod clock. This allows programs like chrony to use STP as clock source and steer the ke
s390/time: Add PtP driver
Add a small PtP driver which allows user space to get the values of the physical and tod clock. This allows programs like chrony to use STP as clock source and steer the kernel clock. The physical clock can be used as a debugging aid to get the clock without any additional offsets like STP steering or LPAR offset.
Acked-by: Heiko Carstens <[email protected]> Acked-by: Richard Cochran <[email protected]> Signed-off-by: Sven Schnelle <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
| #
f247fd22 |
| 23-Oct-2024 |
Sven Schnelle <[email protected]> |
s390/time: Add clocksource id to TOD clock
To allow specifying the clock source in the upcoming PtP driver, add a clocksource ID to the s390 TOD clock.
Acked-by: Heiko Carstens <[email protected]>
s390/time: Add clocksource id to TOD clock
To allow specifying the clock source in the upcoming PtP driver, add a clocksource ID to the s390 TOD clock.
Acked-by: Heiko Carstens <[email protected]> Acked-by: Richard Cochran <[email protected]> Signed-off-by: Sven Schnelle <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
show more ...
|
| #
b4b920cd |
| 23-Oct-2024 |
Mete Durlu <[email protected]> |
s390/time: Switch over to sysfs_emit()
Per Documentation/filesystems/sysfs.rst, sysfs_emit() is preferred over sprintf for presenting attributes to user space. Convert the left-over uses in the s390
s390/time: Switch over to sysfs_emit()
Per Documentation/filesystems/sysfs.rst, sysfs_emit() is preferred over sprintf for presenting attributes to user space. Convert the left-over uses in the s390/time code.
Signed-off-by: Mete Durlu <[email protected]> Reviewed-by: Gerd Bayer <[email protected]> Reviewed-by: Heiko Carstens <[email protected]> Signed-off-by: Heiko Carstens <[email protected]>
show more ...
|
|
Revision tags: v6.12-rc4, v6.12-rc3 |
|
| #
3aa8881e |
| 10-Oct-2024 |
Thomas Weißschuh <[email protected]> |
s390/vdso: Remove timekeeper includes
Since the generic VDSO clock mode storage is used, this header file is unused and can be removed.
This avoids including a non-VDSO header while building the VD
s390/vdso: Remove timekeeper includes
Since the generic VDSO clock mode storage is used, this header file is unused and can be removed.
This avoids including a non-VDSO header while building the VDSO, which can lead to compilation errors.
Also drop the comment which is out of date and in the wrong place.
Signed-off-by: Thomas Weißschuh <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: Heiko Carstens <[email protected]> Link: https://lore.kernel.org/all/20241010-vdso-generic-arch_update_vsyscall-v1-6-7fe5a3ea4382@linutronix.de
show more ...
|
|
Revision tags: v6.12-rc2, v6.12-rc1, v6.11, v6.11-rc7, v6.11-rc6, v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2, v6.11-rc1, v6.10, v6.10-rc7, v6.10-rc6, v6.10-rc5, v6.10-rc4 |
|
| #
208da1d5 |
| 10-Jun-2024 |
Sven Schnelle <[email protected]> |
s390: Replace S390_lowcore by get_lowcore()
Replace all S390_lowcore usages in arch/s390/ by get_lowcore().
Acked-by: Heiko Carstens <[email protected]> Signed-off-by: Sven Schnelle <[email protected]
s390: Replace S390_lowcore by get_lowcore()
Replace all S390_lowcore usages in arch/s390/ by get_lowcore().
Acked-by: Heiko Carstens <[email protected]> Signed-off-by: Sven Schnelle <[email protected]> Signed-off-by: Vasily Gorbik <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc3, v6.10-rc2, v6.10-rc1, v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5, v6.9-rc4, v6.9-rc3, v6.9-rc2, v6.9-rc1, v6.8, v6.8-rc7, v6.8-rc6, v6.8-rc5, v6.8-rc4 |
|
| #
6695d792 |
| 04-Feb-2024 |
Ricardo B. Marliere <[email protected]> |
s390/time: make stp_subsys const
Now that the driver core can properly handle constant struct bus_type, move the stp_subsys variable to be a constant structure as well, placing it into read-only mem
s390/time: make stp_subsys const
Now that the driver core can properly handle constant struct bus_type, move the stp_subsys variable to be a constant structure as well, placing it into read-only memory which can not be modified at runtime.
Cc: Greg Kroah-Hartman <[email protected]> Suggested-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: "Ricardo B. Marliere" <[email protected]> Reviewed-by: Greg Kroah-Hartman <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Heiko Carstens <[email protected]>
show more ...
|
|
Revision tags: v6.8-rc3, v6.8-rc2, v6.8-rc1, v6.7, v6.7-rc8, v6.7-rc7, v6.7-rc6, v6.7-rc5, v6.7-rc4, v6.7-rc3, v6.7-rc2, v6.7-rc1, v6.6, v6.6-rc7, v6.6-rc6, v6.6-rc5, v6.6-rc4, v6.6-rc3, v6.6-rc2 |
|
| #
fc17e992 |
| 14-Sep-2023 |
Sven Schnelle <[email protected]> |
s390/time: improve steering precision
The common timekeeping code steers the clock by adjusting the multiplier value of the clock. With the current value of 1000 precision is lost when the clock is
s390/time: improve steering precision
The common timekeeping code steers the clock by adjusting the multiplier value of the clock. With the current value of 1000 precision is lost when the clock is steered with a userspace daemon. Increase the multiplier and the shift values to increase precision.
Signed-off-by: Sven Schnelle <[email protected]> Acked-by: Heiko Carstens <[email protected]> Signed-off-by: Heiko Carstens <[email protected]>
show more ...
|
| #
99441a38 |
| 11-Sep-2023 |
Heiko Carstens <[email protected]> |
s390: use control register bit defines
Use control register bit defines instead of plain numbers where possible.
Reviewed-by: Alexander Gordeev <[email protected]> Signed-off-by: Heiko Carsten
s390: use control register bit defines
Use control register bit defines instead of plain numbers where possible.
Reviewed-by: Alexander Gordeev <[email protected]> Signed-off-by: Heiko Carstens <[email protected]> Signed-off-by: Vasily Gorbik <[email protected]>
show more ...
|
| #
8d5e98f8 |
| 11-Sep-2023 |
Heiko Carstens <[email protected]> |
s390/ctlreg: add local and system prefix to some functions
Add local and system prefix to some functions to clarify they change control register contents on either the local CPU or the on all CPUs.
s390/ctlreg: add local and system prefix to some functions
Add local and system prefix to some functions to clarify they change control register contents on either the local CPU or the on all CPUs.
This results in the following API:
Two defines which load and save multiple control registers. The defines correlate with the following C prototypes:
void __local_ctl_load(unsigned long *, unsigned int cr_low, unsigned int cr_high); void __local_ctl_store(unsigned long *, unsigned int cr_low, unsigned int cr_high);
Two functions which locally set or clear one bit for a specified control register:
void local_ctl_set_bit(unsigned int cr, unsigned int bit); void local_ctl_clear_bit(unsigned int cr, unsigned int bit);
Two functions which set or clear one bit for a specified control register on all CPUs:
void system_ctl_set_bit(unsigned int cr, unsigned int bit); void system_ctl_clear_bit(unsigend int cr, unsigned int bit);
Reviewed-by: Alexander Gordeev <[email protected]> Signed-off-by: Heiko Carstens <[email protected]> Signed-off-by: Vasily Gorbik <[email protected]>
show more ...
|
|
Revision tags: v6.6-rc1, v6.5, v6.5-rc7, v6.5-rc6, v6.5-rc5, v6.5-rc4, v6.5-rc3, v6.5-rc2, v6.5-rc1 |
|
| #
cada938a |
| 28-Jun-2023 |
Heiko Carstens <[email protected]> |
s390: fix various typos
Fix various typos found with codespell.
Signed-off-by: Heiko Carstens <[email protected]> Signed-off-by: Alexander Gordeev <[email protected]>
|
|
Revision tags: v6.4, v6.4-rc7, v6.4-rc6, v6.4-rc5, v6.4-rc4, v6.4-rc3 |
|
| #
91b41a23 |
| 19-May-2023 |
Peter Zijlstra <[email protected]> |
s390/time: Provide sched_clock_noinstr()
With the intent to provide local_clock_noinstr(), a variant of local_clock() that's safe to be called from noinstr code (with the assumption that any such co
s390/time: Provide sched_clock_noinstr()
With the intent to provide local_clock_noinstr(), a variant of local_clock() that's safe to be called from noinstr code (with the assumption that any such code will already be non-preemptible), prepare for things by providing a noinstr sched_clock_noinstr() function.
Specifically, preempt_enable_*() calls out to schedule(), which upsets noinstr validation efforts.
Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Acked-by: Heiko Carstens <[email protected]> Tested-by: Michael Kelley <[email protected]> # Hyper-V Link: https://lore.kernel.org/r/[email protected]
show more ...
|
|
Revision tags: v6.4-rc2, v6.4-rc1, v6.3, v6.3-rc7, v6.3-rc6, v6.3-rc5, v6.3-rc4, v6.3-rc3, v6.3-rc2, v6.3-rc1, v6.2, v6.2-rc8, v6.2-rc7, v6.2-rc6, v6.2-rc5, v6.2-rc4, v6.2-rc3, v6.2-rc2, v6.2-rc1, v6.1, v6.1-rc8, v6.1-rc7, v6.1-rc6, v6.1-rc5, v6.1-rc4, v6.1-rc3, v6.1-rc2, v6.1-rc1, v6.0, v6.0-rc7, v6.0-rc6, v6.0-rc5, v6.0-rc4, v6.0-rc3, v6.0-rc2, v6.0-rc1, v5.19, v5.19-rc8, v5.19-rc7, v5.19-rc6, v5.19-rc5, v5.19-rc4, v5.19-rc3, v5.19-rc2, v5.19-rc1, v5.18, v5.18-rc7, v5.18-rc6 |
|
| #
5ace65eb |
| 03-May-2022 |
Sven Schnelle <[email protected]> |
s390/stp: clock_delta should be signed
clock_delta is declared as unsigned long in various places. However, the clock sync delta can be negative. This would add a huge positive offset in clock_sync_
s390/stp: clock_delta should be signed
clock_delta is declared as unsigned long in various places. However, the clock sync delta can be negative. This would add a huge positive offset in clock_sync_global where clock_delta is added to clk.eitod which is a 72 bit integer. Declare it as signed long to fix this.
Cc: [email protected] Signed-off-by: Sven Schnelle <[email protected]> Reviewed-by: Heiko Carstens <[email protected]> Signed-off-by: Heiko Carstens <[email protected]>
show more ...
|
| #
03780c83 |
| 02-May-2022 |
Sven Schnelle <[email protected]> |
s390/stp: fix todoff size
The size of the TOD offset field in the stp info response is 64 bits.
Signed-off-by: Sven Schnelle <[email protected]> Reviewed-by: Heiko Carstens <[email protected]> Signe
s390/stp: fix todoff size
The size of the TOD offset field in the stp info response is 64 bits.
Signed-off-by: Sven Schnelle <[email protected]> Reviewed-by: Heiko Carstens <[email protected]> Signed-off-by: Heiko Carstens <[email protected]>
show more ...
|
|
Revision tags: v5.18-rc5, v5.18-rc4, v5.18-rc3, v5.18-rc2, v5.18-rc1, v5.17, v5.17-rc8, v5.17-rc7, v5.17-rc6, v5.17-rc5, v5.17-rc4, v5.17-rc3, v5.17-rc2, v5.17-rc1, v5.16, v5.16-rc8, v5.16-rc7, v5.16-rc6, v5.16-rc5, v5.16-rc4, v5.16-rc3, v5.16-rc2, v5.16-rc1, v5.15, v5.15-rc7, v5.15-rc6, v5.15-rc5, v5.15-rc4, v5.15-rc3, v5.15-rc2, v5.15-rc1, v5.14, v5.14-rc7, v5.14-rc6, v5.14-rc5, v5.14-rc4, v5.14-rc3, v5.14-rc2, v5.14-rc1, v5.13, v5.13-rc7, v5.13-rc6, v5.13-rc5, v5.13-rc4, v5.13-rc3, v5.13-rc2, v5.13-rc1, v5.12, v5.12-rc8, v5.12-rc7, v5.12-rc6, v5.12-rc5 |
|
| #
5b43bd18 |
| 24-Mar-2021 |
Heiko Carstens <[email protected]> |
s390/vdso: fix initializing and updating of vdso_data
Li Wang reported that clock_gettime(CLOCK_MONOTONIC_RAW, ...) returns incorrect values when time is provided via vdso instead of system call:
v
s390/vdso: fix initializing and updating of vdso_data
Li Wang reported that clock_gettime(CLOCK_MONOTONIC_RAW, ...) returns incorrect values when time is provided via vdso instead of system call:
vdso_ts_nsec = 4484351380985507, vdso_ts.tv_sec = 4484351, vdso_ts.tv_nsec = 380985507 sys_ts_nsec = 1446923235377, sys_ts.tv_sec = 1446, sys_ts.tv_nsec = 923235377
Within the s390 specific vdso function __arch_get_hw_counter() reads tod clock steering values from the arch_data member of the passed in vdso_data structure.
Problem is that only for the CS_HRES_COARSE vdso_data arch_data is initialized and gets updated. The CS_RAW specific vdso_data does not contain any valid tod_clock_steering information, which explains the different values.
Fix this by initializing and updating all vdso_datas.
Reported-by: Li Wang <[email protected]> Tested-by: Li Wang <[email protected]> Fixes: 1ba2d6c0fd4e ("s390/vdso: simplify __arch_get_hw_counter()") Link: https://lore.kernel.org/linux-s390/YFnxr1ZlMIOIqjfq@osiris Signed-off-by: Heiko Carstens <[email protected]>
show more ...
|
| #
72bbc226 |
| 23-Mar-2021 |
Heiko Carstens <[email protected]> |
s390/vdso: copy tod_steering_delta value to vdso_data page
When converting the vdso assembler code to C it was forgotten to actually copy the tod_steering_delta value to vdso_data page.
Which in tu
s390/vdso: copy tod_steering_delta value to vdso_data page
When converting the vdso assembler code to C it was forgotten to actually copy the tod_steering_delta value to vdso_data page.
Which in turn means that tod clock steering will not work correctly.
Fix this by simply copying the value whenever it is updated.
Fixes: 4bff8cb54502 ("s390: convert to GENERIC_VDSO") Cc: <[email protected]> # 5.10 Signed-off-by: Heiko Carstens <[email protected]>
show more ...
|
|
Revision tags: v5.12-rc4, v5.12-rc3, v5.12-rc2, v5.12-rc1, v5.12-rc1-dontuse |
|
| #
eba8e1af |
| 23-Feb-2021 |
Heiko Carstens <[email protected]> |
s390/time,idle: get rid of unsigned long long
Get rid of unsigned long long, and use unsigned long instead everywhere. The usage of unsigned long long is a leftover from 31 bit kernel support.
Sign
s390/time,idle: get rid of unsigned long long
Get rid of unsigned long long, and use unsigned long instead everywhere. The usage of unsigned long long is a leftover from 31 bit kernel support.
Signed-off-by: Heiko Carstens <[email protected]>
show more ...
|
|
Revision tags: v5.11 |
|
| #
f8d8977a |
| 08-Feb-2021 |
Heiko Carstens <[email protected]> |
s390/time: convert tod_clock_base to union
Convert tod_clock_base to union tod_clock. This simplifies quite a bit of code and also fixes a bug in read_persistent_clock64();
void read_persistent_clo
s390/time: convert tod_clock_base to union
Convert tod_clock_base to union tod_clock. This simplifies quite a bit of code and also fixes a bug in read_persistent_clock64();
void read_persistent_clock64(struct timespec64 *ts) { __u64 delta;
delta = initial_leap_seconds + TOD_UNIX_EPOCH; get_tod_clock_ext(clk); *(__u64 *) &clk[1] -= delta; if (*(__u64 *) &clk[1] > delta) clk[0]--; ext_to_timespec64(clk, ts); }
Assume &clk[1] == 3 and delta == 2; then after the substraction the if condition becomes true and the epoch part of the clock is decremented by one because of an assumed overflow, even though there is none.
Fix this by using 128 bit arithmetics and let the compiler do the right thing:
void read_persistent_clock64(struct timespec64 *ts) { union tod_clock clk; u64 delta;
delta = initial_leap_seconds + TOD_UNIX_EPOCH; store_tod_clock_ext(&clk); clk.eitod -= delta; ext_to_timespec64(&clk, ts); }
Signed-off-by: Heiko Carstens <[email protected]> Signed-off-by: Vasily Gorbik <[email protected]>
show more ...
|
|
Revision tags: v5.11-rc7, v5.11-rc6, v5.11-rc5, v5.11-rc4, v5.11-rc3, v5.11-rc2, v5.11-rc1, v5.10, v5.10-rc7, v5.10-rc6, v5.10-rc5, v5.10-rc4 |
|
| #
074ff04e |
| 11-Nov-2020 |
Julian Wiedmann <[email protected]> |
s390/stp: let subsys_system_register() sysfs attributes
Instead of creating the sysfs attributes for the stp root_dev by hand, pass them to subsys_system_register() as parameter.
This also ensures
s390/stp: let subsys_system_register() sysfs attributes
Instead of creating the sysfs attributes for the stp root_dev by hand, pass them to subsys_system_register() as parameter.
This also ensures that the attributes are available when the KOBJ_ADD event is raised.
Signed-off-by: Julian Wiedmann <[email protected]> Signed-off-by: Heiko Carstens <[email protected]>
show more ...
|
|
Revision tags: v5.10-rc3, v5.10-rc2, v5.10-rc1, v5.9, v5.9-rc8, v5.9-rc7 |
|
| #
ad5ceb33 |
| 21-Sep-2020 |
Sven Schnelle <[email protected]> |
s390/stp: unify stp_work_mutex and clock_sync_mutex
No need to have two mutexes, and while at it rename it to stp_mutex.
Signed-off-by: Sven Schnelle <[email protected]> Reviewed-by: Alexander Eg
s390/stp: unify stp_work_mutex and clock_sync_mutex
No need to have two mutexes, and while at it rename it to stp_mutex.
Signed-off-by: Sven Schnelle <[email protected]> Reviewed-by: Alexander Egorenkov <[email protected]> Signed-off-by: Vasily Gorbik <[email protected]>
show more ...
|
|
Revision tags: v5.9-rc6, v5.9-rc5, v5.9-rc4, v5.9-rc3, v5.9-rc2, v5.9-rc1, v5.8, v5.8-rc7, v5.8-rc6, v5.8-rc5, v5.8-rc4, v5.8-rc3, v5.8-rc2 |
|
| #
4fb53dde |
| 17-Jun-2020 |
Sven Schnelle <[email protected]> |
s390/stp: add sysfs file to show scheduled leap seconds
This patch introduces /sys/devices/system/stp/scheduled_leap_seconds, which will contain either 0,0 if no leap second is scheduled, or the UTC
s390/stp: add sysfs file to show scheduled leap seconds
This patch introduces /sys/devices/system/stp/scheduled_leap_seconds, which will contain either 0,0 if no leap second is scheduled, or the UTC timestamp + leap second offset.
Signed-off-by: Sven Schnelle <[email protected]> Reviewed-by: Alexander Egorenkov <[email protected]> Signed-off-by: Vasily Gorbik <[email protected]>
show more ...
|