# KABI rules for symbols and modules
#
# A matching line with PASS allows kabi changes for given modules or symbols,
# FAIL causes an error. The first matching line is considered, the default is
# FAIL if no match is found.
#
# A pattern that contains slashes is matched against the module name a given
# symbol is exported from. The special pattern "vmlinux" matches built-in
# symbols. All other patterns match against symbol names.
drivers/staging/* PASS
klp_*_patch PASS
klp_shadow_* PASS
# KVM internal symbols (except ops)
kvm_x86_ops FAIL
arch/x86/kvm/* PASS
arch/powerpc/kvm/* PASS
kvmppc_* PASS
__xive_vm_h_* PASS
realmode_pfn_to_page PASS
iommu_tce_xchg_rm PASS
mm_iommu_lookup_rm PASS
mm_iommu_ua_to_hpa_rm PASS
mm_iommu_ua_to_hpa_shift_rm PASS
__kvm_* PASS
kvm_vcpu_gfn_to_* PASS
gfn_to_* PASS
mark_page_dirty PASS
kvm_clear_guest PASS
kvm_clear_guest_page PASS
kvm_get_dirty_log PASS
kvm_get_dirty_log_protect PASS
kvm_get_kvm PASS
kvm_gfn_to_hva_cache_init PASS
kvm_io_bus_get_dev PASS
kvm_io_bus_write PASS
kvm_irq_has_notifier PASS
kvm_is_visible_gfn PASS
kvm_put_kvm PASS
kvm_read_guest PASS
kvm_read_guest_atomic PASS
kvm_read_guest_cached PASS
kvm_read_guest_page PASS
kvm_set_memory_region PASS
kvm_vcpu_block PASS
kvm_vcpu_init PASS
kvm_vcpu_kick PASS
kvm_vcpu_mark_page_dirty PASS
kvm_vcpu_on_spin PASS
kvm_vcpu_read_guest PASS
kvm_vcpu_read_guest_atomic PASS
kvm_vcpu_read_guest_page PASS
kvm_vcpu_uninit PASS
kvm_vcpu_wake_up PASS
kvm_vcpu_write_guest PASS
kvm_vcpu_write_guest_page PASS
kvm_vcpu_yield_to PASS
kvm_write_guest PASS
kvm_write_guest_cached PASS
kvm_write_guest_offset_cached PASS
kvm_write_guest_page PASS
vcpu_load PASS
vcpu_put PASS
# functions shared between xive and kvm
xive_cleanup_irq_data PASS
xive_native_populate_irq_data PASS
# finctions internal to ppc radix mm
radix__* PASS
# bsc#1157480 ltc#181028 power-specific devicetree hotplug handling
# With support for new devicetree format the old function does not make sense
rpaphp_get_drc_props PASS
# POWER rtas internal symbols never intended to be exported - see ae2e953fdca791270e80c08d6a830d9aa472a111
rtas_online_cpus_mask PASS
rtas_offline_cpus_mask PASS
# IBM Z internal symbols
# Cf. bsc#894391 / LTC#115441 and bsc#1134730 / LTC#173388
arch/s390/* PASS
drivers/s390/* PASS
net/iucv/* PASS
airq_iv_* PASS
ccw_device_* PASS
ccw_driver_* PASS
get_ccwdev_* PASS
zpci_* PASS
register_adapter_interrupt PASS
unregister_adapter_interrupt PASS
enable_cmf PASS
disable_cmf PASS
cmf_read PASS
cmf_readall PASS
sclp PASS
# struct posix_clock change (CVE-2020-10690 bsc#1170056)
posix_clock_register PASS
# nobody cares bcache symbols
drivers/md/bcache/* PASS
# cxgb3 symbols
drivers/net/ethernet/chelsio/cxgb3/* PASS
# mlx5 internal symbols
drivers/net/ethernet/mellanox/mlx5/* PASS
# inter-module symbols for qed/qede/qedf/qedi/qedr
drivers/net/ethernet/qlogic/qed/* PASS
drivers/net/ethernet/qlogic/qede/* PASS
drivers/scsi/qedf/* PASS
drivers/scsi/qedi/* PASS
drivers/infiniband/hw/qedr/* PASS
drivers/nvme/host/nvme-fc* FAIL
drivers/nvme/host/* PASS
# qla2xxx only has local symbols
drivers/scsi/qla2xxx/* PASS
# inter-module symbols for hns3
drivers/net/ethernet/hisilicon/hns3/* PASS
drivers/net/ethernet/hisilicon/hns3/hns3pf/* PASS
drivers/net/ethernet/hisilicon/hns3/hns3vf/* PASS
drivers/infiniband/hw/hns/* PASS
# ceph-related modules
net/ceph/libceph PASS
drivers/block/rbd PASS
fs/ceph PASS
# no out-of-tree users
drivers/crypto/ccp/* PASS
# intermodule syms shared between cxgb4 and cxgb4vf
drivers/net/ethernet/chelsio/cxgb4/* PASS
drivers/net/ethernet/chelsio/cxgb4vf/* PASS
drivers/net/ethernet/chelsio/libcxgb/* PASS
# IOMMU related modules and symbols
get_dev_data PASS
# ath9k local symbols
drivers/net/wireless/ath/ath9k/* PASS
# not used externally, mark it pass in
# order to catch any wrong use bsc#1193767
drivers/tee/tee PASS
include/linux/tee_drv.h PASS
#l2tp local symbols
net/l2tp/* PASS