diff options
author | David Hildenbrand <david@redhat.com> | 2017-04-07 04:50:39 -0400 |
---|---|---|
committer | Radim Krčmář <rkrcmar@redhat.com> | 2017-04-12 14:17:15 -0400 |
commit | 84a5c79e7048b94100d28f313b00dcbbe457c398 (patch) | |
tree | b47e3f97df0b89e1d17f67e0b893c6ca12d1f058 | |
parent | 9fecaa9e32ae7370878e5967d8874b6f58360b10 (diff) |
KVM: x86: set data directly in picdev_read()
Now it looks almost as picdev_write().
Signed-off-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
-rw-r--r-- | arch/x86/kvm/i8259.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/x86/kvm/i8259.c b/arch/x86/kvm/i8259.c index 5b5c87f4d8bd..d481f3346eb5 100644 --- a/arch/x86/kvm/i8259.c +++ b/arch/x86/kvm/i8259.c | |||
@@ -484,7 +484,7 @@ static int picdev_write(struct kvm_pic *s, | |||
484 | static int picdev_read(struct kvm_pic *s, | 484 | static int picdev_read(struct kvm_pic *s, |
485 | gpa_t addr, int len, void *val) | 485 | gpa_t addr, int len, void *val) |
486 | { | 486 | { |
487 | unsigned char data = 0; | 487 | unsigned char *data = (unsigned char *)val; |
488 | 488 | ||
489 | if (len != 1) { | 489 | if (len != 1) { |
490 | memset(val, 0, len); | 490 | memset(val, 0, len); |
@@ -497,19 +497,18 @@ static int picdev_read(struct kvm_pic *s, | |||
497 | case 0xa0: | 497 | case 0xa0: |
498 | case 0xa1: | 498 | case 0xa1: |
499 | pic_lock(s); | 499 | pic_lock(s); |
500 | data = pic_ioport_read(&s->pics[addr >> 7], addr); | 500 | *data = pic_ioport_read(&s->pics[addr >> 7], addr); |
501 | pic_unlock(s); | 501 | pic_unlock(s); |
502 | break; | 502 | break; |
503 | case 0x4d0: | 503 | case 0x4d0: |
504 | case 0x4d1: | 504 | case 0x4d1: |
505 | pic_lock(s); | 505 | pic_lock(s); |
506 | data = elcr_ioport_read(&s->pics[addr & 1], addr); | 506 | *data = elcr_ioport_read(&s->pics[addr & 1], addr); |
507 | pic_unlock(s); | 507 | pic_unlock(s); |
508 | break; | 508 | break; |
509 | default: | 509 | default: |
510 | return -EOPNOTSUPP; | 510 | return -EOPNOTSUPP; |
511 | } | 511 | } |
512 | *(unsigned char *)val = data; | ||
513 | return 0; | 512 | return 0; |
514 | } | 513 | } |
515 | 514 | ||