vfio_ap_irq_enable(9)
π vfio_ap_irq_enable(9) β like, the whole tea β
okay so bestie, welcome to the Kernel API Manual entry for vfio_ap_irq_enable(9) β¨ this one's short but it's doing the most under the hood, i promise.
β¨ NAME β¨
vfio_ap_irq_enable β Enable Interruption for a APQN π (yes bestie, "a APQN", that's literally how it's written, we don't edit the source π
)
π¦ SYNOPSIS π¦
struct ap_queue_status vfio_ap_irq_enable (struct vfio_ap_queue *q , int
isc , struct kvm_vcpu *vcpu );
like, it takes three things and hands you back a struct ap_queue_status. slay.
πΈ ARGUMENTS πΈ
qβ thevfio_ap_queueholding the AQIC parameters. she's the main character holding all the info πiscβ the guest ISC to register with the GIB interface. guest-side vibes only β¨vcpuβ the vcpu object containing the registers specifying the parameters passed to thePQAP(AQIC)instruction. it's giving "everything you need is in here" π«Ά
π DESCRIPTION π
So here's the plot: pin the NIB saved in *q, register the guest ISC to the GIB interface, and retrieve the host ISC to issue the host side PQAP/AQIC. that's the whole errand, no cap π₯
status.response_code may be set to AP_RESPONSE_INVALID_ADDRESS in case the vfio_pin_pages or kvm_s390_gisc_register failed. like, if either of those flops, that's what you get π
Otherwise, return the ap_queue_status returned by the ap_aqic β all retry handling will be done by the guest. not us. the guest's problem now, periodt π
π RETURN π
struct ap_queue_status β that's it, that's the return, she's simple and iconic π
π§ SEE ALSO π§
Kernel file ./drivers/s390/crypto/vfio_ap_ops.c (go read the receipts bestie)
and like, the whole extended friend group π:
get_update_locks_for_kvm(9),release_update_locks_for_kvm(9)get_update_locks_for_mdev(9),release_update_locks_for_mdev(9)get_update_locks_by_apqn(9),get_update_locks_for_queue(9)vfio_ap_mdev_get_queue(9),vfio_ap_wait_for_irqclear(9)vfio_ap_free_aqic_resources(9),vfio_ap_irq_disable(9)vfio_ap_validate_nib(9),ensure_nib_shared(9)vfio_ap_le_guid_to_be_uuid(9),handle_pqap(9)vfio_ap_mdev_verify_no_sharing(9),vfio_ap_mdev_validate_masks(9)assign_adapter_store(9),vfio_ap_mdev_unlink_adapter(9),unassign_adapter_store(9)assign_domain_store(9),unassign_domain_store(9)assign_control_domain_store(9),unassign_control_domain_store(9)vfio_ap_mdev_set_kvm(9),vfio_ap_mdev_unset_kvm(9)vfio_ap_mdev_resource_in_use(9),vfio_ap_mdev_hot_unplug_cfg(9)vfio_ap_mdev_cfg_remove(9),vfio_ap_mdev_on_cfg_remove(9)vfio_ap_filter_apid_by_qtype(9),vfio_ap_mdev_cfg_add(9),vfio_ap_mdev_on_cfg_add(9)vfio_ap_on_cfg_changed(9)
ngl bestie, if you touch this, go read vfio_ap_irq_disable(9) too β they're a matched set π
k bye ily, this page lives in ./drivers/s390/crypto π and it's dated October 2026 β β signed, sealed, vfio_ap_irq_enable(9) π¦π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms