diff mbox series

[v1,2/2] s390x/sclp: fix missing be conversion

Message ID 20171218224616.21030-3-david@redhat.com
State New
Headers show
Series s390x/tcg: TEST PROTECTION and memory hotplug | expand

Commit Message

David Hildenbrand Dec. 18, 2017, 10:46 p.m. UTC
Linux crashes right now if maxmem > mem is specified on the command line.

On s390x, the guest can hotplug memory itself right now - very weird -
and e.g. Fedora 27 will simply add all memory it can when booting.

So now, we have at least the same behavior on TCG and KVM.

Signed-off-by: David Hildenbrand <david@redhat.com>
---
 hw/s390x/sclp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Thomas Huth Dec. 19, 2017, 8:25 a.m. UTC | #1
On 18.12.2017 23:46, David Hildenbrand wrote:
> Linux crashes right now if maxmem > mem is specified on the command line.
> 
> On s390x, the guest can hotplug memory itself right now - very weird -
> and e.g. Fedora 27 will simply add all memory it can when booting.
> 
> So now, we have at least the same behavior on TCG and KVM.
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>  hw/s390x/sclp.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
> index 9be0cb80ad..829c13bcf2 100644
> --- a/hw/s390x/sclp.c
> +++ b/hw/s390x/sclp.c
> @@ -233,7 +233,7 @@ static void assign_storage(SCLPDevice *sclp, SCCB *sccb)
>          sccb->h.response_code = cpu_to_be16(SCLP_RC_INVALID_SCLP_COMMAND);
>          return;
>      }
> -    assign_addr = (assign_info->rn - 1) * mhd->rzm;
> +    assign_addr = (be16_to_cpu(assign_info->rn) - 1) * mhd->rzm;
>  
>      if ((assign_addr % MEM_SECTION_SIZE == 0) &&
>          (assign_addr >= mhd->padded_ram_size)) {
> @@ -292,7 +292,7 @@ static void unassign_storage(SCLPDevice *sclp, SCCB *sccb)
>          sccb->h.response_code = cpu_to_be16(SCLP_RC_INVALID_SCLP_COMMAND);
>          return;
>      }
> -    unassign_addr = (assign_info->rn - 1) * mhd->rzm;
> +    unassign_addr = (be16_to_cpu(assign_info->rn) - 1) * mhd->rzm;
>  
>      /* if the addr is a multiple of 256 MB */
>      if ((unassign_addr % MEM_SECTION_SIZE == 0) &&
> 

Reviewed-by: Thomas Huth <thuth@redhat.com>
diff mbox series

Patch

diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
index 9be0cb80ad..829c13bcf2 100644
--- a/hw/s390x/sclp.c
+++ b/hw/s390x/sclp.c
@@ -233,7 +233,7 @@  static void assign_storage(SCLPDevice *sclp, SCCB *sccb)
         sccb->h.response_code = cpu_to_be16(SCLP_RC_INVALID_SCLP_COMMAND);
         return;
     }
-    assign_addr = (assign_info->rn - 1) * mhd->rzm;
+    assign_addr = (be16_to_cpu(assign_info->rn) - 1) * mhd->rzm;
 
     if ((assign_addr % MEM_SECTION_SIZE == 0) &&
         (assign_addr >= mhd->padded_ram_size)) {
@@ -292,7 +292,7 @@  static void unassign_storage(SCLPDevice *sclp, SCCB *sccb)
         sccb->h.response_code = cpu_to_be16(SCLP_RC_INVALID_SCLP_COMMAND);
         return;
     }
-    unassign_addr = (assign_info->rn - 1) * mhd->rzm;
+    unassign_addr = (be16_to_cpu(assign_info->rn) - 1) * mhd->rzm;
 
     /* if the addr is a multiple of 256 MB */
     if ((unassign_addr % MEM_SECTION_SIZE == 0) &&