Description: tracing: Restructure trace_clock_global() to never block References: Notes: carnil> Introduced in b02414c8f045 ("ring-buffer: Fix recursion protection transitions carnil> between interrupt context") # started showing the problem carnil> 14131f2f98ac3 ("tracing: implement trace_clock_*() APIs") # where the bug carnil> happened. Vulnerable versions: 2.6.30-rc1 4.4.244 4.9.244 4.14.207 4.19.156 carnil> 5.4.76 5.9.7 5.10-rc3. Bugs: upstream: released (5.13-rc1) [aafe104aa9096827a429bc1358f8260ee565b7cc] 6.7-upstream-stable: N/A "Fixed before branching point" 6.6-upstream-stable: N/A "Fixed before branching point" 6.1-upstream-stable: N/A "Fixed before branching point" 5.10-upstream-stable: released (5.10.36) [a33614d52e97fc8077eb0b292189ca7d964cc534] 4.19-upstream-stable: released (4.19.191) [d43d56dbf452ccecc1ec735cd4b6840118005d7c] sid: released (5.10.38-1) 6.1-bookworm-security: N/A "Fixed before branching point" 5.10-bullseye-security: N/A "Fixed before branching point" 4.19-buster-security: released (4.19.194-1)