Message ID | 20200924085926.21709-3-mhartmay@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | pc-bios: s390x: fix corner cases in booting from ECKD | expand |
On 24/09/2020 10.59, Marc Hartmayer wrote: > Break the loop if `cur_block_nr` is a null block number because this > means that the end of chunk is reached. In this case we will try to > boot the default entry. > > Fixes: ba831b25262a ("s390-ccw: read stage2 boot loader data to find menu") > Reviewed-by: Collin Walling <walling@linux.ibm.com> > Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com> > --- > pc-bios/s390-ccw/bootmap.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c > index 0d29dceaa3cc..08f16c5595a3 100644 > --- a/pc-bios/s390-ccw/bootmap.c > +++ b/pc-bios/s390-ccw/bootmap.c > @@ -192,7 +192,7 @@ static int eckd_get_boot_menu_index(block_number_t s1b_block_nr) > for (i = 0; i < STAGE2_BLK_CNT_MAX; i++) { > cur_block_nr = eckd_block_num(&s1b->seek[i].chs); > > - if (!cur_block_nr) { > + if (!cur_block_nr || is_null_block_number(cur_block_nr)) { > break; > } Reviewed-by: Thomas Huth <thuth@redhat.com> I'll queue the two patches on my s390-ccw bios branch. Just let me know if you'd like to have the "< ... - 3" changed into "<= ... - 4" in the first patch, I can tweak it directly if you like. Thomas
On Thu, Sep 24, 2020 at 01:49 PM +0200, Thomas Huth <thuth@redhat.com> wrote: > On 24/09/2020 10.59, Marc Hartmayer wrote: >> Break the loop if `cur_block_nr` is a null block number because this >> means that the end of chunk is reached. In this case we will try to >> boot the default entry. >> >> Fixes: ba831b25262a ("s390-ccw: read stage2 boot loader data to find menu") >> Reviewed-by: Collin Walling <walling@linux.ibm.com> >> Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com> >> --- >> pc-bios/s390-ccw/bootmap.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c >> index 0d29dceaa3cc..08f16c5595a3 100644 >> --- a/pc-bios/s390-ccw/bootmap.c >> +++ b/pc-bios/s390-ccw/bootmap.c >> @@ -192,7 +192,7 @@ static int eckd_get_boot_menu_index(block_number_t s1b_block_nr) >> for (i = 0; i < STAGE2_BLK_CNT_MAX; i++) { >> cur_block_nr = eckd_block_num(&s1b->seek[i].chs); >> >> - if (!cur_block_nr) { >> + if (!cur_block_nr || is_null_block_number(cur_block_nr)) { >> break; >> } > > Reviewed-by: Thomas Huth <thuth@redhat.com> > > I'll queue the two patches on my s390-ccw bios branch. Just let me know > if you'd like to have the "< ... - 3" changed into "<= ... - 4" in the > first patch, I can tweak it directly if you like. Yes, please change it to <= … - 4. Thanks! > > Thomas >
diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c index 0d29dceaa3cc..08f16c5595a3 100644 --- a/pc-bios/s390-ccw/bootmap.c +++ b/pc-bios/s390-ccw/bootmap.c @@ -192,7 +192,7 @@ static int eckd_get_boot_menu_index(block_number_t s1b_block_nr) for (i = 0; i < STAGE2_BLK_CNT_MAX; i++) { cur_block_nr = eckd_block_num(&s1b->seek[i].chs); - if (!cur_block_nr) { + if (!cur_block_nr || is_null_block_number(cur_block_nr)) { break; }