summaryrefslogtreecommitdiffstats
path: root/net/dccp/ccids
diff options
context:
space:
mode:
authorChanwoo Choi <cw00.choi@samsung.com>2014-05-09 16:43:07 +0900
committerMyungJoo Ham <myungjoo.ham@samsung.com>2014-05-24 22:33:34 +0900
commit585fc83ece43be63d5775e536f855db33dd752cf (patch)
tree0bea4c3fe8e818f8d2e455d48265709c6e429c9e /net/dccp/ccids
parent26d518530b19c62dd8165165958d7429db4cd1fe (diff)
downloadlinux-stable-585fc83ece43be63d5775e536f855db33dd752cf.tar.gz
linux-stable-585fc83ece43be63d5775e536f855db33dd752cf.tar.bz2
linux-stable-585fc83ece43be63d5775e536f855db33dd752cf.zip
PM / devfreq: Fix devfreq_remove_device() to improve the sequence of resource free
This patch modify devfreq_remove_device() to improve the sequence of resource free. If executing existing devfreq_remove_device(), this function always executes _remove_devfreq() twice. In result, second _remove_devfreq() always return error value. So, This patch resolves complicated function sequence as following: [Flow sequence before modification] devfreq_remove_device() _remove_devfreq(devfreq, false) kfree(devfreq); /* Free devfreq */ if (!skip ...) { /* skip is false */ device_unregister(&devfreq->dev) put_device(&devfreq->dev); ... dev->release() devfreq_dev_release() _remove_devfreq(devfreq, true) <- Recall to free devfreq /* * Always return error without freeing resource because * already _remove_devfreq() frees the memory of devfreq. */ } [Flow sequence after modification] devfreq_remove_device device_unregister(&devfreq->dev) put_device(&devfreq->dev); .. dev->release() devfreq_dev_release() _remove_devfreq() kfree(devfreq); /* Free devfreq */ Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> [Merge conflict resolved by MyungJoo] Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Diffstat (limited to 'net/dccp/ccids')
0 files changed, 0 insertions, 0 deletions