From: Stafford Horne <shorne@gmail.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: ChenMiao <chenmiao.ku@gmail.com>, Jonas Bonn <jonas@southpole.se>,
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
Arnd Bergmann <arnd@arndb.de>,
"Mike Rapoport (Microsoft)" <rppt@kernel.org>,
Luis Chamberlain <mcgrof@kernel.org>,
Sahil Siddiq <sahilcdq0@gmail.com>,
Johannes Berg <johannes@sipsolutions.net>,
Masahiro Yamada <masahiroy@kernel.org>,
Dave Hansen <dave.hansen@linux.intel.com>,
Andrew Morton <akpm@linux-foundation.org>,
"open list:OPENRISC ARCHITECTURE"
<linux-openrisc@vger.kernel.org>,
open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/2] openrisc: Add text patching API support
Date: Tue, 5 Aug 2025 14:11:14 +0100 [thread overview]
Message-ID: <aJIC8o1WmVHol9RY@antec> (raw)
In-Reply-To: <CAMuHMdX-hQ3XaQtTnbP50ngFB=wKG43m4cxFDUh++Hx7q_LnSw@mail.gmail.com>
On Tue, Aug 05, 2025 at 11:38:07AM +0200, Geert Uytterhoeven wrote:
> Hi Stafford,
>
> On Tue, 5 Aug 2025 at 11:15, Stafford Horne <shorne@gmail.com> wrote:
> > On Tue, Aug 05, 2025 at 08:40:57AM +0000, ChenMiao wrote:
> > > From: chenmiao <chenmiao.ku@gmail.com>
> > >
> > > We need a text patching mechanism to ensure that in the subsequent
> > > implementation of jump_label, the code can be modified to the correct
> > > location. Therefore, FIX_TEXT_POKE0 has been added as a mapping area.
> > >
> > > And, I create a new file named insn-def.h to define the or1k insn macro
> > > size and more define in the future.
> > >
> > > Among these changes, we implement patch_map and support the
> > > patch_insn_write API for single instruction writing.
> > >
> > > Signed-off-by: chenmiao <chenmiao.ku@gmail.com>
>
> > > --- /dev/null
> > > +++ b/arch/openrisc/include/asm/insn-def.h
>
> > > +/* or1k instructions are always 32 bits. */
> > > +#define OPENRISC_INSN_SIZE 4
>
> > > --- /dev/null
> > > +++ b/arch/openrisc/kernel/patching.c
>
> > > +static int __patch_insn_write(void *addr, const void *insn)
> > > +{
> > > + void *waddr = addr;
> > > + unsigned long flags = 0;
> > > + int ret;
> > > +
> > > + raw_spin_lock_irqsave(&patch_lock, flags);
> > > +
> > > + waddr = patch_map(addr, FIX_TEXT_POKE0);
> > > +
> > > + ret = copy_to_kernel_nofault(waddr, insn, OPENRISC_INSN_SIZE);
> >
> > If you change *insn to unsigned long insn, you can do:
> >
> > ret = copy_to_kernel_nofault(waddr, &insn, iszeof(insn));
>
> sizeof(*insn)?
Yes, typo, thanks.
> >
> > > + local_icache_range_inv((unsigned long)waddr,
> > > + (unsigned long)waddr + OPENRISC_INSN_SIZE);
> > > +
> > > + patch_unmap(FIX_TEXT_POKE0);
> > > +
> > > + raw_spin_unlock_irqrestore(&patch_lock, flags);
> > > +
> > > + return ret;
> > > +}
> > > +
> > > +int patch_insn_write(void *addr, const void *insn)
> >
> > Does insn need to be void *? It think it could be just unsigned long. See
> > comment above.
>
> u32?
>
> unsigned long would be 64-bit on 64-bit platforms.
Thanks, yes for us it's more correct to use u32. I always thing unsigned long is
OK in openrisc as we have no 64-bit implementations. But might as well have it
correct in case we ever add the 64-bit implementation.
-Stafford
next prev parent reply other threads:[~2025-08-05 13:11 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20250805084114.4125333-1-chenmiao.ku@gmail.com>
2025-08-05 8:40 ` [PATCH 1/2] openrisc: Add text patching API support ChenMiao
2025-08-05 9:15 ` Stafford Horne
2025-08-05 9:29 ` Miao Chen
2025-08-05 9:38 ` Geert Uytterhoeven
2025-08-05 13:11 ` Stafford Horne [this message]
2025-08-05 8:40 ` [PATCH 2/2] openrisc: Add jump label support ChenMiao
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=aJIC8o1WmVHol9RY@antec \
--to=shorne@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=chenmiao.ku@gmail.com \
--cc=dave.hansen@linux.intel.com \
--cc=geert@linux-m68k.org \
--cc=johannes@sipsolutions.net \
--cc=jonas@southpole.se \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-openrisc@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=mcgrof@kernel.org \
--cc=rppt@kernel.org \
--cc=sahilcdq0@gmail.com \
--cc=stefan.kristiansson@saunalahti.fi \
/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.