Messages in this thread | | | Date | Thu, 28 Jul 2022 07:44:12 +0800 | From | kernel test robot <> | Subject | drivers/platform/x86/socperf/soc_uncore.c:756:47: sparse: sparse: cast removes address space '__iomem' of expression |
| |
tree: https://github.com/mchinth/linux sep_socwatch_linux_5_10 head: c55df4a2b60fc7c6c4d00fd9f9fb447087833513 commit: 4a8adda8065c4c6944ffedd3025605c845c262a5 SEP/SOCWATCH resolve build errors after rebasing to linux v5.6-rc3 date: 1 year, 10 months ago config: x86_64-randconfig-s022 (https://download.01.org/0day-ci/archive/20220728/202207280731.gqXOKcZ8-lkp@intel.com/config) compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://github.com/mchinth/linux/commit/4a8adda8065c4c6944ffedd3025605c845c262a5 git remote add mchinth https://github.com/mchinth/linux git fetch --no-tags mchinth sep_socwatch_linux_5_10 git checkout 4a8adda8065c4c6944ffedd3025605c845c262a5 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>) >> drivers/platform/x86/socperf/soc_uncore.c:756:47: sparse: sparse: cast removes address space '__iomem' of expression drivers/platform/x86/socperf/soc_uncore.c:889:10: sparse: sparse: Initializer entry defined twice drivers/platform/x86/socperf/soc_uncore.c:893:10: sparse: also defined here -- >> drivers/platform/x86/socperf/npk_uncore.c:292:39: sparse: sparse: cast removes address space '__iomem' of expression drivers/platform/x86/socperf/npk_uncore.c:492:10: sparse: sparse: Initializer entry defined twice drivers/platform/x86/socperf/npk_uncore.c:496:10: sparse: also defined here -- >> drivers/platform/x86/socperf/haswellunc_sa.c:203:39: sparse: sparse: cast removes address space '__iomem' of expression drivers/platform/x86/socperf/haswellunc_sa.c:395:10: sparse: sparse: Initializer entry defined twice drivers/platform/x86/socperf/haswellunc_sa.c:399:10: sparse: also defined here -- >> drivers/platform/x86/socwatch/sw_telem.c:239:33: sparse: sparse: cast removes address space '__iomem' of expression drivers/platform/x86/socwatch/sw_telem.c:242:28: sparse: sparse: cast removes address space '__iomem' of expression drivers/platform/x86/socwatch/sw_telem.c:245:58: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/platform/x86/socwatch/sw_telem.c:260:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_punitInterfaceAddr @@ drivers/platform/x86/socwatch/sw_telem.c:260:25: sparse: expected void volatile [noderef] __iomem *addr drivers/platform/x86/socwatch/sw_telem.c:260:25: sparse: got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_punitInterfaceAddr drivers/platform/x86/socwatch/sw_telem.c:264:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_punitDataAddr @@ drivers/platform/x86/socwatch/sw_telem.c:264:25: sparse: expected void volatile [noderef] __iomem *addr drivers/platform/x86/socwatch/sw_telem.c:264:25: sparse: got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_punitDataAddr >> drivers/platform/x86/socwatch/sw_telem.c:268:54: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *ssram_virt_addr @@ drivers/platform/x86/socwatch/sw_telem.c:268:54: sparse: expected void volatile [noderef] __iomem *addr drivers/platform/x86/socwatch/sw_telem.c:268:54: sparse: got unsigned long long volatile [usertype] *ssram_virt_addr drivers/platform/x86/socwatch/sw_telem.c:280:28: sparse: sparse: cast removes address space '__iomem' of expression drivers/platform/x86/socwatch/sw_telem.c:283:28: sparse: sparse: cast removes address space '__iomem' of expression drivers/platform/x86/socwatch/sw_telem.c:286:29: sparse: sparse: cast removes address space '__iomem' of expression drivers/platform/x86/socwatch/sw_telem.c:289:29: sparse: sparse: cast removes address space '__iomem' of expression drivers/platform/x86/socwatch/sw_telem.c:292:56: sparse: sparse: cast removes address space '__iomem' of expression drivers/platform/x86/socwatch/sw_telem.c:307:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCCmdAddr @@ drivers/platform/x86/socwatch/sw_telem.c:307:25: sparse: expected void volatile [noderef] __iomem *addr drivers/platform/x86/socwatch/sw_telem.c:307:25: sparse: got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCCmdAddr drivers/platform/x86/socwatch/sw_telem.c:311:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCStsAddr @@ drivers/platform/x86/socwatch/sw_telem.c:311:25: sparse: expected void volatile [noderef] __iomem *addr drivers/platform/x86/socwatch/sw_telem.c:311:25: sparse: got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCStsAddr drivers/platform/x86/socwatch/sw_telem.c:315:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCWBufAddr @@ drivers/platform/x86/socwatch/sw_telem.c:315:25: sparse: expected void volatile [noderef] __iomem *addr drivers/platform/x86/socwatch/sw_telem.c:315:25: sparse: got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCWBufAddr drivers/platform/x86/socwatch/sw_telem.c:319:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCRBufAddr @@ drivers/platform/x86/socwatch/sw_telem.c:319:25: sparse: expected void volatile [noderef] __iomem *addr drivers/platform/x86/socwatch/sw_telem.c:319:25: sparse: got unsigned long long volatile [usertype] *static [assigned] [toplevel] s_pmcIPCRBufAddr drivers/platform/x86/socwatch/sw_telem.c:323:52: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned long long volatile [usertype] *ssram_virt_addr @@ drivers/platform/x86/socwatch/sw_telem.c:323:52: sparse: expected void volatile [noderef] __iomem *addr drivers/platform/x86/socwatch/sw_telem.c:323:52: sparse: got unsigned long long volatile [usertype] *ssram_virt_addr >> drivers/platform/x86/socwatch/sw_telem.c:671:5: sparse: sparse: symbol 'read_telem' was not declared. Should it be static? -- >> drivers/platform/x86/socwatch/sw_trace_notifier_provider.c:1634:67: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned int flags @@ got restricted gfp_t @@ drivers/platform/x86/socwatch/sw_trace_notifier_provider.c:1634:67: sparse: expected unsigned int flags drivers/platform/x86/socwatch/sw_trace_notifier_provider.c:1634:67: sparse: got restricted gfp_t
vim +/__iomem +756 drivers/platform/x86/socperf/soc_uncore.c
674 675 /* ------------------------------------------------------------------------- */ 676 /*! 677 * @fn uncore_Create_Mem() 678 * 679 * @param None 680 * 681 * @return None No return needed 682 * 683 * @brief Read the counters 684 * 685 */ 686 static VOID uncore_Create_Mem(U32 memory_size, U64 *trace_buffer) 687 { 688 ECB pecb; 689 DRV_PCI_DEVICE_ENTRY dpden; 690 U32 bar_name = 0; 691 DRV_PCI_DEVICE_ENTRY curr_pci_entry = NULL; 692 U64 mmio_offset = 0; 693 U32 dev_index = 0; 694 U32 data_val = 0; 695 U32 reg_index = 0; 696 U64 physical_high = 0; 697 U64 odla_physical_address = 0; 698 699 if (device_uncore == NULL) { 700 SOCPERF_PRINT_ERROR("ERROR: NULL device_uncore!\n"); 701 return; 702 } 703 pecb = (ECB)LWPMU_DEVICE_PMU_register_data(device_uncore)[0]; 704 if (pecb == NULL) { 705 SOCPERF_PRINT_ERROR("ERROR: null pecb!\n"); 706 return; 707 } 708 709 if (!trace_buffer) { 710 return; 711 } 712 713 ECB_pcidev_entry_list(pecb) = (DRV_PCI_DEVICE_ENTRY)( 714 (S8 *)pecb + ECB_pcidev_list_offset(pecb)); 715 dpden = ECB_pcidev_entry_list(pecb); 716 717 for (dev_index = 0; dev_index < ECB_num_pci_devices(pecb); 718 dev_index++) { 719 curr_pci_entry = &dpden[dev_index]; 720 bar_name = DRV_PCI_DEVICE_ENTRY_bar_name(curr_pci_entry); 721 mmio_offset = DRV_PCI_DEVICE_ENTRY_base_offset_for_mmio( 722 curr_pci_entry); 723 724 if (DRV_PCI_DEVICE_ENTRY_prog_type(curr_pci_entry) == 725 UNC_MEMORY && 726 DRV_PCI_DEVICE_ENTRY_config_type(curr_pci_entry) == 727 UNC_PCICFG && 728 bar_name == UNC_SOCPCI && 729 DRV_PCI_DEVICE_ENTRY_operation(curr_pci_entry) == 730 UNC_OP_WRITE) { 731 read_From_Register( 732 DRV_PCI_DEVICE_ENTRY_bus_no(curr_pci_entry), 733 DRV_PCI_DEVICE_ENTRY_dev_no(curr_pci_entry), 734 DRV_PCI_DEVICE_ENTRY_func_no(curr_pci_entry), 735 DRV_PCI_DEVICE_ENTRY_port_id(curr_pci_entry), 736 SOC_COUNTER_READ_OP_CODE, mmio_offset, 737 &data_val); 738 if (reg_index == 1) { 739 odla_physical_address = data_val; 740 } else if (reg_index == 2) { 741 physical_high = data_val; 742 odla_physical_address = odla_physical_address | 743 (physical_high << 32); 744 } 745 SOCPERF_PRINT_DEBUG( 746 "op=%d port=%d offset=%x val=%x\n", 747 DRV_PCI_DEVICE_ENTRY_op_code(curr_pci_entry), 748 DRV_PCI_DEVICE_ENTRY_port_id(curr_pci_entry), 749 mmio_offset, data_val); 750 reg_index++; 751 } 752 continue; 753 } 754 SOCPERF_PRINT_DEBUG("Physical Address=%llx\n", odla_physical_address); 755 if (odla_physical_address) { > 756 trace_virtual_address = (U64)(UIOP)ioremap_cache( 757 odla_physical_address, SOC_UNCORE_PAGE_SIZE); 758 SOCPERF_PRINT_DEBUG("PHY=%llx ODLA VIRTUAL ADDRESS=%llx\n", 759 odla_physical_address, 760 trace_virtual_address); 761 if (trace_buffer) { 762 *trace_buffer = odla_physical_address; 763 } 764 } 765 } 766
-- 0-DAY CI Kernel Test Service https://01.org/lkp
| |