summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbadger <badger@FreeBSD.org>2017-04-27 22:28:49 +0000
committerbadger <badger@FreeBSD.org>2017-04-27 22:28:49 +0000
commit0de8f3b2f0a04cc5b9c321fd929577f2c86706e2 (patch)
tree80ce508f3be2c178ed086385b2d7107151a148c4
parent08af0d1204cbdd42beeb6d6eb575c7f65b45a6eb (diff)
downloadFreeBSD-src-0de8f3b2f0a04cc5b9c321fd929577f2c86706e2.zip
FreeBSD-src-0de8f3b2f0a04cc5b9c321fd929577f2c86706e2.tar.gz
Move td_sigqueue to the end of struct thread
In order to preserve KBI in stable branches, replace the existing td_sigqueue slot with padding and move the expanded (as of r315949) td_sigqueue to the end of the struct. Reported by: jhb Suggested by: kib Reviewed by: jhb, kib, vangyzen Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D10515
-rw-r--r--sys/sys/proc.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/sys/proc.h b/sys/sys/proc.h
index a5dd3b2..2439e11 100644
--- a/sys/sys/proc.h
+++ b/sys/sys/proc.h
@@ -224,8 +224,8 @@ struct thread {
struct umtx_q *td_umtxq; /* (c?) Link for when we're blocked. */
struct vm_domain_policy td_vm_dom_policy; /* (c) current numa domain policy */
lwpid_t td_tid; /* (b) Thread ID. */
- sigqueue_t td_sigqueue; /* (c) Sigs arrived, not delivered. */
-#define td_siglist td_sigqueue.sq_signals
+ uint64_t padding1[4];
+ void *padding2[4];
u_char td_lend_user_pri; /* (t) Lend user pri. */
/* Cleared during fork1() */
@@ -341,6 +341,8 @@ struct thread {
int td_lastcpu; /* (t) Last cpu we were on. */
int td_oncpu; /* (t) Which cpu we are on. */
sbintime_t td_sleeptimo; /* (t) Sleep timeout. */
+ sigqueue_t td_sigqueue; /* (c) Sigs arrived, not delivered. */
+#define td_siglist td_sigqueue.sq_signals
};
struct thread0_storage {
OpenPOWER on IntegriCloud