Hirdetés

Új hozzászólás Aktív témák

  • nevemfel
    senior tag

    Én ilyenkor inkább így szoktam:

    static int kvm_vcpu_check_block(struct kvm_vcpu *vcpu)
    {
    int ret = 0;
    int idx = srcu_read_lock(&vcpu->kvm->srcu);

    if (kvm_arch_vcpu_runnable(vcpu)) {
    kvm_make_request(KVM_REQ_UNHALT, vcpu);
    ret = -EINTR;
    }
    if (kvm_cpu_has_pending_timer(vcpu))
    {
    ret = -EINTR;
    }
    if (signal_pending(current))
    {
    ret = -EINTR;
    }

    srcu_read_unlock(&vcpu->kvm->srcu, idx);
    return ret;
    }

    Persze ekkor az nincs lekezelve, hogy a többi if-et kihagyja a returnbe érés előtt, ez kérdés szabad-e ebben a Linux driverben.

    Én is így okoskodtam:

    static int kvm_vcpu_check_block(struct kvm_vcpu *vcpu)
    {
        int ret = 0;
        int idx = srcu_read_lock(&vcpu->kvm->srcu);
        if (kvm_arch_vcpu_runnable(vcpu)) {
            kvm_make_request(KVM_REQ_UNHALT, vcpu);
            ret = -EINTR;
        }
        if (kvm_cpu_has_pending_timer(vcpu) || signal_pending(current)) {
            ret = -EINTR;
        }
        srcu_read_unlock(&vcpu->kvm->srcu, idx);
        return ret;
    }

    (ez a kódformázás, ehh...)

Új hozzászólás Aktív témák