Marcus Meissner
9b729e2acc
New package per "Factory first" policy. Please list me as bug owner and maintainer, if possible. OBS-URL: https://build.opensuse.org/request/show/459343 OBS-URL: https://build.opensuse.org/package/show/Base:System/s390-tools?expand=0&rev=1
36 lines
1.4 KiB
Diff
36 lines
1.4 KiB
Diff
Subject: [PATCH] [BZ 143050] zipl/boot: fix failed start subchannel in FBA loader
|
|
From: Stefan Haberland <sth@linux.vnet.ibm.com>
|
|
|
|
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 <sth@linux.vnet.ibm.com>
|
|
---
|
|
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 {
|