Using list_move() instead of list_del() + list_add() in base.c. Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> Signed-off-by: Baokun Li <libaokun1@xxxxxxxxxx> --- V1->V2: CC mailist drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c index 14871d0bd746..d8c55ea9aa6b 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/sw/base.c @@ -37,8 +37,7 @@ nvkm_sw_mthd(struct nvkm_sw *sw, int chid, int subc, u32 mthd, u32 data) list_for_each_entry(chan, &sw->chan, head) { if (chan->fifo->chid == chid) { handled = nvkm_sw_chan_mthd(chan, subc, mthd, data); - list_del(&chan->head); - list_add(&chan->head, &sw->chan); + list_move(&chan->head, &sw->chan); break; } }