Skip to content

Commit be71dd7

Browse files
committed
fix struct type passed to kvm_vcpu_ioctl_get_msrs
1 parent e1bbbd1 commit be71dd7

File tree

4 files changed

+15
-10
lines changed

4 files changed

+15
-10
lines changed

kvm.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -2058,9 +2058,9 @@ kvm_ioctl(dev_t dev, int cmd, intptr_t arg, int md, cred_t *cr, int *rv)
20582058
{ KVM_X86_SETUP_MCE, kvm_vcpu_ioctl_x86_setup_mce,
20592059
sizeof (uint64_t) },
20602060
{ KVM_GET_MSRS, kvm_vcpu_ioctl_get_msrs,
2061-
sizeof (struct kvm_msrs), B_TRUE },
2061+
sizeof (struct msr_data), B_TRUE },
20622062
{ KVM_SET_MSRS, kvm_vcpu_ioctl_set_msrs,
2063-
sizeof (struct kvm_msrs) },
2063+
sizeof (struct msr_data) },
20642064
{ KVM_GET_MP_STATE, kvm_arch_vcpu_ioctl_get_mpstate,
20652065
sizeof (struct kvm_mp_state), B_TRUE },
20662066
{ KVM_SET_MP_STATE, kvm_arch_vcpu_ioctl_set_mpstate,

kvm_host.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -367,8 +367,8 @@ extern int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *,
367367
struct kvm_guest_debug *);
368368
extern int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *);
369369

370-
extern int kvm_vcpu_ioctl_get_msrs(struct kvm_vcpu *, struct kvm_msrs *, int *);
371-
extern int kvm_vcpu_ioctl_set_msrs(struct kvm_vcpu *, struct kvm_msrs *, int *);
370+
extern int kvm_vcpu_ioctl_get_msrs(struct kvm_vcpu *, struct msr_data *, int *);
371+
extern int kvm_vcpu_ioctl_set_msrs(struct kvm_vcpu *, struct msr_data *, int *);
372372
extern int kvm_vcpu_ioctl_x86_setup_mce(struct kvm_vcpu *, uint64_t *);
373373
extern int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *, struct kvm_cpuid2 *);
374374
extern int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *, struct kvm_cpuid2 *,

kvm_x86.c

+6-6
Original file line numberDiff line numberDiff line change
@@ -1525,14 +1525,14 @@ __msr_io(struct kvm_vcpu *vcpu, struct kvm_msrs *msrs,
15251525
}
15261526

15271527
int
1528-
kvm_vcpu_ioctl_get_msrs(struct kvm_vcpu *vcpu, struct kvm_msrs *msrs, int *rv)
1528+
kvm_vcpu_ioctl_get_msrs(struct kvm_vcpu *vcpu, struct msr_data *msrs, int *rv)
15291529
{
15301530
int r;
15311531

1532-
if (msrs->nmsrs >= MAX_IO_MSRS)
1532+
if (msrs->info.nmsrs >= MAX_IO_MSRS)
15331533
return (-E2BIG);
15341534

1535-
if ((r = __msr_io(vcpu, msrs, msrs->entries, kvm_get_msr)) < 0)
1535+
if ((r = __msr_io(vcpu, &msrs->info, msrs->entries, kvm_get_msr)) < 0)
15361536
return (r);
15371537

15381538
*rv = r;
@@ -1541,14 +1541,14 @@ kvm_vcpu_ioctl_get_msrs(struct kvm_vcpu *vcpu, struct kvm_msrs *msrs, int *rv)
15411541
}
15421542

15431543
int
1544-
kvm_vcpu_ioctl_set_msrs(struct kvm_vcpu *vcpu, struct kvm_msrs *msrs, int *rv)
1544+
kvm_vcpu_ioctl_set_msrs(struct kvm_vcpu *vcpu, struct msr_data *msrs, int *rv)
15451545
{
15461546
int r;
15471547

1548-
if (msrs->nmsrs >= MAX_IO_MSRS)
1548+
if (msrs->info.nmsrs >= MAX_IO_MSRS)
15491549
return (-E2BIG);
15501550

1551-
if ((r = __msr_io(vcpu, msrs, msrs->entries, do_set_msr)) < 0)
1551+
if ((r = __msr_io(vcpu, &msrs->info, msrs->entries, do_set_msr)) < 0)
15521552
return (-EINVAL);
15531553

15541554
*rv = r;

kvm_x86.h

+5
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,11 @@ typedef struct kvm_msrs {
155155
struct kvm_msr_entry entries[100];
156156
} kvm_msrs_t;
157157

158+
typedef struct msr_data {
159+
struct kvm_msrs info;
160+
struct kvm_msr_entry entries[100];
161+
} msr_data_t;
162+
158163
/* for KVM_GET_MSR_INDEX_LIST */
159164
typedef struct kvm_msr_list {
160165
uint32_t nmsrs; /* number of msrs in entries */

0 commit comments

Comments
 (0)