Compare commits

...

No commits in common. "c8" and "c8-beta" have entirely different histories.
c8 ... c8-beta

24 changed files with 19 additions and 4530 deletions

6
.gitignore vendored
View File

@ -1,8 +1,8 @@
SOURCES/centossecureboot201.cer
SOURCES/centossecurebootca2.cer
SOURCES/kernel-abi-stablelists-4.18.0-553.tar.bz2
SOURCES/kernel-kabi-dw-4.18.0-553.tar.bz2
SOURCES/linux-4.18.0-553.155.1.el8_10.tar.xz
SOURCES/kernel-abi-stablelists-4.18.0-544.tar.bz2
SOURCES/kernel-kabi-dw-4.18.0-544.tar.bz2
SOURCES/linux-4.18.0-544.el8.tar.xz
SOURCES/redhatsecureboot302.cer
SOURCES/redhatsecureboot303.cer
SOURCES/redhatsecureboot501.cer

View File

@ -1,8 +1,8 @@
2ba40bf9138b48311e5aa1b737b7f0a8ad66066f SOURCES/centossecureboot201.cer
bfdb3d7cffc43f579655af5155d50c08671d95e5 SOURCES/centossecurebootca2.cer
cc86b8122fcfe213a1ce01a2279d5a8dc21398c0 SOURCES/kernel-abi-stablelists-4.18.0-553.tar.bz2
f7646a5ec3491a825102a79ec06f6664b7c8a9df SOURCES/kernel-kabi-dw-4.18.0-553.tar.bz2
4450e9b893bd77d9c264074cbaa7f3fb26364cc2 SOURCES/linux-4.18.0-553.155.1.el8_10.tar.xz
ea4ae4d04a859057c2e9404179d49ebc2851a8d5 SOURCES/kernel-abi-stablelists-4.18.0-544.tar.bz2
618f2302d26295e300718d59e8551a0cdfc98022 SOURCES/kernel-kabi-dw-4.18.0-544.tar.bz2
731f77831a5e9794d95976010d518e80a28afd72 SOURCES/linux-4.18.0-544.el8.tar.xz
13e5cd3f856b472fde80a4deb75f4c18dfb5b255 SOURCES/redhatsecureboot302.cer
e89890ca0ded2f9058651cc5fa838b78db2e6cc2 SOURCES/redhatsecureboot303.cer
ba0b760e594ff668ee72ae348adf3e49b97f75fb SOURCES/redhatsecureboot501.cer

View File

@ -1,4 +1,3 @@
0x8640fec8 ___pskb_trim vmlinux EXPORT_SYMBOL
0x8b469ec3 __alloc_disk_node vmlinux EXPORT_SYMBOL
0xcbd52d53 __alloc_pages_nodemask vmlinux EXPORT_SYMBOL
0x9b0236a9 __alloc_skb vmlinux EXPORT_SYMBOL
@ -25,12 +24,10 @@
0x9b7fe4d4 __dynamic_pr_debug vmlinux EXPORT_SYMBOL
0xd10c488b __free_pages vmlinux EXPORT_SYMBOL
0x93fca811 __get_free_pages vmlinux EXPORT_SYMBOL
0xf389fe60 __hw_addr_init vmlinux EXPORT_SYMBOL
0x74be1b32 __init_rwsem vmlinux EXPORT_SYMBOL
0xd9a5ea54 __init_waitqueue_head vmlinux EXPORT_SYMBOL
0x6b4b2933 __ioremap vmlinux EXPORT_SYMBOL
0x45a55ec8 __iounmap vmlinux EXPORT_SYMBOL
0xdfe9b981 __ip_queue_xmit vmlinux EXPORT_SYMBOL
0x0d542439 __ipv6_addr_type vmlinux EXPORT_SYMBOL
0xd2b09ce5 __kmalloc vmlinux EXPORT_SYMBOL
0x68f31cbd __list_add_valid vmlinux EXPORT_SYMBOL
@ -58,7 +55,6 @@
0x9a7b4ad4 __napi_schedule vmlinux EXPORT_SYMBOL
0xdf8c695a __ndelay vmlinux EXPORT_SYMBOL
0x802aa7db __netdev_alloc_skb vmlinux EXPORT_SYMBOL
0x91d0fbc5 __netif_napi_del vmlinux EXPORT_SYMBOL
0x46c47fb6 __node_distance vmlinux EXPORT_SYMBOL
0x5cea2dd8 __page_file_index vmlinux EXPORT_SYMBOL_GPL
0xea6e8390 __page_mapcount vmlinux EXPORT_SYMBOL_GPL
@ -75,7 +71,6 @@
0x5c282196 __scsi_execute vmlinux EXPORT_SYMBOL
0x66cd09c7 __scsi_iterate_devices vmlinux EXPORT_SYMBOL
0xa2b63590 __skb_gso_segment vmlinux EXPORT_SYMBOL
0xfb13f54a __skb_pad vmlinux EXPORT_SYMBOL
0xdb7305a1 __stack_chk_fail vmlinux EXPORT_SYMBOL
0xa6033f23 __task_pid_nr_ns vmlinux EXPORT_SYMBOL
0x0faef0ed __tasklet_schedule vmlinux EXPORT_SYMBOL
@ -104,7 +99,6 @@
0x4afb2238 add_wait_queue vmlinux EXPORT_SYMBOL
0xde293f9e add_wait_queue_exclusive vmlinux EXPORT_SYMBOL
0xe3ec2f2b alloc_chrdev_region vmlinux EXPORT_SYMBOL
0xf48c936c alloc_etherdev_mqs vmlinux EXPORT_SYMBOL
0x1c8368f3 alloc_netdev_mqs vmlinux EXPORT_SYMBOL
0xa6b529e3 alloc_pages_current vmlinux EXPORT_SYMBOL
0x75fb9062 arch_timer_read_counter vmlinux EXPORT_SYMBOL_GPL
@ -238,27 +232,18 @@
0x0c1c794e delayed_work_timer_fn vmlinux EXPORT_SYMBOL
0x3a484afa dentry_open vmlinux EXPORT_SYMBOL
0x8c03d20c destroy_workqueue vmlinux EXPORT_SYMBOL_GPL
0xd20af00a dev_add_pack vmlinux EXPORT_SYMBOL
0xa5976e4f dev_base_lock vmlinux EXPORT_SYMBOL
0xdbca8b3e dev_close vmlinux EXPORT_SYMBOL
0x862f1376 dev_get_by_index vmlinux EXPORT_SYMBOL
0x99c61367 dev_get_by_name vmlinux EXPORT_SYMBOL
0x9924cf7e dev_mc_add vmlinux EXPORT_SYMBOL
0x19632718 dev_mc_add_excl vmlinux EXPORT_SYMBOL
0x22ea88ad dev_mc_add_global vmlinux EXPORT_SYMBOL
0x3a28c137 dev_mc_del vmlinux EXPORT_SYMBOL
0x535d829d dev_mc_del_global vmlinux EXPORT_SYMBOL
0xac0eb98a dev_queue_xmit vmlinux EXPORT_SYMBOL
0x746bc396 dev_remove_pack vmlinux EXPORT_SYMBOL
0xcd1adebd dev_set_mac_address vmlinux EXPORT_SYMBOL
0xc55637a6 dev_set_mtu vmlinux EXPORT_SYMBOL
0xc3b519d1 dev_set_promiscuity vmlinux EXPORT_SYMBOL
0xc3885b05 dev_uc_add_excl vmlinux EXPORT_SYMBOL
0xaef62a99 device_add_disk vmlinux EXPORT_SYMBOL
0x1744744a device_create vmlinux EXPORT_SYMBOL_GPL
0x8ea07c28 device_destroy vmlinux EXPORT_SYMBOL_GPL
0x88528f75 dget_parent vmlinux EXPORT_SYMBOL
0x3ce4ca6f disable_irq vmlinux EXPORT_SYMBOL
0x926be68c dma_get_required_mask vmlinux EXPORT_SYMBOL_GPL
0x1c5a0e6e dma_set_coherent_mask vmlinux EXPORT_SYMBOL
0x4e0bc306 dma_set_mask vmlinux EXPORT_SYMBOL
@ -275,14 +260,9 @@
0xa4fd336d dst_release vmlinux EXPORT_SYMBOL
0x6b2dc060 dump_stack vmlinux EXPORT_SYMBOL
0xd0c05159 emergency_restart vmlinux EXPORT_SYMBOL_GPL
0xfcec0987 enable_irq vmlinux EXPORT_SYMBOL
0x612bfd89 errno_to_blk_status vmlinux EXPORT_SYMBOL_GPL
0xa719c4a2 eth_get_headlen vmlinux EXPORT_SYMBOL
0x4c16334a eth_type_trans vmlinux EXPORT_SYMBOL
0xb8f8ac3b eth_validate_addr vmlinux EXPORT_SYMBOL
0x092f9801 ether_setup vmlinux EXPORT_SYMBOL
0x8f996a30 ethtool_convert_legacy_u32_to_link_mode vmlinux EXPORT_SYMBOL
0x55e31703 ethtool_convert_link_mode_to_legacy_u32 vmlinux EXPORT_SYMBOL
0xf12fd7b7 ethtool_op_get_link vmlinux EXPORT_SYMBOL
0x45f82af7 fc_remove_host drivers/scsi/scsi_transport_fc EXPORT_SYMBOL
0x8cdd7fee fget vmlinux EXPORT_SYMBOL
@ -337,8 +317,6 @@
0x1a4e541a igrab vmlinux EXPORT_SYMBOL
0x39461d6a in_egroup_p vmlinux EXPORT_SYMBOL
0x8b8059bd in_group_p vmlinux EXPORT_SYMBOL
0x2a3b01e7 inet_add_protocol vmlinux EXPORT_SYMBOL
0x1b51df14 inet_del_protocol vmlinux EXPORT_SYMBOL
0x7558b7d0 init_net vmlinux EXPORT_SYMBOL
0x10be2e85 init_task vmlinux EXPORT_SYMBOL
0x4cc8f9c8 init_timer_key vmlinux EXPORT_SYMBOL
@ -380,7 +358,6 @@
0x037a0cba kfree vmlinux EXPORT_SYMBOL
0x19f462ab kfree_call_rcu vmlinux EXPORT_SYMBOL_GPL
0x6aec8ba4 kfree_skb vmlinux EXPORT_SYMBOL
0x706befc9 kfree_skb_reason vmlinux EXPORT_SYMBOL
0x0e479cbd kill_anon_super vmlinux EXPORT_SYMBOL
0x768782f0 kill_block_super vmlinux EXPORT_SYMBOL
0xc30a389f kmalloc_caches vmlinux EXPORT_SYMBOL
@ -481,31 +458,17 @@
0xa6093a32 mutex_unlock vmlinux EXPORT_SYMBOL
0x67b127fd napi_complete_done vmlinux EXPORT_SYMBOL
0x3ccfb3e7 napi_disable vmlinux EXPORT_SYMBOL
0xb5c31ca9 napi_enable vmlinux EXPORT_SYMBOL
0xb13255ac napi_gro_receive vmlinux EXPORT_SYMBOL
0x4e1fb093 napi_schedule_prep vmlinux EXPORT_SYMBOL
0x2f1bd368 ndo_dflt_bridge_getlink vmlinux EXPORT_SYMBOL_GPL
0xf6ebc03b net_ratelimit vmlinux EXPORT_SYMBOL
0xee61e7cb netdev_err vmlinux EXPORT_SYMBOL
0x1d923f17 netdev_features_change vmlinux EXPORT_SYMBOL
0x728c2b32 netdev_info vmlinux EXPORT_SYMBOL
0xa6c7b0cc netdev_refcnt_read vmlinux EXPORT_SYMBOL
0xac109b30 netdev_rx_handler_register vmlinux EXPORT_SYMBOL_GPL
0x16f7f97c netdev_rx_handler_unregister vmlinux EXPORT_SYMBOL_GPL
0x721281fb netif_carrier_off vmlinux EXPORT_SYMBOL
0x0950991c netif_carrier_on vmlinux EXPORT_SYMBOL
0x7e5c39a1 netif_device_attach vmlinux EXPORT_SYMBOL
0x3e5d9b35 netif_device_detach vmlinux EXPORT_SYMBOL
0xadcb4759 netif_napi_add vmlinux EXPORT_SYMBOL
0x98718ddd netif_napi_add_weight vmlinux EXPORT_SYMBOL
0xba5c3343 netif_napi_del vmlinux EXPORT_SYMBOL
0x4dee28e1 netif_receive_skb vmlinux EXPORT_SYMBOL
0x155980d9 netif_rx vmlinux EXPORT_SYMBOL
0x4e3c20c9 netif_schedule_queue vmlinux EXPORT_SYMBOL
0x6dd8dcb6 netif_set_real_num_rx_queues vmlinux EXPORT_SYMBOL
0xb42fab00 netif_set_real_num_tx_queues vmlinux EXPORT_SYMBOL
0xded1484b netif_tx_stop_all_queues vmlinux EXPORT_SYMBOL
0x7182f847 netif_tx_wake_queue vmlinux EXPORT_SYMBOL
0xf6ff1b05 netlink_broadcast vmlinux EXPORT_SYMBOL
0xf47829bd netlink_unicast vmlinux EXPORT_SYMBOL
0x6a3475c1 new_inode vmlinux EXPORT_SYMBOL
@ -661,12 +624,8 @@
0x61b7b126 simple_strtoull vmlinux EXPORT_SYMBOL
0x80f579a4 single_open vmlinux EXPORT_SYMBOL
0x9b3968e9 single_release vmlinux EXPORT_SYMBOL
0x6d2e4dd3 sk_alloc vmlinux EXPORT_SYMBOL
0xb63ddd95 sk_free vmlinux EXPORT_SYMBOL
0x9ea7a3fc skb_add_rx_frag vmlinux EXPORT_SYMBOL
0x3158d738 skb_checksum_help vmlinux EXPORT_SYMBOL
0x9f0544ab skb_clone vmlinux EXPORT_SYMBOL
0xb2b769f0 skb_clone_tx_timestamp vmlinux EXPORT_SYMBOL_GPL
0x8ffdf6ac skb_copy vmlinux EXPORT_SYMBOL
0x11a9c1a0 skb_copy_bits vmlinux EXPORT_SYMBOL
0x05eb81e9 skb_dequeue vmlinux EXPORT_SYMBOL
@ -677,7 +636,6 @@
0x61dbc2a0 skb_queue_tail vmlinux EXPORT_SYMBOL
0x3a945419 skb_realloc_headroom vmlinux EXPORT_SYMBOL
0xc877e274 skb_trim vmlinux EXPORT_SYMBOL
0x4a8543ed skb_tstamp_tx vmlinux EXPORT_SYMBOL_GPL
0xa32d0dc9 smp_call_function_many vmlinux EXPORT_SYMBOL
0x6228c21f smp_call_function_single vmlinux EXPORT_SYMBOL
0x28318305 snprintf vmlinux EXPORT_SYMBOL
@ -708,7 +666,6 @@
0xc29bf967 strspn vmlinux EXPORT_SYMBOL
0x1e6d26a8 strstr vmlinux EXPORT_SYMBOL
0xe3140538 submit_bio vmlinux EXPORT_SYMBOL
0x609f1c7e synchronize_net vmlinux EXPORT_SYMBOL
0x2d3385d3 system_wq vmlinux EXPORT_SYMBOL
0x9545af6d tasklet_init vmlinux EXPORT_SYMBOL
0x080c9e73 thaw_bdev vmlinux EXPORT_SYMBOL

View File

@ -1,4 +1,3 @@
0x1984165d ___pskb_trim vmlinux EXPORT_SYMBOL
0xbd2fb756 __alloc_disk_node vmlinux EXPORT_SYMBOL
0xe9a9f9e8 __alloc_pages_nodemask vmlinux EXPORT_SYMBOL
0x74c48aa6 __alloc_skb vmlinux EXPORT_SYMBOL
@ -24,12 +23,10 @@
0x9b7fe4d4 __dynamic_pr_debug vmlinux EXPORT_SYMBOL
0xd7468b16 __free_pages vmlinux EXPORT_SYMBOL
0x93fca811 __get_free_pages vmlinux EXPORT_SYMBOL
0xf389fe60 __hw_addr_init vmlinux EXPORT_SYMBOL
0x85ffcda1 __init_rwsem vmlinux EXPORT_SYMBOL
0xe3f29f70 __init_waitqueue_head vmlinux EXPORT_SYMBOL
0x8b8de8ae __ioremap vmlinux EXPORT_SYMBOL
0x45a55ec8 __iounmap vmlinux EXPORT_SYMBOL
0x5b960eb1 __ip_queue_xmit vmlinux EXPORT_SYMBOL
0x0d542439 __ipv6_addr_type vmlinux EXPORT_SYMBOL
0xd2b09ce5 __kmalloc vmlinux EXPORT_SYMBOL
0x68f31cbd __list_add_valid vmlinux EXPORT_SYMBOL
@ -42,7 +39,6 @@
0x93178084 __mutex_init vmlinux EXPORT_SYMBOL
0x3022d5be __napi_schedule vmlinux EXPORT_SYMBOL
0xb3d364d8 __netdev_alloc_skb vmlinux EXPORT_SYMBOL
0x465585ad __netif_napi_del vmlinux EXPORT_SYMBOL
0x46c47fb6 __node_distance vmlinux EXPORT_SYMBOL
0x9ac40166 __page_file_index vmlinux EXPORT_SYMBOL_GPL
0xb6d1e6c9 __page_mapcount vmlinux EXPORT_SYMBOL_GPL
@ -59,7 +55,6 @@
0xa2beceb1 __scsi_execute vmlinux EXPORT_SYMBOL
0x5490149f __scsi_iterate_devices vmlinux EXPORT_SYMBOL
0xb5892fee __skb_gso_segment vmlinux EXPORT_SYMBOL
0x33bac18a __skb_pad vmlinux EXPORT_SYMBOL
0xdb7305a1 __stack_chk_fail vmlinux EXPORT_SYMBOL
0x56c083d3 __task_pid_nr_ns vmlinux EXPORT_SYMBOL
0x0faef0ed __tasklet_schedule vmlinux EXPORT_SYMBOL
@ -96,7 +91,6 @@
0x1e875885 add_wait_queue vmlinux EXPORT_SYMBOL
0xcdc0349c add_wait_queue_exclusive vmlinux EXPORT_SYMBOL
0xe3ec2f2b alloc_chrdev_region vmlinux EXPORT_SYMBOL
0x4f2300da alloc_etherdev_mqs vmlinux EXPORT_SYMBOL
0x4f50e6bf alloc_netdev_mqs vmlinux EXPORT_SYMBOL
0x706edf8d alloc_pages_current vmlinux EXPORT_SYMBOL
0x25301bc6 arch_wb_cache_pmem vmlinux EXPORT_SYMBOL
@ -228,27 +222,18 @@
0x0c1c794e delayed_work_timer_fn vmlinux EXPORT_SYMBOL
0x770d8b9a dentry_open vmlinux EXPORT_SYMBOL
0x8c03d20c destroy_workqueue vmlinux EXPORT_SYMBOL_GPL
0x3b2649d5 dev_add_pack vmlinux EXPORT_SYMBOL
0x17648396 dev_base_lock vmlinux EXPORT_SYMBOL
0x128b438e dev_close vmlinux EXPORT_SYMBOL
0xc4c53c5a dev_get_by_index vmlinux EXPORT_SYMBOL
0x9b061ec6 dev_get_by_name vmlinux EXPORT_SYMBOL
0x4dcc9784 dev_mc_add vmlinux EXPORT_SYMBOL
0x18293499 dev_mc_add_excl vmlinux EXPORT_SYMBOL
0xdaab3cc9 dev_mc_add_global vmlinux EXPORT_SYMBOL
0xdc65877f dev_mc_del vmlinux EXPORT_SYMBOL
0xc7cf2b57 dev_mc_del_global vmlinux EXPORT_SYMBOL
0x2646aca5 dev_queue_xmit vmlinux EXPORT_SYMBOL
0x0f345759 dev_remove_pack vmlinux EXPORT_SYMBOL
0x81bb630c dev_set_mac_address vmlinux EXPORT_SYMBOL
0xed26c2e8 dev_set_mtu vmlinux EXPORT_SYMBOL
0x5a7963bd dev_set_promiscuity vmlinux EXPORT_SYMBOL
0x70df7a6c dev_uc_add_excl vmlinux EXPORT_SYMBOL
0x697cc68b device_add_disk vmlinux EXPORT_SYMBOL
0x97c5ca02 device_create vmlinux EXPORT_SYMBOL_GPL
0xaef0f53d device_destroy vmlinux EXPORT_SYMBOL_GPL
0x0c5cab1d dget_parent vmlinux EXPORT_SYMBOL
0x3ce4ca6f disable_irq vmlinux EXPORT_SYMBOL
0x495cd368 dma_get_required_mask vmlinux EXPORT_SYMBOL_GPL
0x72a05d02 dma_set_coherent_mask vmlinux EXPORT_SYMBOL
0x89d4d619 dma_set_mask vmlinux EXPORT_SYMBOL
@ -265,14 +250,9 @@
0xad580bc5 dst_release vmlinux EXPORT_SYMBOL
0x6b2dc060 dump_stack vmlinux EXPORT_SYMBOL
0xd0c05159 emergency_restart vmlinux EXPORT_SYMBOL_GPL
0xfcec0987 enable_irq vmlinux EXPORT_SYMBOL
0x612bfd89 errno_to_blk_status vmlinux EXPORT_SYMBOL_GPL
0x7c57e64e eth_get_headlen vmlinux EXPORT_SYMBOL
0x3a968436 eth_type_trans vmlinux EXPORT_SYMBOL
0x11bf1116 eth_validate_addr vmlinux EXPORT_SYMBOL
0x3c8d07f4 ether_setup vmlinux EXPORT_SYMBOL
0x8f996a30 ethtool_convert_legacy_u32_to_link_mode vmlinux EXPORT_SYMBOL
0x55e31703 ethtool_convert_link_mode_to_legacy_u32 vmlinux EXPORT_SYMBOL
0xf0819cd7 ethtool_op_get_link vmlinux EXPORT_SYMBOL
0x72ecfb60 fc_remove_host drivers/scsi/scsi_transport_fc EXPORT_SYMBOL
0x6f604080 fget vmlinux EXPORT_SYMBOL
@ -327,8 +307,6 @@
0x793cd7ca igrab vmlinux EXPORT_SYMBOL
0x39461d6a in_egroup_p vmlinux EXPORT_SYMBOL
0x8b8059bd in_group_p vmlinux EXPORT_SYMBOL
0x0ebca6a6 inet_add_protocol vmlinux EXPORT_SYMBOL
0x72a52e4e inet_del_protocol vmlinux EXPORT_SYMBOL
0x6b8bd985 init_net vmlinux EXPORT_SYMBOL
0x379a6fa3 init_task vmlinux EXPORT_SYMBOL
0x4cc8f9c8 init_timer_key vmlinux EXPORT_SYMBOL
@ -370,7 +348,6 @@
0x037a0cba kfree vmlinux EXPORT_SYMBOL
0x19f462ab kfree_call_rcu vmlinux EXPORT_SYMBOL_GPL
0xc4455496 kfree_skb vmlinux EXPORT_SYMBOL
0xc745adda kfree_skb_reason vmlinux EXPORT_SYMBOL
0xb1b2910d kill_anon_super vmlinux EXPORT_SYMBOL
0x722787fb kill_block_super vmlinux EXPORT_SYMBOL
0x9fea59e6 kmalloc_caches vmlinux EXPORT_SYMBOL
@ -471,31 +448,17 @@
0xacccd1c7 mutex_unlock vmlinux EXPORT_SYMBOL
0x29a25f73 napi_complete_done vmlinux EXPORT_SYMBOL
0x55e7de77 napi_disable vmlinux EXPORT_SYMBOL
0xa80e6889 napi_enable vmlinux EXPORT_SYMBOL
0x6789c30a napi_gro_receive vmlinux EXPORT_SYMBOL
0xb4437d66 napi_schedule_prep vmlinux EXPORT_SYMBOL
0x5a9823f6 ndo_dflt_bridge_getlink vmlinux EXPORT_SYMBOL_GPL
0xf6ebc03b net_ratelimit vmlinux EXPORT_SYMBOL
0x0777fd42 netdev_err vmlinux EXPORT_SYMBOL
0x5f54724d netdev_features_change vmlinux EXPORT_SYMBOL
0x4804d3fc netdev_info vmlinux EXPORT_SYMBOL
0xa4cfa24c netdev_refcnt_read vmlinux EXPORT_SYMBOL
0x189cdfcf netdev_rx_handler_register vmlinux EXPORT_SYMBOL_GPL
0xe64a3332 netdev_rx_handler_unregister vmlinux EXPORT_SYMBOL_GPL
0xb5a76c55 netif_carrier_off vmlinux EXPORT_SYMBOL
0x5b30592f netif_carrier_on vmlinux EXPORT_SYMBOL
0x0ab7fbf3 netif_device_attach vmlinux EXPORT_SYMBOL
0x61cc33fc netif_device_detach vmlinux EXPORT_SYMBOL
0x2570dcf9 netif_napi_add vmlinux EXPORT_SYMBOL
0x98dd9dec netif_napi_add_weight vmlinux EXPORT_SYMBOL
0xc5002b6c netif_napi_del vmlinux EXPORT_SYMBOL
0xa8d2ae03 netif_receive_skb vmlinux EXPORT_SYMBOL
0x6b481123 netif_rx vmlinux EXPORT_SYMBOL
0x991a9dee netif_schedule_queue vmlinux EXPORT_SYMBOL
0x39742c23 netif_set_real_num_rx_queues vmlinux EXPORT_SYMBOL
0xaee58318 netif_set_real_num_tx_queues vmlinux EXPORT_SYMBOL
0xd0704a02 netif_tx_stop_all_queues vmlinux EXPORT_SYMBOL
0x43f620f8 netif_tx_wake_queue vmlinux EXPORT_SYMBOL
0x7323b2b8 netlink_broadcast vmlinux EXPORT_SYMBOL
0xccb2f658 netlink_unicast vmlinux EXPORT_SYMBOL
0x3ed60697 new_inode vmlinux EXPORT_SYMBOL
@ -651,12 +614,8 @@
0x61b7b126 simple_strtoull vmlinux EXPORT_SYMBOL
0xdb3d6fd7 single_open vmlinux EXPORT_SYMBOL
0xb5976876 single_release vmlinux EXPORT_SYMBOL
0x191ac294 sk_alloc vmlinux EXPORT_SYMBOL
0x613d5e79 sk_free vmlinux EXPORT_SYMBOL
0x91e3b27b skb_add_rx_frag vmlinux EXPORT_SYMBOL
0x039996d6 skb_checksum_help vmlinux EXPORT_SYMBOL
0x8bc0864a skb_clone vmlinux EXPORT_SYMBOL
0xf0f7d142 skb_clone_tx_timestamp vmlinux EXPORT_SYMBOL_GPL
0xffc7bdb0 skb_copy vmlinux EXPORT_SYMBOL
0x79933aca skb_copy_bits vmlinux EXPORT_SYMBOL
0xc1752ff5 skb_dequeue vmlinux EXPORT_SYMBOL
@ -667,7 +626,6 @@
0x344fb340 skb_queue_tail vmlinux EXPORT_SYMBOL
0x6954cec6 skb_realloc_headroom vmlinux EXPORT_SYMBOL
0x0aff4025 skb_trim vmlinux EXPORT_SYMBOL
0xf567025d skb_tstamp_tx vmlinux EXPORT_SYMBOL_GPL
0xf9038bcf smp_call_function_many vmlinux EXPORT_SYMBOL
0x6228c21f smp_call_function_single vmlinux EXPORT_SYMBOL
0x28318305 snprintf vmlinux EXPORT_SYMBOL
@ -698,7 +656,6 @@
0xc29bf967 strspn vmlinux EXPORT_SYMBOL
0x1e6d26a8 strstr vmlinux EXPORT_SYMBOL
0x99284de9 submit_bio vmlinux EXPORT_SYMBOL
0x609f1c7e synchronize_net vmlinux EXPORT_SYMBOL
0x2d3385d3 system_wq vmlinux EXPORT_SYMBOL
0x9545af6d tasklet_init vmlinux EXPORT_SYMBOL
0x4b4e8905 thaw_bdev vmlinux EXPORT_SYMBOL

View File

@ -1,4 +1,3 @@
0xbd4cffc7 ___pskb_trim vmlinux EXPORT_SYMBOL
0xbad5065b __alloc_disk_node vmlinux EXPORT_SYMBOL
0x353525e2 __alloc_pages_nodemask vmlinux EXPORT_SYMBOL
0x08c6f12f __alloc_skb vmlinux EXPORT_SYMBOL
@ -24,10 +23,8 @@
0x2af29fbb __dynamic_pr_debug vmlinux EXPORT_SYMBOL
0xf487d506 __free_pages vmlinux EXPORT_SYMBOL
0x93fca811 __get_free_pages vmlinux EXPORT_SYMBOL
0xf389fe60 __hw_addr_init vmlinux EXPORT_SYMBOL
0xb206a404 __init_rwsem vmlinux EXPORT_SYMBOL
0x66b98575 __init_waitqueue_head vmlinux EXPORT_SYMBOL
0x9881f8fd __ip_queue_xmit vmlinux EXPORT_SYMBOL
0x0d542439 __ipv6_addr_type vmlinux EXPORT_SYMBOL
0x5a34a45c __kmalloc vmlinux EXPORT_SYMBOL
0x68f31cbd __list_add_valid vmlinux EXPORT_SYMBOL
@ -40,7 +37,6 @@
0xd9eacad1 __napi_schedule vmlinux EXPORT_SYMBOL
0x338bbef8 __ndelay vmlinux EXPORT_SYMBOL
0x854820b0 __netdev_alloc_skb vmlinux EXPORT_SYMBOL
0xa7fe798d __netif_napi_del vmlinux EXPORT_SYMBOL
0x46c47fb6 __node_distance vmlinux EXPORT_SYMBOL
0xb0fab9b6 __page_file_index vmlinux EXPORT_SYMBOL_GPL
0xa9f7f0c8 __page_mapcount vmlinux EXPORT_SYMBOL_GPL
@ -57,7 +53,6 @@
0x3d1ba4bd __scsi_execute vmlinux EXPORT_SYMBOL
0x8e155a75 __scsi_iterate_devices vmlinux EXPORT_SYMBOL
0x60b53515 __skb_gso_segment vmlinux EXPORT_SYMBOL
0x2ce76df3 __skb_pad vmlinux EXPORT_SYMBOL
0xfcbb0506 __task_pid_nr_ns vmlinux EXPORT_SYMBOL
0x0faef0ed __tasklet_schedule vmlinux EXPORT_SYMBOL
0x3fb0b9e3 __udelay vmlinux EXPORT_SYMBOL
@ -73,7 +68,6 @@
0xdd1cdbcb add_wait_queue vmlinux EXPORT_SYMBOL
0xbc7bede7 add_wait_queue_exclusive vmlinux EXPORT_SYMBOL
0xe3ec2f2b alloc_chrdev_region vmlinux EXPORT_SYMBOL
0x2eb61b4d alloc_etherdev_mqs vmlinux EXPORT_SYMBOL
0xf680ff75 alloc_netdev_mqs vmlinux EXPORT_SYMBOL
0x55943cc5 alloc_pages_current vmlinux EXPORT_SYMBOL
0x27545244 atomic_notifier_chain_register vmlinux EXPORT_SYMBOL_GPL
@ -201,27 +195,18 @@
0x0c1c794e delayed_work_timer_fn vmlinux EXPORT_SYMBOL
0x1789c7ec dentry_open vmlinux EXPORT_SYMBOL
0x8c03d20c destroy_workqueue vmlinux EXPORT_SYMBOL_GPL
0x31f86c7b dev_add_pack vmlinux EXPORT_SYMBOL
0xcaeaddeb dev_base_lock vmlinux EXPORT_SYMBOL
0x25fa1670 dev_close vmlinux EXPORT_SYMBOL
0xc4d675c0 dev_get_by_index vmlinux EXPORT_SYMBOL
0x7197f660 dev_get_by_name vmlinux EXPORT_SYMBOL
0x6ab8ca5e dev_mc_add vmlinux EXPORT_SYMBOL
0x2e285502 dev_mc_add_excl vmlinux EXPORT_SYMBOL
0x36a55cd6 dev_mc_add_global vmlinux EXPORT_SYMBOL
0xa31e046b dev_mc_del vmlinux EXPORT_SYMBOL
0x133e625d dev_mc_del_global vmlinux EXPORT_SYMBOL
0xf7e9f593 dev_queue_xmit vmlinux EXPORT_SYMBOL
0x838822b9 dev_remove_pack vmlinux EXPORT_SYMBOL
0x0b3687c4 dev_set_mac_address vmlinux EXPORT_SYMBOL
0x80b0cdfb dev_set_mtu vmlinux EXPORT_SYMBOL
0x7f1789d8 dev_set_promiscuity vmlinux EXPORT_SYMBOL
0x7ba11f79 dev_uc_add_excl vmlinux EXPORT_SYMBOL
0xafc69e48 device_add_disk vmlinux EXPORT_SYMBOL
0xe8ea8981 device_create vmlinux EXPORT_SYMBOL_GPL
0x50ccb4d8 device_destroy vmlinux EXPORT_SYMBOL_GPL
0x2e0191a3 dget_parent vmlinux EXPORT_SYMBOL
0x3ce4ca6f disable_irq vmlinux EXPORT_SYMBOL
0x81fe92cc dma_get_required_mask vmlinux EXPORT_SYMBOL_GPL
0xf7bbf143 dma_set_coherent_mask vmlinux EXPORT_SYMBOL
0x783b83d3 dma_set_mask vmlinux EXPORT_SYMBOL
@ -238,14 +223,9 @@
0xa3e80006 dst_release vmlinux EXPORT_SYMBOL
0x6b2dc060 dump_stack vmlinux EXPORT_SYMBOL
0xd0c05159 emergency_restart vmlinux EXPORT_SYMBOL_GPL
0xfcec0987 enable_irq vmlinux EXPORT_SYMBOL
0x612bfd89 errno_to_blk_status vmlinux EXPORT_SYMBOL_GPL
0x3c9504c1 eth_get_headlen vmlinux EXPORT_SYMBOL
0x6229afcd eth_type_trans vmlinux EXPORT_SYMBOL
0xde4b10af eth_validate_addr vmlinux EXPORT_SYMBOL
0x40d650b4 ether_setup vmlinux EXPORT_SYMBOL
0x8f996a30 ethtool_convert_legacy_u32_to_link_mode vmlinux EXPORT_SYMBOL
0x55e31703 ethtool_convert_link_mode_to_legacy_u32 vmlinux EXPORT_SYMBOL
0x6871deb1 ethtool_op_get_link vmlinux EXPORT_SYMBOL
0xc85dc1e1 fc_remove_host drivers/scsi/scsi_transport_fc EXPORT_SYMBOL
0xb695aff6 fget vmlinux EXPORT_SYMBOL
@ -302,8 +282,6 @@
0xd85591cd igrab vmlinux EXPORT_SYMBOL
0x39461d6a in_egroup_p vmlinux EXPORT_SYMBOL
0x8b8059bd in_group_p vmlinux EXPORT_SYMBOL
0xa8ae8715 inet_add_protocol vmlinux EXPORT_SYMBOL
0x050afe69 inet_del_protocol vmlinux EXPORT_SYMBOL
0x293e21cb init_net vmlinux EXPORT_SYMBOL
0x958ddee9 init_task vmlinux EXPORT_SYMBOL
0x4cc8f9c8 init_timer_key vmlinux EXPORT_SYMBOL
@ -334,7 +312,6 @@
0x037a0cba kfree vmlinux EXPORT_SYMBOL
0x19f462ab kfree_call_rcu vmlinux EXPORT_SYMBOL_GPL
0x0a9ea67d kfree_skb vmlinux EXPORT_SYMBOL
0x84b1f99a kfree_skb_reason vmlinux EXPORT_SYMBOL
0xca2b0f47 kill_anon_super vmlinux EXPORT_SYMBOL
0x17015d84 kill_block_super vmlinux EXPORT_SYMBOL
0x1c1c79d3 kmalloc_caches vmlinux EXPORT_SYMBOL
@ -432,31 +409,17 @@
0xe1718bab mutex_unlock vmlinux EXPORT_SYMBOL
0x4351da74 napi_complete_done vmlinux EXPORT_SYMBOL
0x3e3bd342 napi_disable vmlinux EXPORT_SYMBOL
0x3b9ca02d napi_enable vmlinux EXPORT_SYMBOL
0x0654039b napi_gro_receive vmlinux EXPORT_SYMBOL
0xb61d9399 napi_schedule_prep vmlinux EXPORT_SYMBOL
0xcccbb3f3 ndo_dflt_bridge_getlink vmlinux EXPORT_SYMBOL_GPL
0xf6ebc03b net_ratelimit vmlinux EXPORT_SYMBOL
0x94bbf85a netdev_err vmlinux EXPORT_SYMBOL
0xe1f877d4 netdev_features_change vmlinux EXPORT_SYMBOL
0xe55f7e67 netdev_info vmlinux EXPORT_SYMBOL
0x76de26c8 netdev_refcnt_read vmlinux EXPORT_SYMBOL
0x35dc630d netdev_rx_handler_register vmlinux EXPORT_SYMBOL_GPL
0x7631c5d6 netdev_rx_handler_unregister vmlinux EXPORT_SYMBOL_GPL
0x6d4283b8 netif_carrier_off vmlinux EXPORT_SYMBOL
0x96a71f71 netif_carrier_on vmlinux EXPORT_SYMBOL
0x3bc6316f netif_device_attach vmlinux EXPORT_SYMBOL
0x1f3b7fc0 netif_device_detach vmlinux EXPORT_SYMBOL
0x898a4843 netif_napi_add vmlinux EXPORT_SYMBOL
0x93a74ad7 netif_napi_add_weight vmlinux EXPORT_SYMBOL
0x263ef35a netif_napi_del vmlinux EXPORT_SYMBOL
0x6387a356 netif_receive_skb vmlinux EXPORT_SYMBOL
0xd0c1d4a8 netif_rx vmlinux EXPORT_SYMBOL
0x041d665d netif_schedule_queue vmlinux EXPORT_SYMBOL
0x9caf9018 netif_set_real_num_rx_queues vmlinux EXPORT_SYMBOL
0x24b6326c netif_set_real_num_tx_queues vmlinux EXPORT_SYMBOL
0xb0f4b1ea netif_tx_stop_all_queues vmlinux EXPORT_SYMBOL
0x50e04e90 netif_tx_wake_queue vmlinux EXPORT_SYMBOL
0x7bdf7b5b netlink_broadcast vmlinux EXPORT_SYMBOL
0x65047620 netlink_unicast vmlinux EXPORT_SYMBOL
0x5ffa0429 new_inode vmlinux EXPORT_SYMBOL
@ -611,12 +574,8 @@
0x61b7b126 simple_strtoull vmlinux EXPORT_SYMBOL
0x942f69ac single_open vmlinux EXPORT_SYMBOL
0x0e361108 single_release vmlinux EXPORT_SYMBOL
0x1f398fd7 sk_alloc vmlinux EXPORT_SYMBOL
0xbab4fe6b sk_free vmlinux EXPORT_SYMBOL
0xebf7f147 skb_add_rx_frag vmlinux EXPORT_SYMBOL
0x694aba15 skb_checksum_help vmlinux EXPORT_SYMBOL
0xdf9b9d87 skb_clone vmlinux EXPORT_SYMBOL
0xe2a84e41 skb_clone_tx_timestamp vmlinux EXPORT_SYMBOL_GPL
0xd7641845 skb_copy vmlinux EXPORT_SYMBOL
0x6108d928 skb_copy_bits vmlinux EXPORT_SYMBOL
0x4439cb03 skb_dequeue vmlinux EXPORT_SYMBOL
@ -627,7 +586,6 @@
0x6b702c4a skb_queue_tail vmlinux EXPORT_SYMBOL
0xbaa57823 skb_realloc_headroom vmlinux EXPORT_SYMBOL
0xbd71ae6a skb_trim vmlinux EXPORT_SYMBOL
0xf28d5f02 skb_tstamp_tx vmlinux EXPORT_SYMBOL_GPL
0x04b197f2 smp_call_function_many vmlinux EXPORT_SYMBOL
0x6228c21f smp_call_function_single vmlinux EXPORT_SYMBOL
0x50720c5f snprintf vmlinux EXPORT_SYMBOL
@ -657,7 +615,6 @@
0x3fa913da strspn vmlinux EXPORT_SYMBOL
0x1e6d26a8 strstr vmlinux EXPORT_SYMBOL
0x9d74e70c submit_bio vmlinux EXPORT_SYMBOL
0x609f1c7e synchronize_net vmlinux EXPORT_SYMBOL
0x2d3385d3 system_wq vmlinux EXPORT_SYMBOL
0x9545af6d tasklet_init vmlinux EXPORT_SYMBOL
0x30cb3061 thaw_bdev vmlinux EXPORT_SYMBOL

View File

@ -1,4 +1,3 @@
0xcc9d6473 ___pskb_trim vmlinux EXPORT_SYMBOL
0x75d19f57 __alloc_disk_node vmlinux EXPORT_SYMBOL
0x8ab32967 __alloc_pages_nodemask vmlinux EXPORT_SYMBOL
0x3c5dfeb0 __alloc_skb vmlinux EXPORT_SYMBOL
@ -28,10 +27,8 @@
0xf63b72ee __free_pages vmlinux EXPORT_SYMBOL
0x93fca811 __get_free_pages vmlinux EXPORT_SYMBOL
0x8f9c199c __get_user_2 vmlinux EXPORT_SYMBOL
0xf389fe60 __hw_addr_init vmlinux EXPORT_SYMBOL
0x379d9241 __init_rwsem vmlinux EXPORT_SYMBOL
0xd9a5ea54 __init_waitqueue_head vmlinux EXPORT_SYMBOL
0x3ffd0285 __ip_queue_xmit vmlinux EXPORT_SYMBOL
0x0d542439 __ipv6_addr_type vmlinux EXPORT_SYMBOL
0xd2b09ce5 __kmalloc vmlinux EXPORT_SYMBOL
0x68f31cbd __list_add_valid vmlinux EXPORT_SYMBOL
@ -45,7 +42,6 @@
0x8a3ab7ed __napi_schedule vmlinux EXPORT_SYMBOL
0xdf8c695a __ndelay vmlinux EXPORT_SYMBOL
0x0696246f __netdev_alloc_skb vmlinux EXPORT_SYMBOL
0xa0fa9e07 __netif_napi_del vmlinux EXPORT_SYMBOL
0x46c47fb6 __node_distance vmlinux EXPORT_SYMBOL
0x77a513e7 __page_file_index vmlinux EXPORT_SYMBOL_GPL
0xc28bdc41 __page_mapcount vmlinux EXPORT_SYMBOL_GPL
@ -67,7 +63,6 @@
0x2a7f6e41 __scsi_execute vmlinux EXPORT_SYMBOL
0x25298ce1 __scsi_iterate_devices vmlinux EXPORT_SYMBOL
0xec916042 __skb_gso_segment vmlinux EXPORT_SYMBOL
0x815c70e2 __skb_pad vmlinux EXPORT_SYMBOL
0xdb7305a1 __stack_chk_fail vmlinux EXPORT_SYMBOL
0x972a1e61 __task_pid_nr_ns vmlinux EXPORT_SYMBOL
0x0faef0ed __tasklet_schedule vmlinux EXPORT_SYMBOL
@ -137,7 +132,6 @@
0xde293f9e add_wait_queue_exclusive vmlinux EXPORT_SYMBOL
0xe3ec2f2b alloc_chrdev_region vmlinux EXPORT_SYMBOL
0x690924ff alloc_cpumask_var vmlinux EXPORT_SYMBOL
0x513ad534 alloc_etherdev_mqs vmlinux EXPORT_SYMBOL
0x83dba64c alloc_netdev_mqs vmlinux EXPORT_SYMBOL
0xfc3b81ee alloc_pages_current vmlinux EXPORT_SYMBOL
0xb28249bf apic vmlinux EXPORT_SYMBOL_GPL
@ -280,27 +274,18 @@
0x0c1c794e delayed_work_timer_fn vmlinux EXPORT_SYMBOL
0xbb81a0da dentry_open vmlinux EXPORT_SYMBOL
0x8c03d20c destroy_workqueue vmlinux EXPORT_SYMBOL_GPL
0x56bf228f dev_add_pack vmlinux EXPORT_SYMBOL
0xa5976e4f dev_base_lock vmlinux EXPORT_SYMBOL
0xc8257cd8 dev_close vmlinux EXPORT_SYMBOL
0x9c00a37e dev_get_by_index vmlinux EXPORT_SYMBOL
0xb6fc7fb2 dev_get_by_name vmlinux EXPORT_SYMBOL
0x04977b3c dev_mc_add vmlinux EXPORT_SYMBOL
0x16b4285d dev_mc_add_excl vmlinux EXPORT_SYMBOL
0x8445f1a9 dev_mc_add_global vmlinux EXPORT_SYMBOL
0xa7b9bcfb dev_mc_del vmlinux EXPORT_SYMBOL
0xa03d592e dev_mc_del_global vmlinux EXPORT_SYMBOL
0x17cb5773 dev_queue_xmit vmlinux EXPORT_SYMBOL
0xcaad8e24 dev_remove_pack vmlinux EXPORT_SYMBOL
0x37009442 dev_set_mac_address vmlinux EXPORT_SYMBOL
0x7a8e31b6 dev_set_mtu vmlinux EXPORT_SYMBOL
0x22975705 dev_set_promiscuity vmlinux EXPORT_SYMBOL
0x6aa6cc9a dev_uc_add_excl vmlinux EXPORT_SYMBOL
0x87c3a329 device_add_disk vmlinux EXPORT_SYMBOL
0xfae8f523 device_create vmlinux EXPORT_SYMBOL_GPL
0x7b4244f7 device_destroy vmlinux EXPORT_SYMBOL_GPL
0x362c9244 dget_parent vmlinux EXPORT_SYMBOL
0x3ce4ca6f disable_irq vmlinux EXPORT_SYMBOL
0xf4db2b68 dma_get_required_mask vmlinux EXPORT_SYMBOL_GPL
0x4ce6ccb6 dma_ops vmlinux EXPORT_SYMBOL
0x0c0b6182 dma_set_coherent_mask vmlinux EXPORT_SYMBOL
@ -318,14 +303,9 @@
0x0cc084f7 dst_release vmlinux EXPORT_SYMBOL
0x6b2dc060 dump_stack vmlinux EXPORT_SYMBOL
0xd0c05159 emergency_restart vmlinux EXPORT_SYMBOL_GPL
0xfcec0987 enable_irq vmlinux EXPORT_SYMBOL
0x612bfd89 errno_to_blk_status vmlinux EXPORT_SYMBOL_GPL
0xa435c511 eth_get_headlen vmlinux EXPORT_SYMBOL
0x1030cd3d eth_type_trans vmlinux EXPORT_SYMBOL
0x6c86ffa7 eth_validate_addr vmlinux EXPORT_SYMBOL
0xb05be19c ether_setup vmlinux EXPORT_SYMBOL
0x8f996a30 ethtool_convert_legacy_u32_to_link_mode vmlinux EXPORT_SYMBOL
0x55e31703 ethtool_convert_link_mode_to_legacy_u32 vmlinux EXPORT_SYMBOL
0x34b84315 ethtool_op_get_link vmlinux EXPORT_SYMBOL
0xf654831f ex_handler_default vmlinux EXPORT_SYMBOL
0xb348a850 ex_handler_refcount vmlinux EXPORT_SYMBOL
@ -385,8 +365,6 @@
0x370c512e igrab vmlinux EXPORT_SYMBOL
0x39461d6a in_egroup_p vmlinux EXPORT_SYMBOL
0x8b8059bd in_group_p vmlinux EXPORT_SYMBOL
0x40307754 inet_add_protocol vmlinux EXPORT_SYMBOL
0xd95ba228 inet_del_protocol vmlinux EXPORT_SYMBOL
0xa29abf62 init_net vmlinux EXPORT_SYMBOL
0x7cab427a init_task vmlinux EXPORT_SYMBOL
0x4cc8f9c8 init_timer_key vmlinux EXPORT_SYMBOL
@ -431,7 +409,6 @@
0x037a0cba kfree vmlinux EXPORT_SYMBOL
0x19f462ab kfree_call_rcu vmlinux EXPORT_SYMBOL_GPL
0x67b4bbab kfree_skb vmlinux EXPORT_SYMBOL
0x39e7a2f9 kfree_skb_reason vmlinux EXPORT_SYMBOL
0x9de2b11d kill_anon_super vmlinux EXPORT_SYMBOL
0x1036efcc kill_block_super vmlinux EXPORT_SYMBOL
0xf4b9b193 kmalloc_caches vmlinux EXPORT_SYMBOL
@ -531,31 +508,17 @@
0xa6093a32 mutex_unlock vmlinux EXPORT_SYMBOL
0x8d340b10 napi_complete_done vmlinux EXPORT_SYMBOL
0x7c5f4d10 napi_disable vmlinux EXPORT_SYMBOL
0xe8974c1c napi_enable vmlinux EXPORT_SYMBOL
0xc29d929c napi_gro_receive vmlinux EXPORT_SYMBOL
0xad0cc62f napi_schedule_prep vmlinux EXPORT_SYMBOL
0x6731df9b ndo_dflt_bridge_getlink vmlinux EXPORT_SYMBOL_GPL
0xf6ebc03b net_ratelimit vmlinux EXPORT_SYMBOL
0xf71c2ffa netdev_err vmlinux EXPORT_SYMBOL
0xcc323b06 netdev_features_change vmlinux EXPORT_SYMBOL
0xa55c9a60 netdev_info vmlinux EXPORT_SYMBOL
0xaaefb647 netdev_refcnt_read vmlinux EXPORT_SYMBOL
0x89247409 netdev_rx_handler_register vmlinux EXPORT_SYMBOL_GPL
0x338cbfb6 netdev_rx_handler_unregister vmlinux EXPORT_SYMBOL_GPL
0xa1b52f28 netif_carrier_off vmlinux EXPORT_SYMBOL
0x2c6e8018 netif_carrier_on vmlinux EXPORT_SYMBOL
0x2e035935 netif_device_attach vmlinux EXPORT_SYMBOL
0x49b0eba8 netif_device_detach vmlinux EXPORT_SYMBOL
0xb9964ceb netif_napi_add vmlinux EXPORT_SYMBOL
0x7d07a228 netif_napi_add_weight vmlinux EXPORT_SYMBOL
0x599a521e netif_napi_del vmlinux EXPORT_SYMBOL
0x13790fe0 netif_receive_skb vmlinux EXPORT_SYMBOL
0x591e6107 netif_rx vmlinux EXPORT_SYMBOL
0xb2ccb3e8 netif_schedule_queue vmlinux EXPORT_SYMBOL
0x708172b8 netif_set_real_num_rx_queues vmlinux EXPORT_SYMBOL
0xeeb49f66 netif_set_real_num_tx_queues vmlinux EXPORT_SYMBOL
0x514547f1 netif_tx_stop_all_queues vmlinux EXPORT_SYMBOL
0x60af0d5b netif_tx_wake_queue vmlinux EXPORT_SYMBOL
0x7c119fd5 netlink_broadcast vmlinux EXPORT_SYMBOL
0x22afdba8 netlink_unicast vmlinux EXPORT_SYMBOL
0x84698f00 new_inode vmlinux EXPORT_SYMBOL
@ -716,12 +679,8 @@
0x61b7b126 simple_strtoull vmlinux EXPORT_SYMBOL
0x46a5e192 single_open vmlinux EXPORT_SYMBOL
0x61704c0d single_release vmlinux EXPORT_SYMBOL
0x56a744c0 sk_alloc vmlinux EXPORT_SYMBOL
0xd4f05c18 sk_free vmlinux EXPORT_SYMBOL
0x3af7d2fe skb_add_rx_frag vmlinux EXPORT_SYMBOL
0xd724a1eb skb_checksum_help vmlinux EXPORT_SYMBOL
0xf1b501ca skb_clone vmlinux EXPORT_SYMBOL
0x1eaff9ed skb_clone_tx_timestamp vmlinux EXPORT_SYMBOL_GPL
0xb945b867 skb_copy vmlinux EXPORT_SYMBOL
0xe0da1a0e skb_copy_bits vmlinux EXPORT_SYMBOL
0xdea8077e skb_dequeue vmlinux EXPORT_SYMBOL
@ -732,7 +691,6 @@
0x4f13dc57 skb_queue_tail vmlinux EXPORT_SYMBOL
0x994d5651 skb_realloc_headroom vmlinux EXPORT_SYMBOL
0xab9c4857 skb_trim vmlinux EXPORT_SYMBOL
0x5bf30f5e skb_tstamp_tx vmlinux EXPORT_SYMBOL_GPL
0x7ae5ad74 sme_active vmlinux EXPORT_SYMBOL
0x8a35b432 sme_me_mask vmlinux EXPORT_SYMBOL
0xa3eded0c smp_call_function_many vmlinux EXPORT_SYMBOL
@ -766,7 +724,6 @@
0xc29bf967 strspn vmlinux EXPORT_SYMBOL
0x1e6d26a8 strstr vmlinux EXPORT_SYMBOL
0xd349ffc9 submit_bio vmlinux EXPORT_SYMBOL
0x609f1c7e synchronize_net vmlinux EXPORT_SYMBOL
0x2d3385d3 system_wq vmlinux EXPORT_SYMBOL
0x9545af6d tasklet_init vmlinux EXPORT_SYMBOL
0x69e49036 thaw_bdev vmlinux EXPORT_SYMBOL

View File

@ -3,15 +3,12 @@ product_versions:
- rhel-8
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: kernel-qe.kernel-ci.kernel-aarch64.tier1.functional}
- !PassingTestCaseRule {test_case_name: kernel-qe.kernel-ci.kernel-ppc64le.tier1.functional}
- !PassingTestCaseRule {test_case_name: kernel-qe.kernel-ci.kernel-s390x.tier1.functional}
- !PassingTestCaseRule {test_case_name: kernel-qe.kernel-ci.kernel-x86_64.tier1.functional}
excluded_packages: [kernel-rt]
--- !Policy
product_versions:
- rhel-8
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: kernel-qe.kernel-ci.kernel-rt-x86_64.tier1.functional}
packages: [kernel-rt]
- !PassingTestCaseRule {test_case_name: cki.tier1-aarch64.functional}
- !PassingTestCaseRule {test_case_name: cki.tier1-ppc64le.functional}
- !PassingTestCaseRule {test_case_name: cki.tier1-s390x.functional}
- !PassingTestCaseRule {test_case_name: cki.tier1-x86_64.functional}
- !PassingTestCaseRule {test_case_name: s1-aws-ci_x86_64.brew-build.tier1.functional}
- !PassingTestCaseRule {test_case_name: s1-aws-ci_aarch64.brew-build.tier1.functional}
- !PassingTestCaseRule {test_case_name: s1-azure-ci_x86_64.brew-build.tier1.functional}
- !PassingTestCaseRule {test_case_name: s1-azure-ci_aarch64.brew-build.tier1.functional}
- !PassingTestCaseRule {test_case_name: s1-gcp-ci.brew-build.tier1.functional}

View File

@ -1591,7 +1591,6 @@
# CONFIG_RFD77402 is not set
# CONFIG_RFD_FTL is not set
# CONFIG_RH_KABI_SIZE_ALIGN_CHECKS is not set
# CONFIG_RH_KABI_STABLE_ASM_OFFSETS is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
# CONFIG_RMI4_F54 is not set
# CONFIG_RMNET is not set
@ -2532,7 +2531,6 @@ CONFIG_ARM64_CRYPTO=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1024718=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_4118414=y
CONFIG_ARM64_ERRATUM_819472=y
CONFIG_ARM64_ERRATUM_824069=y
CONFIG_ARM64_ERRATUM_826319=y
@ -3231,7 +3229,6 @@ CONFIG_EEPROM_MAX6875=m
CONFIG_EFI=y
CONFIG_EFIVAR_FS=y
CONFIG_EFI_PARTITION=y
CONFIG_EFI_SBAT_FILE=""
CONFIG_EFI_STUB=y
CONFIG_EFI_VARS=y
CONFIG_EFI_VARS_PSTORE=y
@ -3563,7 +3560,6 @@ CONFIG_IBMASR=m
CONFIG_ICE=m
CONFIG_ICPLUS_PHY=m
CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_IDPF=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m

View File

@ -2604,7 +2604,6 @@ CONFIG_ARM64_CRYPTO=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1024718=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_4118414=y
CONFIG_ARM64_ERRATUM_819472=y
CONFIG_ARM64_ERRATUM_824069=y
CONFIG_ARM64_ERRATUM_826319=y
@ -3260,7 +3259,6 @@ CONFIG_EEPROM_MAX6875=m
CONFIG_EFI=y
CONFIG_EFIVAR_FS=y
CONFIG_EFI_PARTITION=y
CONFIG_EFI_SBAT_FILE=""
CONFIG_EFI_STUB=y
CONFIG_EFI_VARS=y
CONFIG_EFI_VARS_PSTORE=y
@ -3578,7 +3576,6 @@ CONFIG_IBMASR=m
CONFIG_ICE=m
CONFIG_ICPLUS_PHY=m
CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_IDPF=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@ -4745,7 +4742,6 @@ CONFIG_RFKILL_GPIO=m
CONFIG_RFKILL_INPUT=y
CONFIG_RHEL_DIFFERENCES=y
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
CONFIG_RH_KABI_STABLE_ASM_OFFSETS=y
CONFIG_RING_BUFFER_BENCHMARK=m
CONFIG_RMI4_2D_SENSOR=y
CONFIG_RMI4_CORE=m

View File

@ -1457,7 +1457,6 @@
# CONFIG_RFD_FTL is not set
# CONFIG_RFKILL_GPIO is not set
# CONFIG_RH_KABI_SIZE_ALIGN_CHECKS is not set
# CONFIG_RH_KABI_STABLE_ASM_OFFSETS is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
# CONFIG_RMI4_F54 is not set
# CONFIG_RMNET is not set
@ -2900,7 +2899,6 @@ CONFIG_EEPROM_AT24=m
CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EFI_PARTITION=y
CONFIG_EFI_SBAT_FILE=""
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_ENCLOSURE_SERVICES=m
CONFIG_ENCRYPTED_KEYS=y
@ -3205,7 +3203,6 @@ CONFIG_IBM_BSR=m
CONFIG_ICE=m
CONFIG_ICPLUS_PHY=m
CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_IDPF=m
CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_IEEE802154_DRIVERS=m

View File

@ -2926,7 +2926,6 @@ CONFIG_EEPROM_AT24=m
CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EFI_PARTITION=y
CONFIG_EFI_SBAT_FILE=""
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_ENCLOSURE_SERVICES=m
CONFIG_ENCRYPTED_KEYS=y
@ -3217,7 +3216,6 @@ CONFIG_IBM_BSR=m
CONFIG_ICE=m
CONFIG_ICPLUS_PHY=m
CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_IDPF=m
CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_IEEE802154_DRIVERS=m
@ -4404,7 +4402,6 @@ CONFIG_RFKILL=m
CONFIG_RFKILL_INPUT=y
CONFIG_RHEL_DIFFERENCES=y
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
CONFIG_RH_KABI_STABLE_ASM_OFFSETS=y
CONFIG_RING_BUFFER_BENCHMARK=m
CONFIG_RMI4_2D_SENSOR=y
CONFIG_RMI4_CORE=m

View File

@ -1552,7 +1552,6 @@
# CONFIG_RFD_FTL is not set
# CONFIG_RFKILL_GPIO is not set
# CONFIG_RH_KABI_SIZE_ALIGN_CHECKS is not set
# CONFIG_RH_KABI_STABLE_ASM_OFFSETS is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
# CONFIG_RMI4_CORE is not set
# CONFIG_RMI4_F54 is not set
@ -3006,7 +3005,6 @@ CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
CONFIG_EDAC_PND2=m
CONFIG_EFI_PARTITION=y
CONFIG_EFI_SBAT_FILE=""
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_ENCLOSURE_SERVICES=m
CONFIG_ENCRYPTED_KEYS=m
@ -3271,7 +3269,6 @@ CONFIG_IBMASR=m
CONFIG_IBM_PARTITION=y
CONFIG_ICE=m
CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_IDPF=m
CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_IEEE802154_DRIVERS=m

View File

@ -1760,7 +1760,6 @@
# CONFIG_RFD_FTL is not set
# CONFIG_RFKILL is not set
# CONFIG_RFKILL_GPIO is not set
# CONFIG_RH_KABI_STABLE_ASM_OFFSETS is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
# CONFIG_RMI4_CORE is not set
# CONFIG_RMI4_F54 is not set
@ -3175,7 +3174,6 @@ CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
CONFIG_EDAC_PND2=m
CONFIG_EFI_PARTITION=y
CONFIG_EFI_SBAT_FILE=""
CONFIG_ELF_CORE=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_ENCLOSURE_SERVICES=y
@ -3417,7 +3415,6 @@ CONFIG_IBMASR=m
CONFIG_IBM_PARTITION=y
CONFIG_ICE=m
CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_IDPF=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m

View File

@ -3034,7 +3034,6 @@ CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
CONFIG_EDAC_PND2=m
CONFIG_EFI_PARTITION=y
CONFIG_EFI_SBAT_FILE=""
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_ENCLOSURE_SERVICES=m
CONFIG_ENCRYPTED_KEYS=m
@ -3285,7 +3284,6 @@ CONFIG_IBMASR=m
CONFIG_IBM_PARTITION=y
CONFIG_ICE=m
CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_IDPF=m
CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_IEEE802154_DRIVERS=m
@ -4349,7 +4347,6 @@ CONFIG_RFKILL=m
CONFIG_RFKILL_INPUT=y
CONFIG_RHEL_DIFFERENCES=y
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
CONFIG_RH_KABI_STABLE_ASM_OFFSETS=y
CONFIG_RING_BUFFER_BENCHMARK=m
CONFIG_RMI4_2D_SENSOR=y
CONFIG_RMI4_F03=y

View File

@ -1429,7 +1429,6 @@
# CONFIG_RFD_FTL is not set
# CONFIG_RFKILL_GPIO is not set
# CONFIG_RH_KABI_SIZE_ALIGN_CHECKS is not set
# CONFIG_RH_KABI_STABLE_ASM_OFFSETS is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
# CONFIG_RMI4_F54 is not set
# CONFIG_RMNET is not set
@ -3012,7 +3011,6 @@ CONFIG_EFI_MIXED=y
CONFIG_EFI_PARTITION=y
CONFIG_EFI_RCI2_TABLE=y
CONFIG_EFI_RUNTIME_MAP=y
CONFIG_EFI_SBAT_FILE=""
CONFIG_EFI_STUB=y
CONFIG_EFI_VARS=y
CONFIG_EFI_VARS_PSTORE=y
@ -3361,7 +3359,6 @@ CONFIG_ICE=m
CONFIG_ICPLUS_PHY=m
CONFIG_IDEAPAD_LAPTOP=m
CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_IDPF=m
CONFIG_IE6XX_WDT=m
CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
@ -3937,7 +3934,6 @@ CONFIG_MISDN_L1OIP=m
CONFIG_MISDN_NETJET=m
CONFIG_MISDN_SPEEDFAX=m
CONFIG_MISDN_W6692=m
CONFIG_MITIGATION_VMSCAPE=y
CONFIG_MLX4_EN=m
CONFIG_MLX4_EN_DCB=y
CONFIG_MLX4_INFINIBAND=m

View File

@ -3040,7 +3040,6 @@ CONFIG_EFI_MIXED=y
CONFIG_EFI_PARTITION=y
CONFIG_EFI_RCI2_TABLE=y
CONFIG_EFI_RUNTIME_MAP=y
CONFIG_EFI_SBAT_FILE=""
CONFIG_EFI_STUB=y
CONFIG_EFI_VARS=y
CONFIG_EFI_VARS_PSTORE=y
@ -3375,7 +3374,6 @@ CONFIG_ICE=m
CONFIG_ICPLUS_PHY=m
CONFIG_IDEAPAD_LAPTOP=m
CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_IDPF=m
CONFIG_IE6XX_WDT=m
CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
@ -3937,7 +3935,6 @@ CONFIG_MISDN_L1OIP=m
CONFIG_MISDN_NETJET=m
CONFIG_MISDN_SPEEDFAX=m
CONFIG_MISDN_W6692=m
CONFIG_MITIGATION_VMSCAPE=y
CONFIG_MLX4_EN=m
CONFIG_MLX4_EN_DCB=y
CONFIG_MLX4_INFINIBAND=m
@ -4656,7 +4653,6 @@ CONFIG_RFKILL=m
CONFIG_RFKILL_INPUT=y
CONFIG_RHEL_DIFFERENCES=y
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
CONFIG_RH_KABI_STABLE_ASM_OFFSETS=y
CONFIG_RING_BUFFER_BENCHMARK=m
CONFIG_RMI4_2D_SENSOR=y
CONFIG_RMI4_CORE=m

View File

@ -1,2 +0,0 @@
sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
kernel.@SBAT_SUFFIX,1,Red Hat,kernel-core,@KVER,mailto:secalert@redhat.com

View File

@ -1,874 +0,0 @@
#!/usr/bin/env python3
"""
kmap.py - Kernel Source-to-Binary Mapping Tool
DESCRIPTION
This tool parses Linux kernel build artifacts (.cmd files, archives) to
create a JSON mapping of which source files contribute to which kernel
binaries (modules and vmlinux). It supports merging data from multiple
kernel build variants (e.g., stock, debug, rt) into a single output
file using variant indices to track per-variant mappings.
Supported RHEL versions: 7, 8, 9, upstream
FEATURES
- Parses .cmd files generated by kbuild to extract compilation commands
- Supports C (gcc/clang) and Rust (rustc) source files
- Handles built-in objects via built-in.o.cmd (RHEL 7), built-in.a
(RHEL 8/9), or vmlinux.a (upstream)
- Merges multiple kernel variants into single output with variant indices
- Maps modules to their containing RPM packages
OUTPUT FORMAT
The output is a JSON file with the following structure:
{
"variants": ["stock", "rt", ...],
"source-map": {
"obj-src": {<object>: {<source>: [<variant_indices>]}},
"src-obj": {<source>: {<object>: [<variant_indices>]}}
},
"module-map": {
"module-rpm": {<module>: {<rpm_name>: [<variant_indices>]}},
"rpm-modules": {<rpm_name>: {<module>: [<variant_indices>]}}
}
}
PARSING THE OUTPUT
import json
with open('kernel-map.json') as f:
data = json.load(f)
variants = data['variants']
obj_src = data['source-map']['obj-src']
src_obj = data['source-map']['src-obj']
module_rpm = data['module-map']['module-rpm']
rpm_modules = data['module-map']['rpm-modules']
# Get sources for vmlinux in variant "stock" (index 0)
vmlinux_sources = [src for src, indices in obj_src['vmlinux'].items()
if 0 in indices]
# Find which object a source contributes to
fork_objects = [obj for obj, indices in src_obj['kernel/fork.c'].items()
if 0 in indices]
# Get RPM for a module
def get_rpm(module, variant_idx):
for rpm, indices in module_rpm.get(module, {}).items():
if variant_idx in indices:
return rpm
return None
USAGE
# Single variant
./kmap.py -d /build/stock -r upstream -v stock -o /output
# Merge multiple variants
./kmap.py -d /build/stock -r upstream -v stock -o /output
./kmap.py -d /build/debug -r upstream -v debug -o /output -i kernel-map.json
./kmap.py -d /build/rt -r upstream -v rt -o /output -i kernel-map.json
# With module-to-RPM mapping
./kmap.py -d /build -r upstream -v stock -o /output \\
--vmlinux-rpm kernel-core-5.14.0.rpm \\
--module-list kernel-modules-5.14.0.rpm:modules.list
CREDITS
Inspired by gen_compile_commands.py and Joe Lawrence.
Time measurement option added for Jan Stancek.
"""
import re
import os
import pathlib
import json
import argparse
import subprocess
import time
# =============================================================================
# Constants
# =============================================================================
VMLINUX = 'vmlinux'
KERNEL_PREFIX = 'kernel/'
# Supported compilers and linkers
COMPILERS = ('gcc', 'clang')
LINKER = 'ld'
RUST_COMPILER = 'rustc'
# =============================================================================
# Regex Patterns
#
# These patterns parse the kernel build .cmd files to extract:
# - What compiler/linker was used
# - What source files were compiled
# - What object files were linked
# =============================================================================
# Pattern for .ko.cmd files (module linking)
# Matches: cmd_path/to/module.ko := ld <params> -o <ko_name> <input_files>
# Note: upstream kernels use 'savedcmd_' prefix instead of 'cmd_'
_KO_CMD_PATTERN = (
r'^(saved)?cmd_[^ ]*\.ko\s*:=\s*ld\s+'
r'(?P<params>.*) -o (?P<ko_name>\S+) (?P<input_files>[^;]+?)\s*(?:;|$)'
)
# Pattern for .o.cmd files (object compilation)
# Matches multiple formats:
# - C/asm: cmd_*.o := gcc/clang <params> -o <output> <input>
# - Rust: cmd_*.o := rustc <params> --emit=obj=<output> <input.rs>
# - Rust source mapping: source_*.o := <file.rs>
_O_CMD_PATTERN = (
r'^(saved)?(?:cmd_|source_)[^ ]*\.o\s+:=\s+'
r'(?:'
r'(?P<prefix>(?:\S+=\S+\s+)*)?'
r'(?P<command>gcc|clang|ld|rustc)\s+'
r'(?P<params>.*?)'
r'(?:'
r'\s+-o\s+(?P<obj_out>\S+)\s+(?P<input_files>[^;]+?)'
r'|'
r'\s+--emit=obj=(?P<rust_obj_out>\S+).*?\s+(?P<rust_input_file>\S+\.rs)'
r')'
r'|'
r'(?P<source_file>\S+\.rs)'
r')\s*(?:;|$)'
)
ko_matcher = re.compile(_KO_CMD_PATTERN)
o_matcher = re.compile(_O_CMD_PATTERN)
# =============================================================================
# Utility Functions
# =============================================================================
def parse_args():
"""
Parse command line arguments
"""
parser = argparse.ArgumentParser(
prog='Kernel Build Mapper',
description='Scrape Linux Kernel .cmd files to map contribution '
'of individual source files to kernel binaries.',
)
parser.add_argument('-d', '--directory',
help='Directory with kernel build artifacts.',
default='',
type=str)
parser.add_argument('-o', '--outputdir',
help='Directory where to put generated files.',
default='',
type=str)
parser.add_argument('-p', '--prefix',
help='Name prefix to the generated files.',
default='',
type=str)
parser.add_argument('-r', '--rhel',
help='Specify to what version of RHEL artifacts belong (upstream for RHEL 10+/kernel-ark)',
choices=['7', '8', '9', 'upstream'],
required=True)
parser.add_argument('-m', '--no-modules',
help='*SKIP* collecting information about modules',
action='store_true')
parser.add_argument('-b', '--no-builtin',
help='*SKIP* collecting information about built-in',
action='store_true')
parser.add_argument('-t', '--time',
help='Print elapsed time at the end',
action='store_true')
parser.add_argument('-v', '--variant',
help='Name of this kernel variant (e.g., stock, debug, rt)',
required=True,
type=str)
parser.add_argument('-i', '--input',
help='Existing JSON file to merge with (from previous variant runs)',
default='',
type=str)
parser.add_argument('--module-list',
help='Module list in format <rpm-name>:<path> (can be specified multiple times)',
action='append',
default=[],
metavar='RPM:PATH')
parser.add_argument('--vmlinux-rpm',
help='RPM package name for vmlinux (e.g., "kernel-5.14.0.rpm")',
default='',
type=str)
return parser.parse_args()
def load_file(filename, build_dir=''):
"""
Load a text file and return non-empty lines as a list
"""
full_path = os.path.join(build_dir, filename)
try:
with open(full_path, 'rt', encoding='utf-8') as file:
return [line.rstrip() for line in file if line.rstrip()]
except FileNotFoundError:
print(f'File "{full_path}" not found.')
return []
def name_to_cmd(filename, suffix):
"""
Convert object filename to corresponding .cmd script filename
Example: kernel/fork.o -> kernel/.fork.o.cmd
"""
path, _ = os.path.splitext(filename)
dirname = os.path.dirname(path)
basename = os.path.basename(path)
return os.path.join(dirname, '.' + basename + suffix)
def strip_path_prefixes(path, build_dir):
"""
Normalize path by removing build directory prefix and other artifacts
"""
path = pathlib.Path(path)
if build_dir:
try:
return str(path.resolve().relative_to(pathlib.Path(build_dir).resolve()))
except ValueError:
pass
if path.is_absolute():
path = pathlib.Path(*path.parts[1:])
while path.parts and path.parts[0] == 'repos':
path = pathlib.Path(*path.parts[1:])
return str(path)
def is_external_source(path):
"""
Check if path should be excluded from source mapping
Filters out:
- Rust toolchain sources (not part of kernel source)
- Generated assembly files (e.g., initramfs_data.S)
"""
if 'rustlib' in path:
return True
if path.endswith('_data.S'):
return True
return False
def is_mod_file_reference(ld_input):
"""
Check if linker input is a .mod file reference (RHEL 9+ module linking)
In RHEL 9+, module linking uses @path/to/module.mod files that contain
the list of object files to link.
"""
files = ld_input.split()
return len(files) == 1 and files[0].startswith('@') and files[0].endswith('.mod')
# =============================================================================
# SourceMap Class
# =============================================================================
class SourceMap:
"""
Collects and manages kernel source-to-binary mappings.
This class parses kernel build artifacts (.cmd files, archives) to determine
which source files contribute to which kernel binaries (modules and vmlinux).
Data structures:
obj_to_src: {object_name: {source_file: [variant_indices]}}
src_to_obj: {source_file: {object_name: [variant_indices]}}
module_rpm: {module_name: {rpm_name: [variant_indices]}}
rpm_to_modules: {rpm_name: {module_name: [variant_indices]}}
Variant indices correspond to positions in the 'variants' list.
"""
# Dispatch table for RHEL-specific builtin collection methods
BUILTIN_COLLECTORS = {
'7': '_collect_builtin_rhel7',
'8': '_collect_builtin_archive',
'9': '_collect_builtin_archive',
'upstream': '_collect_builtin_vmlinux_archive',
}
def __init__(self, build_dir='', output_dir='', outprefix='', rhel='7', variant=''):
# Source mappings
self.obj_to_src = {}
self.src_to_obj = {}
# Module-to-RPM mappings
self.module_rpm = {}
self.rpm_to_modules = {}
# Configuration
self.build_dir = build_dir
self.output_dir = output_dir
self.outprefix = outprefix
self.rhel = rhel
# Module list
self.modlist = set()
# Variant tracking for multi-variant merging
self.variants = []
self.variant = variant
self.variant_idx = 0
# -------------------------------------------------------------------------
# Variant Management
# -------------------------------------------------------------------------
def load_existing(self, filename):
"""
Load existing merged data from previous variant runs
"""
if not filename:
return
full_path = os.path.join(self.output_dir, filename) if self.output_dir else filename
if not os.path.exists(full_path):
return
with open(full_path, 'rt', encoding='utf-8') as f:
data = json.load(f)
self.variants = data.get('variants', [])
module_map = data.get('module-map', {})
self.module_rpm = module_map.get('module-rpm', {})
self.rpm_to_modules = module_map.get('rpm-modules', {})
source_map = data.get('source-map', {})
self.obj_to_src = source_map.get('obj-src', {})
self.src_to_obj = source_map.get('src-obj', {})
def add_variant(self):
"""
Register current variant and store its index
"""
if self.variant in self.variants:
self.variant_idx = self.variants.index(self.variant)
else:
self.variant_idx = len(self.variants)
self.variants.append(self.variant)
# -------------------------------------------------------------------------
# Source Merging Helpers
# -------------------------------------------------------------------------
def _merge_sources(self, target, source):
"""
Merge source dict into target dict by combining variant index lists
"""
for src, indices in source.items():
if src not in target:
target[src] = []
for idx in indices:
if idx not in target[src]:
target[src].append(idx)
def _add_source(self, sources, source_path):
"""
Add a source file to the sources dict with current variant index
Returns True if source was added, False if filtered out
"""
source_path = os.path.normpath(source_path)
source_path = strip_path_prefixes(source_path, self.build_dir)
if is_external_source(source_path):
return False
sources[source_path] = [self.variant_idx]
return True
# -------------------------------------------------------------------------
# .cmd File Parsing
# -------------------------------------------------------------------------
def _parse_ko_cmd(self, ko_name):
"""
Parse .ko.cmd file to find the primary object file linked into the module
"""
ko_script = name_to_cmd(ko_name, '.ko.cmd')
lines = load_file(ko_script, build_dir=self.build_dir)
for line in lines:
result = ko_matcher.match(line)
if result:
input_files = result.group('input_files').split()
return input_files[0]
return None
def _parse_o_cmd(self, o_name, translate=True):
"""
Parse .o.cmd file to extract source files that contribute to the object
Handles:
- C/assembly compilation (gcc, clang)
- Linking (ld) - recursively parses linked objects
- Rust compilation (rustc)
- Rust source file mappings
Args:
o_name: Object file name or .cmd file path
translate: If True, convert object name to .cmd path (e.g., kernel/fork.o
becomes kernel/.fork.o.cmd). If False, use o_name as-is.
This parameter exists to handle different kbuild behaviors
across RHEL versions - some code paths may already have .cmd
paths while others have object names that need translation.
"""
sources = {}
o_script = name_to_cmd(o_name, '.o.cmd') if translate else o_name
lines = load_file(o_script, build_dir=self.build_dir)
for line in lines:
result = o_matcher.match(line)
if not result:
continue
command = result.group('command')
if command in COMPILERS:
self._handle_compiler(result, sources)
break
elif command == LINKER:
self._handle_linker(result, sources)
break
elif command == RUST_COMPILER:
self._handle_rustc(result, sources)
break
else:
self._handle_rust_source_mapping(result, sources)
break
return sources
def _handle_compiler(self, match_result, sources):
"""
Handle gcc/clang compilation - extract the input source file
"""
obj_input = match_result.group('input_files')
if obj_input:
self._add_source(sources, obj_input)
def _handle_linker(self, match_result, sources):
"""
Handle ld linking - recursively parse linked objects
"""
obj_input = match_result.group('input_files')
if not obj_input:
return
if is_mod_file_reference(obj_input):
self._merge_sources(sources, self._parse_mod_cmd(obj_input))
else:
for obj_file in obj_input.split():
self._merge_sources(sources, self._parse_o_cmd(obj_file))
def _handle_rustc(self, match_result, sources):
"""
Handle rustc compilation - extract the Rust source file
"""
rust_input = match_result.group('rust_input_file')
if rust_input:
self._add_source(sources, rust_input)
def _handle_rust_source_mapping(self, match_result, sources):
"""
Handle Rust source file mapping (source_*.o := *.rs)
"""
source_file = match_result.group('source_file')
if source_file and source_file.endswith('.rs'):
self._add_source(sources, source_file)
def _parse_mod_cmd(self, mod_name):
"""
Parse .mod file used by RHEL 9+ for linking modules
These files contain a list of object files to link into the module.
"""
sources = {}
mod_name = mod_name.strip('@')
lines = load_file(mod_name, build_dir=self.build_dir)
for line in lines:
self._merge_sources(sources, self._parse_o_cmd(line))
return sources
def _parse_a_cmd(self, a_name):
"""
Parse archive .cmd file (RHEL 7 built-in.o.cmd files)
"""
sources = {}
lines = load_file(a_name, build_dir=self.build_dir)
for line in lines:
result = o_matcher.match(line)
if not result:
continue
ar_input = result.group('input_files')
for filename in ar_input.rsplit():
if filename.endswith('.o'):
self._merge_sources(sources, self._parse_o_cmd(filename))
elif filename.endswith('.a'):
self._merge_sources(sources, self._parse_a_cmd(filename))
return sources
# -------------------------------------------------------------------------
# Module Collection
# -------------------------------------------------------------------------
def _load_module_list(self, modorder='modules.order'):
"""
Load modules.order file and normalize paths
RHEL 7, 8: modules.order has 'kernel/' prefix that needs to be stripped
RHEL 9, upstream: modules.order paths are used as-is
"""
lines = load_file(modorder, build_dir=self.build_dir)
if not lines:
print(f'Warning: modules.order is empty or not found')
self.modlist = set()
return
if self.rhel in ['9', 'upstream']:
self.modlist = set(lines)
else:
# RHEL 7, 8: strip fake 'kernel/' prefix added by kbuild
self.modlist = {
path[len(KERNEL_PREFIX):] if path.startswith(KERNEL_PREFIX) else path
for path in lines
}
def _parse_module_objects(self):
"""
Parse all module .cmd files and extract source mappings.
Note on RHEL version differences:
- RHEL 7/8/9: modules.order contains .ko paths (e.g., fs/exfat/exfat.ko)
- upstream: modules.order contains .o paths (e.g., fs/exfat/exfat.o)
The normalization below ensures consistent .ko keys in output regardless
of the modules.order format.
"""
for kobj in self.modlist:
# Normalize to .ko - upstream has .o paths in modules.order
if self.rhel == 'upstream' and kobj.endswith('.o'):
module_name = kobj[:-2] + '.ko'
else:
module_name = kobj
obj_name = self._parse_ko_cmd(module_name)
if obj_name is None:
print(f'Warning: Could not parse .ko.cmd for "{module_name}", skipping.')
continue
obj_source = self._parse_o_cmd(obj_name)
if module_name not in self.obj_to_src:
self.obj_to_src[module_name] = {}
self._merge_sources(self.obj_to_src[module_name], obj_source)
def collect_modules(self, no_modules=False, modorder='modules.order'):
"""
Collect source files for kernel modules
"""
if no_modules:
return
self._load_module_list(modorder)
self._parse_module_objects()
# -------------------------------------------------------------------------
# Builtin Collection (RHEL version-specific)
# -------------------------------------------------------------------------
def _collect_builtin_rhel7(self):
"""
Collect built-in objects for RHEL 7 using *built-in.o.cmd files
"""
pattern = '*built-in.o.cmd'
cmd_list = {
strip_path_prefixes(path, self.build_dir)
for path in pathlib.Path(self.build_dir).rglob(pattern)
}
for entry in cmd_list:
sources = self._parse_a_cmd(entry)
self._merge_sources(self.obj_to_src[VMLINUX], sources)
def _collect_builtin_archive(self):
"""
Collect built-in objects for RHEL 8/9 using *built-in.a archives
"""
pattern = '*built-in.a'
archive_list = {
strip_path_prefixes(path, self.build_dir)
for path in pathlib.Path(self.build_dir).rglob(pattern)
}
for entry in archive_list:
path = os.path.join(self.build_dir, entry)
objects = subprocess.check_output(['ar', 't', path]).decode().split()
for obj in objects:
obj_path = strip_path_prefixes(obj, build_dir=self.build_dir)
sources = self._parse_o_cmd(obj_path)
self._merge_sources(self.obj_to_src[VMLINUX], sources)
def _collect_builtin_vmlinux_archive(self):
"""
Collect built-in objects for upstream kernels using single vmlinux.a archive
"""
path = os.path.join(self.build_dir, 'vmlinux.a')
objects = subprocess.check_output(['ar', 't', path]).decode().split()
for obj in objects:
obj_path = strip_path_prefixes(obj, build_dir=self.build_dir)
sources = self._parse_o_cmd(obj_path)
self._merge_sources(self.obj_to_src[VMLINUX], sources)
def collect_builtin(self, no_builtin=False):
"""
Collect source files for vmlinux built-in objects
Uses RHEL version-specific collection method via dispatch table.
"""
if VMLINUX not in self.obj_to_src:
self.obj_to_src[VMLINUX] = {}
if no_builtin:
return
collector_name = self.BUILTIN_COLLECTORS.get(self.rhel, '_collect_builtin_archive')
collector = getattr(self, collector_name)
collector()
# -------------------------------------------------------------------------
# Module-to-RPM Mapping
# -------------------------------------------------------------------------
def _parse_module_list_file(self, filename, rpm_name):
"""
Parse a module list file and add entries to module_rpm mapping
Handles various formats:
- Absolute paths: /lib/modules/5.14.0/kernel/drivers/net/e1000.ko.xz
- Relative paths: kernel/drivers/net/e1000.ko
- Skips RPM spec directives (%dir, %defattr, etc.)
Args:
filename: Path to the module list file
rpm_name: Literal RPM package name (e.g., "kernel-modules-5.14.0.rpm")
"""
if not filename or not os.path.exists(filename):
return
with open(filename, 'rt', encoding='utf-8') as f:
for line in f:
line = line.strip()
# Skip empty lines, comments, and RPM spec directives
if not line or line.startswith('#') or line.startswith('%'):
continue
# Skip non-module files
if '.ko' not in line:
continue
# Extract module name from path
module = os.path.basename(line)
# Remove .ko and any compression suffix
module = re.sub(r'\.ko(\.[^.]+)?$', '', module)
if not module:
continue
if module not in self.module_rpm:
self.module_rpm[module] = {}
if rpm_name not in self.module_rpm[module]:
self.module_rpm[module][rpm_name] = []
if self.variant_idx not in self.module_rpm[module][rpm_name]:
self.module_rpm[module][rpm_name].append(self.variant_idx)
def collect_module_rpm(self, module_lists, vmlinux_rpm=''):
"""
Collect module-to-RPM name mappings from module list files
Args:
module_lists: List of "rpm_name:path" strings
vmlinux_rpm: RPM package name for vmlinux
"""
if not module_lists and not vmlinux_rpm:
return
# Add vmlinux to specified RPM
if vmlinux_rpm:
if VMLINUX not in self.module_rpm:
self.module_rpm[VMLINUX] = {}
if vmlinux_rpm not in self.module_rpm[VMLINUX]:
self.module_rpm[VMLINUX][vmlinux_rpm] = []
if self.variant_idx not in self.module_rpm[VMLINUX][vmlinux_rpm]:
self.module_rpm[VMLINUX][vmlinux_rpm].append(self.variant_idx)
# Process module list files
for entry in module_lists:
if ':' not in entry:
print(f'Warning: Invalid --module-list format "{entry}", expected RPM:PATH')
continue
rpm_name, path = entry.split(':', 1)
self._parse_module_list_file(path, rpm_name)
# -------------------------------------------------------------------------
# Output
# -------------------------------------------------------------------------
def _build_reverse_map(self):
"""
Create reverse mapping (source -> {obj: [indices]}) from obj_to_src
"""
for obj, sources in self.obj_to_src.items():
for source, indices in sources.items():
if source not in self.src_to_obj:
self.src_to_obj[source] = {}
if obj not in self.src_to_obj[source]:
self.src_to_obj[source][obj] = []
for idx in indices:
if idx not in self.src_to_obj[source][obj]:
self.src_to_obj[source][obj].append(idx)
def _build_rpm_reverse_map(self):
"""
Create reverse mapping (rpm -> {module: [indices]}) from module_rpm
"""
for module, rpms in self.module_rpm.items():
for rpm, indices in rpms.items():
if rpm not in self.rpm_to_modules:
self.rpm_to_modules[rpm] = {}
if module not in self.rpm_to_modules[rpm]:
self.rpm_to_modules[rpm][module] = []
for idx in indices:
if idx not in self.rpm_to_modules[rpm][module]:
self.rpm_to_modules[rpm][module].append(idx)
def save_data(self):
"""
Save collected data to JSON file
Output structure:
- variants: list of variant names
- source-map: source file mappings
- obj-src: object/module -> {source: [variant_indices]}
- src-obj: source -> {object/module: [variant_indices]}
- module-map: module to RPM mappings
- module-rpm: module name -> {rpm-name: [variant_indices]}
- rpm-modules: rpm-name -> {module name: [variant_indices]}
Variant indices correspond to positions in the 'variants' list.
"""
output = {
'variants': self.variants,
'source-map': {
'obj-src': self.obj_to_src,
'src-obj': self.src_to_obj
},
'module-map': {
'module-rpm': self.module_rpm,
'rpm-modules': self.rpm_to_modules
}
}
filename = self.outprefix + 'kernel-map.json'
with open(os.path.join(self.output_dir, filename), 'wt', encoding='utf-8') as f:
json.dump(output, f, indent=2, sort_keys=True)
# -------------------------------------------------------------------------
# Main Entry Point
# -------------------------------------------------------------------------
def collect_data(self, no_modules=False, no_builtin=False, modorder='modules.order',
input_file='', module_lists=None, vmlinux_rpm=''):
"""
Main entry point - collect all data and save to JSON
"""
self.load_existing(input_file)
self.add_variant()
self.collect_modules(no_modules, modorder)
self.collect_builtin(no_builtin)
self.collect_module_rpm(module_lists or [], vmlinux_rpm)
self._build_reverse_map()
self._build_rpm_reverse_map()
self.save_data()
# =============================================================================
# Main
# =============================================================================
def main():
"""
Main entry point
"""
args = parse_args()
start = time.monotonic()
source_map = SourceMap(
build_dir=args.directory,
output_dir=args.outputdir,
outprefix=args.prefix,
rhel=args.rhel,
variant=args.variant)
source_map.collect_data(
no_modules=args.no_modules,
no_builtin=args.no_builtin,
input_file=args.input,
module_lists=args.module_list,
vmlinux_rpm=args.vmlinux_rpm)
if args.time:
elapsed = time.monotonic() - start
minutes, seconds = divmod(int(elapsed), 60)
print(f'Elapsed time: {minutes:02d}:{seconds:02d}')
if __name__ == '__main__':
main()

View File

@ -26,8 +26,6 @@ emptyrpm:
- kernel-debug
- kernel-zfcpdump
- kernel-zfcpdump-modules
- kernel-rt
- kernel-rt-debug
patches:
ignore_list:

View File

@ -1,41 +0,0 @@
#include <generated/autoconf.h>
#include <generated/asm-offsets.h>
#include <linux/rh_kabi.h>
int main(void)
{
RH_KABI_ASSERT_EQ_CONST(728, MM_CONTEXT_ID); /* offsetof(struct mm_struct, context.id.counter) */
RH_KABI_ASSERT_EQ_CONST(320, S_FRAME_SIZE); /* sizeof(struct pt_regs) */
RH_KABI_ASSERT_EQ_CONST(240, S_LR); /* offsetof(struct pt_regs, regs[30]) */
RH_KABI_ASSERT_EQ_CONST(288, S_ORIG_ADDR_LIMIT); /* offsetof(struct pt_regs, orig_addr_limit) */
RH_KABI_ASSERT_EQ_CONST(256, S_PC); /* offsetof(struct pt_regs, pc) */
RH_KABI_ASSERT_EQ_CONST(296, S_PMR_SAVE); /* offsetof(struct pt_regs, pmr_save) */
RH_KABI_ASSERT_EQ_CONST(264, S_PSTATE); /* offsetof(struct pt_regs, pstate) */
RH_KABI_ASSERT_EQ_CONST(248, S_SP); /* offsetof(struct pt_regs, sp) */
RH_KABI_ASSERT_EQ_CONST(304, S_STACKFRAME); /* offsetof(struct pt_regs, stackframe) */
RH_KABI_ASSERT_EQ_CONST(280, S_SYSCALLNO); /* offsetof(struct pt_regs, syscallno) */
RH_KABI_ASSERT_EQ_CONST(0, S_X0); /* offsetof(struct pt_regs, regs[0]) */
RH_KABI_ASSERT_EQ_CONST(80, S_X10); /* offsetof(struct pt_regs, regs[10]) */
RH_KABI_ASSERT_EQ_CONST(96, S_X12); /* offsetof(struct pt_regs, regs[12]) */
RH_KABI_ASSERT_EQ_CONST(112, S_X14); /* offsetof(struct pt_regs, regs[14]) */
RH_KABI_ASSERT_EQ_CONST(128, S_X16); /* offsetof(struct pt_regs, regs[16]) */
RH_KABI_ASSERT_EQ_CONST(144, S_X18); /* offsetof(struct pt_regs, regs[18]) */
RH_KABI_ASSERT_EQ_CONST(160, S_X20); /* offsetof(struct pt_regs, regs[20]) */
RH_KABI_ASSERT_EQ_CONST(16, S_X2); /* offsetof(struct pt_regs, regs[2]) */
RH_KABI_ASSERT_EQ_CONST(176, S_X22); /* offsetof(struct pt_regs, regs[22]) */
RH_KABI_ASSERT_EQ_CONST(192, S_X24); /* offsetof(struct pt_regs, regs[24]) */
RH_KABI_ASSERT_EQ_CONST(208, S_X26); /* offsetof(struct pt_regs, regs[26]) */
RH_KABI_ASSERT_EQ_CONST(224, S_X28); /* offsetof(struct pt_regs, regs[28]) */
RH_KABI_ASSERT_EQ_CONST(32, S_X4); /* offsetof(struct pt_regs, regs[4]) */
RH_KABI_ASSERT_EQ_CONST(48, S_X6); /* offsetof(struct pt_regs, regs[6]) */
RH_KABI_ASSERT_EQ_CONST(64, S_X8); /* offsetof(struct pt_regs, regs[8]) */
RH_KABI_ASSERT_EQ_CONST(3344, THREAD_CPU_CONTEXT); /* offsetof(struct task_struct, thread.cpu_context) */
RH_KABI_ASSERT_EQ_CONST(1688, TSK_ACTIVE_MM); /* offsetof(struct task_struct, active_mm) */
RH_KABI_ASSERT_EQ_CONST(32, TSK_STACK); /* offsetof(struct task_struct, stack) */
RH_KABI_ASSERT_EQ_CONST(1864, TSK_STACK_CANARY); /* offsetof(struct task_struct, stack_canary) */
RH_KABI_ASSERT_EQ_CONST(8, TSK_TI_ADDR_LIMIT); /* offsetof(struct task_struct, thread_info.addr_limit) */
RH_KABI_ASSERT_EQ_CONST(0, TSK_TI_FLAGS); /* offsetof(struct task_struct, thread_info.flags) */
RH_KABI_ASSERT_EQ_CONST(16, TSK_TI_PREEMPT); /* offsetof(struct task_struct, thread_info.preempt_count) */
RH_KABI_ASSERT_EQ_CONST(80, VMA_VM_FLAGS); /* offsetof(struct vm_area_struct, vm_flags) */
RH_KABI_ASSERT_EQ_CONST(64, VMA_VM_MM); /* offsetof(struct vm_area_struct, vm_mm) */
return 0;
}

View File

@ -1,79 +0,0 @@
#include <generated/autoconf.h>
#include <generated/asm-offsets.h>
#include <linux/rh_kabi.h>
int main(void)
{
RH_KABI_ASSERT_EQ_CONST(24, BUG_ENTRY_SIZE); /* sizeof(struct bug_entry) */
RH_KABI_ASSERT_EQ_CONST(416, _CCR); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, ccr) */
RH_KABI_ASSERT_EQ_CONST(392, _CTR); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, ctr) */
RH_KABI_ASSERT_EQ_CONST(440, _DAR); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, dar) */
RH_KABI_ASSERT_EQ_CONST(448, _DSISR); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, dsisr) */
RH_KABI_ASSERT_EQ_CONST(512, FPSTATE_FPSCR); /* offsetof(struct thread_fp_state, fpscr) */
RH_KABI_ASSERT_EQ_CONST(112, GPR0); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[0]) */
RH_KABI_ASSERT_EQ_CONST(192, GPR10); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[10]) */
RH_KABI_ASSERT_EQ_CONST(200, GPR11); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[11]) */
RH_KABI_ASSERT_EQ_CONST(120, GPR1); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[1]) */
RH_KABI_ASSERT_EQ_CONST(208, GPR12); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[12]) */
RH_KABI_ASSERT_EQ_CONST(216, GPR13); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[13]) */
RH_KABI_ASSERT_EQ_CONST(128, GPR2); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[2]) */
RH_KABI_ASSERT_EQ_CONST(136, GPR3); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[3]) */
RH_KABI_ASSERT_EQ_CONST(144, GPR4); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[4]) */
RH_KABI_ASSERT_EQ_CONST(152, GPR5); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[5]) */
RH_KABI_ASSERT_EQ_CONST(160, GPR6); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[6]) */
RH_KABI_ASSERT_EQ_CONST(168, GPR7); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[7]) */
RH_KABI_ASSERT_EQ_CONST(176, GPR8); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[8]) */
RH_KABI_ASSERT_EQ_CONST(184, GPR9); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, gpr[9]) */
RH_KABI_ASSERT_EQ_CONST(0, KSP); /* offsetof(struct thread_struct, ksp) */
RH_KABI_ASSERT_EQ_CONST(8, KSP_VSID); /* offsetof(struct thread_struct, ksp_vsid) */
RH_KABI_ASSERT_EQ_CONST(400, _LINK); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, link) */
RH_KABI_ASSERT_EQ_CONST(1488, MM); /* offsetof(struct task_struct, mm) */
RH_KABI_ASSERT_EQ_CONST(920, MMCONTEXTID); /* offsetof(struct mm_struct, context.id) */
RH_KABI_ASSERT_EQ_CONST(376, _MSR); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, msr) */
RH_KABI_ASSERT_EQ_CONST(368, _NIP); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, nip) */
RH_KABI_ASSERT_EQ_CONST(384, ORIG_GPR3); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, orig_gpr3) */
RH_KABI_ASSERT_EQ_CONST(3328, PACA_CANARY); /* offsetof(struct paca_struct, canary) */
RH_KABI_ASSERT_EQ_CONST(464, _PPR); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, ppr) */
RH_KABI_ASSERT_EQ_CONST(1240, PT_CKPT_REGS); /* offsetof(struct thread_struct, ckpt_regs) */
RH_KABI_ASSERT_EQ_CONST(16, PT_REGS); /* offsetof(struct thread_struct, regs) */
RH_KABI_ASSERT_EQ_CONST(456, RESULT); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, result) */
RH_KABI_ASSERT_EQ_CONST(424, SOFTE); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, softe) */
RH_KABI_ASSERT_EQ_CONST(480, SWITCH_FRAME_SIZE); /* STACK_FRAME_OVERHEAD + sizeof(struct pt_regs) */
RH_KABI_ASSERT_EQ_CONST(1768, TASK_CANARY); /* offsetof(struct task_struct, stack_canary) */
RH_KABI_ASSERT_EQ_CONST(3168, THREAD); /* offsetof(struct task_struct, thread) */
RH_KABI_ASSERT_EQ_CONST(1632, THREAD_CKFPSTATE); /* offsetof(struct thread_struct, ckfp_state.fpr) */
RH_KABI_ASSERT_EQ_CONST(2688, THREAD_CKVRSAVE); /* offsetof(struct thread_struct, ckvrsave) */
RH_KABI_ASSERT_EQ_CONST(2160, THREAD_CKVRSTATE); /* offsetof(struct thread_struct, ckvr_state.vr) */
RH_KABI_ASSERT_EQ_CONST(568, THREAD_FPEXC_MODE); /* offsetof(struct thread_struct, fpexc_mode) */
RH_KABI_ASSERT_EQ_CONST(560, THREAD_FPSAVEAREA); /* offsetof(struct thread_struct, fp_save_area) */
RH_KABI_ASSERT_EQ_CONST(32, THREAD_FPSTATE); /* offsetof(struct thread_struct, fp_state.fpr) */
RH_KABI_ASSERT_EQ_CONST(648, THREAD_LOAD_FP); /* offsetof(struct thread_struct, load_fp) */
RH_KABI_ASSERT_EQ_CONST(649, THREAD_LOAD_VEC); /* offsetof(struct thread_struct, load_vec) */
RH_KABI_ASSERT_EQ_CONST(1624, THREAD_TM_DSCR); /* offsetof(struct thread_struct, tm_dscr) */
RH_KABI_ASSERT_EQ_CONST(1616, THREAD_TM_PPR); /* offsetof(struct thread_struct, tm_ppr) */
RH_KABI_ASSERT_EQ_CONST(1608, THREAD_TM_TAR); /* offsetof(struct thread_struct, tm_tar) */
RH_KABI_ASSERT_EQ_CONST(1224, THREAD_TM_TEXASR); /* offsetof(struct thread_struct, tm_texasr) */
RH_KABI_ASSERT_EQ_CONST(1216, THREAD_TM_TFHAR); /* offsetof(struct thread_struct, tm_tfhar) */
RH_KABI_ASSERT_EQ_CONST(1232, THREAD_TM_TFIAR); /* offsetof(struct thread_struct, tm_tfiar) */
RH_KABI_ASSERT_EQ_CONST(1200, THREAD_USED_VR); /* offsetof(struct thread_struct, used_vr) */
RH_KABI_ASSERT_EQ_CONST(1204, THREAD_USED_VSR); /* offsetof(struct thread_struct, used_vsr) */
RH_KABI_ASSERT_EQ_CONST(1192, THREAD_VRSAVE); /* offsetof(struct thread_struct, vrsave) */
RH_KABI_ASSERT_EQ_CONST(1184, THREAD_VRSAVEAREA); /* offsetof(struct thread_struct, vr_save_area) */
RH_KABI_ASSERT_EQ_CONST(656, THREAD_VRSTATE); /* offsetof(struct thread_struct, vr_state.vr) */
RH_KABI_ASSERT_EQ_CONST(8, TI_CPU); /* offsetof(struct thread_info, cpu) */
RH_KABI_ASSERT_EQ_CONST(128, TI_FLAGS); /* offsetof(struct thread_info, flags) */
RH_KABI_ASSERT_EQ_CONST(24, TI_livepatch_sp); /* offsetof(struct thread_info, livepatch_sp) */
RH_KABI_ASSERT_EQ_CONST(16, TI_LOCAL_FLAGS); /* offsetof(struct thread_info, local_flags) */
RH_KABI_ASSERT_EQ_CONST(12, TI_PREEMPT); /* offsetof(struct thread_info, preempt_count) */
RH_KABI_ASSERT_EQ_CONST(0, TI_TASK); /* offsetof(struct thread_info, task) */
RH_KABI_ASSERT_EQ_CONST(496, TM_FRAME_SIZE); /* STACK_FRAME_OVERHEAD + sizeof(struct pt_regs) + 16 */
RH_KABI_ASSERT_EQ_CONST(432, _TRAP); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, trap) */
RH_KABI_ASSERT_EQ_CONST(4, TSPC32_TV_NSEC); /* offsetof(struct compat_timespec, tv_nsec) */
RH_KABI_ASSERT_EQ_CONST(0, TSPC32_TV_SEC); /* offsetof(struct compat_timespec, tv_sec) */
RH_KABI_ASSERT_EQ_CONST(8, TSPC64_TV_NSEC); /* offsetof(struct timespec, tv_nsec) */
RH_KABI_ASSERT_EQ_CONST(0, TSPC64_TV_SEC); /* offsetof(struct timespec, tv_sec) */
RH_KABI_ASSERT_EQ_CONST(0, TVAL64_TV_SEC); /* offsetof(struct timeval, tv_sec) */
RH_KABI_ASSERT_EQ_CONST(8, TVAL64_TV_USEC); /* offsetof(struct timeval, tv_usec) */
RH_KABI_ASSERT_EQ_CONST(512, VRSTATE_VSCR); /* offsetof(struct thread_vr_state, vscr) */
RH_KABI_ASSERT_EQ_CONST(408, _XER); /* STACK_FRAME_OVERHEAD + offsetof(struct pt_regs, xer) */
return 0;
}

View File

@ -1,29 +0,0 @@
#include <generated/autoconf.h>
#include <generated/asm-offsets.h>
#include <linux/rh_kabi.h>
int main(void)
{
RH_KABI_ASSERT_EQ_CONST(0, __PT_ARGS); /* offsetof(struct pt_regs, args) */
RH_KABI_ASSERT_EQ_CONST(176, __PT_FLAGS); /* offsetof(struct pt_regs, flags) */
RH_KABI_ASSERT_EQ_CONST(24, __PT_GPRS); /* offsetof(struct pt_regs, gprs) */
RH_KABI_ASSERT_EQ_CONST(160, __PT_INT_CODE); /* offsetof(struct pt_regs, int_code) */
RH_KABI_ASSERT_EQ_CONST(164, __PT_INT_PARM); /* offsetof(struct pt_regs, int_parm) */
RH_KABI_ASSERT_EQ_CONST(168, __PT_INT_PARM_LONG); /* offsetof(struct pt_regs, int_parm_long) */
RH_KABI_ASSERT_EQ_CONST(152, __PT_ORIG_GPR2); /* offsetof(struct pt_regs, orig_gpr2) */
RH_KABI_ASSERT_EQ_CONST(8, __PT_PSW); /* offsetof(struct pt_regs, psw) */
RH_KABI_ASSERT_EQ_CONST(184, __PT_SIZE); /* sizeof(struct pt_regs) */
RH_KABI_ASSERT_EQ_CONST(1984, __TASK_pid); /* offsetof(struct task_struct, pid) */
RH_KABI_ASSERT_EQ_CONST(16, __TASK_stack); /* offsetof(struct task_struct, stack) */
RH_KABI_ASSERT_EQ_CONST(3256, __TASK_thread); /* offsetof(struct task_struct, thread) */
RH_KABI_ASSERT_EQ_CONST(560, __THREAD_FPU_fpc); /* offsetof(struct thread_struct, fpu.fpc) */
RH_KABI_ASSERT_EQ_CONST(568, __THREAD_FPU_regs); /* offsetof(struct thread_struct, fpu.regs) */
RH_KABI_ASSERT_EQ_CONST(64, __THREAD_ksp); /* offsetof(struct thread_struct, ksp) */
RH_KABI_ASSERT_EQ_CONST(216, __THREAD_last_break); /* offsetof(struct thread_struct, last_break) */
RH_KABI_ASSERT_EQ_CONST(184, __THREAD_per_address); /* offsetof(struct thread_struct, per_event.address) */
RH_KABI_ASSERT_EQ_CONST(176, __THREAD_per_cause); /* offsetof(struct thread_struct, per_event.cause) */
RH_KABI_ASSERT_EQ_CONST(192, __THREAD_per_paid); /* offsetof(struct thread_struct, per_event.paid) */
RH_KABI_ASSERT_EQ_CONST(112, __THREAD_sysc_table); /* offsetof(struct thread_struct, sys_call_table) */
RH_KABI_ASSERT_EQ_CONST(272, __THREAD_trap_tdb); /* offsetof(struct thread_struct, trap_tdb) */
RH_KABI_ASSERT_EQ_CONST(0, __TI_flags); /* offsetof(struct task_struct, thread_info.flags) */
return 0;
}

View File

@ -1,37 +0,0 @@
#include <generated/autoconf.h>
#include <generated/asm-offsets.h>
#include <linux/rh_kabi.h>
int main(void)
{
RH_KABI_ASSERT_EQ_CONST(64, crypto_tfm_ctx_offset); /* offsetof(struct crypto_tfm, __crt_ctx) */
RH_KABI_ASSERT_EQ_CONST(24, PARAVIRT_PATCH_pv_cpu_ops); /* offsetof(struct paravirt_patch_template, pv_cpu_ops) */
RH_KABI_ASSERT_EQ_CONST(296, PARAVIRT_PATCH_pv_irq_ops); /* offsetof(struct paravirt_patch_template, pv_irq_ops) */
RH_KABI_ASSERT_EQ_CONST(32, pt_regs_bp); /* offsetof(struct pt_regs, bp) */
RH_KABI_ASSERT_EQ_CONST(40, pt_regs_bx); /* offsetof(struct pt_regs, bx) */
RH_KABI_ASSERT_EQ_CONST(88, pt_regs_cx); /* offsetof(struct pt_regs, cx) */
RH_KABI_ASSERT_EQ_CONST(112, pt_regs_di); /* offsetof(struct pt_regs, di) */
RH_KABI_ASSERT_EQ_CONST(96, pt_regs_dx); /* offsetof(struct pt_regs, dx) */
RH_KABI_ASSERT_EQ_CONST(144, pt_regs_flags); /* offsetof(struct pt_regs, flags) */
RH_KABI_ASSERT_EQ_CONST(56, pt_regs_r10); /* offsetof(struct pt_regs, r10) */
RH_KABI_ASSERT_EQ_CONST(48, pt_regs_r11); /* offsetof(struct pt_regs, r11) */
RH_KABI_ASSERT_EQ_CONST(24, pt_regs_r12); /* offsetof(struct pt_regs, r12) */
RH_KABI_ASSERT_EQ_CONST(16, pt_regs_r13); /* offsetof(struct pt_regs, r13) */
RH_KABI_ASSERT_EQ_CONST(8, pt_regs_r14); /* offsetof(struct pt_regs, r14) */
RH_KABI_ASSERT_EQ_CONST(0, pt_regs_r15); /* offsetof(struct pt_regs, r15) */
RH_KABI_ASSERT_EQ_CONST(72, pt_regs_r8); /* offsetof(struct pt_regs, r8) */
RH_KABI_ASSERT_EQ_CONST(64, pt_regs_r9); /* offsetof(struct pt_regs, r9) */
RH_KABI_ASSERT_EQ_CONST(104, pt_regs_si); /* offsetof(struct pt_regs, si) */
RH_KABI_ASSERT_EQ_CONST(168, PTREGS_SIZE); /* sizeof(struct pt_regs) */
RH_KABI_ASSERT_EQ_CONST(152, pt_regs_sp); /* offsetof(struct pt_regs, sp) */
RH_KABI_ASSERT_EQ_CONST(240, PV_CPU_iret); /* offsetof(struct pv_cpu_ops, iret) */
RH_KABI_ASSERT_EQ_CONST(248, PV_CPU_swapgs); /* offsetof(struct pv_cpu_ops, swapgs) */
RH_KABI_ASSERT_EQ_CONST(232, PV_CPU_usergs_sysret64); /* offsetof(struct pv_cpu_ops, usergs_sysret64) */
RH_KABI_ASSERT_EQ_CONST(16, PV_IRQ_irq_disable); /* offsetof(struct pv_irq_ops, irq_disable) */
RH_KABI_ASSERT_EQ_CONST(24, PV_IRQ_irq_enable); /* offsetof(struct pv_irq_ops, irq_enable) */
RH_KABI_ASSERT_EQ_CONST(0, PV_MMU_read_cr2); /* offsetof(struct pv_mmu_ops, read_cr2) */
RH_KABI_ASSERT_EQ_CONST(5144, TASK_addr_limit); /* offsetof(struct task_struct, thread.addr_limit) */
RH_KABI_ASSERT_EQ_CONST(2312, TASK_stack_canary); /* offsetof(struct task_struct, stack_canary) */
RH_KABI_ASSERT_EQ_CONST(5016, TASK_threadsp); /* offsetof(struct task_struct, thread.sp) */
RH_KABI_ASSERT_EQ_CONST(0, TASK_TI_flags); /* offsetof(struct task_struct, thread_info.flags) */
return 0;
}

File diff suppressed because it is too large Load Diff