Message ID | 53bd8006bae1385905eec702c97f66695363c527.1676043318.git.lukas@wunner.de (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Bjorn Helgaas |
Headers | show |
Series | Collection of DOE material | expand |
Lukas Wunner wrote: > After a pci_doe_task completes, its work_struct needs to be destroyed > to avoid a memory leak with CONFIG_DEBUG_OBJECTS=y. > > Fixes: 9d24322e887b ("PCI/DOE: Add DOE mailbox support functions") > Tested-by: Ira Weiny <ira.weiny@intel.com> > Signed-off-by: Lukas Wunner <lukas@wunner.de> > Reviewed-by: Ira Weiny <ira.weiny@intel.com> > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > Cc: stable@vger.kernel.org # v6.0+ > --- > drivers/pci/doe.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/pci/doe.c b/drivers/pci/doe.c > index c20ca62a8c9d..6cf0600a38aa 100644 > --- a/drivers/pci/doe.c > +++ b/drivers/pci/doe.c > @@ -224,6 +224,7 @@ static void signal_task_complete(struct pci_doe_task *task, int rv) > { > task->rv = rv; > task->complete(task); > + destroy_work_on_stack(&task->work); > } > > static void signal_task_abort(struct pci_doe_task *task, int rv) > -- > 2.39.1 > > For 5 and 6, carried over from the v2: Reviewed-by: Dan Williams <dan.j.williams@intel.com> 1 through 6 seem suitable to go in as fixes at any time.
On Fri, 10 Feb 2023, Lukas Wunner wrote: >After a pci_doe_task completes, its work_struct needs to be destroyed >to avoid a memory leak with CONFIG_DEBUG_OBJECTS=y. > >Fixes: 9d24322e887b ("PCI/DOE: Add DOE mailbox support functions") >Tested-by: Ira Weiny <ira.weiny@intel.com> >Signed-off-by: Lukas Wunner <lukas@wunner.de> >Reviewed-by: Ira Weiny <ira.weiny@intel.com> >Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> >Cc: stable@vger.kernel.org # v6.0+ Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
diff --git a/drivers/pci/doe.c b/drivers/pci/doe.c index c20ca62a8c9d..6cf0600a38aa 100644 --- a/drivers/pci/doe.c +++ b/drivers/pci/doe.c @@ -224,6 +224,7 @@ static void signal_task_complete(struct pci_doe_task *task, int rv) { task->rv = rv; task->complete(task); + destroy_work_on_stack(&task->work); } static void signal_task_abort(struct pci_doe_task *task, int rv)