diff --git a/0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch b/0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch
index cd00074..618bb18 100644
--- a/0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch
+++ b/0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch
@@ -39,10 +39,10 @@ diff --git a/init/Kconfig b/init/Kconfig
index ddcbefe535e9e7..f05715cf89afa6 100644
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1235,6 +1235,22 @@ config USER_NS
-
+@@ -1241,6 +1241,22 @@
+
If unsure, say N.
-
+
+config USER_NS_UNPRIVILEGED
+ bool "Allow unprivileged users to create namespaces"
+ default y
@@ -69,7 +69,7 @@ index 35a3beff140b6d..b013ab5ee88fe3 100644
@@ -99,6 +99,10 @@
#include <linux/bpf.h>
#include <linux/sched/mm.h>
-
+
+#ifdef CONFIG_USER_NS
+#include <linux/user_namespace.h>
+#endif
@@ -77,10 +77,10 @@ index 35a3beff140b6d..b013ab5ee88fe3 100644
#include <asm/pgalloc.h>
#include <linux/uaccess.h>
#include <asm/mmu_context.h>
-@@ -1992,6 +1996,10 @@ static __latent_entropy struct task_struct *copy_process(
+@@ -2008,6 +2012,10 @@
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
return ERR_PTR(-EINVAL);
-
+
+ if ((clone_flags & CLONE_NEWUSER) && !unprivileged_userns_clone)
+ if (!capable(CAP_SYS_ADMIN))
+ return ERR_PTR(-EPERM);
@@ -88,10 +88,10 @@ index 35a3beff140b6d..b013ab5ee88fe3 100644
/*
* Thread groups must share signals as well, and detached threads
* can only be started up within the thread group.
-@@ -3110,6 +3118,12 @@ int ksys_unshare(unsigned long unshare_flags)
+@@ -3161,6 +3169,12 @@
if (unshare_flags & CLONE_NEWNS)
unshare_flags |= CLONE_FS;
-
+
+ if ((unshare_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) {
+ err = -EPERM;
+ if (!capable(CAP_SYS_ADMIN))
@@ -105,17 +105,17 @@ diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 830aaf8ca08ee0..af4c0806bd8e84 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
-@@ -91,6 +91,9 @@
- #if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT)
- #include <linux/lockdep.h>
+@@ -89,6 +89,9 @@
+ #ifdef CONFIG_PERF_EVENTS
+ static const int six_hundred_forty_kb = 640 * 1024;
#endif
+#ifdef CONFIG_USER_NS
+#include <linux/user_namespace.h>
+#endif
-
- #if defined(CONFIG_SYSCTL)
-
-@@ -1803,6 +1806,15 @@ static struct ctl_table kern_table[] = {
+
+
+ static const int ngroups_max = NGROUPS_MAX;
+@@ -1649,6 +1652,15 @@
.mode = 0644,
.proc_handler = proc_dointvec,
},
diff --git a/0103-drm_i915_psr_Use_full_update_In_case_of_area_calculation_fails.patch b/0103-drm_i915_psr_Use_full_update_In_case_of_area_calculation_fails.patch
index b7cedda..28bf5d4 100644
--- a/0103-drm_i915_psr_Use_full_update_In_case_of_area_calculation_fails.patch
+++ b/0103-drm_i915_psr_Use_full_update_In_case_of_area_calculation_fails.patch
@@ -32,7 +32,7 @@ diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/dis
index 06db407e2749f7..fecdaaeac39e08 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
-@@ -1685,6 +1685,7 @@ static bool psr2_sel_fetch_pipe_state_supported(const struct intel_crtc_state *c
+@@ -1695,6 +1695,7 @@
int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{
@@ -40,10 +40,10 @@ index 06db407e2749f7..fecdaaeac39e08 100644
struct intel_crtc_state *crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
struct drm_rect pipe_clip = { .x1 = 0, .y1 = -1, .x2 = INT_MAX, .y2 = -1 };
struct intel_plane_state *new_plane_state, *old_plane_state;
-@@ -1770,6 +1771,19 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
- clip_area_update(&pipe_clip, &damaged_area);
+@@ -1785,6 +1786,19 @@
+ clip_area_update(&pipe_clip, &damaged_area, &crtc_state->pipe_src);
}
-
+
+ /*
+ * TODO: For now we are just using full update in case
+ * selective fetch area calculation fails. To optimize this we
@@ -59,3 +59,4 @@ index 06db407e2749f7..fecdaaeac39e08 100644
+
if (full_update)
goto skip_sel_fetch_set_loop;
+
diff --git a/0104-drm_i915_Ensure_damage_clip_area_is_within_pipe_area.patch b/0104-drm_i915_Ensure_damage_clip_area_is_within_pipe_area.patch
index db3f5d3..239711d 100644
--- a/0104-drm_i915_Ensure_damage_clip_area_is_within_pipe_area.patch
+++ b/0104-drm_i915_Ensure_damage_clip_area_is_within_pipe_area.patch
@@ -30,9 +30,9 @@ diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/dis
index fecdaaeac39e08..36356893c7caf3 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
-@@ -1618,8 +1618,12 @@ static void psr2_man_trk_ctl_calc(struct intel_crtc_state *crtc_state,
+@@ -1624,8 +1624,12 @@
}
-
+
static void clip_area_update(struct drm_rect *overlap_damage_area,
- struct drm_rect *damage_area)
+ struct drm_rect *damage_area,
@@ -44,7 +44,7 @@ index fecdaaeac39e08..36356893c7caf3 100644
if (overlap_damage_area->y1 == -1) {
overlap_damage_area->y1 = damage_area->y1;
overlap_damage_area->y2 = damage_area->y2;
-@@ -1709,7 +1713,8 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
+@@ -1715,7 +1719,8 @@
*/
for_each_oldnew_intel_plane_in_state(state, plane, old_plane_state,
new_plane_state, i) {
@@ -53,8 +53,8 @@ index fecdaaeac39e08..36356893c7caf3 100644
+ .x2 = INT_MAX };
struct drm_atomic_helper_damage_iter iter;
struct drm_rect clip;
-
-@@ -1736,20 +1741,23 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
+
+@@ -1742,20 +1747,23 @@
if (old_plane_state->uapi.visible) {
damaged_area.y1 = old_plane_state->uapi.dst.y1;
damaged_area.y2 = old_plane_state->uapi.dst.y2;
@@ -62,7 +62,7 @@ index fecdaaeac39e08..36356893c7caf3 100644
+ clip_area_update(&pipe_clip, &damaged_area,
+ &crtc_state->pipe_src);
}
-
+
if (new_plane_state->uapi.visible) {
damaged_area.y1 = new_plane_state->uapi.dst.y1;
damaged_area.y2 = new_plane_state->uapi.dst.y2;
@@ -80,8 +80,8 @@ index fecdaaeac39e08..36356893c7caf3 100644
+ &crtc_state->pipe_src);
continue;
}
-
-@@ -1760,7 +1768,8 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
+
+@@ -1766,7 +1774,8 @@
&new_plane_state->uapi);
drm_atomic_for_each_plane_damage(&iter, &clip) {
if (drm_rect_intersect(&clip, &src))
@@ -89,14 +89,14 @@ index fecdaaeac39e08..36356893c7caf3 100644
+ clip_area_update(&damaged_area, &clip,
+ &crtc_state->pipe_src);
}
-
+
if (damaged_area.y1 == -1)
-@@ -1768,7 +1777,7 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
-
+@@ -1774,7 +1783,7 @@
+
damaged_area.y1 += new_plane_state->uapi.dst.y1 - src.y1;
damaged_area.y2 += new_plane_state->uapi.dst.y1 - src.y1;
- clip_area_update(&pipe_clip, &damaged_area);
+ clip_area_update(&pipe_clip, &damaged_area, &crtc_state->pipe_src);
}
-
+
/*
diff --git a/0105-mm_vmscan_fix_extreme_overreclaim_and_swap_floods.patch b/0105-mm_vmscan_fix_extreme_overreclaim_and_swap_floods.patch
index ae01710..8a8e868 100644
--- a/0105-mm_vmscan_fix_extreme_overreclaim_and_swap_floods.patch
+++ b/0105-mm_vmscan_fix_extreme_overreclaim_and_swap_floods.patch
@@ -87,7 +87,7 @@ diff --git a/mm/vmscan.c b/mm/vmscan.c
index f7d9a683e3a7d3..1cc0c666678782 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
-@@ -2897,8 +2897,8 @@ static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
+@@ -2955,8 +2955,8 @@
enum lru_list lru;
unsigned long nr_reclaimed = 0;
unsigned long nr_to_reclaim = sc->nr_to_reclaim;
@@ -97,7 +97,7 @@ index f7d9a683e3a7d3..1cc0c666678782 100644
get_scan_count(lruvec, sc, nr);
-@@ -2916,8 +2916,8 @@ static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
+@@ -2974,8 +2974,8 @@
* abort proportional reclaim if either the file or anon lru has already
* dropped to zero at the first pass.
*/
@@ -108,7 +108,7 @@ index f7d9a683e3a7d3..1cc0c666678782 100644
blk_start_plug(&plug);
while (nr[LRU_INACTIVE_ANON] || nr[LRU_ACTIVE_FILE] ||
-@@ -2937,7 +2937,7 @@ static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
+@@ -2995,7 +2995,7 @@
cond_resched();
@@ -117,7 +117,7 @@ index f7d9a683e3a7d3..1cc0c666678782 100644
continue;
/*
-@@ -2988,8 +2988,6 @@ static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
+@@ -3046,8 +3046,6 @@
nr_scanned = targets[lru] - nr[lru];
nr[lru] = targets[lru] * (100 - percentage) / 100;
nr[lru] -= min(nr[lru], nr_scanned);
diff --git a/0301-revert-fbcon-remove-now-unusued-softback_lines-cursor-argument.patch b/0301-revert-fbcon-remove-now-unusued-softback_lines-cursor-argument.patch
index c126888..c49ee3f 100644
--- a/0301-revert-fbcon-remove-now-unusued-softback_lines-cursor-argument.patch
+++ b/0301-revert-fbcon-remove-now-unusued-softback_lines-cursor-argument.patch
@@ -27,21 +27,21 @@
src = vc->vc_font.data + ((c & charmask) * (w * vc->vc_font.height));
--- b/drivers/video/fbdev/core/fbcon.c
+++ a/drivers/video/fbdev/core/fbcon.c
-@@ -394,7 +394,7 @@
+@@ -377,7 +377,7 @@
c = scr_readw((u16 *) vc->vc_pos);
mode = (!ops->cursor_flash || ops->cursor_state.enable) ?
CM_ERASE : CM_DRAW;
-+ ops->cursor(vc, info, mode, 0, get_color(vc, info, c, 1),
- ops->cursor(vc, info, mode, get_color(vc, info, c, 1),
++ ops->cursor(vc, info, mode, 0, get_color(vc, info, c, 1),
get_color(vc, info, c, 0));
console_unlock();
- }
-@@ -1345,7 +1345,7 @@
- ops->cursor_flash = (mode == CM_ERASE) ? 0 : 1;
+@@ -1327,7 +1327,7 @@
+ if (!ops->cursor)
+ return;
-+ ops->cursor(vc, info, mode, 0, get_color(vc, info, c, 1),
- ops->cursor(vc, info, mode, get_color(vc, info, c, 1),
++ ops->cursor(vc, info, mode, 0, get_color(vc, info, c, 1),
get_color(vc, info, c, 0));
}
diff --git a/0302-revert-fbcon-remove-no-op-fbcon_set_origin.patch b/0302-revert-fbcon-remove-no-op-fbcon_set_origin.patch
index 6491c54..71c2ced 100644
--- a/0302-revert-fbcon-remove-no-op-fbcon_set_origin.patch
+++ b/0302-revert-fbcon-remove-no-op-fbcon_set_origin.patch
@@ -1,6 +1,6 @@
--- b/drivers/video/fbdev/core/fbcon.c
+++ a/drivers/video/fbdev/core/fbcon.c
-@@ -163,6 +163,8 @@
+@@ -165,6 +165,8 @@
#define advance_row(p, delta) (unsigned short *)((unsigned long)(p) + (delta) * vc->vc_size_row)
@@ -9,7 +9,7 @@
static int fbcon_cursor_noblink;
#define divides(a, b) ((!(a) || (b)%(a)) ? 0 : 1)
-@@ -2633,6 +2635,11 @@
+@@ -2648,6 +2650,11 @@
}
}
@@ -21,9 +21,9 @@
void fbcon_suspended(struct fb_info *info)
{
struct vc_data *vc = NULL;
-@@ -3103,6 +3110,7 @@
+@@ -3170,6 +3177,7 @@
+ .con_font_get = fbcon_get_font,
.con_font_default = fbcon_set_def_font,
- .con_font_copy = fbcon_copy_font,
.con_set_palette = fbcon_set_palette,
+ .con_set_origin = fbcon_set_origin,
.con_invert_region = fbcon_invert_region,
diff --git a/0303-revert-fbcon-remove-soft-scrollback-code.patch b/0303-revert-fbcon-remove-soft-scrollback-code.patch
index 491fbe0..fa34545 100644
--- a/0303-revert-fbcon-remove-soft-scrollback-code.patch
+++ b/0303-revert-fbcon-remove-soft-scrollback-code.patch
@@ -1,6 +1,6 @@
--- b/drivers/video/fbdev/core/fbcon.c
+++ a/drivers/video/fbdev/core/fbcon.c
-@@ -124,6 +124,12 @@ static int logo_lines;
+@@ -124,6 +124,12 @@
/* logo_shown is an index to vc_cons when >= 0; otherwise follows FBCON_LOGO
enums. */
static int logo_shown = FBCON_LOGO_CANSHOW;
@@ -13,7 +13,7 @@
/* console mappings */
static unsigned int first_fb_vc;
static unsigned int last_fb_vc = MAX_NR_CONSOLES - 1;
-@@ -163,6 +169,8 @@ static int margin_color;
+@@ -163,6 +169,8 @@
static const struct consw fb_con;
@@ -22,7 +22,7 @@
#define advance_row(p, delta) (unsigned short *)((unsigned long)(p) + (delta) * vc->vc_size_row)
static int fbcon_set_origin(struct vc_data *);
-@@ -347,6 +355,18 @@ static int get_color(struct vc_data *vc,
+@@ -347,6 +355,18 @@
return color;
}
@@ -41,7 +41,7 @@
static void fb_flashcursor(struct work_struct *work)
{
struct fbcon_ops *ops = container_of(work, struct fbcon_ops, cursor_work.work);
-@@ -379,7 +399,7 @@ static void fb_flashcursor(struct work_s
+@@ -379,7 +399,7 @@
c = scr_readw((u16 *) vc->vc_pos);
mode = (!ops->cursor_flash || ops->cursor_state.enable) ?
CM_ERASE : CM_DRAW;
@@ -50,7 +50,7 @@
get_color(vc, info, c, 0));
console_unlock();
-@@ -419,7 +439,13 @@ static int __init fb_console_setup(char
+@@ -419,7 +439,13 @@
}
if (!strncmp(options, "scrollback:", 11)) {
@@ -65,7 +65,7 @@
continue;
}
-@@ -959,6 +985,31 @@ static const char *fbcon_startup(void)
+@@ -959,6 +985,31 @@
set_blitting_type(vc, info);
@@ -97,7 +97,7 @@
/* Setup default font */
if (!p->fontdata && !vc->vc_font.data) {
if (!fontname[0] || !(font = find_font(fontname)))
-@@ -1129,6 +1180,9 @@ static void fbcon_init(struct vc_data *v
+@@ -1129,6 +1180,9 @@
if (logo)
fbcon_prepare_logo(vc, info, cols, rows, new_cols, new_rows);
@@ -107,7 +107,7 @@
if (ops->rotate_font && ops->rotate_font(info, vc)) {
ops->rotate = FB_ROTATE_UR;
set_blitting_type(vc, info);
-@@ -1152,6 +1206,9 @@ static void fbcon_release_all(void)
+@@ -1152,6 +1206,9 @@
struct fb_info *info;
int i, j, mapped;
@@ -117,7 +117,7 @@
fbcon_for_each_registered_fb(i) {
mapped = 0;
info = fbcon_registered_fb[i];
-@@ -1312,6 +1369,7 @@ static void fbcon_cursor(struct vc_data
+@@ -1312,6 +1369,7 @@
{
struct fb_info *info = fbcon_info_from_console(vc->vc_num);
struct fbcon_ops *ops = info->fbcon_par;
@@ -125,7 +125,7 @@
int c = scr_readw((u16 *) vc->vc_pos);
ops->cur_blink_jiffies = msecs_to_jiffies(vc->vc_cur_blink_ms);
-@@ -1325,11 +1383,19 @@ static void fbcon_cursor(struct vc_data
+@@ -1325,11 +1383,19 @@
fbcon_add_cursor_work(info);
ops->cursor_flash = (mode == CM_ERASE) ? 0 : 1;
@@ -146,7 +146,7 @@
get_color(vc, info, c, 0));
}
-@@ -1399,6 +1465,8 @@ static void fbcon_set_disp(struct fb_inf
+@@ -1399,6 +1465,8 @@
if (con_is_visible(vc)) {
update_screen(vc);
@@ -155,7 +155,7 @@
}
}
-@@ -1536,6 +1604,99 @@ static __inline__ void ypan_down_redraw(
+@@ -1536,6 +1604,99 @@
scrollback_current = 0;
}
@@ -255,7 +255,7 @@
static void fbcon_redraw_move(struct vc_data *vc, struct fbcon_display *p,
int line, int count, int dy)
{
-@@ -1740,6 +1901,31 @@ static void fbcon_bmove(struct vc_data *
+@@ -1740,6 +1901,31 @@
p->vrows - p->yscroll);
}
@@ -287,7 +287,7 @@
static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b,
enum con_scroll dir, unsigned int count)
{
-@@ -1762,6 +1948,8 @@ static bool fbcon_scroll(struct vc_data
+@@ -1762,6 +1948,8 @@
case SM_UP:
if (count > vc->vc_rows) /* Maximum realistic size */
count = vc->vc_rows;
@@ -296,7 +296,7 @@
switch (fb_scrollmode(p)) {
case SCROLL_MOVE:
fbcon_redraw_blit(vc, info, p, t, b - t - count,
-@@ -2076,6 +2264,14 @@ static int fbcon_switch(struct vc_data *
+@@ -2076,6 +2264,14 @@
info = fbcon_info_from_console(vc->vc_num);
ops = info->fbcon_par;
@@ -311,8 +311,8 @@
if (logo_shown >= 0) {
struct vc_data *conp2 = vc_cons[logo_shown].d;
-@@ -2406,6 +2602,9 @@ static int fbcon_do_set_font(struct vc_d
- int resize;
+@@ -2406,6 +2602,9 @@
+ int resize, ret, old_userfont, old_width, old_height, old_charcount;
char *old_data = NULL;
+ if (con_is_visible(vc) && softback_lines)
@@ -321,16 +321,16 @@
resize = (w != vc->vc_font.width) || (h != vc->vc_font.height);
if (p->userfont)
old_data = vc->vc_font.data;
-@@ -2428,6 +2627,8 @@ static int fbcon_do_set_font(struct vc_d
+@@ -2434,6 +2633,8 @@
cols /= w;
rows /= h;
- vc_resize(vc, cols, rows);
+ ret = vc_resize(vc, cols, rows);
+ if (con_is_visible(vc) && softback_buf)
+ fbcon_update_softback(vc);
+ if (ret)
+ goto err_out;
} else if (con_is_visible(vc)
- && vc->vc_mode == KD_TEXT) {
- fbcon_clear_margins(vc, 0);
-@@ -2582,7 +2783,19 @@ static void fbcon_set_palette(struct vc_
+@@ -2605,7 +2806,19 @@
static u16 *fbcon_screen_pos(const struct vc_data *vc, int offset)
{
@@ -351,7 +351,7 @@
}
static unsigned long fbcon_getxy(struct vc_data *vc, unsigned long pos,
-@@ -2596,7 +2809,22 @@ static unsigned long fbcon_getxy(struct
+@@ -2619,7 +2832,22 @@
x = offset % vc->vc_cols;
y = offset / vc->vc_cols;
@@ -374,7 +374,7 @@
} else {
/* Should not happen */
x = y = 0;
-@@ -2624,11 +2852,106 @@ static void fbcon_invert_region(struct v
+@@ -2647,11 +2875,106 @@
a = ((a) & 0x88ff) | (((a) & 0x7000) >> 4) |
(((a) & 0x0700) << 4);
scr_writew(a, p++);
@@ -481,7 +481,7 @@
return 0;
}
-@@ -2692,6 +3015,8 @@ static void fbcon_modechanged(struct fb_
+@@ -2715,6 +3038,8 @@
fbcon_set_palette(vc, color_table);
update_screen(vc);
@@ -490,7 +490,7 @@
}
}
-@@ -3154,6 +3479,7 @@ static const struct consw fb_con = {
+@@ -3177,6 +3502,7 @@
.con_font_get = fbcon_get_font,
.con_font_default = fbcon_set_def_font,
.con_set_palette = fbcon_set_palette,
diff --git a/0401-bootsplash.patch b/0401-bootsplash.patch
index 04b3278..898c05e 100644
--- a/0401-bootsplash.patch
+++ b/0401-bootsplash.patch
@@ -622,15 +622,15 @@ diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index 04612f938bab..9a39a6fcfe98 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
-@@ -80,6 +80,7 @@
+@@ -79,6 +79,7 @@
#include <asm/irq.h>
#include "fbcon.h"
+#include <linux/bootsplash.h>
- #ifdef FBCONDEBUG
- # define DPRINTK(fmt, args...) printk(KERN_DEBUG "%s: " fmt, __func__ , ## args)
-@@ -542,6 +543,8 @@ static int do_fbcon_takeover(int show_logo)
+ /*
+ * FIXME: Locking
+@@ -555,6 +556,8 @@
for (i = first_fb_vc; i <= last_fb_vc; i++)
con2fb_map[i] = info_idx;
@@ -639,7 +639,7 @@ index 04612f938bab..9a39a6fcfe98 100644
err = do_take_over_console(&fb_con, first_fb_vc, last_fb_vc,
fbcon_is_default);
-@@ -661,6 +664,9 @@ static void set_blitting_type(struct vc_data *vc, struct fb_info *info)
+@@ -678,6 +681,9 @@
else {
fbcon_set_rotation(info);
fbcon_set_bitops(ops);
@@ -649,7 +649,7 @@ index 04612f938bab..9a39a6fcfe98 100644
}
}
-@@ -683,6 +689,19 @@ static void set_blitting_type(struct vc_data *vc, struct fb_info *info)
+@@ -700,6 +706,19 @@
ops->p = &fb_display[vc->vc_num];
fbcon_set_rotation(info);
fbcon_set_bitops(ops);
@@ -669,8 +669,8 @@ index 04612f938bab..9a39a6fcfe98 100644
}
static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount)
-@@ -2184,6 +2203,9 @@ static int fbcon_switch(struct vc_data *vc)
- info = registered_fb[con2fb_map[vc->vc_num]];
+@@ -2264,6 +2283,9 @@
+ info = fbcon_info_from_console(vc->vc_num);
ops = info->fbcon_par;
+ if (bootsplash_would_render_now())
@@ -683,7 +683,7 @@ diff --git a/drivers/video/fbdev/core/fbcon.h b/drivers/video/fbdev/core/fbcon.h
index 18f3ac144237..45f94347fe5e 100644
--- a/drivers/video/fbdev/core/fbcon.h
+++ b/drivers/video/fbdev/core/fbcon.h
-@@ -214,6 +214,11 @@ static inline int attr_col_ec(int shift, struct vc_data *vc,
+@@ -219,6 +219,11 @@ static inline int attr_col_ec(int shift, struct vc_data *vc,
#define SCROLL_REDRAW 0x004
#define SCROLL_PAN_REDRAW 0x005
diff --git a/0406-bootsplash.patch b/0406-bootsplash.patch
index d6c6db6..405d4a4 100644
--- a/0406-bootsplash.patch
+++ b/0406-bootsplash.patch
@@ -2,7 +2,7 @@ diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 2ebaba16f785..416735ab6dc1 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
-@@ -105,6 +105,7 @@
+@@ -106,6 +106,7 @@
#include <linux/ctype.h>
#include <linux/bsearch.h>
#include <linux/gcd.h>
@@ -10,7 +10,7 @@ index 2ebaba16f785..416735ab6dc1 100644
#define MAX_NR_CON_DRIVER 16
-@@ -4235,6 +4236,7 @@ void do_unblank_screen(int leaving_gfx)
+@@ -4435,6 +4436,7 @@ void do_unblank_screen(int leaving_gfx)
}
console_blanked = 0;
diff --git a/0407-bootsplash.patch b/0407-bootsplash.patch
index 3f82eb0..d7a4ec4 100644
--- a/0407-bootsplash.patch
+++ b/0407-bootsplash.patch
@@ -11,7 +11,7 @@ index f4166263bb3a..a248429194bb 100644
/*
* Exported functions/variables
*/
-@@ -1413,6 +1415,28 @@ static void kbd_keycode(unsigned int key
+@@ -1435,6 +1437,28 @@ static void kbd_keycode(unsigned int key
}
#endif
diff --git a/0408-bootsplash.patch b/0408-bootsplash.patch
index 8a3b715..06c7d29 100644
--- a/0408-bootsplash.patch
+++ b/0408-bootsplash.patch
@@ -2,7 +2,7 @@ diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
index 3ffc1ce29023..bc6a24c9dfa8 100644
--- a/drivers/tty/sysrq.c
+++ b/drivers/tty/sysrq.c
-@@ -49,6 +49,7 @@
+@@ -51,6 +51,7 @@
#include <linux/syscalls.h>
#include <linux/of.h>
#include <linux/rcupdate.h>
@@ -10,7 +10,7 @@ index 3ffc1ce29023..bc6a24c9dfa8 100644
#include <asm/ptrace.h>
#include <asm/irq_regs.h>
-@@ -104,6 +105,8 @@ static void sysrq_handle_SAK(int key)
+@@ -120,6 +121,8 @@ static void sysrq_handle_SAK(int key)
{
struct work_struct *SAK_work = &vc_cons[fg_console].SAK_work;
schedule_work(SAK_work);
diff --git a/0409-bootsplash.patch b/0409-bootsplash.patch
index add68e7..f8a2713 100644
--- a/0409-bootsplash.patch
+++ b/0409-bootsplash.patch
@@ -2,7 +2,7 @@ diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index 9a39a6fcfe98..8a9c67e1c5d8 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
-@@ -1343,6 +1343,16 @@ static void fbcon_cursor(struct vc_data *vc, int mode)
+@@ -1391,6 +1391,16 @@ static void fbcon_cursor(struct vc_data *vc, int mode)
int y;
int c = scr_readw((u16 *) vc->vc_pos);
diff --git a/PKGBUILD b/PKGBUILD
index 4b6af0a..8085d35 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,12 +5,12 @@
# Thomas Baechler <thomas@archlinux.org>
_basekernel=6.0
-_rc=rc2
+_rc=rc3
_basever=${_basekernel//.}
_kernelname=-MANJARO
pkgbase=linux${_basever}
pkgname=("$pkgbase" "$pkgbase-headers")
-pkgver=6.0.0rc2
+pkgver=6.0.0rc3
pkgrel=1
arch=('x86_64')
url="https://www.kernel.org/"
@@ -46,23 +46,23 @@ source=("https://git.kernel.org/torvalds/t/linux-${_basekernel}-${_rc}.tar.gz"
'0412-bootsplash.patch'
'0413-bootsplash.gitpatch')
-sha256sums=('529d24f9bef65074ff1b6e8d703981b3dbc0c328b3ba3112abca55b4da27dd81'
+sha256sums=('9fbca4f2bbea82311c877377497174b5521f33daf3b0e29cacec92601780e2b3'
'e292cca649691917adfc25dbcdba199435c5b7e2e8fbb29348d0978066326f61'
- '05f04019d4a2ee072238c32860fa80d673687d84d78ef436ae9332b6fb788467'
+ '45816b17c5d4bf12687682f41974170594727fc905dd442153def8b75208c127'
'02b035fa598f9e281b9b5b645809d1bcacfa189c733dc291b4305c77cde52960'
- '2c2c72e5f72cf306d38f91869619c6f808b5f694341eeba398de1b0919bf755b'
- '2b11905b63b05b25807dd64757c779da74dd4c37e36d3f7a46485b1ee5a9d326'
- '94a8538251ad148f1025cc3de446ce64f73dc32b01815426fb159c722e8fa5bc'
- 'd56c82caa5216a0eb6342dedad460115ec7bd1343f88c558e52aacbb5d8134e3'
- '57ce3e0ba6bf400d36358a9d30589905f6e51bc037d7165f5a2658b6bdc86793'
+ '3aa9a7c4e507e7e9fd3f23d817f502166a8c12766f2b36aaf23fc7fc642e3c45'
+ '4400b7ae118b8269b272e81cfa8ed0dc8ae018566b9a1817f1568374248cc9dc'
+ '1f93e4473bdb5b618d64b548e2b45487d1619dc30a40244d35f1360607968e4b'
+ '9d38d339a0335e6be8827473ca8d409613f125c0e5f90703d5c6c76baf66cda1'
+ '76602af3e66edfb089ad28bf2a13e9ae5494b14ddd4f1f9065267e2a4d733aeb'
'a26b3abaec1cd5731bc8431fecb8b3eb0ba47c1992e614643320df14ff859556'
'8c1c880f2caa9c7ae43281a35410203887ea8eae750fe8d360d0c8bf80fcc6e0'
'1144d51e5eb980fceeec16004f3645ed04a60fac9e0c7cf88a15c5c1e7a4b89e'
'dd4b69def2efacf4a6c442202ad5cb93d492c03886d7c61de87696e5a83e2846'
- '028b07f0c954f70ca37237b62e04103e81f7c658bb8bd65d7d3c2ace301297dc'
- 'a0c548c5703d25ae34b57931f1162de8b18937e676e5791a0f039922090881e7'
- '8dbb5ab3cb99e48d97d4e2f2e3df5d0de66f3721b4f7fd94a708089f53245c77'
- 'a7aefeacf22c600fafd9e040a985a913643095db7272c296b77a0a651c6a140a'
+ 'e309fe179488f748305df261681758436ec40333e68309824382b1926b130730'
+ '9ac5a3eb480cb456f8c712f19fc6bea59d4976ba2f57629883bd4ae5eb025825'
+ '99f6cce4429eb22a26ab003c1785df40ac644a8b0d66acfee63f77a5e6a0ccb1'
+ '3ff8ff5a2db16a2cfe9cf8ad93f2a136a6173c4d26b59529aa71f09b3d55421e'
'cf06d959a53eff6d3c287327f1cb2a68346d725cfd1370bc7482a0edc75692fc'
'27471eee564ca3149dd271b0817719b5565a9594dc4d884fe3dc51a5f03832bc'
'b6e695edbe349505a89c98054a54443acd90830a312cd035393c5c0a624e45c0'