The goal of this series is to introduce a GEM object that is backend by stolen memory and able to wrap preallocated objects before we have fully initialised GEM. And then to keep those objects around as we do intialise GEM for continued use afterwards. This patchset is slightly larger than strictly required, as I thinking of how to introduce stolen objects, I realised that it would be much easier if I could base it on the list removal and disassociation between obj->pages and obj->gtt_space. -Chris