From: Roel Kluin <12o3l@tiscali.nl>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] kernel/{exit.c, signal.c, power/process.c}: replace !likely(x) by likely(!x)
Date: Sat, 16 Feb 2008 20:52:45 +0100 [thread overview]
Message-ID: <47B73F0D.3090202@tiscali.nl> (raw)
In-Reply-To: <47B73A22.60806@zytor.com>
H. Peter Anvin wrote:
> Roel Kluin wrote:
>> H. Peter Anvin wrote:
>>> Roel Kluin wrote:
>>>> Not entirely sure who to send this to
>>>> ---
>>>> Replace !likely(x) by likely(!x)
>>> Whoa...
>>>
>>> Are you sure this is correct?
>>>
>>> !likely(x) is equivalent to unlikely(!x), not the opposite, so this is a
>>> functional change...
>>>
>> You are right, sorry, Need more caffeine. I will send the right patch
>> later.
>
> Note I didn't say it was wrong, I just wanted a bit more explanation
> about why it's right, if it is.
No, I just wanted to move the '!' within the parentheses, I didn't want
to change semantics. below is how I guess the patch should have been.
Thanks for your response.
---
Replace !likely(x) by unlikely(!x)
Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
---
diff --git a/kernel/signal.c b/kernel/signal.c
index 84917fe..cf5d45a 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -1308,7 +1308,7 @@ int send_sigqueue(int sig, struct sigqueue *q, struct task_struct *p)
*/
rcu_read_lock();
- if (!likely(lock_task_sighand(p, &flags))) {
+ if (unlikely(!lock_task_sighand(p, &flags))) {
ret = -1;
goto out_err;
}
@@ -1548,7 +1548,7 @@ static void do_notify_parent_cldstop(struct task_struct *tsk, int why)
static inline int may_ptrace_stop(void)
{
- if (!likely(current->ptrace & PT_PTRACED))
+ if (unlikely(!(current->ptrace & PT_PTRACED)))
return 0;
/*
* Are we in the middle of do_coredump?
@@ -1574,7 +1574,7 @@ static int sigkill_pending(struct task_struct *tsk)
{
return ((sigismember(&tsk->pending.signal, SIGKILL) ||
sigismember(&tsk->signal->shared_pending.signal, SIGKILL)) &&
- !unlikely(sigismember(&tsk->blocked, SIGKILL)));
+ likely(!sigismember(&tsk->blocked, SIGKILL)));
}
/*
@@ -1625,7 +1625,7 @@ static void ptrace_stop(int exit_code, int clear_code, siginfo_t *info)
spin_unlock_irq(¤t->sighand->siglock);
try_to_freeze();
read_lock(&tasklist_lock);
- if (!unlikely(killed) && may_ptrace_stop()) {
+ if (likely(!killed) && may_ptrace_stop()) {
do_notify_parent_cldstop(current, CLD_TRAPPED);
read_unlock(&tasklist_lock);
schedule();
@@ -1717,8 +1717,8 @@ static int do_signal_stop(int signr)
} else {
struct task_struct *t;
- if (!likely(sig->flags & SIGNAL_STOP_DEQUEUED) ||
- unlikely(sig->group_exit_task))
+ if (unlikely(!(sig->flags & SIGNAL_STOP_DEQUEUED) ||
+ sig->group_exit_task))
return 0;
/*
* There is no group stop already in progress.
next prev parent reply other threads:[~2008-02-16 19:52 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-16 15:58 [PATCH 2/2] kernel/{exit.c, signal.c, power/process.c}: replace !likely(x) by likely(!x) Roel Kluin
2008-02-16 19:01 ` H. Peter Anvin
2008-02-16 19:29 ` Roel Kluin
2008-02-16 19:31 ` H. Peter Anvin
2008-02-16 19:52 ` Roel Kluin [this message]
2008-02-17 2:33 ` Rene Herman
2008-02-17 3:56 ` H. Peter Anvin
2008-02-17 4:16 ` Rene Herman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47B73F0D.3090202@tiscali.nl \
--to=12o3l@tiscali.nl \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.