Subject: [PATCH] zipl/boot: fix failed start subchannel in FBA loader From: Stefan Haberland 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. The resulting error message during IPL of a FBA device is: Start subchannel failed disabled wait PSW 00020000 80000000 00000000 00004502 The error might occur randomly depending on the size of the kernel image and offsets within it. Fix by correcting the split rule. Signed-off-by: Stefan Haberland --- zipl/boot/fba2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zipl/boot/fba2.c b/zipl/boot/fba2.c index 3614c31..0bcc770 100644 --- 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 {