drm/radeon - Attempt to fix data structure corruption on exit
commit806701601c739b4859577ac1ea18ec1098df8052
authorMatthew Dillon <dillon@apollo.backplane.com>
Sat, 4 May 2019 21:18:34 +0000 (4 14:18 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sat, 4 May 2019 21:18:34 +0000 (4 14:18 -0700)
tree795ec101c760ffa251c2e943625d538b06cf6c8e
parent45a165c7ada0f9a1ca54d3a1c8d855e7cb767efe
drm/radeon - Attempt to fix data structure corruption on exit

* Attempt to fix data structure corruption in the radeon driver
  when X exits.  This was causing X to lockup due to an attempt
  to double-remove vm->va from its interval tree.

* Validation operations based on field state.  In particular,
  do not try to issue the interval tree removal unless
  it.start or it.last are non-zero.

  Also, in radeon_vm_fini() do not issue the interval tree removal
  unless the bo can be successfully reserved.  Otherwise the
  structure might be placed in a bad state while it is still in use.
sys/dev/drm/radeon/radeon_vm.c