lkml.org 
[lkml]   [2013]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH 1/1] TTY: tty_buffer, warn on leaks
Date
When we leak something, warn about that. For that we need to account
the memory used also in the free_all method. It is handled elsewhere
correctly.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/tty/tty_buffer.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/tty_buffer.c b/drivers/tty/tty_buffer.c
index 5f08c39e76ab..20cb9492dbf8 100644
--- a/drivers/tty/tty_buffer.c
+++ b/drivers/tty/tty_buffer.c
@@ -115,21 +115,27 @@ void tty_buffer_free_all(struct tty_port *port)
struct tty_bufhead *buf = &port->buf;
struct tty_buffer *p, *next;
struct llist_node *llist;
+ int zero = 0;

while ((p = buf->head) != NULL) {
buf->head = p->next;
+ atomic_sub(p->size, &buf->memory_used);
if (p->size > 0)
kfree(p);
}
llist = llist_del_all(&buf->free);
- llist_for_each_entry_safe(p, next, llist, free)
+ llist_for_each_entry_safe(p, next, llist, free) {
+ atomic_sub(p->size, &buf->memory_used);
kfree(p);
+ }
+

tty_buffer_reset(&buf->sentinel, 0);
buf->head = &buf->sentinel;
buf->tail = &buf->sentinel;

- atomic_set(&buf->memory_used, 0);
+ atomic_xchg(&buf->memory_used, zero);
+ WARN_ON(zero != 0);
}

/**
--
1.8.4.2


\
 
 \ /
  Last update: 2013-11-11 22:21    [W:0.045 / U:1.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site