Showing error 889

User: Jiri Slaby
Error type: Resource Leak
Error type description: The code omits to put the resource to the system for reuse
File location: kernel/trace/trace_mmiotrace.c
Line in file: 119
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:41:42 UTC


Source:

 89                ret += trace_seq_printf(s, " %llx",
 90                        dev->resource[i].start < dev->resource[i].end ?
 91                        (unsigned long long)(end - start) + 1 : 0);
 92        }
 93        if (drv)
 94                ret += trace_seq_printf(s, " %s\n", drv->name);
 95        else
 96                ret += trace_seq_printf(s, " \n");
 97        return ret;
 98}
 99
100static void destroy_header_iter(struct header_iter *hiter)
101{
102        if (!hiter)
103                return;
104        pci_dev_put(hiter->dev);
105        kfree(hiter);
106}
107
108static void mmio_pipe_open(struct trace_iterator *iter)
109{
110        struct header_iter *hiter;
111        struct trace_seq *s = &iter->seq;
112
113        trace_seq_printf(s, "VERSION 20070824\n");
114
115        hiter = kzalloc(sizeof(*hiter), GFP_KERNEL);
116        if (!hiter)
117                return;
118
119        hiter->dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, NULL);
120        iter->private = hiter;
121}
122
123/* XXX: This is not called when the pipe is closed! */
124static void mmio_close(struct trace_iterator *iter)
125{
126        struct header_iter *hiter = iter->private;
127        destroy_header_iter(hiter);
128        iter->private = NULL;
129}
Show full sources