drm/nouveau/gem: lookup VMAs for buffers referenced by pushbuf ioctl
We previously only did this for push buffers, but an upcoming patch will need to attach fences to all VMAs to resolve another issue. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Dieser Commit ist enthalten in:
@@ -31,8 +31,7 @@
|
||||
#include "nouveau_chan.h"
|
||||
|
||||
int nouveau_dma_wait(struct nouveau_channel *, int slots, int size);
|
||||
void nv50_dma_push(struct nouveau_channel *, struct nouveau_bo *,
|
||||
int delta, int length);
|
||||
void nv50_dma_push(struct nouveau_channel *, u64 addr, int length);
|
||||
|
||||
/*
|
||||
* There's a hw race condition where you can't jump to your PUT offset,
|
||||
@@ -151,7 +150,7 @@ FIRE_RING(struct nouveau_channel *chan)
|
||||
chan->accel_done = true;
|
||||
|
||||
if (chan->dma.ib_max) {
|
||||
nv50_dma_push(chan, chan->push.buffer, chan->dma.put << 2,
|
||||
nv50_dma_push(chan, chan->push.addr + (chan->dma.put << 2),
|
||||
(chan->dma.cur - chan->dma.put) << 2);
|
||||
} else {
|
||||
WRITE_PUT(chan->dma.cur);
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren