Hi Gerd,
I've been seeing a regression on Nouveau with recent linux-next releases and git bisect points at this commit as the first bad one. If I revert it (there's a tiny conflict with a patch that was merged subsequently), things are back to normal.
I think the reason for this issue is that Nouveau doesn't use GEM objects for all buffer objects,
That shouldn't be a problem ...
and even when it uses GEM objects, the code will not initialize the GEM object until after the buffer objects and the backing TTM objects have been created.
... but the initialization order is.
ttm_bo_uses_embedded_gem_object() assumes gem gets initialized first.
drm_gem_object_init() init calling drm_vma_node_reset() again is probably the root cause for the breakage.
I tried to fix that by making sure drm_gem_object_init() gets called by Nouveau before ttm_bo_init(), but the changes are fairly involved and I was unable to get the GEM reference counting right. I can look into the proper fix some more, but it might be worth reverting this patch for now to get Nouveau working again.
Changing the order doesn't look hard. Patch attached (untested, have no test hardware). But maybe I missed some detail ...
The other patch attached works around the issue with a flag, to avoid drm_vma_node_reset() being called twice.
cheers, Gerd