summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Llamas <cmllamas@google.com>2023-12-01 17:21:55 +0000
committerRick Yiu <rickyiu@google.com>2024-01-17 03:01:02 +0000
commit1e89876da40ada7f58cc04fe46bb9f060ff0d9ea (patch)
tree891e90f13654689179d4a569ca6cd6098bf39e59
parent489cecd90825b148f7b83ec3d4f9713231349b56 (diff)
downloadgs-1e89876da40ada7f58cc04fe46bb9f060ff0d9ea.tar.gz
FROMGIT: binder: avoid user addresses in debug logs
Prefer logging vma offsets instead of addresses or simply drop the debug log altogether if not useful. Note this covers the instances affected by the switch to store addresses as unsigned long. However, there are other sections in the driver that could do the same. Signed-off-by: Carlos Llamas <cmllamas@google.com> Reviewed-by: Alice Ryhl <aliceryhl@google.com> Link: https://lore.kernel.org/r/20231201172212.1813387-27-cmllamas@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Bug: 254650075 Bug: 320576997 (cherry picked from commit 162c79731448a5a052e93af7753df579dfe0bf7a https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git char-misc-next) Change-Id: I92b7f409e45d9006492d56302e911ccdd8efc950 Signed-off-by: Carlos Llamas <cmllamas@google.com>
-rw-r--r--drivers/android/binder.c4
-rw-r--r--drivers/android/binder_alloc.c15
2 files changed, 8 insertions, 11 deletions
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index dfa5e519a87a..3f1eed67f61c 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -6077,9 +6077,9 @@ static void print_binder_transaction_ilocked(struct seq_file *m,
}
if (buffer->target_node)
seq_printf(m, " node %d", buffer->target_node->debug_id);
- seq_printf(m, " size %zd:%zd data %lx\n",
+ seq_printf(m, " size %zd:%zd offset %lx\n",
buffer->data_size, buffer->offsets_size,
- buffer->user_data);
+ proc->alloc.buffer - buffer->user_data);
}
static void print_binder_work_ilocked(struct seq_file *m,
diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
index 7514a023adc6..d880ef9c16e7 100644
--- a/drivers/android/binder_alloc.c
+++ b/drivers/android/binder_alloc.c
@@ -251,8 +251,8 @@ static int binder_install_single_page(struct binder_alloc *alloc,
ret = vm_insert_page(alloc->vma, addr, page);
if (ret) {
- pr_err("%d: %s failed to insert page at %lx with %d\n",
- alloc->pid, __func__, addr, ret);
+ pr_err("%d: %s failed to insert page at offset %lx with %d\n",
+ alloc->pid, __func__, addr - alloc->buffer, ret);
__free_page(page);
ret = -ENOMEM;
goto out;
@@ -306,10 +306,6 @@ static void binder_lru_freelist_del(struct binder_alloc *alloc,
struct binder_lru_page *page;
unsigned long page_addr;
- binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC,
- "%d: pages %lx-%lx\n",
- alloc->pid, start, end);
-
trace_binder_update_page_range(alloc, true, start, end);
for (page_addr = start; page_addr < end; page_addr += PAGE_SIZE) {
@@ -953,8 +949,8 @@ void binder_alloc_deferred_release(struct binder_alloc *alloc)
&alloc->pages[i].lru);
page_addr = alloc->buffer + i * PAGE_SIZE;
binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC,
- "%s: %d: page %d at %lx %s\n",
- __func__, alloc->pid, i, page_addr,
+ "%s: %d: page %d %s\n",
+ __func__, alloc->pid, i,
on_lru ? "on lru" : "active");
__free_page(alloc->pages[i].page_ptr);
page_count++;
@@ -988,7 +984,8 @@ void binder_alloc_print_allocated(struct seq_file *m,
for (n = rb_first(&alloc->allocated_buffers); n; n = rb_next(n)) {
buffer = rb_entry(n, struct binder_buffer, rb_node);
seq_printf(m, " buffer %d: %lx size %zd:%zd:%zd %s\n",
- buffer->debug_id, buffer->user_data,
+ buffer->debug_id,
+ buffer->user_data - alloc->buffer,
buffer->data_size, buffer->offsets_size,
buffer->extra_buffers_size,
buffer->transaction ? "active" : "delivered");