Would anyone object to using a struct for the vblank crtc data to eliminate the multiple allocs / frees? For example: struct drm_vblank { wait_queue_head_t vbl_queue; atomic_t _vblank_count; struct drm_vbl_sig_list vbl_sigs; atomic_t vblank_refcount; u32 last_vblank; int vblank_enabled; u32 vblank_premodeset; u32 vblank_suspend; };