[PATCH] [rfc] amdgfx/gfx: don't use static objects for ce/de meta. (v2)

Christian König ckoenig.leichtzumerken at gmail.com
Fri Sep 29 13:46:32 UTC 2017


Am 29.09.2017 um 02:16 schrieb Dave Airlie:
> From: Dave Airlie <airlied at redhat.com>
>
> This isn't safe if we have multiple GPUs plugged in, since
> there is only one copy of this struct in the bss, just allocate
> on stack, it's 40/108 bytes which should be safe.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>

Reviewed-by: Christian König <christian.koenig at amd.com>

> ---
>   drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 ++--
>   drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 4 ++--
>   2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> index dfc10b1..5887f29 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> @@ -7076,7 +7076,7 @@ static void gfx_v8_0_ring_emit_ce_meta(struct amdgpu_ring *ring)
>   {
>   	uint64_t ce_payload_addr;
>   	int cnt_ce;
> -	static union {
> +	union {
>   		struct vi_ce_ib_state regular;
>   		struct vi_ce_ib_state_chained_ib chained;
>   	} ce_payload = {};
> @@ -7105,7 +7105,7 @@ static void gfx_v8_0_ring_emit_de_meta(struct amdgpu_ring *ring)
>   {
>   	uint64_t de_payload_addr, gds_addr, csa_addr;
>   	int cnt_de;
> -	static union {
> +	union {
>   		struct vi_de_ib_state regular;
>   		struct vi_de_ib_state_chained_ib chained;
>   	} de_payload = {};
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> index deeaee14..508efc8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
> @@ -3806,7 +3806,7 @@ static void gfx_v9_ring_emit_sb(struct amdgpu_ring *ring)
>   
>   static void gfx_v9_0_ring_emit_ce_meta(struct amdgpu_ring *ring)
>   {
> -	static struct v9_ce_ib_state ce_payload = {0};
> +	struct v9_ce_ib_state ce_payload = {0};
>   	uint64_t csa_addr;
>   	int cnt;
>   
> @@ -3825,7 +3825,7 @@ static void gfx_v9_0_ring_emit_ce_meta(struct amdgpu_ring *ring)
>   
>   static void gfx_v9_0_ring_emit_de_meta(struct amdgpu_ring *ring)
>   {
> -	static struct v9_de_ib_state de_payload = {0};
> +	struct v9_de_ib_state de_payload = {0};
>   	uint64_t csa_addr, gds_addr;
>   	int cnt;
>   




More information about the amd-gfx mailing list