summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--metadata/md5-cache/sys-kernel/linux-image-redcore-lts-5.10.47 (renamed from metadata/md5-cache/sys-kernel/linux-image-redcore-lts-5.10.40)8
-rw-r--r--metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-5.10.47 (renamed from metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-5.10.40)4
-rw-r--r--metadata/pkg_desc_index4
-rw-r--r--sys-kernel/linux-image-redcore-lts/Manifest2
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/5.10-linux-hardened.patch76
-rw-r--r--sys-kernel/linux-image-redcore-lts/linux-image-redcore-lts-5.10.47.ebuild (renamed from sys-kernel/linux-image-redcore-lts/linux-image-redcore-lts-5.10.40.ebuild)0
-rw-r--r--sys-kernel/linux-sources-redcore-lts/Manifest2
-rw-r--r--sys-kernel/linux-sources-redcore-lts/files/5.10-linux-hardened.patch76
-rw-r--r--sys-kernel/linux-sources-redcore-lts/linux-sources-redcore-lts-5.10.47.ebuild (renamed from sys-kernel/linux-sources-redcore-lts/linux-sources-redcore-lts-5.10.40.ebuild)0
9 files changed, 86 insertions, 86 deletions
diff --git a/metadata/md5-cache/sys-kernel/linux-image-redcore-lts-5.10.40 b/metadata/md5-cache/sys-kernel/linux-image-redcore-lts-5.10.47
index d6f1fe08..f0d4f8a2 100644
--- a/metadata/md5-cache/sys-kernel/linux-image-redcore-lts-5.10.40
+++ b/metadata/md5-cache/sys-kernel/linux-image-redcore-lts-5.10.47
@@ -1,14 +1,14 @@
DEFINED_PHASES=compile install postinst postrm prepare setup
-DEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make cryptsetup? ( sys-fs/cryptsetup ) dmraid? ( sys-fs/dmraid ) dracut? ( >=sys-kernel/dracut-0.44-r8 ) dkms? ( sys-kernel/dkms sys-kernel/linux-sources-redcore-lts:5.10.40 ) mdadm? ( sys-fs/mdadm ) >=sys-kernel/linux-firmware-20180314
+DEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make cryptsetup? ( sys-fs/cryptsetup ) dmraid? ( sys-fs/dmraid ) dracut? ( >=sys-kernel/dracut-0.44-r8 ) dkms? ( sys-kernel/dkms sys-kernel/linux-sources-redcore-lts:5.10.47 ) mdadm? ( sys-fs/mdadm ) >=sys-kernel/linux-firmware-20180314
DESCRIPTION=Redcore Linux Kernel Image (LTS)
EAPI=6
HOMEPAGE=https://redcorelinux.org
IUSE=+cryptsetup +dmraid +dracut +dkms +mdadm
KEYWORDS=~amd64
LICENSE=GPL-2
-RDEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make cryptsetup? ( sys-fs/cryptsetup ) dmraid? ( sys-fs/dmraid ) dracut? ( >=sys-kernel/dracut-0.44-r8 ) dkms? ( sys-kernel/dkms sys-kernel/linux-sources-redcore-lts:5.10.40 ) mdadm? ( sys-fs/mdadm ) >=sys-kernel/linux-firmware-20180314
+RDEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make cryptsetup? ( sys-fs/cryptsetup ) dmraid? ( sys-fs/dmraid ) dracut? ( >=sys-kernel/dracut-0.44-r8 ) dkms? ( sys-kernel/dkms sys-kernel/linux-sources-redcore-lts:5.10.47 ) mdadm? ( sys-fs/mdadm ) >=sys-kernel/linux-firmware-20180314
RESTRICT=binchecks strip mirror
-SLOT=5.10.40
-SRC_URI=https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.40.tar.xz
+SLOT=5.10.47
+SRC_URI=https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.47.tar.xz
_eclasses_=desktop c0d27bf73aa08ca05b663dbd31fbef28 edos2unix 33e347e171066657f91f8b0c72ec8773 epatch 9f813bb3c47cf2e60619a663b87c5f4e estack 055c42df72f76a4f45ec92b35e83cd56 eutils dab5d8ec471d025b79c9e6906bcf3bff ltprune 4f3f2db5ce3ccbeeacdf3f94954043aa multilib 97566c1a256d07b00848aa767e38a352 preserve-libs dbc9f8d2d49c66467bc327fddd8317bd strip-linguas ac3ee41ee2d31d8c41a77c0838320cc7 toolchain-funcs 9ea1c67b6f8315fdc2568abb674519aa vcs-clean b690a7e9b6c497cf59326a7545df4283 wrapper 4251d4c84c25f59094fd557e0063a974
_md5_=e4471973e9da3660d18b9dedcc9d26b9
diff --git a/metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-5.10.40 b/metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-5.10.47
index 99acdc85..e3bc1ec8 100644
--- a/metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-5.10.40
+++ b/metadata/md5-cache/sys-kernel/linux-sources-redcore-lts-5.10.47
@@ -7,7 +7,7 @@ KEYWORDS=~amd64
LICENSE=GPL-2
RDEPEND=app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc sys-devel/make
RESTRICT=strip mirror
-SLOT=5.10.40
-SRC_URI=https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.40.tar.xz
+SLOT=5.10.47
+SRC_URI=https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.47.tar.xz
_eclasses_=desktop c0d27bf73aa08ca05b663dbd31fbef28 edos2unix 33e347e171066657f91f8b0c72ec8773 epatch 9f813bb3c47cf2e60619a663b87c5f4e estack 055c42df72f76a4f45ec92b35e83cd56 eutils dab5d8ec471d025b79c9e6906bcf3bff ltprune 4f3f2db5ce3ccbeeacdf3f94954043aa multilib 97566c1a256d07b00848aa767e38a352 preserve-libs dbc9f8d2d49c66467bc327fddd8317bd strip-linguas ac3ee41ee2d31d8c41a77c0838320cc7 toolchain-funcs 9ea1c67b6f8315fdc2568abb674519aa vcs-clean b690a7e9b6c497cf59326a7545df4283 wrapper 4251d4c84c25f59094fd557e0063a974
_md5_=1e1ce7d1328417d6f098dcccb2eb1fc3
diff --git a/metadata/pkg_desc_index b/metadata/pkg_desc_index
index 168d7445..19224a04 100644
--- a/metadata/pkg_desc_index
+++ b/metadata/pkg_desc_index
@@ -68,10 +68,10 @@ sys-kernel/dracut 048-r5: Generic initramfs generation tool
sys-kernel/dracutcfg 1337: Redcore Linux Dracut configuration files
sys-kernel/linux-headers 5.9-r10: Linux system headers
sys-kernel/linux-image-redcore 5.11.22: Redcore Linux Kernel Image
-sys-kernel/linux-image-redcore-lts 5.10.40: Redcore Linux Kernel Image (LTS)
+sys-kernel/linux-image-redcore-lts 5.10.47: Redcore Linux Kernel Image (LTS)
sys-kernel/linux-image-redcore-lts-legacy 5.4.129: Redcore Linux Kernel Image (LTS Legacy 5.4)
sys-kernel/linux-sources-redcore 5.11.22: Redcore Linux Kernel Sources
-sys-kernel/linux-sources-redcore-lts 5.10.40: Redcore Linux Kernel Sources (LTS)
+sys-kernel/linux-sources-redcore-lts 5.10.47: Redcore Linux Kernel Sources (LTS)
sys-kernel/linux-sources-redcore-lts-legacy 5.4.129: Redcore Linux Kernel Sources (LTS Legacy 5.4)
sys-kernel/nvidia-drivers-dkms 460.67: NVIDIA driver sources for linux
sys-kernel/nvidia-drivers-legacy-dkms 390.141-r1: NVIDIA driver sources for linux
diff --git a/sys-kernel/linux-image-redcore-lts/Manifest b/sys-kernel/linux-image-redcore-lts/Manifest
index 62fb370c..6b661c69 100644
--- a/sys-kernel/linux-image-redcore-lts/Manifest
+++ b/sys-kernel/linux-image-redcore-lts/Manifest
@@ -1 +1 @@
-DIST linux-5.10.40.tar.xz 116350428 BLAKE2B f1df7204db26d588a93d09e1322e20f57b426a0e33a11bbb111e88805b43ebb865ebcf1c7a75362650bed372102706a48171521c62a07d1261e604c03b553d24 SHA512 1b55504b5ccef17c4392a6e78a6fa481a10c5778147450dd492aceac5ed8089ee76f7f650f4cacd9ceb03a5173f33dbfa0a0c975fc29ce7fff7a31a9f59e941f
+DIST linux-5.10.47.tar.xz 116362372 BLAKE2B 6cfe773c5004d742e1f47f8ec408cd37b8183de5662370437b62a53ccb7960dc97499a90e41d94c8ff25207c4cc9428ca9fe6e15388e4be83ba34e83bb2df9da SHA512 80760ce0e55f146b1434cb21975cb1b3f94a6fa7f5c8edd9e534084596e8262ee5945f2b25b98039d9d405232083f995782bbdaafbb7b387bb785eafc3e2e9c8
diff --git a/sys-kernel/linux-image-redcore-lts/files/5.10-linux-hardened.patch b/sys-kernel/linux-image-redcore-lts/files/5.10-linux-hardened.patch
index d2b02ca9..e304e170 100644
--- a/sys-kernel/linux-image-redcore-lts/files/5.10-linux-hardened.patch
+++ b/sys-kernel/linux-image-redcore-lts/files/5.10-linux-hardened.patch
@@ -102,13 +102,13 @@ index 4abcfff15e38..fa2d0a9709f2 100644
If set, provide RFC2861 behavior and time out the congestion
window after an idle period. An idle period is defined at
diff --git a/Makefile b/Makefile
-index 42c915ccc5b8..7bd6aed86f87 100644
+index fb2937bca41b..711389d443ab 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@
VERSION = 5
PATCHLEVEL = 10
- SUBLEVEL = 40
+ SUBLEVEL = 47
-EXTRAVERSION =
+EXTRAVERSION = -hardened1
NAME = Dare mighty things
@@ -600,10 +600,10 @@ index 18e874b0441e..fc7a3a9aa72a 100644
obj-$(CONFIG_USB) += usbcore.o
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index 228e3d4e1a9f..4d4afa81d7f2 100644
+index 357730e8f52f..3884416d9029 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
-@@ -5114,6 +5114,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
+@@ -5116,6 +5116,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
goto done;
return;
}
@@ -1013,7 +1013,7 @@ index 2b5b64256cf4..8cdce21dce0f 100644
const struct kobj_ns_type_operations *kobj_child_ns_ops(struct kobject *parent);
const struct kobj_ns_type_operations *kobj_ns_ops(struct kobject *kobj);
diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 5106db3ad1ce..d8644f4bc544 100644
+index 289c26f055cd..0a691a57044d 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -759,7 +759,7 @@ static inline int is_vmalloc_or_module_addr(const void *x)
@@ -1587,7 +1587,7 @@ index de7eac903a2a..5602178f3d21 100644
/**
diff --git a/kernel/events/core.c b/kernel/events/core.c
-index 45fa7167cee2..3710b7c7ed5d 100644
+index 7e0fdc19043e..42636279e201 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -408,8 +408,13 @@ static cpumask_var_t perf_online_mask;
@@ -1604,7 +1604,7 @@ index 45fa7167cee2..3710b7c7ed5d 100644
/* Minimum for 512 kiB + 1 user control page */
int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
-@@ -11690,7 +11695,7 @@ SYSCALL_DEFINE5(perf_event_open,
+@@ -11692,7 +11697,7 @@ SYSCALL_DEFINE5(perf_event_open,
return -EINVAL;
/* Do we allow access to perf_event_open(2) ? */
@@ -1676,10 +1676,10 @@ index 61e250cdd7c9..9ef3aa84f3c9 100644
rcu_core();
}
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
-index 1ad0e52487f6..2c20745f2597 100644
+index d6e1c90de570..03ea833c66a5 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
-@@ -10663,7 +10663,7 @@ static int newidle_balance(struct rq *this_rq, struct rq_flags *rf)
+@@ -10669,7 +10669,7 @@ static int newidle_balance(struct rq *this_rq, struct rq_flags *rf)
* run_rebalance_domains is triggered when needed from the scheduler tick.
* Also triggered for nohz idle balancing (with nohz_balancing_kick set).
*/
@@ -2162,7 +2162,7 @@ index 5c8b4485860d..0e26c225bb53 100644
mm->brk = brk;
goto success;
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 7ffa706e5c30..fcdc61e5014f 100644
+index 81cc7fdc9c8f..254def6fa5b3 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -70,6 +70,7 @@
@@ -2337,7 +2337,7 @@ index e258ffcfb0ef..6208d0d5ef15 100644
}
diff --git a/mm/slab_common.c b/mm/slab_common.c
-index 8f27ccf9f7f3..f7832da1a63a 100644
+index ec832904f408..c24e2f33c9fb 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -30,10 +30,10 @@
@@ -2363,10 +2363,10 @@ index 8f27ccf9f7f3..f7832da1a63a 100644
static int __init setup_slab_nomerge(char *str)
{
diff --git a/mm/slub.c b/mm/slub.c
-index 05a501b67cd5..e671c743f076 100644
+index f5fc44208bdc..d1021b7544a6 100644
--- a/mm/slub.c
+++ b/mm/slub.c
-@@ -127,6 +127,12 @@ static inline bool kmem_cache_debug(struct kmem_cache *s)
+@@ -128,6 +128,12 @@ static inline bool kmem_cache_debug(struct kmem_cache *s)
return kmem_cache_debug_flags(s, SLAB_DEBUG_FLAGS);
}
@@ -2379,7 +2379,7 @@ index 05a501b67cd5..e671c743f076 100644
void *fixup_red_left(struct kmem_cache *s, void *p)
{
if (kmem_cache_debug_flags(s, SLAB_RED_ZONE))
-@@ -432,6 +438,55 @@ static inline bool cmpxchg_double_slab(struct kmem_cache *s, struct page *page,
+@@ -433,6 +439,55 @@ static inline bool cmpxchg_double_slab(struct kmem_cache *s, struct page *page,
return false;
}
@@ -2435,7 +2435,7 @@ index 05a501b67cd5..e671c743f076 100644
#ifdef CONFIG_SLUB_DEBUG
static unsigned long object_map[BITS_TO_LONGS(MAX_OBJS_PER_PAGE)];
static DEFINE_SPINLOCK(object_map_lock);
-@@ -486,13 +541,13 @@ static inline void *restore_red_left(struct kmem_cache *s, void *p)
+@@ -487,13 +542,13 @@ static inline void *restore_red_left(struct kmem_cache *s, void *p)
* Debug settings:
*/
#if defined(CONFIG_SLUB_DEBUG_ON)
@@ -2453,7 +2453,7 @@ index 05a501b67cd5..e671c743f076 100644
/*
* slub is about to manipulate internal object metadata. This memory lies
-@@ -543,26 +598,6 @@ static void print_section(char *level, char *text, u8 *addr,
+@@ -544,26 +599,6 @@ static void print_section(char *level, char *text, u8 *addr,
metadata_access_disable();
}
@@ -2480,7 +2480,7 @@ index 05a501b67cd5..e671c743f076 100644
static struct track *get_track(struct kmem_cache *s, void *object,
enum track_item alloc)
{
-@@ -570,6 +605,9 @@ static struct track *get_track(struct kmem_cache *s, void *object,
+@@ -571,6 +606,9 @@ static struct track *get_track(struct kmem_cache *s, void *object,
p = object + get_info_end(s);
@@ -2490,7 +2490,7 @@ index 05a501b67cd5..e671c743f076 100644
return p + alloc;
}
-@@ -711,6 +749,9 @@ static void print_trailer(struct kmem_cache *s, struct page *page, u8 *p)
+@@ -712,6 +750,9 @@ static void print_trailer(struct kmem_cache *s, struct page *page, u8 *p)
off = get_info_end(s);
@@ -2500,7 +2500,7 @@ index 05a501b67cd5..e671c743f076 100644
if (s->flags & SLAB_STORE_USER)
off += 2 * sizeof(struct track);
-@@ -819,8 +860,9 @@ static int check_bytes_and_report(struct kmem_cache *s, struct page *page,
+@@ -820,8 +861,9 @@ static int check_bytes_and_report(struct kmem_cache *s, struct page *page,
* Meta data starts here.
*
* A. Free pointer (if we cannot overwrite object on free)
@@ -2512,7 +2512,7 @@ index 05a501b67cd5..e671c743f076 100644
* one word if debugging is on to be able to detect writes
* before the word boundary.
*
-@@ -838,6 +880,9 @@ static int check_pad_bytes(struct kmem_cache *s, struct page *page, u8 *p)
+@@ -839,6 +881,9 @@ static int check_pad_bytes(struct kmem_cache *s, struct page *page, u8 *p)
{
unsigned long off = get_info_end(s); /* The end of info */
@@ -2522,7 +2522,7 @@ index 05a501b67cd5..e671c743f076 100644
if (s->flags & SLAB_STORE_USER)
/* We also have user information there */
off += 2 * sizeof(struct track);
-@@ -1558,6 +1603,8 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s,
+@@ -1559,6 +1604,8 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s,
object = next;
next = get_freepointer(s, object);
@@ -2531,7 +2531,7 @@ index 05a501b67cd5..e671c743f076 100644
if (slab_want_init_on_free(s)) {
/*
* Clear the object and the metadata, but don't touch
-@@ -1568,8 +1615,12 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s,
+@@ -1569,8 +1616,12 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s,
: 0;
memset((char *)object + s->inuse, 0,
s->size - s->inuse - rsize);
@@ -2545,7 +2545,7 @@ index 05a501b67cd5..e671c743f076 100644
/* If object's reuse doesn't have to be delayed */
if (!slab_free_hook(s, object)) {
/* Move object to the new freelist */
-@@ -1577,6 +1628,18 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s,
+@@ -1578,6 +1629,18 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s,
*head = object;
if (!*tail)
*tail = object;
@@ -2564,7 +2564,7 @@ index 05a501b67cd5..e671c743f076 100644
}
} while (object != old_tail);
-@@ -1590,8 +1653,9 @@ static void *setup_object(struct kmem_cache *s, struct page *page,
+@@ -1591,8 +1654,9 @@ static void *setup_object(struct kmem_cache *s, struct page *page,
void *object)
{
setup_object_debug(s, page, object);
@@ -2575,7 +2575,7 @@ index 05a501b67cd5..e671c743f076 100644
kasan_unpoison_object_data(s, object);
s->ctor(object);
kasan_poison_object_data(s, object);
-@@ -2882,8 +2946,28 @@ static __always_inline void *slab_alloc_node(struct kmem_cache *s,
+@@ -2883,8 +2947,28 @@ static __always_inline void *slab_alloc_node(struct kmem_cache *s,
maybe_wipe_obj_freeptr(s, object);
@@ -2605,7 +2605,7 @@ index 05a501b67cd5..e671c743f076 100644
slab_post_alloc_hook(s, objcg, gfpflags, 1, &object);
-@@ -3272,7 +3356,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
+@@ -3273,7 +3357,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
void **p)
{
struct kmem_cache_cpu *c;
@@ -2614,7 +2614,7 @@ index 05a501b67cd5..e671c743f076 100644
struct obj_cgroup *objcg = NULL;
/* memcg and kmem_cache debug support */
-@@ -3322,11 +3406,35 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
+@@ -3323,11 +3407,35 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
local_irq_enable();
/* Clear memory outside IRQ disabled fastpath loop */
@@ -2652,7 +2652,7 @@ index 05a501b67cd5..e671c743f076 100644
}
/* memcg and kmem_cache debug support */
-@@ -3360,9 +3468,9 @@ EXPORT_SYMBOL(kmem_cache_alloc_bulk);
+@@ -3361,9 +3469,9 @@ EXPORT_SYMBOL(kmem_cache_alloc_bulk);
* and increases the number of allocations possible without having to
* take the list_lock.
*/
@@ -2665,7 +2665,7 @@ index 05a501b67cd5..e671c743f076 100644
/*
* Calculate the order of allocation given an slab object size.
-@@ -3530,6 +3638,7 @@ static void early_kmem_cache_node_alloc(int node)
+@@ -3531,6 +3639,7 @@ static void early_kmem_cache_node_alloc(int node)
init_object(kmem_cache_node, n, SLUB_RED_ACTIVE);
init_tracking(kmem_cache_node, n);
#endif
@@ -2673,8 +2673,8 @@ index 05a501b67cd5..e671c743f076 100644
n = kasan_kmalloc(kmem_cache_node, n, sizeof(struct kmem_cache_node),
GFP_KERNEL);
page->freelist = get_freepointer(kmem_cache_node, n);
-@@ -3710,6 +3819,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
- s->offset = ALIGN(freepointer_area / 2, sizeof(void *));
+@@ -3705,6 +3814,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
+ s->offset = ALIGN_DOWN(s->object_size / 2, sizeof(void *));
}
+ if (IS_ENABLED(CONFIG_SLAB_CANARY))
@@ -2683,7 +2683,7 @@ index 05a501b67cd5..e671c743f076 100644
#ifdef CONFIG_SLUB_DEBUG
if (flags & SLAB_STORE_USER)
/*
-@@ -3783,6 +3895,10 @@ static int kmem_cache_open(struct kmem_cache *s, slab_flags_t flags)
+@@ -3778,6 +3890,10 @@ static int kmem_cache_open(struct kmem_cache *s, slab_flags_t flags)
#ifdef CONFIG_SLAB_FREELIST_HARDENED
s->random = get_random_long();
#endif
@@ -2694,7 +2694,7 @@ index 05a501b67cd5..e671c743f076 100644
if (!calculate_sizes(s, -1))
goto error;
-@@ -4056,6 +4172,8 @@ void __check_heap_object(const void *ptr, unsigned long n, struct page *page,
+@@ -4051,6 +4167,8 @@ void __check_heap_object(const void *ptr, unsigned long n, struct page *page,
offset -= s->red_left_pad;
}
@@ -2703,7 +2703,7 @@ index 05a501b67cd5..e671c743f076 100644
/* Allow address range falling entirely within usercopy region. */
if (offset >= s->useroffset &&
offset - s->useroffset <= s->usersize &&
-@@ -4089,7 +4207,11 @@ size_t __ksize(const void *object)
+@@ -4084,7 +4202,11 @@ size_t __ksize(const void *object)
page = virt_to_head_page(object);
if (unlikely(!PageSlab(page))) {
@@ -2715,7 +2715,7 @@ index 05a501b67cd5..e671c743f076 100644
return page_size(page);
}
-@@ -4880,7 +5002,7 @@ enum slab_stat_type {
+@@ -4875,7 +4997,7 @@ enum slab_stat_type {
#define SO_TOTAL (1 << SL_TOTAL)
#ifdef CONFIG_MEMCG
@@ -2771,10 +2771,10 @@ index 4ddb6e186dd5..62ed34dfceb7 100644
unsigned long arch_mmap_rnd(void)
diff --git a/net/core/dev.c b/net/core/dev.c
-index 2f17a4ac82f0..223c111f31ab 100644
+index 0c9ce36afc8c..c77d2c765b03 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4869,7 +4869,7 @@ int netif_rx_any_context(struct sk_buff *skb)
+@@ -4870,7 +4870,7 @@ int netif_rx_any_context(struct sk_buff *skb)
}
EXPORT_SYMBOL(netif_rx_any_context);
@@ -2783,7 +2783,7 @@ index 2f17a4ac82f0..223c111f31ab 100644
{
struct softnet_data *sd = this_cpu_ptr(&softnet_data);
-@@ -6819,7 +6819,7 @@ static int napi_poll(struct napi_struct *n, struct list_head *repoll)
+@@ -6838,7 +6838,7 @@ static int napi_poll(struct napi_struct *n, struct list_head *repoll)
return work;
}
diff --git a/sys-kernel/linux-image-redcore-lts/linux-image-redcore-lts-5.10.40.ebuild b/sys-kernel/linux-image-redcore-lts/linux-image-redcore-lts-5.10.47.ebuild
index 0d2a1068..0d2a1068 100644
--- a/sys-kernel/linux-image-redcore-lts/linux-image-redcore-lts-5.10.40.ebuild
+++ b/sys-kernel/linux-image-redcore-lts/linux-image-redcore-lts-5.10.47.ebuild
diff --git a/sys-kernel/linux-sources-redcore-lts/Manifest b/sys-kernel/linux-sources-redcore-lts/Manifest
index 62fb370c..6b661c69 100644
--- a/sys-kernel/linux-sources-redcore-lts/Manifest
+++ b/sys-kernel/linux-sources-redcore-lts/Manifest
@@ -1 +1 @@
-DIST linux-5.10.40.tar.xz 116350428 BLAKE2B f1df7204db26d588a93d09e1322e20f57b426a0e33a11bbb111e88805b43ebb865ebcf1c7a75362650bed372102706a48171521c62a07d1261e604c03b553d24 SHA512 1b55504b5ccef17c4392a6e78a6fa481a10c5778147450dd492aceac5ed8089ee76f7f650f4cacd9ceb03a5173f33dbfa0a0c975fc29ce7fff7a31a9f59e941f
+DIST linux-5.10.47.tar.xz 116362372 BLAKE2B 6cfe773c5004d742e1f47f8ec408cd37b8183de5662370437b62a53ccb7960dc97499a90e41d94c8ff25207c4cc9428ca9fe6e15388e4be83ba34e83bb2df9da SHA512 80760ce0e55f146b1434cb21975cb1b3f94a6fa7f5c8edd9e534084596e8262ee5945f2b25b98039d9d405232083f995782bbdaafbb7b387bb785eafc3e2e9c8
diff --git a/sys-kernel/linux-sources-redcore-lts/files/5.10-linux-hardened.patch b/sys-kernel/linux-sources-redcore-lts/files/5.10-linux-hardened.patch
index d2b02ca9..e304e170 100644
--- a/sys-kernel/linux-sources-redcore-lts/files/5.10-linux-hardened.patch
+++ b/sys-kernel/linux-sources-redcore-lts/files/5.10-linux-hardened.patch
@@ -102,13 +102,13 @@ index 4abcfff15e38..fa2d0a9709f2 100644
If set, provide RFC2861 behavior and time out the congestion
window after an idle period. An idle period is defined at
diff --git a/Makefile b/Makefile
-index 42c915ccc5b8..7bd6aed86f87 100644
+index fb2937bca41b..711389d443ab 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@
VERSION = 5
PATCHLEVEL = 10
- SUBLEVEL = 40
+ SUBLEVEL = 47
-EXTRAVERSION =
+EXTRAVERSION = -hardened1
NAME = Dare mighty things
@@ -600,10 +600,10 @@ index 18e874b0441e..fc7a3a9aa72a 100644
obj-$(CONFIG_USB) += usbcore.o
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index 228e3d4e1a9f..4d4afa81d7f2 100644
+index 357730e8f52f..3884416d9029 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
-@@ -5114,6 +5114,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
+@@ -5116,6 +5116,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
goto done;
return;
}
@@ -1013,7 +1013,7 @@ index 2b5b64256cf4..8cdce21dce0f 100644
const struct kobj_ns_type_operations *kobj_child_ns_ops(struct kobject *parent);
const struct kobj_ns_type_operations *kobj_ns_ops(struct kobject *kobj);
diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 5106db3ad1ce..d8644f4bc544 100644
+index 289c26f055cd..0a691a57044d 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -759,7 +759,7 @@ static inline int is_vmalloc_or_module_addr(const void *x)
@@ -1587,7 +1587,7 @@ index de7eac903a2a..5602178f3d21 100644
/**
diff --git a/kernel/events/core.c b/kernel/events/core.c
-index 45fa7167cee2..3710b7c7ed5d 100644
+index 7e0fdc19043e..42636279e201 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -408,8 +408,13 @@ static cpumask_var_t perf_online_mask;
@@ -1604,7 +1604,7 @@ index 45fa7167cee2..3710b7c7ed5d 100644
/* Minimum for 512 kiB + 1 user control page */
int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
-@@ -11690,7 +11695,7 @@ SYSCALL_DEFINE5(perf_event_open,
+@@ -11692,7 +11697,7 @@ SYSCALL_DEFINE5(perf_event_open,
return -EINVAL;
/* Do we allow access to perf_event_open(2) ? */
@@ -1676,10 +1676,10 @@ index 61e250cdd7c9..9ef3aa84f3c9 100644
rcu_core();
}
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
-index 1ad0e52487f6..2c20745f2597 100644
+index d6e1c90de570..03ea833c66a5 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
-@@ -10663,7 +10663,7 @@ static int newidle_balance(struct rq *this_rq, struct rq_flags *rf)
+@@ -10669,7 +10669,7 @@ static int newidle_balance(struct rq *this_rq, struct rq_flags *rf)
* run_rebalance_domains is triggered when needed from the scheduler tick.
* Also triggered for nohz idle balancing (with nohz_balancing_kick set).
*/
@@ -2162,7 +2162,7 @@ index 5c8b4485860d..0e26c225bb53 100644
mm->brk = brk;
goto success;
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 7ffa706e5c30..fcdc61e5014f 100644
+index 81cc7fdc9c8f..254def6fa5b3 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -70,6 +70,7 @@
@@ -2337,7 +2337,7 @@ index e258ffcfb0ef..6208d0d5ef15 100644
}
diff --git a/mm/slab_common.c b/mm/slab_common.c
-index 8f27ccf9f7f3..f7832da1a63a 100644
+index ec832904f408..c24e2f33c9fb 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -30,10 +30,10 @@
@@ -2363,10 +2363,10 @@ index 8f27ccf9f7f3..f7832da1a63a 100644
static int __init setup_slab_nomerge(char *str)
{
diff --git a/mm/slub.c b/mm/slub.c
-index 05a501b67cd5..e671c743f076 100644
+index f5fc44208bdc..d1021b7544a6 100644
--- a/mm/slub.c
+++ b/mm/slub.c
-@@ -127,6 +127,12 @@ static inline bool kmem_cache_debug(struct kmem_cache *s)
+@@ -128,6 +128,12 @@ static inline bool kmem_cache_debug(struct kmem_cache *s)
return kmem_cache_debug_flags(s, SLAB_DEBUG_FLAGS);
}
@@ -2379,7 +2379,7 @@ index 05a501b67cd5..e671c743f076 100644
void *fixup_red_left(struct kmem_cache *s, void *p)
{
if (kmem_cache_debug_flags(s, SLAB_RED_ZONE))
-@@ -432,6 +438,55 @@ static inline bool cmpxchg_double_slab(struct kmem_cache *s, struct page *page,
+@@ -433,6 +439,55 @@ static inline bool cmpxchg_double_slab(struct kmem_cache *s, struct page *page,
return false;
}
@@ -2435,7 +2435,7 @@ index 05a501b67cd5..e671c743f076 100644
#ifdef CONFIG_SLUB_DEBUG
static unsigned long object_map[BITS_TO_LONGS(MAX_OBJS_PER_PAGE)];
static DEFINE_SPINLOCK(object_map_lock);
-@@ -486,13 +541,13 @@ static inline void *restore_red_left(struct kmem_cache *s, void *p)
+@@ -487,13 +542,13 @@ static inline void *restore_red_left(struct kmem_cache *s, void *p)
* Debug settings:
*/
#if defined(CONFIG_SLUB_DEBUG_ON)
@@ -2453,7 +2453,7 @@ index 05a501b67cd5..e671c743f076 100644
/*
* slub is about to manipulate internal object metadata. This memory lies
-@@ -543,26 +598,6 @@ static void print_section(char *level, char *text, u8 *addr,
+@@ -544,26 +599,6 @@ static void print_section(char *level, char *text, u8 *addr,
metadata_access_disable();
}
@@ -2480,7 +2480,7 @@ index 05a501b67cd5..e671c743f076 100644
static struct track *get_track(struct kmem_cache *s, void *object,
enum track_item alloc)
{
-@@ -570,6 +605,9 @@ static struct track *get_track(struct kmem_cache *s, void *object,
+@@ -571,6 +606,9 @@ static struct track *get_track(struct kmem_cache *s, void *object,
p = object + get_info_end(s);
@@ -2490,7 +2490,7 @@ index 05a501b67cd5..e671c743f076 100644
return p + alloc;
}
-@@ -711,6 +749,9 @@ static void print_trailer(struct kmem_cache *s, struct page *page, u8 *p)
+@@ -712,6 +750,9 @@ static void print_trailer(struct kmem_cache *s, struct page *page, u8 *p)
off = get_info_end(s);
@@ -2500,7 +2500,7 @@ index 05a501b67cd5..e671c743f076 100644
if (s->flags & SLAB_STORE_USER)
off += 2 * sizeof(struct track);
-@@ -819,8 +860,9 @@ static int check_bytes_and_report(struct kmem_cache *s, struct page *page,
+@@ -820,8 +861,9 @@ static int check_bytes_and_report(struct kmem_cache *s, struct page *page,
* Meta data starts here.
*
* A. Free pointer (if we cannot overwrite object on free)
@@ -2512,7 +2512,7 @@ index 05a501b67cd5..e671c743f076 100644
* one word if debugging is on to be able to detect writes
* before the word boundary.
*
-@@ -838,6 +880,9 @@ static int check_pad_bytes(struct kmem_cache *s, struct page *page, u8 *p)
+@@ -839,6 +881,9 @@ static int check_pad_bytes(struct kmem_cache *s, struct page *page, u8 *p)
{
unsigned long off = get_info_end(s); /* The end of info */
@@ -2522,7 +2522,7 @@ index 05a501b67cd5..e671c743f076 100644
if (s->flags & SLAB_STORE_USER)
/* We also have user information there */
off += 2 * sizeof(struct track);
-@@ -1558,6 +1603,8 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s,
+@@ -1559,6 +1604,8 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s,
object = next;
next = get_freepointer(s, object);
@@ -2531,7 +2531,7 @@ index 05a501b67cd5..e671c743f076 100644
if (slab_want_init_on_free(s)) {
/*
* Clear the object and the metadata, but don't touch
-@@ -1568,8 +1615,12 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s,
+@@ -1569,8 +1616,12 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s,
: 0;
memset((char *)object + s->inuse, 0,
s->size - s->inuse - rsize);
@@ -2545,7 +2545,7 @@ index 05a501b67cd5..e671c743f076 100644
/* If object's reuse doesn't have to be delayed */
if (!slab_free_hook(s, object)) {
/* Move object to the new freelist */
-@@ -1577,6 +1628,18 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s,
+@@ -1578,6 +1629,18 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s,
*head = object;
if (!*tail)
*tail = object;
@@ -2564,7 +2564,7 @@ index 05a501b67cd5..e671c743f076 100644
}
} while (object != old_tail);
-@@ -1590,8 +1653,9 @@ static void *setup_object(struct kmem_cache *s, struct page *page,
+@@ -1591,8 +1654,9 @@ static void *setup_object(struct kmem_cache *s, struct page *page,
void *object)
{
setup_object_debug(s, page, object);
@@ -2575,7 +2575,7 @@ index 05a501b67cd5..e671c743f076 100644
kasan_unpoison_object_data(s, object);
s->ctor(object);
kasan_poison_object_data(s, object);
-@@ -2882,8 +2946,28 @@ static __always_inline void *slab_alloc_node(struct kmem_cache *s,
+@@ -2883,8 +2947,28 @@ static __always_inline void *slab_alloc_node(struct kmem_cache *s,
maybe_wipe_obj_freeptr(s, object);
@@ -2605,7 +2605,7 @@ index 05a501b67cd5..e671c743f076 100644
slab_post_alloc_hook(s, objcg, gfpflags, 1, &object);
-@@ -3272,7 +3356,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
+@@ -3273,7 +3357,7 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
void **p)
{
struct kmem_cache_cpu *c;
@@ -2614,7 +2614,7 @@ index 05a501b67cd5..e671c743f076 100644
struct obj_cgroup *objcg = NULL;
/* memcg and kmem_cache debug support */
-@@ -3322,11 +3406,35 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
+@@ -3323,11 +3407,35 @@ int kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t size,
local_irq_enable();
/* Clear memory outside IRQ disabled fastpath loop */
@@ -2652,7 +2652,7 @@ index 05a501b67cd5..e671c743f076 100644
}
/* memcg and kmem_cache debug support */
-@@ -3360,9 +3468,9 @@ EXPORT_SYMBOL(kmem_cache_alloc_bulk);
+@@ -3361,9 +3469,9 @@ EXPORT_SYMBOL(kmem_cache_alloc_bulk);
* and increases the number of allocations possible without having to
* take the list_lock.
*/
@@ -2665,7 +2665,7 @@ index 05a501b67cd5..e671c743f076 100644
/*
* Calculate the order of allocation given an slab object size.
-@@ -3530,6 +3638,7 @@ static void early_kmem_cache_node_alloc(int node)
+@@ -3531,6 +3639,7 @@ static void early_kmem_cache_node_alloc(int node)
init_object(kmem_cache_node, n, SLUB_RED_ACTIVE);
init_tracking(kmem_cache_node, n);
#endif
@@ -2673,8 +2673,8 @@ index 05a501b67cd5..e671c743f076 100644
n = kasan_kmalloc(kmem_cache_node, n, sizeof(struct kmem_cache_node),
GFP_KERNEL);
page->freelist = get_freepointer(kmem_cache_node, n);
-@@ -3710,6 +3819,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
- s->offset = ALIGN(freepointer_area / 2, sizeof(void *));
+@@ -3705,6 +3814,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
+ s->offset = ALIGN_DOWN(s->object_size / 2, sizeof(void *));
}
+ if (IS_ENABLED(CONFIG_SLAB_CANARY))
@@ -2683,7 +2683,7 @@ index 05a501b67cd5..e671c743f076 100644
#ifdef CONFIG_SLUB_DEBUG
if (flags & SLAB_STORE_USER)
/*
-@@ -3783,6 +3895,10 @@ static int kmem_cache_open(struct kmem_cache *s, slab_flags_t flags)
+@@ -3778,6 +3890,10 @@ static int kmem_cache_open(struct kmem_cache *s, slab_flags_t flags)
#ifdef CONFIG_SLAB_FREELIST_HARDENED
s->random = get_random_long();
#endif
@@ -2694,7 +2694,7 @@ index 05a501b67cd5..e671c743f076 100644
if (!calculate_sizes(s, -1))
goto error;
-@@ -4056,6 +4172,8 @@ void __check_heap_object(const void *ptr, unsigned long n, struct page *page,
+@@ -4051,6 +4167,8 @@ void __check_heap_object(const void *ptr, unsigned long n, struct page *page,
offset -= s->red_left_pad;
}
@@ -2703,7 +2703,7 @@ index 05a501b67cd5..e671c743f076 100644
/* Allow address range falling entirely within usercopy region. */
if (offset >= s->useroffset &&
offset - s->useroffset <= s->usersize &&
-@@ -4089,7 +4207,11 @@ size_t __ksize(const void *object)
+@@ -4084,7 +4202,11 @@ size_t __ksize(const void *object)
page = virt_to_head_page(object);
if (unlikely(!PageSlab(page))) {
@@ -2715,7 +2715,7 @@ index 05a501b67cd5..e671c743f076 100644
return page_size(page);
}
-@@ -4880,7 +5002,7 @@ enum slab_stat_type {
+@@ -4875,7 +4997,7 @@ enum slab_stat_type {
#define SO_TOTAL (1 << SL_TOTAL)
#ifdef CONFIG_MEMCG
@@ -2771,10 +2771,10 @@ index 4ddb6e186dd5..62ed34dfceb7 100644
unsigned long arch_mmap_rnd(void)
diff --git a/net/core/dev.c b/net/core/dev.c
-index 2f17a4ac82f0..223c111f31ab 100644
+index 0c9ce36afc8c..c77d2c765b03 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4869,7 +4869,7 @@ int netif_rx_any_context(struct sk_buff *skb)
+@@ -4870,7 +4870,7 @@ int netif_rx_any_context(struct sk_buff *skb)
}
EXPORT_SYMBOL(netif_rx_any_context);
@@ -2783,7 +2783,7 @@ index 2f17a4ac82f0..223c111f31ab 100644
{
struct softnet_data *sd = this_cpu_ptr(&softnet_data);
-@@ -6819,7 +6819,7 @@ static int napi_poll(struct napi_struct *n, struct list_head *repoll)
+@@ -6838,7 +6838,7 @@ static int napi_poll(struct napi_struct *n, struct list_head *repoll)
return work;
}
diff --git a/sys-kernel/linux-sources-redcore-lts/linux-sources-redcore-lts-5.10.40.ebuild b/sys-kernel/linux-sources-redcore-lts/linux-sources-redcore-lts-5.10.47.ebuild
index 7dac91e2..7dac91e2 100644
--- a/sys-kernel/linux-sources-redcore-lts/linux-sources-redcore-lts-5.10.40.ebuild
+++ b/sys-kernel/linux-sources-redcore-lts/linux-sources-redcore-lts-5.10.47.ebuild