Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Register
  • Sign in
  • L linux
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • Kirill Smelkov
  • linux
  • Repository
  • linux
  • lib
  • kobject.c
Find file BlameHistoryPermalink
  • Heikki Krogerus's avatar
    kobject: Avoid premature parent object freeing in kobject_cleanup() · 079ad2fb
    Heikki Krogerus authored Jun 04, 2020
    
    
    If kobject_del() is invoked by kobject_cleanup() to delete the
    target kobject, it may cause its parent kobject to be freed
    before invoking the target kobject's ->release() method, which
    effectively means freeing the parent before dealing with the
    child entirely.
    
    That is confusing at best and it may also lead to functional
    issues if the callers of kobject_cleanup() are not careful enough
    about the order in which these calls are made, so avoid the
    problem by making kobject_cleanup() drop the last reference to
    the target kobject's parent at the end, after invoking the target
    kobject's ->release() method.
    
    [ rjw: Rewrite the subject and changelog, make kobject_cleanup()
      drop the parent reference only when __kobject_del() has been
      called. ]
    
    Reported-by: default avatarNaresh Kamboju <naresh.kamboju@linaro.org>
    Reported-by: default avatarkernel test robot <rong.a.chen@intel.com>
    Fixes: 7589238a
    
     ("Revert "software node: Simplify software_node_release() function"")
    Suggested-by: default avatarRafael J. Wysocki <rafael@kernel.org>
    Signed-off-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Link: https://lore.kernel.org/r/1908555.IiAGLGrh1Z@kreacher
    
    
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    079ad2fb
GitLab Nexedi Edition | About GitLab | About Nexedi | 沪ICP备2021021310号-2 | 沪ICP备2021021310号-7