In this case, maybe we should check the return value of gk20a_clk_ctor() and release clk if it returns -ENOMEM.
All error situations (including failed memory allocations) can matter here.
And many other functions also have the same issue (e.g. gm20b_clk_new_speedo0).
I recommend to increase the error detection and improve the desired exception handling accordingly.
Regards, Markus