diff mbox series

[2/3] pc-bios/s390-ccw: break loop if a null block number is reached

Message ID 20200924085926.21709-3-mhartmay@linux.ibm.com
State New
Headers show
Series pc-bios: s390x: fix corner cases in booting from ECKD | expand

Commit Message

Marc Hartmayer Sept. 24, 2020, 8:59 a.m. UTC
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(-)

Comments

Thomas Huth Sept. 24, 2020, 11:49 a.m. UTC | #1
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
Marc Hartmayer Sept. 24, 2020, 2:10 p.m. UTC | #2
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 mbox series

Patch

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;
         }