On Mon, Jun 10, 2013 at 9:59 PM, Chris Wilson <chris at chris-wilson.co.uk> wrote: > On Mon, Jun 10, 2013 at 02:19:45PM -0300, Paulo Zanoni wrote: >> - intel_dp_init_connector(intel_dig_port, dp_connector); >> + /* May fail if it's an eDP connector that's disconnected. */ >> + if (!intel_dp_init_connector(intel_dig_port, dp_connector)) { >> + intel_ddi_destroy(encoder); >> + intel_dp_destroy(&dp_connector->base); >> + return; >> + } > > You should not need to export intel_dp_destroy() ever. Better would be > for init to undo anything it allocates upon failure and here we just > kfree(dp_connector). In particular, intel_dp_destroy() is wrong here as > you have no idea if init returned at an appropriate juntion to make > calling that function safe. Good point, I guess we could extract an __dp_destroy function which avoids the kfree, use that in appropriate places and do the kfree in the two functions that allocated the struct. Patch dropped again. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch