--- x/kernel/time/posix-clock.c +++ y/kernel/time/posix-clock.c @@ -153,8 +153,10 @@ static int posix_clock_release(struct in return -ENODEV; clk = pccontext->clk; + down_write(&clk->rwsem); if (clk->ops.release) err = clk->ops.release(pccontext); + up_write(&clk->rwsem); put_device(clk->dev);