* [agd5f:ualink 125/183] drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2901:31: warning: left shift count >= width of type
@ 2026-08-23 13:00 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-08-23 13:00 UTC (permalink / raw)
To: Philip Yang; +Cc: oe-kbuild-all, Alex Deucher, Felix Kuehling
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/202608232003.BmLOg5dv-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 16.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260823/202608232003.BmLOg5dv-lkp@intel.com/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 <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608232003.BmLOg5dv-lkp@intel.com/
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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-23 13:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-23 13:00 [agd5f:ualink 125/183] drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c:2901:31: warning: left shift count >= width of type kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.