mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
s390/ap: Fix MAPML computation
When the TAPQ subfunction of PQAP returns a value between 0 and 3 in the ml field, the Principles of Operation states that the Maximum AP Message Length (MAPML) must be 12 KB. The previous code incorrectly calculated smaller sizes for ml values 1-2: - ml=1: 4 KB instead of 12 KB - ml=2: 8 KB instead of 12 KB While no current hardware reports ml=1 or ml=2, this fix ensures correct behavior for specification compliance and future-proofing. The fix ensures all ml values 0-3 correctly use the 12 KB default, with only values 4+ using the formula ml * 4096. Reviewed-by: Harald Freudenberger <freude@linux.ibm.com> Signed-off-by: Finn Callies <fcallies@linux.ibm.com> Acked-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
5ddf6f12dc
commit
0de29a313c
|
|
@ -241,7 +241,7 @@ struct ap_card *ap_card_create(int id, struct ap_tapq_hwinfo hwinfo,
|
|||
ac->ap_dev.device_type = comp_type;
|
||||
ac->hwinfo = hwinfo;
|
||||
ac->id = id;
|
||||
ac->maxmsgsize = hwinfo.ml > 0 ?
|
||||
ac->maxmsgsize = hwinfo.ml > 3 ?
|
||||
hwinfo.ml * AP_TAPQ_ML_FIELD_CHUNK_SIZE : AP_DEFAULT_MAX_MSG_SIZE;
|
||||
|
||||
return ac;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user