mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 22:14:03 +02:00
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:
|
||
|---|---|---|
| .. | ||
| ctcm_dbug.c | ||
| ctcm_dbug.h | ||
| ctcm_fsms.c | ||
| ctcm_fsms.h | ||
| ctcm_main.c | ||
| ctcm_main.h | ||
| ctcm_mpc.c | ||
| ctcm_mpc.h | ||
| ctcm_sysfs.c | ||
| fsm.c | ||
| fsm.h | ||
| ism_drv.c | ||
| ism.h | ||
| Kconfig | ||
| Makefile | ||
| qeth_core_main.c | ||
| qeth_core_mpc.c | ||
| qeth_core_mpc.h | ||
| qeth_core_sys.c | ||
| qeth_core.h | ||
| qeth_ethtool.c | ||
| qeth_l2_main.c | ||
| qeth_l2_sys.c | ||
| qeth_l2.h | ||
| qeth_l3_main.c | ||
| qeth_l3_sys.c | ||
| qeth_l3.h | ||
| smsgiucv_app.c | ||
| smsgiucv.c | ||
| smsgiucv.h | ||