vfio_ap_irq_enable(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 β€” the vfio_ap_queue holding 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 the PQAP(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 πŸ’œ:


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