Chris Wilson rightly complained that this doesn't explain the list_del magic going on. New commit msg reads:
To make the transition in a piece-wise and bisectable way possible, I've hijacked the ->owner_list from drm_sman. While transitioning, the list_add was done by the driver, while the list_del was still done by the dying sman code. Now that we are in full control of ->owner_list, do the list_del ourselves.
He also noted the superflous additions of INIT_LIST_HEAD and the stale comment about spinlock locking in the idr allocation (protected by dev->struct_mutex) that I've copied over. All fixed up and pushed out for the moment to my fdo repo:
http://cgit.freedesktop.org/~danvet/drm/log/?h=kill-with-fire
Speaking of I attempted to clone that repo but it gives me
warning: remote HEAD refers to nonexistent ref, unable to checkout.