Hi Alexander, First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git master head: ccdb51717ba3bdc9585998e4ffd41d70c04dedea commit: 7e2bc7fb65d544bb8598a0ab64e40ee9c60ded6e [238/243] net: cavium: Drop dependency of NET_VENDOR_CAVIUM on PCI config: um-allmodconfig (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: git checkout 7e2bc7fb65d544bb8598a0ab64e40ee9c60ded6e # save the attached .config to linux build tree make ARCH=um All error/warnings (new ones prefixed by >>): drivers/net/phy/mdio-thunder.c: In function 'thunder_mdiobus_pci_probe': >> drivers/net/phy/mdio-thunder.c:40:8: error: implicit declaration of function >> 'pcim_enable_device'; did you mean 'pci_enable_device'? >> [-Werror=implicit-function-declaration] err = pcim_enable_device(pdev); ^~~~~~~~~~~~~~~~~~ pci_enable_device drivers/net/phy/mdio-thunder.c: At top level: >> drivers/net/phy/mdio-thunder.c:151:1: warning: data definition has no type >> or storage class module_pci_driver(thunder_mdiobus_driver); ^~~~~~~~~~~~~~~~~ >> drivers/net/phy/mdio-thunder.c:151:1: error: type defaults to 'int' in >> declaration of 'module_pci_driver' [-Werror=implicit-int] >> drivers/net/phy/mdio-thunder.c:151:1: warning: parameter names (without >> types) in function declaration drivers/net/phy/mdio-thunder.c:144:26: warning: 'thunder_mdiobus_driver' defined but not used [-Wunused-variable] static struct pci_driver thunder_mdiobus_driver = { ^~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from drivers/net/ethernet/cavium/liquidio/lio_main.c:31:0: drivers/net/ethernet/cavium/liquidio/octeon_main.h: In function 'octeon_unmap_pci_barx': >> drivers/net/ethernet/cavium/liquidio/octeon_main.h:97:3: error: implicit >> declaration of function 'pci_release_region'; did you mean >> 'pci_release_regions'? [-Werror=implicit-function-declaration] pci_release_region(oct->pci_dev, baridx * 2); ^~~~~~~~~~~~~~~~~~ pci_release_regions drivers/net/ethernet/cavium/liquidio/octeon_main.h: In function 'octeon_map_pci_barx': >> drivers/net/ethernet/cavium/liquidio/octeon_main.h:111:6: error: implicit >> declaration of function 'pci_request_region'; did you mean >> 'pci_request_regions'? [-Werror=implicit-function-declaration] if (pci_request_region(oct->pci_dev, baridx * 2, DRV_NAME)) { ^~~~~~~~~~~~~~~~~~ pci_request_regions drivers/net/ethernet/cavium/liquidio/lio_main.c: In function 'stop_pci_io': >> drivers/net/ethernet/cavium/liquidio/lio_main.c:332:3: error: implicit >> declaration of function 'pci_disable_msi'; did you mean 'pci_disable_sriov'? >> [-Werror=implicit-function-declaration] pci_disable_msi(oct->pci_dev); ^~~~~~~~~~~~~~~ pci_disable_sriov drivers/net/ethernet/cavium/liquidio/lio_main.c: In function 'octeon_pci_flr': >> drivers/net/ethernet/cavium/liquidio/lio_main.c:983:2: error: implicit >> declaration of function 'pci_cfg_access_lock'; did you mean '__access_ok'? >> [-Werror=implicit-function-declaration] pci_cfg_access_lock(oct->pci_dev); ^~~~~~~~~~~~~~~~~~~ __access_ok >> drivers/net/ethernet/cavium/liquidio/lio_main.c:989:7: error: implicit >> declaration of function '__pci_reset_function_locked' >> [-Werror=implicit-function-declaration] rc = __pci_reset_function_locked(oct->pci_dev); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/net/ethernet/cavium/liquidio/lio_main.c:995:2: error: implicit >> declaration of function 'pci_cfg_access_unlock'; did you mean '__access_ok'? >> [-Werror=implicit-function-declaration] pci_cfg_access_unlock(oct->pci_dev); ^~~~~~~~~~~~~~~~~~~~~ __access_ok drivers/net/ethernet/cavium/liquidio/lio_main.c: In function 'octeon_destroy_resources': >> drivers/net/ethernet/cavium/liquidio/lio_main.c:1063:20: error: invalid use >> of undefined type 'struct msix_entry' msix_entries[i].vector, ^ >> drivers/net/ethernet/cavium/liquidio/lio_main.c:1063:20: error: >> dereferencing pointer to incomplete type 'struct msix_entry' drivers/net/ethernet/cavium/liquidio/lio_main.c:1065:27: error: invalid use of undefined type 'struct msix_entry' free_irq(msix_entries[i].vector, ^ drivers/net/ethernet/cavium/liquidio/lio_main.c:1071:25: error: invalid use of undefined type 'struct msix_entry' free_irq(msix_entries[i].vector, oct); ^ >> drivers/net/ethernet/cavium/liquidio/lio_main.c:1073:4: error: implicit >> declaration of function 'pci_disable_msix'; did you mean >> 'pci_disable_sriov'? [-Werror=implicit-function-declaration] pci_disable_msix(oct->pci_dev); ^~~~~~~~~~~~~~~~ pci_disable_sriov >> drivers/net/ethernet/cavium/liquidio/lio_main.c:1164:3: error: implicit >> declaration of function 'pci_clear_master'; did you mean 'pci_set_master'? >> [-Werror=implicit-function-declaration] pci_clear_master(oct->pci_dev); ^~~~~~~~~~~~~~~~ pci_set_master cc1: some warnings being treated as errors -- In file included from drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:26:0: drivers/net/ethernet/cavium/liquidio/octeon_main.h: In function 'octeon_unmap_pci_barx': >> drivers/net/ethernet/cavium/liquidio/octeon_main.h:97:3: error: implicit >> declaration of function 'pci_release_region'; did you mean >> 'pci_release_regions'? [-Werror=implicit-function-declaration] pci_release_region(oct->pci_dev, baridx * 2); ^~~~~~~~~~~~~~~~~~ pci_release_regions drivers/net/ethernet/cavium/liquidio/octeon_main.h: In function 'octeon_map_pci_barx': >> drivers/net/ethernet/cavium/liquidio/octeon_main.h:111:6: error: implicit >> declaration of function 'pci_request_region'; did you mean >> 'pci_request_regions'? [-Werror=implicit-function-declaration] if (pci_request_region(oct->pci_dev, baridx * 2, DRV_NAME)) { ^~~~~~~~~~~~~~~~~~ pci_request_regions Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size Cyclomatic Complexity 5 include/linux/compiler.h:__write_once_size Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_read Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_write Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_read Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_set Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_dec_and_test Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_read Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_set Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_dec_and_test Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:set_bit Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:clear_bit Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:constant_test_bit Cyclomatic Complexity 1 arch/x86/include/uapi/asm/swab.h:__arch_swab32 Cyclomatic Complexity 1 arch/x86/include/uapi/asm/swab.h:__arch_swab64 Cyclomatic Complexity 1 include/uapi/linux/swab.h:__fswab32 Cyclomatic Complexity 1 include/uapi/linux/swab.h:__fswab64 Cyclomatic Complexity 2 include/uapi/linux/swab.h:__swab64p Cyclomatic Complexity 1 include/uapi/linux/swab.h:__swab64s Cyclomatic Complexity 1 include/linux/jump_label.h:static_key_count Cyclomatic Complexity 2 include/linux/jump_label.h:static_key_false Cyclomatic Complexity 1 include/linux/list.h:INIT_LIST_HEAD Cyclomatic Complexity 1 arch/um/include/shared/mem.h:to_phys Cyclomatic Complexity 1 arch/um/include/shared/mem.h:to_virt Cyclomatic Complexity 1 include/linux/bottom_half.h:local_bh_disable Cyclomatic Complexity 1 include/linux/bottom_half.h:local_bh_enable Cyclomatic Complexity 1 include/linux/spinlock.h:spin_lock Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock Cyclomatic Complexity 1 include/linux/jiffies.h:_msecs_to_jiffies Cyclomatic Complexity 3 include/linux/jiffies.h:msecs_to_jiffies Cyclomatic Complexity 1 include/linux/workqueue.h:queue_delayed_work Cyclomatic Complexity 1 include/linux/workqueue.h:schedule_delayed_work Cyclomatic Complexity 1 include/linux/completion.h:__init_completion Cyclomatic Complexity 2 include/linux/page-flags.h:compound_head Cyclomatic Complexity 1 include/linux/page_ref.h:page_ref_count Cyclomatic Complexity 2 include/linux/page_ref.h:page_ref_dec_and_test Cyclomatic Complexity 1 include/linux/mm.h:put_page_testzero Cyclomatic Complexity 1 include/linux/mm.h:put_devmap_managed_page Cyclomatic Complexity 3 include/linux/mm.h:put_page Cyclomatic Complexity 1 include/linux/mm.h:lowmem_page_address Cyclomatic Complexity 1 include/linux/dma-mapping.h:valid_dma_direction Cyclomatic Complexity 1 include/linux/dma-mapping.h:get_dma_ops Cyclomatic Complexity 1 include/linux/dma-mapping.h:dma_map_single_attrs Cyclomatic Complexity 2 include/linux/dma-mapping.h:dma_unmap_single_attrs Cyclomatic Complexity 2 include/linux/dma-mapping.h:dma_mapping_error Cyclomatic Complexity 1 include/linux/skbuff.h:skb_end_pointer Cyclomatic Complexity 1 include/linux/skbuff.h:skb_copy_to_linear_data Cyclomatic Complexity 1 include/linux/netdevice.h:netdev_get_tx_queue Cyclomatic Complexity 1 include/linux/netdevice.h:netdev_priv Cyclomatic Complexity 1 include/linux/netdevice.h:netdev_notifier_info_to_dev Cyclomatic Complexity 1 include/linux/netdevice.h:netif_tx_start_queue Cyclomatic Complexity 1 include/linux/netdevice.h:netif_start_queue Cyclomatic Complexity 1 include/linux/netdevice.h:netif_wake_queue Cyclomatic Complexity 1 include/linux/netdevice.h:netif_tx_stop_queue Cyclomatic Complexity 1 include/linux/netdevice.h:netif_stop_queue Cyclomatic Complexity 1 include/linux/netdevice.h:netif_tx_queue_stopped Cyclomatic Complexity 1 include/linux/netdevice.h:netif_queue_stopped Cyclomatic Complexity 1 include/linux/netdevice.h:dev_kfree_skb_any Cyclomatic Complexity 1 include/linux/netdevice.h:__netif_tx_lock Cyclomatic Complexity 1 include/linux/netdevice.h:__netif_tx_unlock Cyclomatic Complexity 2 include/linux/netdevice.h:netif_trans_update Cyclomatic Complexity 2 include/linux/netdevice.h:netif_tx_disable Cyclomatic Complexity 1 include/linux/etherdevice.h:eth_random_addr Cyclomatic Complexity 1 include/linux/etherdevice.h:eth_hw_addr_random Cyclomatic Complexity 1 include/linux/etherdevice.h:ether_addr_copy Cyclomatic Complexity 1 drivers/net/ethernet/cavium/liquidio/octeon_droq.h:octeon_free_recv_info Cyclomatic Complexity 1 drivers/net/ethernet/cavium/liquidio/octeon_nic.h:octnet_iq_is_full Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/octeon_main.h:octeon_swap_8B_data Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/octeon_network.h:recv_buffer_free Cyclomatic Complexity 1 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_tx_timeout Cyclomatic Complexity 1 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_get_stats64 Cyclomatic Complexity 3 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_get_ndev Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_attr_get Cyclomatic Complexity 3 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_copy_packet Cyclomatic Complexity 6 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_pkt_recv Cyclomatic Complexity 9 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_pkt_xmit Cyclomatic Complexity 6 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_send_soft_command Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_fetch_stats Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_stop Cyclomatic Complexity 3 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_packet_sent_callback Cyclomatic Complexity 3 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_send_sc_complete Cyclomatic Complexity 3 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_change_mtu Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_phys_port_name Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_open Cyclomatic Complexity 5 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_netdev_event Cyclomatic Complexity 9 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_create Cyclomatic Complexity 5 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_destroy Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_modinit Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c:lio_vf_rep_modexit cc1: some warnings being treated as errors -- In file included from drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:27:0: drivers/net/ethernet/cavium/liquidio/octeon_main.h: In function 'octeon_unmap_pci_barx': >> drivers/net/ethernet/cavium/liquidio/octeon_main.h:97:3: error: implicit >> declaration of function 'pci_release_region'; did you mean >> 'pci_release_regions'? [-Werror=implicit-function-declaration] pci_release_region(oct->pci_dev, baridx * 2); ^~~~~~~~~~~~~~~~~~ pci_release_regions drivers/net/ethernet/cavium/liquidio/octeon_main.h: In function 'octeon_map_pci_barx': >> drivers/net/ethernet/cavium/liquidio/octeon_main.h:111:6: error: implicit >> declaration of function 'pci_request_region'; did you mean >> 'pci_request_regions'? [-Werror=implicit-function-declaration] if (pci_request_region(oct->pci_dev, baridx * 2, DRV_NAME)) { ^~~~~~~~~~~~~~~~~~ pci_request_regions drivers/net/ethernet/cavium/liquidio/lio_ethtool.c: In function 'lio_irq_reallocate_irqs': >> drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:562:39: error: invalid >> use of undefined type 'struct msix_entry' irq_set_affinity_hint(msix_entries[i].vector, ^ >> drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:562:39: error: >> dereferencing pointer to incomplete type 'struct msix_entry' drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:564:26: error: invalid use of undefined type 'struct msix_entry' free_irq(msix_entries[i].vector, ^ drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:572:25: error: invalid use of undefined type 'struct msix_entry' free_irq(msix_entries[i].vector, oct); ^ >> drivers/net/ethernet/cavium/liquidio/lio_ethtool.c:574:3: error: implicit >> declaration of function 'pci_disable_msix'; did you mean >> 'pci_disable_sriov'? [-Werror=implicit-function-declaration] pci_disable_msix(oct->pci_dev); ^~~~~~~~~~~~~~~~ pci_disable_sriov cc1: some warnings being treated as errors -- In file included from drivers/net/ethernet/cavium/liquidio/lio_core.c:26:0: drivers/net/ethernet/cavium/liquidio/octeon_main.h: In function 'octeon_unmap_pci_barx': >> drivers/net/ethernet/cavium/liquidio/octeon_main.h:97:3: error: implicit >> declaration of function 'pci_release_region'; did you mean >> 'pci_release_regions'? [-Werror=implicit-function-declaration] pci_release_region(oct->pci_dev, baridx * 2); ^~~~~~~~~~~~~~~~~~ pci_release_regions drivers/net/ethernet/cavium/liquidio/octeon_main.h: In function 'octeon_map_pci_barx': >> drivers/net/ethernet/cavium/liquidio/octeon_main.h:111:6: error: implicit >> declaration of function 'pci_request_region'; did you mean >> 'pci_request_regions'? [-Werror=implicit-function-declaration] if (pci_request_region(oct->pci_dev, baridx * 2, DRV_NAME)) { ^~~~~~~~~~~~~~~~~~ pci_request_regions drivers/net/ethernet/cavium/liquidio/lio_core.c: In function 'octeon_setup_interrupt': >> drivers/net/ethernet/cavium/liquidio/lio_core.c:1067:17: error: invalid >> application of 'sizeof' to incomplete type 'struct msix_entry' sizeof(struct msix_entry), ^~~~~~ >> drivers/net/ethernet/cavium/liquidio/lio_core.c:1083:17: error: invalid use >> of undefined type 'struct msix_entry' msix_entries[i].entry = ^ >> drivers/net/ethernet/cavium/liquidio/lio_core.c:1083:17: error: >> dereferencing pointer to incomplete type 'struct msix_entry' drivers/net/ethernet/cavium/liquidio/lio_core.c:1086:16: error: invalid use of undefined type 'struct msix_entry' msix_entries[oct->num_msix_irqs - 1].entry = ^ drivers/net/ethernet/cavium/liquidio/lio_core.c:1086:4: error: invalid use of undefined type 'struct msix_entry' msix_entries[oct->num_msix_irqs - 1].entry = ^~~~~~~~~~~~ drivers/net/ethernet/cavium/liquidio/lio_core.c:1090:17: error: invalid use of undefined type 'struct msix_entry' msix_entries[i].entry = i; ^ >> drivers/net/ethernet/cavium/liquidio/lio_core.c:1092:27: error: implicit >> declaration of function 'pci_enable_msix_range'; did you mean >> 'pci_enable_sriov'? [-Werror=implicit-function-declaration] num_alloc_ioq_vectors = pci_enable_msix_range( ^~~~~~~~~~~~~~~~~~~~~ pci_enable_sriov drivers/net/ethernet/cavium/liquidio/lio_core.c:1116:18: error: invalid use of undefined type 'struct msix_entry' msix_entries[num_ioq_vectors].vector, ^ >> drivers/net/ethernet/cavium/liquidio/lio_core.c:1123:5: error: implicit >> declaration of function 'pci_disable_msix'; did you mean >> 'pci_disable_sriov'? [-Werror=implicit-function-declaration] pci_disable_msix(oct->pci_dev); ^~~~~~~~~~~~~~~~ pci_disable_sriov drivers/net/ethernet/cavium/liquidio/lio_core.c:1142:37: error: invalid use of undefined type 'struct msix_entry' irqret = request_irq(msix_entries[i].vector, ^ drivers/net/ethernet/cavium/liquidio/lio_core.c:1152:26: error: invalid use of undefined type 'struct msix_entry' free_irq(msix_entries[num_ioq_vectors].vector, ^ drivers/net/ethernet/cavium/liquidio/lio_core.c:1159:25: error: invalid use of undefined type 'struct msix_entry' msix_entries[i].vector, ^ drivers/net/ethernet/cavium/liquidio/lio_core.c:1161:27: error: invalid use of undefined type 'struct msix_entry' free_irq(msix_entries[i].vector, ^ drivers/net/ethernet/cavium/liquidio/lio_core.c:1171:44: error: invalid use of undefined type 'struct msix_entry' oct->ioq_vector[i].vector = msix_entries[i].vector; ^ drivers/net/ethernet/cavium/liquidio/lio_core.c:1173:38: error: invalid use of undefined type 'struct msix_entry' irq_set_affinity_hint(msix_entries[i].vector, ^ >> drivers/net/ethernet/cavium/liquidio/lio_core.c:1180:9: error: implicit >> declaration of function 'pci_enable_msi'; did you mean 'pci_enable_sriov'? >> [-Werror=implicit-function-declaration] err = pci_enable_msi(oct->pci_dev); ^~~~~~~~~~~~~~ pci_enable_sriov >> drivers/net/ethernet/cavium/liquidio/lio_core.c:1210:5: error: implicit >> declaration of function 'pci_disable_msi'; did you mean 'pci_disable_sriov'? >> [-Werror=implicit-function-declaration] pci_disable_msi(oct->pci_dev); ^~~~~~~~~~~~~~~ pci_disable_sriov cc1: some warnings being treated as errors -- In file included from drivers/net/ethernet/cavium/liquidio/request_manager.c:27:0: drivers/net/ethernet/cavium/liquidio/octeon_main.h: In function 'octeon_unmap_pci_barx': >> drivers/net/ethernet/cavium/liquidio/octeon_main.h:97:3: error: implicit >> declaration of function 'pci_release_region'; did you mean >> 'pci_release_regions'? [-Werror=implicit-function-declaration] pci_release_region(oct->pci_dev, baridx * 2); ^~~~~~~~~~~~~~~~~~ pci_release_regions drivers/net/ethernet/cavium/liquidio/octeon_main.h: In function 'octeon_map_pci_barx': >> drivers/net/ethernet/cavium/liquidio/octeon_main.h:111:6: error: implicit >> declaration of function 'pci_request_region'; did you mean >> 'pci_request_regions'? [-Werror=implicit-function-declaration] if (pci_request_region(oct->pci_dev, baridx * 2, DRV_NAME)) { ^~~~~~~~~~~~~~~~~~ pci_request_regions Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size Cyclomatic Complexity 5 include/linux/compiler.h:__write_once_size Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_read Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_write Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_read Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_set Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_sub Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_inc Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_dec Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_read Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_set Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_inc Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_dec Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_sub Cyclomatic Complexity 1 include/linux/list.h:INIT_LIST_HEAD Cyclomatic Complexity 2 include/linux/list.h:__list_add Cyclomatic Complexity 1 include/linux/list.h:list_add_tail Cyclomatic Complexity 1 include/linux/list.h:__list_del Cyclomatic Complexity 2 include/linux/list.h:__list_del_entry Cyclomatic Complexity 1 include/linux/list.h:list_del Cyclomatic Complexity 1 include/linux/list.h:list_empty Cyclomatic Complexity 1 arch/um/include/asm/irqflags.h:arch_local_save_flags Cyclomatic Complexity 1 include/asm-generic/irqflags.h:arch_irqs_disabled_flags Cyclomatic Complexity 1 include/linux/spinlock.h:spinlock_check Cyclomatic Complexity 1 include/linux/spinlock.h:spin_lock Cyclomatic Complexity 1 include/linux/spinlock.h:spin_lock_bh Cyclomatic Complexity 1 include/linux/spinlock.h:spin_trylock Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock_bh Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock_irqrestore Cyclomatic Complexity 1 include/linux/jiffies.h:_msecs_to_jiffies Cyclomatic Complexity 3 include/linux/jiffies.h:msecs_to_jiffies Cyclomatic Complexity 1 include/linux/workqueue.h:queue_delayed_work Cyclomatic Complexity 2 include/linux/overflow.h:array_size Cyclomatic Complexity 1 include/linux/device.h:dev_to_node Cyclomatic Complexity 1 include/asm-generic/io.h:__raw_writel Cyclomatic Complexity 1 include/asm-generic/io.h:writel Cyclomatic Complexity 1 include/linux/dma-mapping.h:get_dma_ops Cyclomatic Complexity 7 include/linux/dma-mapping.h:dma_alloc_attrs Cyclomatic Complexity 4 include/linux/dma-mapping.h:dma_free_attrs Cyclomatic Complexity 1 include/linux/dma-mapping.h:dma_alloc_coherent Cyclomatic Complexity 1 include/linux/dma-mapping.h:dma_free_coherent Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/liquidio_common.h:incr_index Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/request_manager.c:ring_doorbell Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/request_manager.c:__copy_cmd_into_iq Cyclomatic Complexity 3 drivers/net/ethernet/cavium/liquidio/request_manager.c:__post_command2 Cyclomatic Complexity 1 drivers/net/ethernet/cavium/liquidio/request_manager.c:__add_to_request_list Cyclomatic Complexity 10 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_init_instr_queue Cyclomatic Complexity 5 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_delete_instr_queue Cyclomatic Complexity 7 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_setup_iq Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_ring_doorbell_locked Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_register_reqtype_free_fn Cyclomatic Complexity 11 drivers/net/ethernet/cavium/liquidio/request_manager.c:lio_process_iq_request_list Cyclomatic Complexity 7 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_flush_iq Cyclomatic Complexity 7 drivers/net/ethernet/cavium/liquidio/request_manager.c:__check_db_timeout Cyclomatic Complexity 1 drivers/net/ethernet/cavium/liquidio/request_manager.c:check_db_timeout Cyclomatic Complexity 8 drivers/net/ethernet/cavium/liquidio/request_manager.c:lio_wait_for_instr_fetch Cyclomatic Complexity 5 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_send_command Cyclomatic Complexity 8 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_prepare_soft_command Cyclomatic Complexity 13 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_send_soft_command Cyclomatic Complexity 2 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_free_sc_buffer_pool Cyclomatic Complexity 3 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_setup_sc_buffer_pool Cyclomatic Complexity 7 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_alloc_soft_command Cyclomatic Complexity 1 drivers/net/ethernet/cavium/liquidio/request_manager.c:octeon_free_soft_command cc1: some warnings being treated as errors .. vim +40 drivers/net/phy/mdio-thunder.c 379d7ac7 David Daney 2016-03-11 24 379d7ac7 David Daney 2016-03-11 25 static int thunder_mdiobus_pci_probe(struct pci_dev *pdev, 379d7ac7 David Daney 2016-03-11 26 const struct pci_device_id *ent) 379d7ac7 David Daney 2016-03-11 27 { 379d7ac7 David Daney 2016-03-11 28 struct device_node *node; 379d7ac7 David Daney 2016-03-11 29 struct fwnode_handle *fwn; 379d7ac7 David Daney 2016-03-11 30 struct thunder_mdiobus_nexus *nexus; 379d7ac7 David Daney 2016-03-11 31 int err; 379d7ac7 David Daney 2016-03-11 32 int i; 379d7ac7 David Daney 2016-03-11 33 379d7ac7 David Daney 2016-03-11 34 nexus = devm_kzalloc(&pdev->dev, sizeof(*nexus), GFP_KERNEL); 379d7ac7 David Daney 2016-03-11 35 if (!nexus) 379d7ac7 David Daney 2016-03-11 36 return -ENOMEM; 379d7ac7 David Daney 2016-03-11 37 379d7ac7 David Daney 2016-03-11 38 pci_set_drvdata(pdev, nexus); 379d7ac7 David Daney 2016-03-11 39 379d7ac7 David Daney 2016-03-11 @40 err = pcim_enable_device(pdev); 379d7ac7 David Daney 2016-03-11 41 if (err) { 379d7ac7 David Daney 2016-03-11 42 dev_err(&pdev->dev, "Failed to enable PCI device\n"); 379d7ac7 David Daney 2016-03-11 43 pci_set_drvdata(pdev, NULL); 379d7ac7 David Daney 2016-03-11 44 return err; 379d7ac7 David Daney 2016-03-11 45 } 379d7ac7 David Daney 2016-03-11 46 379d7ac7 David Daney 2016-03-11 47 err = pci_request_regions(pdev, KBUILD_MODNAME); 379d7ac7 David Daney 2016-03-11 48 if (err) { 379d7ac7 David Daney 2016-03-11 49 dev_err(&pdev->dev, "pci_request_regions failed\n"); 379d7ac7 David Daney 2016-03-11 50 goto err_disable_device; 379d7ac7 David Daney 2016-03-11 51 } 379d7ac7 David Daney 2016-03-11 52 379d7ac7 David Daney 2016-03-11 53 nexus->bar0 = pcim_iomap(pdev, 0, pci_resource_len(pdev, 0)); 379d7ac7 David Daney 2016-03-11 54 if (!nexus->bar0) { 379d7ac7 David Daney 2016-03-11 55 err = -ENOMEM; 379d7ac7 David Daney 2016-03-11 56 goto err_release_regions; 379d7ac7 David Daney 2016-03-11 57 } 379d7ac7 David Daney 2016-03-11 58 379d7ac7 David Daney 2016-03-11 59 i = 0; 379d7ac7 David Daney 2016-03-11 60 device_for_each_child_node(&pdev->dev, fwn) { 379d7ac7 David Daney 2016-03-11 61 struct resource r; 379d7ac7 David Daney 2016-03-11 62 struct mii_bus *mii_bus; 379d7ac7 David Daney 2016-03-11 63 struct cavium_mdiobus *bus; 379d7ac7 David Daney 2016-03-11 64 union cvmx_smix_en smi_en; 379d7ac7 David Daney 2016-03-11 65 379d7ac7 David Daney 2016-03-11 66 /* If it is not an OF node we cannot handle it yet, so 379d7ac7 David Daney 2016-03-11 67 * exit the loop. 379d7ac7 David Daney 2016-03-11 68 */ 379d7ac7 David Daney 2016-03-11 69 node = to_of_node(fwn); 379d7ac7 David Daney 2016-03-11 70 if (!node) 379d7ac7 David Daney 2016-03-11 71 break; 379d7ac7 David Daney 2016-03-11 72 379d7ac7 David Daney 2016-03-11 73 err = of_address_to_resource(node, 0, &r); 379d7ac7 David Daney 2016-03-11 74 if (err) { 379d7ac7 David Daney 2016-03-11 75 dev_err(&pdev->dev, 379d7ac7 David Daney 2016-03-11 76 "Couldn't translate address for \"%s\"\n", 379d7ac7 David Daney 2016-03-11 77 node->name); 379d7ac7 David Daney 2016-03-11 78 break; 379d7ac7 David Daney 2016-03-11 79 } 379d7ac7 David Daney 2016-03-11 80 379d7ac7 David Daney 2016-03-11 81 mii_bus = devm_mdiobus_alloc_size(&pdev->dev, sizeof(*bus)); 379d7ac7 David Daney 2016-03-11 82 if (!mii_bus) 379d7ac7 David Daney 2016-03-11 83 break; 379d7ac7 David Daney 2016-03-11 84 bus = mii_bus->priv; 379d7ac7 David Daney 2016-03-11 85 bus->mii_bus = mii_bus; 379d7ac7 David Daney 2016-03-11 86 379d7ac7 David Daney 2016-03-11 87 nexus->buses[i] = bus; 379d7ac7 David Daney 2016-03-11 88 i++; 379d7ac7 David Daney 2016-03-11 89 379d7ac7 David Daney 2016-03-11 90 bus->register_base = (u64)nexus->bar0 + 379d7ac7 David Daney 2016-03-11 91 r.start - pci_resource_start(pdev, 0); 379d7ac7 David Daney 2016-03-11 92 379d7ac7 David Daney 2016-03-11 93 smi_en.u64 = 0; 379d7ac7 David Daney 2016-03-11 94 smi_en.s.en = 1; 379d7ac7 David Daney 2016-03-11 95 oct_mdio_writeq(smi_en.u64, bus->register_base + SMI_EN); 379d7ac7 David Daney 2016-03-11 96 bus->mii_bus->name = KBUILD_MODNAME; 379d7ac7 David Daney 2016-03-11 97 snprintf(bus->mii_bus->id, MII_BUS_ID_SIZE, "%llx", r.start); 379d7ac7 David Daney 2016-03-11 98 bus->mii_bus->parent = &pdev->dev; 379d7ac7 David Daney 2016-03-11 99 bus->mii_bus->read = cavium_mdiobus_read; 379d7ac7 David Daney 2016-03-11 100 bus->mii_bus->write = cavium_mdiobus_write; 379d7ac7 David Daney 2016-03-11 101 379d7ac7 David Daney 2016-03-11 102 err = of_mdiobus_register(bus->mii_bus, node); 379d7ac7 David Daney 2016-03-11 103 if (err) 379d7ac7 David Daney 2016-03-11 104 dev_err(&pdev->dev, "of_mdiobus_register failed\n"); 379d7ac7 David Daney 2016-03-11 105 379d7ac7 David Daney 2016-03-11 106 dev_info(&pdev->dev, "Added bus at %llx\n", r.start); 379d7ac7 David Daney 2016-03-11 107 if (i >= ARRAY_SIZE(nexus->buses)) 379d7ac7 David Daney 2016-03-11 108 break; 379d7ac7 David Daney 2016-03-11 109 } 379d7ac7 David Daney 2016-03-11 110 return 0; 379d7ac7 David Daney 2016-03-11 111 379d7ac7 David Daney 2016-03-11 112 err_release_regions: 379d7ac7 David Daney 2016-03-11 113 pci_release_regions(pdev); 379d7ac7 David Daney 2016-03-11 114 379d7ac7 David Daney 2016-03-11 115 err_disable_device: 379d7ac7 David Daney 2016-03-11 116 pci_set_drvdata(pdev, NULL); 379d7ac7 David Daney 2016-03-11 117 return err; 379d7ac7 David Daney 2016-03-11 118 } 379d7ac7 David Daney 2016-03-11 119 379d7ac7 David Daney 2016-03-11 120 static void thunder_mdiobus_pci_remove(struct pci_dev *pdev) 379d7ac7 David Daney 2016-03-11 121 { 379d7ac7 David Daney 2016-03-11 122 int i; 379d7ac7 David Daney 2016-03-11 123 struct thunder_mdiobus_nexus *nexus = pci_get_drvdata(pdev); 379d7ac7 David Daney 2016-03-11 124 379d7ac7 David Daney 2016-03-11 125 for (i = 0; i < ARRAY_SIZE(nexus->buses); i++) { 379d7ac7 David Daney 2016-03-11 126 struct cavium_mdiobus *bus = nexus->buses[i]; 379d7ac7 David Daney 2016-03-11 127 379d7ac7 David Daney 2016-03-11 128 if (!bus) 379d7ac7 David Daney 2016-03-11 129 continue; 379d7ac7 David Daney 2016-03-11 130 379d7ac7 David Daney 2016-03-11 131 mdiobus_unregister(bus->mii_bus); 379d7ac7 David Daney 2016-03-11 132 mdiobus_free(bus->mii_bus); 379d7ac7 David Daney 2016-03-11 133 oct_mdio_writeq(0, bus->register_base + SMI_EN); 379d7ac7 David Daney 2016-03-11 134 } 379d7ac7 David Daney 2016-03-11 135 pci_set_drvdata(pdev, NULL); 379d7ac7 David Daney 2016-03-11 136 } 379d7ac7 David Daney 2016-03-11 137 379d7ac7 David Daney 2016-03-11 138 static const struct pci_device_id thunder_mdiobus_id_table[] = { 379d7ac7 David Daney 2016-03-11 139 { PCI_DEVICE(PCI_VENDOR_ID_CAVIUM, 0xa02b) }, 379d7ac7 David Daney 2016-03-11 140 { 0, } /* End of table. */ 379d7ac7 David Daney 2016-03-11 141 }; 379d7ac7 David Daney 2016-03-11 142 MODULE_DEVICE_TABLE(pci, thunder_mdiobus_id_table); 379d7ac7 David Daney 2016-03-11 143 379d7ac7 David Daney 2016-03-11 144 static struct pci_driver thunder_mdiobus_driver = { 379d7ac7 David Daney 2016-03-11 145 .name = KBUILD_MODNAME, 379d7ac7 David Daney 2016-03-11 146 .id_table = thunder_mdiobus_id_table, 379d7ac7 David Daney 2016-03-11 147 .probe = thunder_mdiobus_pci_probe, 379d7ac7 David Daney 2016-03-11 148 .remove = thunder_mdiobus_pci_remove, 379d7ac7 David Daney 2016-03-11 149 }; 379d7ac7 David Daney 2016-03-11 150 379d7ac7 David Daney 2016-03-11 @151 module_pci_driver(thunder_mdiobus_driver); 379d7ac7 David Daney 2016-03-11 152 :::::: The code at line 40 was first introduced by commit :::::: 379d7ac7ca31722a1fb488ae3e98b274c9db568c phy: mdio-thunder: Add driver for Cavium Thunder SoC MDIO buses. :::::: TO: David Daney <david.da...@cavium.com> :::::: CC: David S. Miller <da...@davemloft.net> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip