This patch series implements clock deregistration in the common clock framework. Comparing to v5 it only includes further corrections of NULL clock handling. Changes since v5: - fixed NULL clock handling in __clk_get(), __clk_put (patch 5/5). Changes since v4: - removed stray struct module forward declaration in patch 3/5. Changes since v3: - replaced WARN_ON() with WARN_ON_ONCE() in clk_nodrv_disable_unprepare() callback. Changes since v2: - reordered the patches so the race condition is fixed before it can actually cause any issues, - fixed handling of NULL clock pointers in __clk_get(), __clk_put(), - added patch adding actual asignment of clk->owner; more details are discussed in that specific patch. Changes since v1: - moved of_clk_{lock, unlock}, __of_clk_get_from_provider() function declaractions to a local header, - renamed clk_dummy_* to clk_nodrv_*. Sylwester Nawrocki (5): clk: Provide not locked variant of of_clk_get_from_provider() clkdev: Fix race condition in clock lookup from device tree clk: Add common __clk_get(), __clk_put() implementations clk: Assign module owner of a clock being registered clk: Implement clk_unregister arch/arm/include/asm/clkdev.h | 2 + arch/blackfin/include/asm/clkdev.h | 2 + arch/mips/include/asm/clkdev.h | 2 + arch/sh/include/asm/clkdev.h | 2 + drivers/clk/clk.c | 188 +++++++++++++++++++++++++++++++++--- drivers/clk/clk.h | 16 +++ drivers/clk/clkdev.c | 12 ++- include/linux/clk-private.h | 5 + include/linux/clkdev.h | 5 + 9 files changed, 221 insertions(+), 13 deletions(-) create mode 100644 drivers/clk/clk.h -- 1.7.9.5