Showing error 816

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: 166
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:40:13 UTC


Source:

136        if (over > prev_overruns)
137                cnt = over - prev_overruns;
138        prev_overruns = over;
139        return cnt;
140}
141
142static ssize_t mmio_read(struct trace_iterator *iter, struct file *filp,
143                                char __user *ubuf, size_t cnt, loff_t *ppos)
144{
145        ssize_t ret;
146        struct header_iter *hiter = iter->private;
147        struct trace_seq *s = &iter->seq;
148        unsigned long n;
149
150        n = count_overruns(iter);
151        if (n) {
152                /* XXX: This is later than where events were lost. */
153                trace_seq_printf(s, "MARK 0.000000 Lost %lu events.\n", n);
154                if (!overrun_detected)
155                        pr_warning("mmiotrace has lost events.\n");
156                overrun_detected = true;
157                goto print_out;
158        }
159
160        if (!hiter)
161                return 0;
162
163        mmio_print_pcidev(s, hiter->dev);
164        hiter->dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, hiter->dev);
165
166        if (!hiter->dev) {
167                destroy_header_iter(hiter);
168                iter->private = NULL;
169        }
170
171print_out:
172        ret = trace_seq_to_user(s, ubuf, cnt);
173        return (ret == -EBUSY) ? 0 : ret;
174}
175
176static enum print_line_t mmio_print_rw(struct trace_iterator *iter)
Show full sources