summaryrefslogtreecommitdiff
path: root/sys-kernel/linux-sources-redcore-lts/files/5.10-linux-hardened.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel/linux-sources-redcore-lts/files/5.10-linux-hardened.patch')
-rw-r--r--sys-kernel/linux-sources-redcore-lts/files/5.10-linux-hardened.patch76
1 files changed, 38 insertions, 38 deletions
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;
}