[agd5f:ualink 125/183] drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2901:31: warning: left shift count >= width of type
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild-all |
|---|---|
| Message-ID | <[email protected]> |
tree: https://gitlab.freedesktop.org/agd5f/linux.git ualink head: 67bd1d6d1b25ea1f893a76fffd13dd6335d297d0 commit: 25e0f08e1877bf453c1ad49086dda2ed562325d2 [125/183] drm/amdgpu: Add UALink cross-GPU TLB shootdown and remote interrupt config: csky-allmodconfig (https://download.01.org/0day-ci/archive/20260823/[email protected]/config) compiler: csky-linux-gcc (GCC) 16.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260823/[email protected]/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All warnings (new ones prefixed by >>): drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c: In function 'amdgpu_ualink_gart_map': drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2073:26: error: assignment to 'dma_addr_t *' {aka 'unsigned int *'} from incompatible pointer type 'u64 *' {aka 'long long unsigned int *'} [-Wincompatible-pointer-types] 2073 | dma_addr = &npa; | ^ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c: In function 'amdgpu_ualink_get_wb_addr': drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2669:22: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 2669 | wb = (u64)remote->rb_cpu_addr + rb_size * remote->num_accel; | ^ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2673:22: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 2673 | wb = (u64)remote->rptr_cpu_addr; | ^ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2683:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 2683 | *wb_cpu = (struct amdgpu_ualink_wb *)(wb + offset); | ^ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c: In function 'amdgpu_ualink_peer_remote_init': >> drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2901:31: warning: left shift count >= width of type [-Wshift-count-overflow] 2901 | npa = 0xFFFUL << 40 | (u64)dst_accel_id << 30; | ^~ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c: At top level: drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2939:13: warning: 'amdgpu_ualink_peer_remote_fini' defined but not used [-Wunused-function] 2939 | static void amdgpu_ualink_peer_remote_fini(struct amdgpu_device *adev) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2813:12: warning: 'amdgpu_ualink_peer_remote_init' defined but not used [-Wunused-function] 2813 | static int amdgpu_ualink_peer_remote_init(struct amdgpu_device *adev) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2779:12: warning: 'amdgpu_ualink_remote_interrupt' defined but not used [-Wunused-function] 2779 | static int amdgpu_ualink_remote_interrupt(struct amdgpu_device *adev, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2738:12: warning: 'amdgpu_ualink_remote_shootdown' defined but not used [-Wunused-function] 2738 | static int amdgpu_ualink_remote_shootdown(struct amdgpu_device *adev, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2144:12: warning: 'amdgpu_ualink_metadata_init' defined but not used [-Wunused-function] 2144 | static int amdgpu_ualink_metadata_init(struct amdgpu_device *adev) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2029:13: warning: 'amdgpu_ualink_sdma_entities_fini' defined but not used [-Wunused-function] 2029 | static void amdgpu_ualink_sdma_entities_fini(struct amdgpu_device *adev) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:1996:12: warning: 'amdgpu_ualink_sdma_entities_init' defined but not used [-Wunused-function] 1996 | static int amdgpu_ualink_sdma_entities_init(struct amdgpu_device *adev) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:1840:12: warning: 'amdgpu_ualink_metadata_npa_mapping' defined but not used [-Wunused-function] 1840 | static int amdgpu_ualink_metadata_npa_mapping(struct amdgpu_device *adev) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:1718:13: warning: 'amdgpu_ualink_metadata_npa_unmapping' defined but not used [-Wunused-function] 1718 | static void amdgpu_ualink_metadata_npa_unmapping(struct amdgpu_device *adev) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vim +2901 drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c 2803 2804 /** 2805 * amdgpu_ualink_peer_remote_init - Initialize remote peer GPU connections 2806 * @adev: amdgpu device pointer 2807 * 2808 * Sets up ring buffers, GART mappings, and control structures for 2809 * communicating with remote GPUs in the fabric. 2810 * 2811 * Return: 0 on success, negative error code on failure 2812 */ 2813 static int amdgpu_ualink_peer_remote_init(struct amdgpu_device *adev) 2814 { 2815 u32 rb_pages = AMDGPU_UALINK_RB_SIZE >> AMDGPU_GPU_PAGE_SHIFT; 2816 struct amdgpu_ualink_remote *remote = to_remote(adev); 2817 struct amdgpu_bo *bo = remote->ring_bo; 2818 struct amdgpu_ualink_peer *peer; 2819 struct amdgpu_ualink_ring *interrupt; 2820 struct amdgpu_ualink_ring *shootdown; 2821 u32 src_accel_id = ualink_accel_id(adev); 2822 u32 dst_accel_id; 2823 u64 npa, flags; 2824 int r = 0; 2825 2826 /* NPA mapping PTE flags VSCT = 0011 */ 2827 flags = amdgpu_ttm_tt_pte_flags(adev, bo->tbo.ttm, bo->tbo.resource); 2828 flags |= AMDGPU_PTE_SNOOPED | AMDGPU_PTE_PRT_GFX12 | AMDGPU_PTE_BUS_ATOMICS; 2829 flags &= ~AMDGPU_PTE_VALID; 2830 /* PTE.X=0 turn off RPC checks for RBs, wptr and doorbell NPA address */ 2831 flags &= ~AMDGPU_PTE_EXECUTABLE; 2832 2833 dev_dbg(adev->dev, "src_accel_id %u gart mapping flags 0x%llx\n", 2834 src_accel_id, flags); 2835 2836 for_each_set_bit(dst_accel_id, remote->active_accel_bits, AMDGPU_UALINK_ACCEL_MAX) { 2837 if (dst_accel_id == src_accel_id) 2838 continue; 2839 2840 dev_dbg(adev->dev, "peer_remote to dst_accel_id %u\n", dst_accel_id); 2841 2842 peer = &remote->peer[dst_accel_id]; 2843 mutex_init(&peer->lock); 2844 2845 interrupt = &peer->interrupt; 2846 shootdown = &peer->shootdown; 2847 2848 /* ring buffer npa gart mapping */ 2849 npa = amdgpu_ualink_gart_npa_addr(adev, RB_TYPE_REMOTE_INTERRUPT, 2850 src_accel_id, dst_accel_id); 2851 r = amdgpu_ualink_gart_map(adev, rb_pages, npa, &interrupt->mm_node_rb, flags); 2852 if (r) 2853 break; 2854 interrupt->rb_npa_gart = adev->gmc.gart_start + 2855 (interrupt->mm_node_rb.start << AMDGPU_GPU_PAGE_SHIFT); 2856 2857 dev_dbg(adev->dev, "rb npa 0x%llx mapped on gart 0x%llx\n", 2858 npa, interrupt->rb_npa_gart); 2859 2860 /* tlb invalidate ring buffer npa gart mapping */ 2861 npa = amdgpu_ualink_gart_npa_addr(adev, RB_TYPE_TLB_INV, src_accel_id, 2862 dst_accel_id); 2863 r = amdgpu_ualink_gart_map(adev, rb_pages, npa, &shootdown->mm_node_rb, flags); 2864 if (r) 2865 break; 2866 shootdown->rb_npa_gart = adev->gmc.gart_start + 2867 (shootdown->mm_node_rb.start << AMDGPU_GPU_PAGE_SHIFT); 2868 2869 dev_dbg(adev->dev, "tlb rb npa 0x%llx mapped on gart 0x%llx\n", 2870 npa, shootdown->rb_npa_gart); 2871 2872 /* wptr npa gart mapping */ 2873 npa = amdgpu_ualink_gart_npa_addr(adev, RB_TYPE_TAILPTR, src_accel_id, 2874 dst_accel_id); 2875 r = amdgpu_ualink_gart_map(adev, 1, npa, &interrupt->mm_node_wptr, flags); 2876 if (r) 2877 break; 2878 2879 interrupt->wptr_npa_gart = adev->gmc.gart_start + 2880 (interrupt->mm_node_wptr.start << AMDGPU_GPU_PAGE_SHIFT) 2881 + ualink_wptr_offset(adev, src_accel_id); 2882 shootdown->wptr_npa_gart = adev->gmc.gart_start + 2883 (interrupt->mm_node_wptr.start << AMDGPU_GPU_PAGE_SHIFT) 2884 + ualink_tlb_wptr_offset(adev, src_accel_id); 2885 2886 dev_dbg(adev->dev, "rb wptr npa 0x%llx on gart 0x%llx, tlb wptr on gart 0x%llx\n", 2887 npa, interrupt->wptr_npa_gart, shootdown->wptr_npa_gart); 2888 2889 /* 2890 * doorbell npa gart mapping, doorbell NPA address coding 2891 * 2892 * ReqAddr[51:40] = 0xFFF 2893 * ReqAddr[39:30] = GPU accel_id 2894 * ReqAddr[29:12] = 18'h00000 2895 * ReqAddr[11:8] = Random value 2896 * ReqAddr[7:6] = PMI Index 2897 * 0 - PMI0 Remote Interrupt 2898 * 1 - PMI1 Remote TLB Shootdown 2899 * ReqAddr[5:0] = 6'h0 2900 */ > 2901 npa = 0xFFFUL << 40 | (u64)dst_accel_id << 30; 2902 r = amdgpu_ualink_gart_map(adev, 1, npa, &interrupt->mm_node_doorbell, flags); 2903 if (r) 2904 break; 2905 2906 interrupt->doorbell_npa_gart = adev->gmc.gart_start + 2907 (interrupt->mm_node_doorbell.start << AMDGPU_GPU_PAGE_SHIFT); 2908 2909 dev_dbg(adev->dev, "rb doorbell npa 0x%llx mapped on gart 0x%llx\n", 2910 npa, interrupt->doorbell_npa_gart); 2911 2912 shootdown->doorbell_npa_gart = adev->gmc.gart_start+ 2913 (interrupt->mm_node_doorbell.start << AMDGPU_GPU_PAGE_SHIFT) + (1 << 6); 2914 2915 dev_dbg(adev->dev, "tlb doorbell npa 0x%llx mapped on gart 0x%llx\n", 2916 npa, shootdown->doorbell_npa_gart); 2917 2918 interrupt->rb_size = AMDGPU_UALINK_RB_SIZE / 64; 2919 interrupt->wptr = 0; 2920 interrupt->rptr = 0; 2921 interrupt->seq = 0; 2922 2923 shootdown->rb_size = AMDGPU_UALINK_RB_SIZE / 64; 2924 shootdown->wptr = 0; 2925 shootdown->rptr = 0; 2926 shootdown->seq = 0; 2927 } 2928 2929 dev_dbg(adev->dev, "peer remote init done r=%d\n", r); 2930 return r; 2931 } 2932 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki