diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-04 12:30:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-04 12:30:33 -0400 |
commit | ecefbd94b834fa32559d854646d777c56749ef1c (patch) | |
tree | ca8958900ad9e208a8e5fb7704f1b66dc76131b4 /arch/s390/kernel/dis.c | |
parent | ce57e981f2b996aaca2031003b3f866368307766 (diff) | |
parent | 3d11df7abbff013b811d5615320580cd5d9d7d31 (diff) |
Merge tag 'kvm-3.7-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM updates from Avi Kivity:
"Highlights of the changes for this release include support for vfio
level triggered interrupts, improved big real mode support on older
Intels, a streamlines guest page table walker, guest APIC speedups,
PIO optimizations, better overcommit handling, and read-only memory."
* tag 'kvm-3.7-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (138 commits)
KVM: s390: Fix vcpu_load handling in interrupt code
KVM: x86: Fix guest debug across vcpu INIT reset
KVM: Add resampling irqfds for level triggered interrupts
KVM: optimize apic interrupt delivery
KVM: MMU: Eliminate pointless temporary 'ac'
KVM: MMU: Avoid access/dirty update loop if all is well
KVM: MMU: Eliminate eperm temporary
KVM: MMU: Optimize is_last_gpte()
KVM: MMU: Simplify walk_addr_generic() loop
KVM: MMU: Optimize pte permission checks
KVM: MMU: Update accessed and dirty bits after guest pagetable walk
KVM: MMU: Move gpte_access() out of paging_tmpl.h
KVM: MMU: Optimize gpte_access() slightly
KVM: MMU: Push clean gpte write protection out of gpte_access()
KVM: clarify kvmclock documentation
KVM: make processes waiting on vcpu mutex killable
KVM: SVM: Make use of asm.h
KVM: VMX: Make use of asm.h
KVM: VMX: Make lto-friendly
KVM: x86: lapic: Clean up find_highest_vector() and count_vectors()
...
Conflicts:
arch/s390/include/asm/processor.h
arch/x86/kvm/i8259.c
Diffstat (limited to 'arch/s390/kernel/dis.c')
-rw-r--r-- | arch/s390/kernel/dis.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/s390/kernel/dis.c b/arch/s390/kernel/dis.c index cc84a24c023f..f00286bd2ef9 100644 --- a/arch/s390/kernel/dis.c +++ b/arch/s390/kernel/dis.c | |||
@@ -1501,6 +1501,33 @@ static struct insn *find_insn(unsigned char *code) | |||
1501 | return NULL; | 1501 | return NULL; |
1502 | } | 1502 | } |
1503 | 1503 | ||
1504 | /** | ||
1505 | * insn_to_mnemonic - decode an s390 instruction | ||
1506 | * @instruction: instruction to decode | ||
1507 | * @buf: buffer to fill with mnemonic | ||
1508 | * | ||
1509 | * Decode the instruction at @instruction and store the corresponding | ||
1510 | * mnemonic into @buf. | ||
1511 | * @buf is left unchanged if the instruction could not be decoded. | ||
1512 | * Returns: | ||
1513 | * %0 on success, %-ENOENT if the instruction was not found. | ||
1514 | */ | ||
1515 | int insn_to_mnemonic(unsigned char *instruction, char buf[8]) | ||
1516 | { | ||
1517 | struct insn *insn; | ||
1518 | |||
1519 | insn = find_insn(instruction); | ||
1520 | if (!insn) | ||
1521 | return -ENOENT; | ||
1522 | if (insn->name[0] == '\0') | ||
1523 | snprintf(buf, sizeof(buf), "%s", | ||
1524 | long_insn_name[(int) insn->name[1]]); | ||
1525 | else | ||
1526 | snprintf(buf, sizeof(buf), "%.5s", insn->name); | ||
1527 | return 0; | ||
1528 | } | ||
1529 | EXPORT_SYMBOL_GPL(insn_to_mnemonic); | ||
1530 | |||
1504 | static int print_insn(char *buffer, unsigned char *code, unsigned long addr) | 1531 | static int print_insn(char *buffer, unsigned char *code, unsigned long addr) |
1505 | { | 1532 | { |
1506 | struct insn *insn; | 1533 | struct insn *insn; |