Messages in this thread | | | Date | Tue, 28 Nov 2023 23:25:14 +0530 | Subject | Re: [PATCH] EDAC/sysfs: Fix calling kobject_put() without kobj initialization | From | Harshit Mogalapalli <> |
| |
Hi Greg,
On 28/11/23 9:58 pm, Greg Kroah-Hartman wrote: > On Tue, Nov 28, 2023 at 05:09:52AM -0800, Harshit Mogalapalli wrote: >> In edac_pci_main_kobj_setup() when dev_root is NULL, >> kobject_init_and_add() is not called. >> >> if (err) { // err = -ENODEV; >> edac_dbg(1, "Failed to register '.../edac/pci'\n"); >> goto kobject_init_and_add_fail; // call to kobject_put() >> } >> >> This will cause a runtime warning in kobject_put() if the above happens. >> Warning: >> "kobject: '%s' (%p): is not initialized, yet kobject_put() is being called." >> >> Fix the error handling to avoid the above possible situation. >> >> Fixes: cb4a0bec0bb9 ("EDAC/sysfs: move to use bus_get_dev_root()") >> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com> >> --- >> This is based on static analysis with Smatch and only compile tested. >> --- >> drivers/edac/edac_pci_sysfs.c | 14 ++++++++------ >> 1 file changed, 8 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/edac/edac_pci_sysfs.c b/drivers/edac/edac_pci_sysfs.c >> index 901d4cd3ca38..71a0d4b9c2cf 100644 >> --- a/drivers/edac/edac_pci_sysfs.c >> +++ b/drivers/edac/edac_pci_sysfs.c >> @@ -370,12 +370,14 @@ static int edac_pci_main_kobj_setup(void) >> >> /* Instanstiate the pci object */ >> dev_root = bus_get_dev_root(edac_subsys); >> - if (dev_root) { >> - err = kobject_init_and_add(edac_pci_top_main_kobj, >> - &ktype_edac_pci_main_kobj, >> - &dev_root->kobj, "pci"); >> - put_device(dev_root); >> - } >> + if (!dev_root) >> + goto kzalloc_fail; >> + >> + err = kobject_init_and_add(edac_pci_top_main_kobj, >> + &ktype_edac_pci_main_kobj, >> + &dev_root->kobj, "pci"); >> + put_device(dev_root); >> + >> if (err) { >> edac_dbg(1, "Failed to register '.../edac/pci'\n"); >> goto kobject_init_and_add_fail; >> -- >> 2.39.3 >> > > Hi, > > This is the friendly patch-bot of Greg Kroah-Hartman. You have sent him > a patch that has triggered this response. He used to manually respond > to these common problems, but in order to save his sanity (he kept > writing the same thing over and over, yet to different people), I was > created. Hopefully you will not take offence and will fix the problem > in your patch and resubmit it so that it can be accepted into the Linux > kernel tree. > > You are receiving this message because of the following common error(s) > as indicated below: > > - This looks like a new version of a previously submitted patch, but you > did not list below the --- line any changes from the previous version. > Please read the section entitled "The canonical patch format" in the > kernel file, Documentation/process/submitting-patches.rst for what > needs to be done here to properly describe this. > > - You have marked a patch with a "Fixes:" tag for a commit that is in an > older released kernel, yet you do not have a cc: stable line in the > signed-off-by area at all, which means that the patch will not be > applied to any older kernel releases. To properly fix this, please > follow the documented rules in the > Documentation/process/stable-kernel-rules.rst file for how to resolve > this. > > If you wish to discuss this problem further, or you have questions about > how to resolve this issue, please feel free to respond to this email and > Greg will reply once he has dug out from the pending patches received > from other developers.
No, this is a similar bug but in the edac_pci_sysfs.c file instead of the edac_device_sysfs.c.
Let me resend these two patches as a patchset and change the subject to make it more obvious(EDAC/pci_sysfs, EDAC/device_sysfs in title). And add a CC stable tag.
Thanks, Harshit
> > thanks, > > greg k-h's patch email bot
| |