Subject: [PATCH] [BZ 143050] zipl/boot: fix failed start subchannel in FBA loader From: Stefan Haberland Description: zipl/boot: fix failed start subchannel in FBA loader Symptom: IPL of a FBA device fails with: Start subchannel failed disabled wait PSW 00020000 80000000 00000000 00004502 Problem: The FBA loader has only a limited amount of memory to build CCW requests. Therefore larger I/O requests need to be split. This splitting was off by one leading to the fact that one CCW request uses memory of another data structure which in turn leads to corrupted data. Solution: Fix by correcting the split rule. Reproduction: IPL a FBA device. The error might occur randomly depending on the size of the kernel image and offsets within it. Upstream-ID: - Problem-ID: 143050 Signed-off-by: Stefan Haberland --- zipl/boot/fba2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/zipl/boot/fba2.c +++ b/zipl/boot/fba2.c @@ -59,7 +59,7 @@ restart: memset(irb, 0, sizeof(struct irb)); memset(&orb, 0, sizeof(struct orb)); - if (blockptr->blockct > MAX_BLOCKCT) { + if (blockptr->blockct >= MAX_BLOCKCT) { record_number = MAX_BLOCKCT - 1; blockptr->blockct -= MAX_BLOCKCT; } else {