[RT,5.2] signal: remove noop call to __sigqueue_free
diff mbox series

Message ID 20191204172242.21058-1-trix@redhat.com
State New, archived
Headers show
Series
  • [RT,5.2] signal: remove noop call to __sigqueue_free
Related show

Commit Message

Tom Rix Dec. 4, 2019, 5:22 p.m. UTC
From: Tom Rix <trix@redhat.com>

By inspection, this call does not do anything.

static void __sigqueue_free(struct sigqueue *q)
{
	if (q->flags & SIGQUEUE_PREALLOC)  <-- redundant flag check --+
		return;                                               |
	atomic_dec(&q->user->sigpending);                             |
	free_uid(q->user);                                            |
	kmem_cache_free(sigqueue_cachep, q);                          |
}                                                                     |
                                                                      |
static void sigqueue_free_current(struct sigqueue *q)                 |
{                                                                     |
	struct user_struct *up;                                       |
                                                                      |
	if (q->flags & SIGQUEUE_PREALLOC)  <-- first flag check ------+
		return;                                               |
                                                                      |
	up = q->user;                                                 |
	if (rt_prio(current->normal_prio) && !put_task_cache(current, |
		atomic_dec(&up->sigpending);                          |
		free_uid(up);                                         |
	} else                                                        |
		__sigqueue_free(q);  <--- this call will noop --------+
}

Signed-off-by: Tom Rix <trix@redhat.com>
---
 kernel/signal.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Patch
diff mbox series

diff --git a/kernel/signal.c b/kernel/signal.c
index 7bf4b399d307..4389cfde3f86 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -486,8 +486,7 @@  static void sigqueue_free_current(struct sigqueue *q)
 	if (rt_prio(current->normal_prio) && !put_task_cache(current, q)) {
 		atomic_dec(&up->sigpending);
 		free_uid(up);
-	} else
-		  __sigqueue_free(q);
+	}
 }
 
 void flush_sigqueue(struct sigpending *queue)