Messages in this thread |  | | | Subject | Re: kmemleak reports firmware loader funnies in iwlwifi | | From | Catalin Marinas <> | | Date | Mon, 29 Jun 2009 10:50:55 +0100 |
| |
On Mon, 2009-06-29 at 12:48 +0300, Pekka Enberg wrote: > Hi Catalin, > > On Mon, Jun 29, 2009 at 12:39 PM, Catalin > Marinas<catalin.marinas@arm.com> wrote: > > diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c > > index ddeb819..26fb808 100644 > > --- a/drivers/base/firmware_class.c > > +++ b/drivers/base/firmware_class.c > > @@ -179,6 +179,13 @@ static ssize_t firmware_loading_store(struct device *dev, > > dev_err(dev, "%s: vmap() failed\n", __func__); > > goto err; > > } > > + /* > > + * This block of memory is later freed using vfree. > > + * Since kmemleak does not track vmap calls, just > > + * inform it about this block but ignore it during > > + * scanning. > > + */ > > + kmemleak_alloc(fw_priv->fw->data, 0, -1, GFP_KERNEL); > > /* Pages will be freed by vfree() */ > > fw_priv->pages = NULL; > > fw_priv->page_array_size = 0; > > Would it be possible to put this hook in vmap() somehow?
It can be (and it could track vmap leaks as well). BTW, is there any use-case where vmap'ed memory may contain pointers? I did a grep but none of the vmap'ed blocks seem to have pointers.
-- Catalin
|  |