<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/arch/s390/include/asm/sclp.h, branch linux-7.0.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-7.0.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-7.0.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2025-06-16T14:23:02+00:00</updated>
<entry>
<title>s390: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers</title>
<updated>2025-06-16T14:23:02+00:00</updated>
<author>
<name>Thomas Huth</name>
<email>thuth@redhat.com</email>
</author>
<published>2025-06-11T14:00:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=42398caf16c955251a2dab86f797b76adeb99899'/>
<id>urn:sha1:42398caf16c955251a2dab86f797b76adeb99899</id>
<content type='text'>
While the GCC and Clang compilers already define __ASSEMBLER__
automatically when compiling assembler code, __ASSEMBLY__ is a
macro that only gets defined by the Makefiles in the kernel.
This is bad since macros starting with two underscores are names
that are reserved by the C language. It can also be very confusing
for the developers when switching between userspace and kernelspace
coding, or when dealing with uapi headers that rather should use
__ASSEMBLER__  instead. So let's now standardize on the __ASSEMBLER__
macro that is provided by the compilers.

This is a completely mechanical patch (done with a simple "sed -i"
statement), with some manual fixups done later while rebasing the
patch.

Signed-off-by: Thomas Huth &lt;thuth@redhat.com&gt;
Acked-by: Heiko Carstens &lt;hca@linux.ibm.com&gt;
Link: https://lore.kernel.org/r/20250611140046.137739-3-thuth@redhat.com
Signed-off-by: Alexander Gordeev &lt;agordeev@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/tlb: Convert MACHINE_HAS_TLB_GUEST to machine_has_tlb_guest()</title>
<updated>2025-03-04T16:18:06+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>hca@linux.ibm.com</email>
</author>
<published>2025-02-07T14:49:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=17d3804808091e3942d2744dc8155a3a918d88c3'/>
<id>urn:sha1:17d3804808091e3942d2744dc8155a3a918d88c3</id>
<content type='text'>
Use static branch(es) to implement and use machine_has_tlb_guest()
instead of a runtime check via MACHINE_HAS_TLB_GUEST.

Also add sclp_early_detect_machine_features() in order to allow for
feature detection from the decompressor.

Reviewed-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;hca@linux.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/sclp: Initialize sclp subsystem via arch_cpu_finalize_init()</title>
<updated>2025-01-28T16:38:46+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>hca@linux.ibm.com</email>
</author>
<published>2025-01-20T10:53:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3bcc8a1af581af152d43e42b53db3534018301b5'/>
<id>urn:sha1:3bcc8a1af581af152d43e42b53db3534018301b5</id>
<content type='text'>
With the switch to GENERIC_CPU_DEVICES an early call to the sclp subsystem
was added to smp_prepare_cpus(). This will usually succeed since the sclp
subsystem is implicitly initialized early enough if an sclp based console
is present.

If no such console is present the initialization happens with an
arch_initcall(); in such cases calls to the sclp subsystem will fail.
For CPU detection this means that the fallback sigp loop will be used
permanently to detect CPUs instead of the preferred READ_CPU_INFO sclp
request.

Fix this by adding an explicit early sclp_init() call via
arch_cpu_finalize_init().

Reported-by: Sheshu Ramanandan &lt;sheshu.ramanandan@ibm.com&gt;
Fixes: 4a39f12e753d ("s390/smp: Switch to GENERIC_CPU_DEVICES")
Reviewed-by: Peter Oberparleiter &lt;oberpar@linux.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;hca@linux.ibm.com&gt;
Signed-off-by: Alexander Gordeev &lt;agordeev@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/diag: Add memory topology information via diag310</title>
<updated>2025-01-15T12:59:08+00:00</updated>
<author>
<name>Mete Durlu</name>
<email>meted@linux.ibm.com</email>
</author>
<published>2025-01-14T16:03:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0d30871739ab433e114b0058f08b6b1c7b816f7e'/>
<id>urn:sha1:0d30871739ab433e114b0058f08b6b1c7b816f7e</id>
<content type='text'>
Introduce diag310 and memory topology related subcodes.
Provide memory topology information obtanied from diag310 to userspace
via diag ioctl.

Signed-off-by: Mete Durlu &lt;meted@linux.ibm.com&gt;
Reviewed-by: Heiko Carstens &lt;hca@linux.ibm.com&gt;
Signed-off-by: Alexander Gordeev &lt;agordeev@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'pci-device-recovery' into features</title>
<updated>2024-12-18T15:06:24+00:00</updated>
<author>
<name>Alexander Gordeev</name>
<email>agordeev@linux.ibm.com</email>
</author>
<published>2024-12-18T15:06:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3ace3c42144c8664b900ede3520c5e02e4d450ac'/>
<id>urn:sha1:3ace3c42144c8664b900ede3520c5e02e4d450ac</id>
<content type='text'>
Niklas Schnelle says:

===================
This patch series enhances the introspectability of the PCI device
recovery for firmware. Until now when Linux performs recovery in
response to a firmware error report. For example, until now firmware
debug data would have no indication if the recovery was successfull or
if it failed, for example due to KVM pass-through.

Improve on this by reporting recovery status as well as some debug
information such as device driver name and s390dbf/pci_msg/sprintf logs
via the SCLP Write Event Data Action Qualifier 2 (Log Data provided)
mechanism.
===================

Signed-off-by: Alexander Gordeev &lt;agordeev@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/diag324: Retrieve power readings via diag 0x324</title>
<updated>2024-12-17T11:46:14+00:00</updated>
<author>
<name>Sumanth Korikkar</name>
<email>sumanthk@linux.ibm.com</email>
</author>
<published>2024-12-12T16:17:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=90e6f191e1ee094d13faae5fc29af7b5baf9d1b8'/>
<id>urn:sha1:90e6f191e1ee094d13faae5fc29af7b5baf9d1b8</id>
<content type='text'>
Retrieve electrical power readings for resources in a computing
environment via diag 0x324. diag 0x324 stores the power readings in the
power information block (pib).

Provide power readings from pib via diag324 ioctl interface.  diag324
ioctl provides new pib to the user only if the threshold time has passed
since the last call. Otherwise, cache data is returned. When there are
no active readers, cleanup of pib buffer is performed.

Reviewed-by: Heiko Carstens &lt;hca@linux.ibm.com&gt;
Signed-off-by: Sumanth Korikkar &lt;sumanthk@linux.ibm.com&gt;
Signed-off-by: Alexander Gordeev &lt;agordeev@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/pci: Report PCI error recovery results via SCLP</title>
<updated>2024-12-16T15:14:26+00:00</updated>
<author>
<name>Niklas Schnelle</name>
<email>schnelle@linux.ibm.com</email>
</author>
<published>2024-12-13T13:47:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4ec6054e7321dc24ebccaa08b3af0d590f5666e6'/>
<id>urn:sha1:4ec6054e7321dc24ebccaa08b3af0d590f5666e6</id>
<content type='text'>
Add a mechanism with which the status of PCI error recovery runs
is reported to the platform. Together with the status supply additional
information that may aid in problem determination.

Reviewed-by: Halil Pasic &lt;pasic@linux.ibm.com&gt;
Signed-off-by: Niklas Schnelle &lt;schnelle@linux.ibm.com&gt;
Signed-off-by: Alexander Gordeev &lt;agordeev@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/wti: Introduce infrastructure for warning track interrupt</title>
<updated>2024-08-29T20:56:34+00:00</updated>
<author>
<name>Tobias Huschle</name>
<email>huschle@linux.ibm.com</email>
</author>
<published>2024-08-12T11:39:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2c6c9ccc76434d5609300aa578a4737e1686b320'/>
<id>urn:sha1:2c6c9ccc76434d5609300aa578a4737e1686b320</id>
<content type='text'>
The warning-track interrupt (wti) provides a notification that the
receiving CPU will be pre-empted from its physical CPU within a short
time frame. This time frame is called grace period and depends on the
machine type. Giving up the CPU on time may prevent a task to get stuck
while holding a resource.

Reviewed-by: Heiko Carstens &lt;hca@linux.ibm.com&gt;
Reviewed-by: Mete Durlu &lt;meted@linux.ibm.com&gt;
Signed-off-by: Tobias Huschle &lt;huschle@linux.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/sclp: Diag204 busy indication facility detection</title>
<updated>2024-07-10T17:50:44+00:00</updated>
<author>
<name>Mete Durlu</name>
<email>meted@linux.ibm.com</email>
</author>
<published>2024-07-04T12:10:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7455a33179e65267cd7c8910050b6f0be3ff6b83'/>
<id>urn:sha1:7455a33179e65267cd7c8910050b6f0be3ff6b83</id>
<content type='text'>
Detect diag204 busy indication facility.

Acked-by: Heiko Carstens &lt;hca@linux.ibm.com&gt;
Reviewed-by: Tobias Huschle &lt;huschle@linux.ibm.com&gt;
Signed-off-by: Mete Durlu &lt;meted@linux.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390: add support for user-defined certificates</title>
<updated>2023-07-24T10:12:21+00:00</updated>
<author>
<name>Anastasia Eskova</name>
<email>anastasia.eskova@ibm.com</email>
</author>
<published>2023-04-28T10:42:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8cf57d7217c32133d25615324c0ab4aaacf4d9c4'/>
<id>urn:sha1:8cf57d7217c32133d25615324c0ab4aaacf4d9c4</id>
<content type='text'>
Enable receiving the user-defined certificates from the s390x
hypervisor via new diagnose 0x320 calls, and make them available to the
Linux root user as 'cert_store_key' type keys in a so-called
'cert_store' keyring.

New user-space interfaces:

  /sys/firmware/cert_store/refresh

    Writing to this attribute re-fetches certificates via DIAG 0x320

  /sys/firmware/cert_store/cs_status

    Reading from this attribute returns either of:

	  "uninitialized"
	    If no certificate has been retrieved yet
	  "ok"
	    If certificates have been successfully retrieved
	  "failed (&lt;number&gt;)"
	    If certificate retrieval failed with reason code &lt;number&gt;

New debug trace areas:

  /sys/kernel/debug/s390dbf/cert_store_msg

  /sys/kernel/debug/s390dbf/cert_store_hexdump

Usage example:

To initiate request for certificates available to the system as root:

  $ echo 1 &gt; /sys/firmware/cert_store/refresh

Upon success the '/sys/firmware/cert_store/cs_status' contains
the value 'ok'.

  $ cat /sys/firmware/cert_store/cs_status
  ok

Get the ID of the keyring 'cert_store':

  $ keyctl search @us keyring cert_store
OR
  $ keyctl link @us @s; keyctl request keyring cert_store

Obtain list of IDs of certificates:

  $ keyctl rlist &lt;cert_store keyring ID&gt;

Display certificate content as hex-dump:

  $ keyctl read &lt;certificate ID&gt;

Read certificate contents as binary data:

  $ keyctl pipe &lt;certificate ID&gt; &gt;cert_data

Display certificate description:

  $ keyctl describe &lt;certificate ID&gt;

The certificate description has the following format:

  &lt;64 bytes certificate name in EBCDIC&gt; ':'
  &lt;certificate index as obtained from hypervisor&gt; ':'
  &lt;certificate store token obtained from hypervisor&gt;

The certificate description in /proc/keys has certificate name
represented in ASCII.

Users can read but cannot update the content of the certificate.

Signed-off-by: Anastasia Eskova &lt;anastasia.eskova@ibm.com&gt;
Reviewed-by: Peter Oberparleiter &lt;oberpar@linux.ibm.com&gt;
Acked-by: Heiko Carstens &lt;hca@linux.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;hca@linux.ibm.com&gt;
</content>
</entry>
</feed>
