# 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/message/fusion/*	PASS
drivers/staging/*		PASS

# KVM related symbols
kvm_x86_ops			FAIL
arch/x86/kvm/*			PASS
arch/powerpc/kvm/*		PASS
kvmppc_*			PASS
kvmhv_*				PASS

# ceph-related modules
net/ceph/libceph		PASS
drivers/block/rbd		PASS
fs/ceph				PASS
drivers/target/target_core_rbd	PASS

# nobody cares bcache symbols
drivers/md/bcache/*		PASS

# IOMMU related modules and symbols
get_dev_data			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

# SMC tracepoints
# c.f. bsc#1247308
__traceiter_smc*		PASS

# amds pds internal symbols
drivers/net/ethernet/amd/pds_core/*	PASS

# mlx5 internal symbols
drivers/net/ethernet/mellanox/mlx5/*	PASS

# CXL is changing rapidly
cxl_cper_kfifo_get		PASS
drivers/cxl/*			PASS
drivers/cxl/core/*		PASS
include/linux/cxl-events.h	PASS

drivers/nvme/host/nvme-fc*	FAIL
drivers/nvme/host/*		PASS
drivers/nvme/target/*		PASS
drivers/nvme/common/*		PASS

# qla2xxx only has local symbols
drivers/scsi/qla2xxx/*		PASS

# microchip dsa symbols 
drivers/net/dsa/microchip/*	PASS

# workaround for bsc#1220773 comment 69
vcap_find_actionfield		PASS

# hisilicon hns3 symbols
drivers/net/ethernet/hisilicon/hns3/*	PASS

# exported to drivers/infiniband/hw/irdma
drivers/net/ethernet/intel/ice/* PASS

# mscc/ocelot only has local symbols
drivers/net/ethernet/mscc/*     PASS

# exported to drivers/infiband/hw/mana
drivers/net/ethernet/microsoft/mana/*	PASS

# Qlogic qed local symbols
drivers/net/ethernet/qlogic/qed/* PASS

# stmmac local symbols
drivers/net/ethernet/stmicro/stmmac/* PASS

# Wangxun local symbols
drivers/net/ethernet/wangxun/libwx/* PASS

# local symbols in wireless drivers
drivers/net/wireless/ath/*	PASS
drivers/net/wireless/broadcom/*	PASS
drivers/net/wireless/intel/iwlwifi/* PASS
drivers/net/wireless/intersil/* PASS
drivers/net/wireless/marvell/*	PASS
drivers/net/wireless/mediatek/*	PASS
drivers/net/wireless/ralink/*	PASS
drivers/net/wireless/realtek/*	PASS
# MT76-related changes
mtk_soc_wed_ops				PASS

# dropped due to section mismatch (bsc#1201218)
hv_init_clocksource		PASS
mdio_bus_init			PASS
seg6_hmac_net_init		PASS
seg6_hmac_init			PASS
tick_nohz_full_setup		PASS
xen_xlate_map_ballooned_pages	PASS
xfrm4_protocol_init		PASS

# dropped by rt5682 fix
rt5682_headset_detect		PASS

# Intel thermal TCC, only locally used
intel_tcc_get_temp		PASS

# driver update due to ECO jsc#SLE-24682 
drivers/net/ethernet/marvell/octeontx2/* PASS

# QAT update requested in jsc#PED-3692,
# IAA is a tech preview (jsc#PED-7793)i
# Both under intel/
drivers/crypto/intel/* PASS

# dropped due to new enum added (bsc#1202471)
drivers/scsi/hisi_sas/*		PASS

# CS35L41 HD-audio local dependencies
sound/pci/hda/snd-hda-cs-dsp-ctls	PASS

# bq27xxx_battery power supply local dependencies
drivers/power/supply/bq27xxx_battery	PASS

# Power9 VAS subsystem for on-chip accelerator
vas_init_rx_win_attr			PASS
vas_rx_win_open				PASS

# local symbols in i915
drivers/gpu/drm/i915/*	PASS

# local symbols in vmwgfx
drivers/gpu/drm/vmwgfx/*	PASS

# io_uring internal symbols
io_uring/*		PASS

# dependent on BPF / debuginfo (bsc#1223415)
xfrm_bpf_md_dst		PASS

# used for mitigations
retbleed_untrain_ret	PASS
srso_untrain_ret	PASS

# TAS2781 codec helper, only locally used
tasdevice_prmg_calibdata_load	PASS

# IMS is unsupported/unmaintained and got dropped
pci_create_ims_domain		PASS
pci_ims_alloc_irq		PASS
pci_ims_free_irq		PASS

# FireWire sound helper, only locally used
sound/firewire/*	PASS

# kfence is a debugging aid that no external modules should depend on
# Symbols are exported for testing infrastructure to use
kfence_sample_interval		PASS
__kfence_pool			PASS

# That's only used in the core kernel. 
tlbstate_untag_mask PASS
# This is a mitigation-related symbol
entry_ibpb PASS
x86_pred_cmd PASS

# Used by in-tree AMD drivers
node_to_amd_nb PASS
amd_smn_read PASS
amd_smn_write PASS

# Unused and dropped by MEI drivers
vsc_tp_request_irq	PASS
vsc_tp_free_irq		PASS
