Functions within read scp/cpu info will need access to the machine
state. Let's make a call to retrieve the machine state once and
pass the appropriate data to the respective functions.
Signed-off-by: Collin Walling <walling@linux.ibm.com>
---
hw/s390x/sclp.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
index ede056b3ef..61e2e2839c 100644
--- a/hw/s390x/sclp.c
+++ b/hw/s390x/sclp.c
@@ -49,9 +49,8 @@ static inline bool sclp_command_code_valid(uint32_t code)
return false;
}
-static void prepare_cpu_entries(SCLPDevice *sclp, CPUEntry *entry, int *count)
+static void prepare_cpu_entries(MachineState *ms, CPUEntry *entry, int *count)
{
- MachineState *ms = MACHINE(qdev_get_machine());
uint8_t features[SCCB_CPU_FEATURE_LEN] = { 0 };
int i;
@@ -77,7 +76,7 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
IplParameterBlock *ipib = s390_ipl_get_iplb();
/* CPU information */
- prepare_cpu_entries(sclp, read_info->entries, &cpu_count);
+ prepare_cpu_entries(machine, read_info->entries, &cpu_count);
read_info->entries_cpu = cpu_to_be16(cpu_count);
read_info->offset_cpu = cpu_to_be16(offsetof(ReadInfo, entries));
read_info->highest_cpu = cpu_to_be16(machine->smp.max_cpus - 1);
@@ -132,10 +131,11 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
/* Provide information about the CPU */
static void sclp_read_cpu_info(SCLPDevice *sclp, SCCB *sccb)
{
+ MachineState *machine = MACHINE(qdev_get_machine());
ReadCpuInfo *cpu_info = (ReadCpuInfo *) sccb;
int cpu_count;
- prepare_cpu_entries(sclp, cpu_info->entries, &cpu_count);
+ prepare_cpu_entries(machine, cpu_info->entries, &cpu_count);
cpu_info->nr_configured = cpu_to_be16(cpu_count);
cpu_info->offset_configured = cpu_to_be16(offsetof(ReadCpuInfo, entries));
cpu_info->nr_standby = cpu_to_be16(0);
--
2.21.3
On 16.05.20 00:20, Collin Walling wrote:
> Functions within read scp/cpu info will need access to the machine
> state. Let's make a call to retrieve the machine state once and
> pass the appropriate data to the respective functions.
>
> Signed-off-by: Collin Walling <walling@linux.ibm.com>
> ---
> hw/s390x/sclp.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
> index ede056b3ef..61e2e2839c 100644
> --- a/hw/s390x/sclp.c
> +++ b/hw/s390x/sclp.c
> @@ -49,9 +49,8 @@ static inline bool sclp_command_code_valid(uint32_t code)
> return false;
> }
>
> -static void prepare_cpu_entries(SCLPDevice *sclp, CPUEntry *entry, int *count)
> +static void prepare_cpu_entries(MachineState *ms, CPUEntry *entry, int *count)
> {
> - MachineState *ms = MACHINE(qdev_get_machine());
> uint8_t features[SCCB_CPU_FEATURE_LEN] = { 0 };
> int i;
>
> @@ -77,7 +76,7 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
> IplParameterBlock *ipib = s390_ipl_get_iplb();
>
> /* CPU information */
> - prepare_cpu_entries(sclp, read_info->entries, &cpu_count);
> + prepare_cpu_entries(machine, read_info->entries, &cpu_count);
> read_info->entries_cpu = cpu_to_be16(cpu_count);
> read_info->offset_cpu = cpu_to_be16(offsetof(ReadInfo, entries));
> read_info->highest_cpu = cpu_to_be16(machine->smp.max_cpus - 1);
> @@ -132,10 +131,11 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
> /* Provide information about the CPU */
> static void sclp_read_cpu_info(SCLPDevice *sclp, SCCB *sccb)
> {
> + MachineState *machine = MACHINE(qdev_get_machine());
> ReadCpuInfo *cpu_info = (ReadCpuInfo *) sccb;
> int cpu_count;
>
> - prepare_cpu_entries(sclp, cpu_info->entries, &cpu_count);
> + prepare_cpu_entries(machine, cpu_info->entries, &cpu_count);
> cpu_info->nr_configured = cpu_to_be16(cpu_count);
> cpu_info->offset_configured = cpu_to_be16(offsetof(ReadCpuInfo, entries));
> cpu_info->nr_standby = cpu_to_be16(0);
>
Reviewed-by: David Hildenbrand <david@redhat.com>
--
Thanks,
David / dhildenb
On 5/18/20 4:38 AM, David Hildenbrand wrote:
> On 16.05.20 00:20, Collin Walling wrote:
>> Functions within read scp/cpu info will need access to the machine
>> state. Let's make a call to retrieve the machine state once and
>> pass the appropriate data to the respective functions.
>>
>> Signed-off-by: Collin Walling <walling@linux.ibm.com>
>> ---
>> hw/s390x/sclp.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
>> index ede056b3ef..61e2e2839c 100644
>> --- a/hw/s390x/sclp.c
>> +++ b/hw/s390x/sclp.c
>> @@ -49,9 +49,8 @@ static inline bool sclp_command_code_valid(uint32_t code)
>> return false;
>> }
>>
>> -static void prepare_cpu_entries(SCLPDevice *sclp, CPUEntry *entry, int *count)
>> +static void prepare_cpu_entries(MachineState *ms, CPUEntry *entry, int *count)
>> {
>> - MachineState *ms = MACHINE(qdev_get_machine());
>> uint8_t features[SCCB_CPU_FEATURE_LEN] = { 0 };
>> int i;
>>
>> @@ -77,7 +76,7 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
>> IplParameterBlock *ipib = s390_ipl_get_iplb();
>>
>> /* CPU information */
>> - prepare_cpu_entries(sclp, read_info->entries, &cpu_count);
>> + prepare_cpu_entries(machine, read_info->entries, &cpu_count);
>> read_info->entries_cpu = cpu_to_be16(cpu_count);
>> read_info->offset_cpu = cpu_to_be16(offsetof(ReadInfo, entries));
>> read_info->highest_cpu = cpu_to_be16(machine->smp.max_cpus - 1);
>> @@ -132,10 +131,11 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
>> /* Provide information about the CPU */
>> static void sclp_read_cpu_info(SCLPDevice *sclp, SCCB *sccb)
>> {
>> + MachineState *machine = MACHINE(qdev_get_machine());
>> ReadCpuInfo *cpu_info = (ReadCpuInfo *) sccb;
>> int cpu_count;
>>
>> - prepare_cpu_entries(sclp, cpu_info->entries, &cpu_count);
>> + prepare_cpu_entries(machine, cpu_info->entries, &cpu_count);
>> cpu_info->nr_configured = cpu_to_be16(cpu_count);
>> cpu_info->offset_configured = cpu_to_be16(offsetof(ReadCpuInfo, entries));
>> cpu_info->nr_standby = cpu_to_be16(0);
>>
>
> Reviewed-by: David Hildenbrand <david@redhat.com>
>
Thanks!
--
Regards,
Collin
Stay safe and stay healthy
On 16/05/2020 00.20, Collin Walling wrote:
> Functions within read scp/cpu info will need access to the machine
> state. Let's make a call to retrieve the machine state once and
> pass the appropriate data to the respective functions.
>
> Signed-off-by: Collin Walling <walling@linux.ibm.com>
> ---
> hw/s390x/sclp.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
> index ede056b3ef..61e2e2839c 100644
> --- a/hw/s390x/sclp.c
> +++ b/hw/s390x/sclp.c
> @@ -49,9 +49,8 @@ static inline bool sclp_command_code_valid(uint32_t code)
> return false;
> }
>
> -static void prepare_cpu_entries(SCLPDevice *sclp, CPUEntry *entry, int *count)
> +static void prepare_cpu_entries(MachineState *ms, CPUEntry *entry, int *count)
> {
> - MachineState *ms = MACHINE(qdev_get_machine());
> uint8_t features[SCCB_CPU_FEATURE_LEN] = { 0 };
> int i;
>
> @@ -77,7 +76,7 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
> IplParameterBlock *ipib = s390_ipl_get_iplb();
>
> /* CPU information */
> - prepare_cpu_entries(sclp, read_info->entries, &cpu_count);
> + prepare_cpu_entries(machine, read_info->entries, &cpu_count);
> read_info->entries_cpu = cpu_to_be16(cpu_count);
> read_info->offset_cpu = cpu_to_be16(offsetof(ReadInfo, entries));
> read_info->highest_cpu = cpu_to_be16(machine->smp.max_cpus - 1);
> @@ -132,10 +131,11 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
> /* Provide information about the CPU */
> static void sclp_read_cpu_info(SCLPDevice *sclp, SCCB *sccb)
> {
> + MachineState *machine = MACHINE(qdev_get_machine());
> ReadCpuInfo *cpu_info = (ReadCpuInfo *) sccb;
> int cpu_count;
>
> - prepare_cpu_entries(sclp, cpu_info->entries, &cpu_count);
> + prepare_cpu_entries(machine, cpu_info->entries, &cpu_count);
> cpu_info->nr_configured = cpu_to_be16(cpu_count);
> cpu_info->offset_configured = cpu_to_be16(offsetof(ReadCpuInfo, entries));
> cpu_info->nr_standby = cpu_to_be16(0);
>
Reviewed-by: Thomas Huth <thuth@redhat.com>
© 2016 - 2026 Red Hat, Inc.