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; >