diff options
author | David Hildenbrand <david@redhat.com> | 2017-04-07 04:50:38 -0400 |
---|---|---|
committer | Radim Krčmář <rkrcmar@redhat.com> | 2017-04-12 14:17:14 -0400 |
commit | 9fecaa9e32ae7370878e5967d8874b6f58360b10 (patch) | |
tree | b2d00dd1fef660a22773dd9991d68a4f0fd3dad9 | |
parent | dc24d1d2cbfa3f69c74825253d5931d1ff499205 (diff) |
KVM: x86: drop picdev_in_range()
We already have the exact same checks a couple of lines below.
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 | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/arch/x86/kvm/i8259.c b/arch/x86/kvm/i8259.c index 0252e680097c..5b5c87f4d8bd 100644 --- a/arch/x86/kvm/i8259.c +++ b/arch/x86/kvm/i8259.c | |||
@@ -451,46 +451,33 @@ static u32 elcr_ioport_read(void *opaque, u32 addr1) | |||
451 | return s->elcr; | 451 | return s->elcr; |
452 | } | 452 | } |
453 | 453 | ||
454 | static int picdev_in_range(gpa_t addr) | ||
455 | { | ||
456 | switch (addr) { | ||
457 | case 0x20: | ||
458 | case 0x21: | ||
459 | case 0xa0: | ||
460 | case 0xa1: | ||
461 | case 0x4d0: | ||
462 | case 0x4d1: | ||
463 | return 1; | ||
464 | default: | ||
465 | return 0; | ||
466 | } | ||
467 | } | ||
468 | |||
469 | static int picdev_write(struct kvm_pic *s, | 454 | static int picdev_write(struct kvm_pic *s, |
470 | gpa_t addr, int len, const void *val) | 455 | gpa_t addr, int len, const void *val) |
471 | { | 456 | { |
472 | unsigned char data = *(unsigned char *)val; | 457 | unsigned char data = *(unsigned char *)val; |
473 | if (!picdev_in_range(addr)) | ||
474 | return -EOPNOTSUPP; | ||
475 | 458 | ||
476 | if (len != 1) { | 459 | if (len != 1) { |
477 | pr_pic_unimpl("non byte write\n"); | 460 | pr_pic_unimpl("non byte write\n"); |
478 | return 0; | 461 | return 0; |
479 | } | 462 | } |
480 | pic_lock(s); | ||
481 | switch (addr) { | 463 | switch (addr) { |
482 | case 0x20: | 464 | case 0x20: |
483 | case 0x21: | 465 | case 0x21: |
484 | case 0xa0: | 466 | case 0xa0: |
485 | case 0xa1: | 467 | case 0xa1: |
468 | pic_lock(s); | ||
486 | pic_ioport_write(&s->pics[addr >> 7], addr, data); | 469 | pic_ioport_write(&s->pics[addr >> 7], addr, data); |
470 | pic_unlock(s); | ||
487 | break; | 471 | break; |
488 | case 0x4d0: | 472 | case 0x4d0: |
489 | case 0x4d1: | 473 | case 0x4d1: |
474 | pic_lock(s); | ||
490 | elcr_ioport_write(&s->pics[addr & 1], addr, data); | 475 | elcr_ioport_write(&s->pics[addr & 1], addr, data); |
476 | pic_unlock(s); | ||
491 | break; | 477 | break; |
478 | default: | ||
479 | return -EOPNOTSUPP; | ||
492 | } | 480 | } |
493 | pic_unlock(s); | ||
494 | return 0; | 481 | return 0; |
495 | } | 482 | } |
496 | 483 | ||
@@ -498,29 +485,31 @@ static int picdev_read(struct kvm_pic *s, | |||
498 | gpa_t addr, int len, void *val) | 485 | gpa_t addr, int len, void *val) |
499 | { | 486 | { |
500 | unsigned char data = 0; | 487 | unsigned char data = 0; |
501 | if (!picdev_in_range(addr)) | ||
502 | return -EOPNOTSUPP; | ||
503 | 488 | ||
504 | if (len != 1) { | 489 | if (len != 1) { |
505 | memset(val, 0, len); | 490 | memset(val, 0, len); |
506 | pr_pic_unimpl("non byte read\n"); | 491 | pr_pic_unimpl("non byte read\n"); |
507 | return 0; | 492 | return 0; |
508 | } | 493 | } |
509 | pic_lock(s); | ||
510 | switch (addr) { | 494 | switch (addr) { |
511 | case 0x20: | 495 | case 0x20: |
512 | case 0x21: | 496 | case 0x21: |
513 | case 0xa0: | 497 | case 0xa0: |
514 | case 0xa1: | 498 | case 0xa1: |
499 | pic_lock(s); | ||
515 | data = pic_ioport_read(&s->pics[addr >> 7], addr); | 500 | data = pic_ioport_read(&s->pics[addr >> 7], addr); |
501 | pic_unlock(s); | ||
516 | break; | 502 | break; |
517 | case 0x4d0: | 503 | case 0x4d0: |
518 | case 0x4d1: | 504 | case 0x4d1: |
505 | pic_lock(s); | ||
519 | data = elcr_ioport_read(&s->pics[addr & 1], addr); | 506 | data = elcr_ioport_read(&s->pics[addr & 1], addr); |
507 | pic_unlock(s); | ||
520 | break; | 508 | break; |
509 | default: | ||
510 | return -EOPNOTSUPP; | ||
521 | } | 511 | } |
522 | *(unsigned char *)val = data; | 512 | *(unsigned char *)val = data; |
523 | pic_unlock(s); | ||
524 | return 0; | 513 | return 0; |
525 | } | 514 | } |
526 | 515 | ||