The branch releng/15.1 has been updated by cperciva:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=d6bbb597049cafced800585b72a155473b93331c

commit d6bbb597049cafced800585b72a155473b93331c
Author:     Konstantin Belousov <[email protected]>
AuthorDate: 2026-05-11 01:12:30 +0000
Commit:     Colin Percival <[email protected]>
CommitDate: 2026-05-21 21:20:30 +0000

    ptrace: clear TDP_USERWR after transparent attach only on attach
    
    Approved by:    re (cperciva)
    
    (cherry picked from commit cb31a266167c8bde3488fbdd6bf24c38b6f59977)
    (cherry picked from commit bce6e0e903288aa128bdd8ec45005d1416c4c764)
---
 sys/kern/sys_process.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c
index c67996ad7df1..7225a63328b4 100644
--- a/sys/kern/sys_process.c
+++ b/sys/kern/sys_process.c
@@ -1377,17 +1377,16 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void 
*addr, int data)
                 * register file or specifying the pc, make the thread
                 * xstopped by waking it up.
                 */
-               if ((td2->td_dbgflags & TDB_USERWR) != 0) {
-                       if (pt_attach_transparent) {
-                               thread_lock(td2);
-                               if (TD_ON_SLEEPQ(td2) &&
-                                   (td2->td_flags & TDF_SINTR) != 0) {
-                                       sleepq_abort(td2, EINTR);
-                               } else {
-                                       thread_unlock(td2);
-                               }
+               if ((td2->td_dbgflags & TDB_USERWR) != 0 &&
+                   pt_attach_transparent) {
+                       thread_lock(td2);
+                       if (TD_ON_SLEEPQ(td2) &&
+                           (td2->td_flags & TDF_SINTR) != 0) {
+                               td2->td_dbgflags &= ~TDB_USERWR;
+                               sleepq_abort(td2, EINTR);
+                       } else {
+                               thread_unlock(td2);
                        }
-                       td2->td_dbgflags &= ~TDB_USERWR;
                }
 
                /*

Reply via email to