Hirdetés

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

  • dabadab
    titán

    É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.

    Ezzel (meg nevemfel megoldásával) elég nyilvánvalóan az a gond, hogy olyan függvényeket is meghívsz, amiket nem kellene (szabadna) és a kód azt mondja, hogy az, hogy h a vcpu nem runnable, az még tök oké, mert attól még csinálhatunk itt dolgokat, noha ennek pont az ellenkezője a helyzet.

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