@@ -265,24 +265,22 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
265
265
if (ret )
266
266
goto out_err ;
267
267
}
268
-
269
- if (bo -> mem .mem_type == TTM_PL_SYSTEM ) {
270
- if (bdev -> driver -> move_notify )
271
- bdev -> driver -> move_notify (bo , evict , mem );
272
- bo -> mem = * mem ;
273
- goto moved ;
274
- }
275
268
}
276
269
277
270
if (bdev -> driver -> move_notify )
278
271
bdev -> driver -> move_notify (bo , evict , mem );
279
272
280
- if (old_man -> use_tt && new_man -> use_tt )
281
- ret = ttm_bo_move_ttm (bo , ctx , mem );
282
- else if (bdev -> driver -> move )
273
+ if (old_man -> use_tt && new_man -> use_tt ) {
274
+ if (bo -> mem .mem_type == TTM_PL_SYSTEM ) {
275
+ ttm_bo_assign_mem (bo , mem );
276
+ ret = 0 ;
277
+ } else
278
+ ret = ttm_bo_move_ttm (bo , ctx , mem );
279
+ } else if (bdev -> driver -> move ) {
283
280
ret = bdev -> driver -> move (bo , evict , ctx , mem );
284
- else
281
+ } else {
285
282
ret = ttm_bo_move_memcpy (bo , ctx , mem );
283
+ }
286
284
287
285
if (ret ) {
288
286
if (bdev -> driver -> move_notify ) {
@@ -294,7 +292,6 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
294
292
goto out_err ;
295
293
}
296
294
297
- moved :
298
295
ctx -> bytes_moved += bo -> num_pages << PAGE_SHIFT ;
299
296
return 0 ;
300
297
0 commit comments