OSDN Git Service

signal/arm/kvm: Use send_sig_mceerr
authorEric W. Biederman <ebiederm@xmission.com>
Mon, 16 Apr 2018 18:39:10 +0000 (13:39 -0500)
committerEric W. Biederman <ebiederm@xmission.com>
Thu, 27 Sep 2018 19:57:43 +0000 (21:57 +0200)
This simplifies the code making it clearer what is going on, and
making the siginfo generation easier to maintain.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
virt/kvm/arm/mmu.c

index 91aaf73..39c0405 100644 (file)
@@ -1450,20 +1450,14 @@ static void invalidate_icache_guest_page(kvm_pfn_t pfn, unsigned long size)
 static void kvm_send_hwpoison_signal(unsigned long address,
                                     struct vm_area_struct *vma)
 {
-       siginfo_t info;
-
-       clear_siginfo(&info);
-       info.si_signo   = SIGBUS;
-       info.si_errno   = 0;
-       info.si_code    = BUS_MCEERR_AR;
-       info.si_addr    = (void __user *)address;
+       short lsb;
 
        if (is_vm_hugetlb_page(vma))
-               info.si_addr_lsb = huge_page_shift(hstate_vma(vma));
+               lsb = huge_page_shift(hstate_vma(vma));
        else
-               info.si_addr_lsb = PAGE_SHIFT;
+               lsb = PAGE_SHIFT;
 
-       send_sig_info(SIGBUS, &info, current);
+       send_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb, current);
 }
 
 static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,