[gabbayo:amdkfd-next 5/8] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c:540:3: error: dereferencing pointer to incomplete type 'struct cik_sdma_rlc_registers'

Felix Kuehling felix.kuehling at amd.com
Mon Nov 6 16:35:14 UTC 2017


I messed up while rebasing patches and didn't test every intermediate
patch as I should have. The next patch in the series fixes this.

If anyone wants to fix this before merging further upstream, remove the
offending line in this commit and reintroduce it in the next commit in
the series. At this point in the series GFX8 KFD SDMA isn't supposed to
work anyway.

Regards,
  Felix


On 2017-11-05 11:03 AM, kbuild test robot wrote:
> tree:   git://people.freedesktop.org/~gabbayo/linux amdkfd-next
> head:   c0307884529de823406fb17daf477f6af34ca5e5
> commit: 88bd109688cf71dac908e5a06915996ee79fcef6 [5/8] drm/amdgpu: Add support for resuming SDMA queues w/o HWS
> config: i386-randconfig-s0-201745 (attached as .config)
> compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
> reproduce:
>         git checkout 88bd109688cf71dac908e5a06915996ee79fcef6
>         # save the attached .config to linux build tree
>         make ARCH=i386 
>
> Note: the gabbayo/amdkfd-next HEAD c0307884529de823406fb17daf477f6af34ca5e5 builds fine.
>       It only hurts bisectibility.
>
> All errors (new ones prefixed by >>):
>
>    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c: In function 'kgd_hqd_sdma_destroy':
>>> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c:540:3: error: dereferencing pointer to incomplete type 'struct cik_sdma_rlc_registers'
>      m->sdmax_rlcx_rb_rptr = RREG32(sdma_base_addr + mmSDMA0_RLC0_RB_RPTR);
>       ^~
>
> vim +540 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
>
>    509	
>    510	static int kgd_hqd_sdma_destroy(struct kgd_dev *kgd, void *mqd,
>    511					unsigned int utimeout)
>    512	{
>    513		struct amdgpu_device *adev = get_amdgpu_device(kgd);
>    514		struct cik_sdma_rlc_registers *m;
>    515		uint32_t sdma_base_addr;
>    516		uint32_t temp;
>    517		unsigned long end_jiffies = (utimeout * HZ / 1000) + jiffies;
>    518	
>    519		m = get_sdma_mqd(mqd);
>    520		sdma_base_addr = get_sdma_base_addr(m);
>    521	
>    522		temp = RREG32(sdma_base_addr + mmSDMA0_RLC0_RB_CNTL);
>    523		temp = temp & ~SDMA0_RLC0_RB_CNTL__RB_ENABLE_MASK;
>    524		WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_CNTL, temp);
>    525	
>    526		while (true) {
>    527			temp = RREG32(sdma_base_addr + mmSDMA0_RLC0_CONTEXT_STATUS);
>    528			if (temp & SDMA0_STATUS_REG__RB_CMD_IDLE__SHIFT)
>    529				break;
>    530			if (time_after(jiffies, end_jiffies))
>    531				return -ETIME;
>    532			usleep_range(500, 1000);
>    533		}
>    534	
>    535		WREG32(sdma_base_addr + mmSDMA0_RLC0_DOORBELL, 0);
>    536		WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_RPTR, 0);
>    537		WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_WPTR, 0);
>    538		WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_BASE, 0);
>    539	
>  > 540		m->sdmax_rlcx_rb_rptr = RREG32(sdma_base_addr + mmSDMA0_RLC0_RB_RPTR);
>    541	
>    542		return 0;
>    543	}
>    544	
>
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation



More information about the dri-devel mailing list