aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Hildenbrand <david@redhat.com>2017-04-07 04:50:39 -0400
committerRadim Krčmář <rkrcmar@redhat.com>2017-04-12 14:17:15 -0400
commit84a5c79e7048b94100d28f313b00dcbbe457c398 (patch)
treeb47e3f97df0b89e1d17f67e0b893c6ca12d1f058
parent9fecaa9e32ae7370878e5967d8874b6f58360b10 (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.c7
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,
484static int picdev_read(struct kvm_pic *s, 484static 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