mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Greg Ungerer <gerg@linux-m68k.org>
To: Daniel Palmer <daniel@0x0f.com>, christoph.plattner@gmx.at
Cc: geert@linux-m68k.org, linux-m68k@lists.linux-m68k.org,
	linux-kernel@vger.kernel.org, sashal@kernel.org
Subject: Re: [PATCH v2] m68k: Fix task info flags handling for 68000
Date: Sat, 4 Apr 2026 21:57:30 +1000	[thread overview]
Message-ID: <88b36f8b-1e70-4c4c-9351-c545e59c256a@linux-m68k.org> (raw)
In-Reply-To: <20260404023108.2495351-1-daniel@0x0f.com>

Hi Daniel,

On 4/4/26 12:31, Daniel Palmer wrote:
> The logic for deciding what to do after a syscall should be checking
> if any of the lower byte bits are set and then checking if the reschedule
> bit is set.
> 
> Currently we are loading the top word, checking if any bits are set
> (which never seems to be true) and thus jumping over loading the
> whole long and checking if the reschedule bit is set.
> 
> We get the thread info in two places so split that logic out in
> a macro and then fix the code so that it loads the byte of the flags
> we need to check, checks if anything is set and then checks if
> the reschedule bit in particular is set.
> 
> Reported-by: Christoph Plattner <christoph.plattner@gmx.at>
> Signed-off-by: Daniel Palmer <daniel@0x0f.com>
> ---
> v2: Only load the lower byte of the flags as that's all we need.
>      This change was suggested by Greg and I tested it still works.

Thanks for taking care of this.
I have pushed into the m68knommu git tree for-next branch.

Regards
Greg



>   arch/m68k/68000/entry.S | 21 +++++++++++++--------
>   1 file changed, 13 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/m68k/68000/entry.S b/arch/m68k/68000/entry.S
> index 72e95663b62f..c257cc415c47 100644
> --- a/arch/m68k/68000/entry.S
> +++ b/arch/m68k/68000/entry.S
> @@ -18,6 +18,13 @@
>   
>   .text
>   
> +/* get thread_info pointer into a2 */
> + .macro getthreadinfo
> +	movel	%sp,%d1
> +	andl	#-THREAD_SIZE,%d1
> +	movel	%d1,%a2
> + .endm
> +
>   .globl system_call
>   .globl resume
>   .globl ret_from_exception
> @@ -70,9 +77,8 @@ ENTRY(system_call)
>   
>   	movel	%sp@(PT_OFF_ORIG_D0),%d0
>   
> -	movel	%sp,%d1			/* get thread_info pointer */
> -	andl	#-THREAD_SIZE,%d1
> -	movel	%d1,%a2
> +	/* Doing a trace ? */
> +	getthreadinfo
>   	btst	#(TIF_SYSCALL_TRACE%8),%a2@(TINFO_FLAGS+(31-TIF_SYSCALL_TRACE)/8)
>   	jne	do_trace
>   	cmpl	#NR_syscalls,%d0
> @@ -96,16 +102,15 @@ Luser_return:
>   	/* heavy interrupt load*/
>   	andw	#ALLOWINT,%sr
>   
> -	movel	%sp,%d1			/* get thread_info pointer */
> -	andl	#-THREAD_SIZE,%d1
> -	movel	%d1,%a2
> +	getthreadinfo
>   1:
> -	move	%a2@(TINFO_FLAGS),%d1	/* thread_info->flags */
> +	/* check if any of the flags are set */
> +	moveb	%a2@(TINFO_FLAGS + 3),%d1	/* thread_info->flags (low 8 bits) */
>   	jne	Lwork_to_do
>   	RESTORE_ALL
>   
>   Lwork_to_do:
> -	movel	%a2@(TINFO_FLAGS),%d1	/* thread_info->flags */
> +	/* check if reschedule needs to be called */
>   	btst	#TIF_NEED_RESCHED,%d1
>   	jne	reschedule
>   


      reply	other threads:[~2026-04-04 11:57 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-04  2:31 Daniel Palmer
2026-04-04 11:57 ` Greg Ungerer [this message]

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=88b36f8b-1e70-4c4c-9351-c545e59c256a@linux-m68k.org \
    --to=gerg@linux-m68k.org \
    --cc=christoph.plattner@gmx.at \
    --cc=daniel@0x0f.com \
    --cc=geert@linux-m68k.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=sashal@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®