[PATCH 1/1] s390x/css: Fix css stsch detection to go beyond 8192 devices

From: Christian Borntraeger

Date: Fri Aug 14 2026 - 11:18:23 EST


find_last_bit expects a size in bits and not in words. the calculation
limits the number of guest devices to 8192. This probably does not
matter in reality, its wrong anyway.

Fixes: df1fe5bb49241 ("s390: Virtual channel subsystem support")
Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxxxxx>
---
hw/s390x/css.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/hw/s390x/css.c b/hw/s390x/css.c
index 3a67b670531..dedd39006bf 100644
--- a/hw/s390x/css.c
+++ b/hw/s390x/css.c
@@ -2023,8 +2023,7 @@ bool css_schid_final(int m, uint8_t cssid, uint8_t ssid, uint16_t schid)
return true;
}
set = channel_subsys.css[real_cssid]->sch_set[ssid];
- return schid > find_last_bit(set->schids_used,
- (MAX_SCHID + 1) / sizeof(unsigned long));
+ return schid > find_last_bit(set->schids_used,(MAX_SCHID + 1));
}

unsigned int css_find_free_chpid(uint8_t cssid)
--
2.55.0