linux/drivers/s390/net
Nagamani PV 74f27fc864 s390/qeth: allow bridgeport queries despite OS_MISMATCH
When HiperSockets interfaces on the same VCHID span different OS
families, reads of the sysfs attributes bridge_role and bridge_state
fail with -EPERM if bridge port ownership belongs to another OS family.

As a result, userspace tools such as 'lszdev -ii' cannot retrieve
bridge_role and bridge_state, even though firmware returns valid bridge
port data for QUERY_BRIDGE_PORTS requests.

The firmware reports IPA_RC_SBP_IQD_OS_MISMATCH (0x0010) to indicate
that bridge port ownership belongs to a different OS family. For
QUERY_BRIDGE_PORTS operations, firmware still returns valid bridge port
data (role=none, state=inactive) together with a primary return code of
0x0000 (success).

Allow QUERY_BRIDGE_PORTS requests to return the bridge port data
provided by the firmware despite OS_MISMATCH. To make the OS family
mismatch visible to userspace, represent the firmware-reported role
"none" as "none (OS family mismatch)" while preserving the reported
bridge_state.

The behavior for non-QUERY bridge port commands is unchanged; SET
operations continue to return -EPERM when another OS family owns the
bridge port.

This restores readability of bridge_role and bridge_state.

Fixes: 1b05cf6285 ("qeth: Include error message for "OS Mismatch"")
Cc: stable@vger.kernel.org
Suggested-by: Halil Pasic <pasic@linux.ibm.com>
Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
Signed-off-by: Nagamani PV <nagamani@linux.ibm.com>
Link: https://patch.msgid.link/20260901155344.3561483-1-nagamani@linux.ibm.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-07 16:39:26 -07:00
..
ctcm_dbug.c s390/ctcm: Convert sprintf/snprintf to scnprintf 2023-06-23 11:55:55 +02:00
ctcm_dbug.h s390/ctcm: add __printf format attribute to ctcm_dbf_longtext 2021-11-19 11:12:30 +00:00
ctcm_fsms.c s390/ctcm: Add __context_unsafe() attribute to various functions 2026-08-10 17:15:44 -07:00
ctcm_fsms.h s390/ctcm: remove orphaned function declarations 2020-10-02 16:22:49 -07:00
ctcm_main.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ctcm_main.h s390/ctcm: Convert sprintf/snprintf to scnprintf 2023-06-23 11:55:55 +02:00
ctcm_mpc.c s390/ctcm: Prevent XID null dereference 2026-09-01 16:55:04 -07:00
ctcm_mpc.h s390/ctcm: remove orphaned function declarations 2020-10-02 16:22:49 -07:00
ctcm_sysfs.c s390: Remove KMSG_COMPONENT macro 2025-11-24 11:45:21 +01:00
fsm.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
fsm.h s390/ctcm: Convert fsm.h to proper kernel-doc format 2026-08-07 16:34:23 -07:00
ism_drv.c s390/ism: folio_put() after error 2026-09-04 16:12:36 -07:00
ism.h dibs: Move event handling to dibs layer 2025-09-23 11:13:22 +02:00
Kconfig dibs: Move event handling to dibs layer 2025-09-23 11:13:22 +02:00
Makefile drivers/s390/net: Enable CONTEXT_ANALYSIS 2026-08-10 17:15:44 -07:00
qeth_core_main.c s390/qeth: validate user buffer length in SNMP and ARP query ioctls 2026-08-03 18:31:05 -07:00
qeth_core_mpc.c s390/qeth: Handle ambiguous OSA RCs in s390dbf 2025-11-17 20:02:02 -08:00
qeth_core_mpc.h s390/qeth: Handle ambiguous OSA RCs in s390dbf 2025-11-17 20:02:02 -08:00
qeth_core_sys.c s390: Remove KMSG_COMPONENT macro 2025-11-24 11:45:21 +01:00
qeth_core.h inet: introduce dst_rtable() helper 2024-04-30 18:32:38 -07:00
qeth_ethtool.c s390: Remove KMSG_COMPONENT macro 2025-11-24 11:45:21 +01:00
qeth_l2_main.c s390/qeth: allow bridgeport queries despite OS_MISMATCH 2026-09-07 16:39:26 -07:00
qeth_l2_sys.c s390/qeth: allow bridgeport queries despite OS_MISMATCH 2026-09-07 16:39:26 -07:00
qeth_l2.h s390/qeth: allow bridgeport queries despite OS_MISMATCH 2026-09-07 16:39:26 -07:00
qeth_l3_main.c s390/qeth: validate user buffer length in SNMP and ARP query ioctls 2026-08-03 18:31:05 -07:00
qeth_l3_sys.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
qeth_l3.h s390/qeth: use dev->groups for common sysfs attributes 2020-12-07 06:55:21 -08:00
smsgiucv_app.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
smsgiucv.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
smsgiucv.h