Re: [PATCH V8 4/5] libsas: Align SMP req/resp to dma_get_cache_alignment()

From: kbuild test robot
Date: Thu Oct 19 2017 - 19:53:29 EST


Hi Huacai,

[auto build test ERROR on linus/master]
[also build test ERROR on v4.14-rc5 next-20171018]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Huacai-Chen/dma-mapping-Rework-dma_get_cache_alignment/20171020-050317
config: um-allyesconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
# save the attached .config to linux build tree
make ARCH=um

All errors (new ones prefixed by >>):

drivers/scsi/libsas/sas_expander.c: In function 'sas_ex_phy_discover':
>> drivers/scsi/libsas/sas_expander.c:410:10: error: implicit declaration of function 'dma_get_cache_alignment' [-Werror=implicit-function-declaration]
align = dma_get_cache_alignment(&dev->phy->dev);
^~~~~~~~~~~~~~~~~~~~~~~
Cyclomatic Complexity 5 include/linux/compiler.h:__write_once_size
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:atomic_set
Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:set_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:constant_test_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:fls64
Cyclomatic Complexity 1 arch/x86/include/uapi/asm/swab.h:__arch_swab64
Cyclomatic Complexity 1 include/uapi/linux/swab.h:__fswab16
Cyclomatic Complexity 1 include/uapi/linux/swab.h:__fswab64
Cyclomatic Complexity 1 include/linux/log2.h:__ilog2_u64
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/asm-generic/getorder.h:__get_order
Cyclomatic Complexity 1 include/linux/spinlock.h:spinlock_check
Cyclomatic Complexity 1 include/linux/spinlock.h:spin_lock_irq
Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock_irq
Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock_irqrestore
Cyclomatic Complexity 1 include/linux/refcount.h:refcount_set
Cyclomatic Complexity 28 include/linux/slab.h:kmalloc_index
Cyclomatic Complexity 68 include/linux/slab.h:kmalloc_large
Cyclomatic Complexity 5 include/linux/slab.h:kmalloc
Cyclomatic Complexity 1 include/linux/slab.h:kzalloc
Cyclomatic Complexity 1 include/linux/kref.h:kref_init
Cyclomatic Complexity 1 include/linux/kref.h:kref_get
Cyclomatic Complexity 2 include/linux/kref.h:kref_put
Cyclomatic Complexity 1 include/scsi/scsi.h:scsi_to_u32
Cyclomatic Complexity 1 include/scsi/sas_ata.h:dev_is_sata
Cyclomatic Complexity 5 drivers/scsi/libsas/sas_internal.h:sas_fill_in_rphy
Cyclomatic Complexity 2 drivers/scsi/libsas/sas_internal.h:sas_add_parent_port
Cyclomatic Complexity 2 drivers/scsi/libsas/sas_internal.h:sas_alloc_device
Cyclomatic Complexity 1 drivers/scsi/libsas/sas_internal.h:sas_put_device
Cyclomatic Complexity 2 drivers/scsi/libsas/sas_expander.c:alloc_smp_req
Cyclomatic Complexity 1 drivers/scsi/libsas/sas_expander.c:alloc_smp_resp
Cyclomatic Complexity 5 drivers/scsi/libsas/sas_expander.c:sas_route_char
Cyclomatic Complexity 4 drivers/scsi/libsas/sas_expander.c:to_dev_type
Cyclomatic Complexity 4 drivers/scsi/libsas/sas_expander.c:dev_type_flutter
Cyclomatic Complexity 3 drivers/scsi/libsas/sas_expander.c:sas_print_parent_topology_bug
Cyclomatic Complexity 17 drivers/scsi/libsas/sas_expander.c:smp_execute_task_sg
Cyclomatic Complexity 1 drivers/scsi/libsas/sas_expander.c:smp_execute_task
Cyclomatic Complexity 21 drivers/scsi/libsas/sas_expander.c:sas_configure_present
Cyclomatic Complexity 4 drivers/scsi/libsas/sas_expander.c:sas_get_phy_discover
Cyclomatic Complexity 3 drivers/scsi/libsas/sas_expander.c:sas_get_phy_change_count
Cyclomatic Complexity 6 drivers/scsi/libsas/sas_expander.c:sas_find_bcast_phy
Cyclomatic Complexity 6 drivers/scsi/libsas/sas_expander.c:sas_get_ex_change_count
Cyclomatic Complexity 2 drivers/scsi/libsas/sas_expander.c:smp_task_timedout
Cyclomatic Complexity 2 drivers/scsi/libsas/sas_expander.c:smp_task_done
Cyclomatic Complexity 4 drivers/scsi/libsas/sas_expander.c:ex_assign_report_general
Cyclomatic Complexity 22 drivers/scsi/libsas/sas_expander.c:sas_check_eeds
Cyclomatic Complexity 23 drivers/scsi/libsas/sas_expander.c:sas_check_parent_topology
Cyclomatic Complexity 11 drivers/scsi/libsas/sas_expander.c:sas_configure_set
Cyclomatic Complexity 3 drivers/scsi/libsas/sas_expander.c:sas_configure_phy
Cyclomatic Complexity 11 drivers/scsi/libsas/sas_expander.c:sas_configure_parent
Cyclomatic Complexity 2 drivers/scsi/libsas/sas_expander.c:sas_configure_routing
Cyclomatic Complexity 2 drivers/scsi/libsas/sas_expander.c:sas_disable_routing
Cyclomatic Complexity 5 drivers/scsi/libsas/sas_expander.c:sas_find_sub_addr
Cyclomatic Complexity 4 drivers/scsi/libsas/sas_expander.c:sas_get_phy_attached_dev
Cyclomatic Complexity 35 drivers/scsi/libsas/sas_expander.c:sas_set_ex_phy
Cyclomatic Complexity 3 drivers/scsi/libsas/sas_expander.c:sas_ex_phy_discover_helper
Cyclomatic Complexity 10 drivers/scsi/libsas/sas_expander.c:sas_ex_general
Cyclomatic Complexity 3 drivers/scsi/libsas/sas_expander.c:ex_assign_manuf_info
Cyclomatic Complexity 7 drivers/scsi/libsas/sas_expander.c:sas_ex_manuf_info
Cyclomatic Complexity 6 drivers/scsi/libsas/sas_expander.c:sas_ex_get_linkrate
Cyclomatic Complexity 5 drivers/scsi/libsas/sas_expander.c:sas_ex_join_wide_port
Cyclomatic Complexity 10 drivers/scsi/libsas/sas_expander.c:sas_dev_present_in_domain
Cyclomatic Complexity 12 drivers/scsi/libsas/sas_expander.c:sas_ex_discover_end_dev
Cyclomatic Complexity 6 drivers/scsi/libsas/sas_expander.c:sas_unregister_ex_tree
Cyclomatic Complexity 12 drivers/scsi/libsas/sas_expander.c:sas_unregister_devs_sas_addr
Cyclomatic Complexity 10 drivers/scsi/libsas/sas_expander.c:sas_find_bcast_dev
Cyclomatic Complexity 5 drivers/scsi/libsas/sas_expander.c:sas_ex_to_ata
Cyclomatic Complexity 7 drivers/scsi/libsas/sas_expander.c:sas_ex_phy_discover
Cyclomatic Complexity 3 drivers/scsi/libsas/sas_expander.c:sas_expander_discover
Cyclomatic Complexity 4 drivers/scsi/libsas/sas_expander.c:sas_smp_phy_control
Cyclomatic Complexity 1 drivers/scsi/libsas/sas_expander.c:sas_ex_disable_phy
Cyclomatic Complexity 13 drivers/scsi/libsas/sas_expander.c:sas_check_ex_subtractive_boundary
Cyclomatic Complexity 7 drivers/scsi/libsas/sas_expander.c:sas_discover_expander
Cyclomatic Complexity 9 drivers/scsi/libsas/sas_expander.c:sas_ex_discover_expander
Cyclomatic Complexity 6 drivers/scsi/libsas/sas_expander.c:sas_ex_disable_port
Cyclomatic Complexity 14 drivers/scsi/libsas/sas_expander.c:sas_check_level_subtractive_boundary
Cyclomatic Complexity 40 drivers/scsi/libsas/sas_expander.c:sas_ex_discover_dev
Cyclomatic Complexity 7 drivers/scsi/libsas/sas_expander.c:sas_ex_discover_devices
Cyclomatic Complexity 8 drivers/scsi/libsas/sas_expander.c:sas_ex_level_discovery
Cyclomatic Complexity 2 drivers/scsi/libsas/sas_expander.c:sas_ex_bfs_disc
Cyclomatic Complexity 8 drivers/scsi/libsas/sas_expander.c:sas_discover_bfs_by_root_level
Cyclomatic Complexity 4 drivers/scsi/libsas/sas_expander.c:sas_discover_bfs_by_root
Cyclomatic Complexity 12 drivers/scsi/libsas/sas_expander.c:sas_discover_new
Cyclomatic Complexity 22 drivers/scsi/libsas/sas_expander.c:sas_rediscover_dev
Cyclomatic Complexity 9 drivers/scsi/libsas/sas_expander.c:sas_rediscover
Cyclomatic Complexity 5 drivers/scsi/libsas/sas_expander.c:sas_smp_get_phy_events
Cyclomatic Complexity 4 drivers/scsi/libsas/sas_expander.c:sas_discover_root_expander
Cyclomatic Complexity 5 drivers/scsi/libsas/sas_expander.c:sas_ex_revalidate_domain
Cyclomatic Complexity 7 drivers/scsi/libsas/sas_expander.c:sas_smp_handler
Cyclomatic Complexity 1 drivers/scsi/libsas/sas_expander.c:_GLOBAL__sub_I_65535_0_sas_ex_to_ata
cc1: some warnings being treated as errors

vim +/dma_get_cache_alignment +410 drivers/scsi/libsas/sas_expander.c

402
403 int sas_ex_phy_discover(struct domain_device *dev, int single)
404 {
405 struct expander_device *ex = &dev->ex_dev;
406 int res = 0, align;
407 u8 *disc_req;
408 u8 *disc_resp;
409
> 410 align = dma_get_cache_alignment(&dev->phy->dev);
411
412 disc_req = alloc_smp_req(DISCOVER_REQ_SIZE, align);
413 if (!disc_req)
414 return -ENOMEM;
415
416 disc_resp = alloc_smp_resp(DISCOVER_RESP_SIZE, align);
417 if (!disc_resp) {
418 kfree(disc_req);
419 return -ENOMEM;
420 }
421
422 disc_req[1] = SMP_DISCOVER;
423
424 if (0 <= single && single < ex->num_phys) {
425 res = sas_ex_phy_discover_helper(dev, disc_req, disc_resp, single);
426 } else {
427 int i;
428
429 for (i = 0; i < ex->num_phys; i++) {
430 res = sas_ex_phy_discover_helper(dev, disc_req,
431 disc_resp, i);
432 if (res)
433 goto out_err;
434 }
435 }
436 out_err:
437 kfree(disc_resp);
438 kfree(disc_req);
439 return res;
440 }
441

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip