On 08/10/2024 12.54, David Hildenbrand wrote:
> With memory devices, we will have storage keys for memory that
> exceeds the initial ram size.
>
> The TODO already states that current handling is subopimal,
> but we won't worry about improving that (TCG-only) thing for now.
>
> Acked-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
> hw/s390x/s390-skeys.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c
> index bf22d6863e..e4297b3b8a 100644
> --- a/hw/s390x/s390-skeys.c
> +++ b/hw/s390x/s390-skeys.c
> @@ -11,7 +11,7 @@
>
> #include "qemu/osdep.h"
> #include "qemu/units.h"
> -#include "hw/boards.h"
> +#include "hw/s390x/s390-virtio-ccw.h"
> #include "hw/qdev-properties.h"
> #include "hw/s390x/storage-keys.h"
> #include "qapi/error.h"
> @@ -251,9 +251,9 @@ static bool qemu_s390_enable_skeys(S390SKeysState *ss)
> * g_once_init_enter() is good enough.
> */
> if (g_once_init_enter(&initialized)) {
> - MachineState *machine = MACHINE(qdev_get_machine());
> + S390CcwMachineState *s390ms = S390_CCW_MACHINE(qdev_get_machine());
>
> - skeys->key_count = machine->ram_size / TARGET_PAGE_SIZE;
> + skeys->key_count = s390_get_memory_limit(s390ms) / TARGET_PAGE_SIZE;
> skeys->keydata = g_malloc0(skeys->key_count);
> g_once_init_leave(&initialized, 1);
> }
Reviewed-by: Thomas Huth <thuth@redhat.com>