s390x/sclp: Fixed the size of sccb and code parameter

The pointer to the SCCB should not be limited to 32 bits only.
In contrast to this, the command word parameter is only 32 bits
(the upper 32 bits should be ignored).

Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
Thomas Huth 2014-01-13 12:19:03 +01:00 committed by Christian Borntraeger
parent 9da45bb217
commit a0fa2cb8cc
3 changed files with 5 additions and 5 deletions

View File

@ -89,7 +89,7 @@ static void sclp_read_cpu_info(SCCB *sccb)
sccb->h.response_code = cpu_to_be16(SCLP_RC_NORMAL_READ_COMPLETION); sccb->h.response_code = cpu_to_be16(SCLP_RC_NORMAL_READ_COMPLETION);
} }
static void sclp_execute(SCCB *sccb, uint64_t code) static void sclp_execute(SCCB *sccb, uint32_t code)
{ {
S390SCLPDevice *sdev = get_event_facility(); S390SCLPDevice *sdev = get_event_facility();
@ -107,7 +107,7 @@ static void sclp_execute(SCCB *sccb, uint64_t code)
} }
} }
int sclp_service_call(uint32_t sccb, uint64_t code) int sclp_service_call(uint64_t sccb, uint32_t code)
{ {
int r = 0; int r = 0;
SCCB work_sccb; SCCB work_sccb;

View File

@ -963,7 +963,7 @@ struct sysib_322 {
void load_psw(CPUS390XState *env, uint64_t mask, uint64_t addr); void load_psw(CPUS390XState *env, uint64_t mask, uint64_t addr);
int mmu_translate(CPUS390XState *env, target_ulong vaddr, int rw, uint64_t asc, int mmu_translate(CPUS390XState *env, target_ulong vaddr, int rw, uint64_t asc,
target_ulong *raddr, int *flags); target_ulong *raddr, int *flags);
int sclp_service_call(uint32_t sccb, uint64_t code); int sclp_service_call(uint64_t sccb, uint32_t code);
uint32_t calc_cc(CPUS390XState *env, uint32_t cc_op, uint64_t src, uint64_t dst, uint32_t calc_cc(CPUS390XState *env, uint32_t cc_op, uint64_t src, uint64_t dst,
uint64_t vr); uint64_t vr);

View File

@ -440,8 +440,8 @@ static int kvm_sclp_service_call(S390CPU *cpu, struct kvm_run *run,
uint16_t ipbh0) uint16_t ipbh0)
{ {
CPUS390XState *env = &cpu->env; CPUS390XState *env = &cpu->env;
uint32_t sccb; uint64_t sccb;
uint64_t code; uint32_t code;
int r = 0; int r = 0;
cpu_synchronize_state(CPU(cpu)); cpu_synchronize_state(CPU(cpu));