[ANNOUNCE] 4.19.283-rt124

From: Daniel Wagner
Date: Thu Jun 01 2023 - 02:40:23 EST


Hello RT-list!

I'm pleased to announce the 4.19.283-rt124 stable release.

This is just an updating to the 4.19.283 stable release, no RT specific changes.

You can get this release via the git tree at:

git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git

branch: v4.19-rt
Head SHA1: 667d7f30ea873d10dc49365c95a387018da5961a

Or to build 4.19.283-rt124 directly, the following patches should be applied:

https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.19.tar.xz

https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.19.283.xz

https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patch-4.19.283-rt124.patch.xz

Signing key fingerprint:

5BF6 7BC5 0826 72CA BB45 ACAE 587C 5ECA 5D0A 306C

All keys used for the above files and repositories can be found on the
following git repository:

git://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git

Enjoy!
Daniel

Changes from v4.19.280-rt123:
---

$ git diff 01355ace5b6eb7a7b153182438bb0667d682b284 v4.19.283 v4.19.280-rt123

diff --cc lib/debugobjects.c
index 5f23d896df55,e28481c402ae..e486693aea49
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
@@@ -421,55 -368,6 +421,55 @@@ static void debug_object_is_on_stack(vo
WARN_ON(1);
}

+static struct debug_obj *lookup_object_or_alloc(void *addr, struct debug_bucket *b,
+ struct debug_obj_descr *descr,
+ bool onstack, bool alloc_ifstatic)
+{
+ struct debug_obj *obj = lookup_object(addr, b);
+ enum debug_obj_state state = ODEBUG_STATE_NONE;
+
+ if (likely(obj))
+ return obj;
+
+ /*
+ * debug_object_init() unconditionally allocates untracked
+ * objects. It does not matter whether it is a static object or
+ * not.
+ *
+ * debug_object_assert_init() and debug_object_activate() allow
+ * allocation only if the descriptor callback confirms that the
+ * object is static and considered initialized. For non-static
+ * objects the allocation needs to be done from the fixup callback.
+ */
+ if (unlikely(alloc_ifstatic)) {
+ if (!descr->is_static_object || !descr->is_static_object(addr))
+ return ERR_PTR(-ENOENT);
+ /* Statically allocated objects are considered initialized */
+ state = ODEBUG_STATE_INIT;
+ }
+
+ obj = alloc_object(addr, b, descr);
+ if (likely(obj)) {
+ obj->state = state;
+ debug_object_is_on_stack(addr, onstack);
+ return obj;
+ }
+
+ /* Out of memory. Do the cleanup outside of the locked region */
+ debug_objects_enabled = 0;
+ return NULL;
+}
+
+static void debug_objects_fill_pool(void)
+{
+ /*
+ * On RT enabled kernels the pool refill must happen in preemptible
+ * context:
+ */
- if (!IS_ENABLED(CONFIG_PREEMPT_RT) || preemptible())
++ if (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL) || preemptible())
+ fill_pool();
+}
+
static void
__debug_object_init(void *addr, struct debug_obj_descr *descr, int onstack)
{