Introduce a new interrupt class for s390 adapter interrupts and enable irqfds for s390. This is depending on a new s390 specific vm capability, KVM_CAP_S390_IRQCHIP, that needs to be enabled by userspace.
Showing the changes to include/uapi/linux (1 of 9 files). Show all
Unified · Split
| @@ -742,6 +742,7 @@ struct kvm_ppc_smmu_info { · 741 unmodified lines | ||
| 742 | 742 | #define KVM_CAP_HYPERV_TIME 96 |
| 743 | 743 | #define KVM_CAP_IOAPIC_POLARITY_IGNORED 97 |
| 744 | 744 | #define KVM_CAP_ENABLE_CAP_VM 98 |
| 745 | +#define KVM_CAP_S390_IRQCHIP 99 | |
| 745 | 746 | |
| 746 | 747 | #ifdef KVM_CAP_IRQ_ROUTING |
| 747 | 748 | |
| @@ -757,9 +758,18 @@ struct kvm_irq_routing_msi { · 9 unmodified lines | ||
| 757 | 758 | __u32 pad; |
| 758 | 759 | }; |
| 759 | 760 | |
| 761 | +struct kvm_irq_routing_s390_adapter { | |
| 762 | + __u64 ind_addr; | |
| 763 | + __u64 summary_addr; | |
| 764 | + __u64 ind_offset; | |
| 765 | + __u32 summary_offset; | |
| 766 | + __u32 adapter_id; | |
| 767 | +}; | |
| 768 | + | |
| 760 | 769 | /* gsi routing entry types */ |
| 761 | 770 | #define KVM_IRQ_ROUTING_IRQCHIP 1 |
| 762 | 771 | #define KVM_IRQ_ROUTING_MSI 2 |
| 772 | +#define KVM_IRQ_ROUTING_S390_ADAPTER 3 | |
| 763 | 773 | |
| 764 | 774 | struct kvm_irq_routing_entry { |
| 765 | 775 | __u32 gsi; |
| @@ -769,6 +779,7 @@ struct kvm_irq_routing_entry { · 3 unmodified lines | ||
| 769 | 779 | union { |
| 770 | 780 | struct kvm_irq_routing_irqchip irqchip; |
| 771 | 781 | struct kvm_irq_routing_msi msi; |
| 782 | + struct kvm_irq_routing_s390_adapter adapter; | |
| 772 | 783 | __u32 pad[8]; |
| 773 | 784 | } u; |
| 774 | 785 | }; |