mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 18:19:02 +00:00
2454342e06
Deleted (upstreamed): generic/backport-5.15/610-v5.18-netfilter-flowtable-move-dst_check-to-packet-path.patch [1] generic/pending-5.15/704-00-netfilter-flowtable-fix-excessive-hw-offload-attempt.patch [2] generic/pending-5.15/704-01-netfilter-nft_flow_offload-skip-dst-neigh-lookup-for.patch [3] generic/pending-5.15/704-02-net-fix-dev_fill_forward_path-with-pppoe-bridge.patch [4] generic/pending-5.15/704-03-netfilter-nft_flow_offload-fix-offload-with-pppoe-vl.patch [5] Manually rebased: generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.42&id=88b937673b3552d54da20f648e61a123f4c1fa67 [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.42&id=5f4197a020c049a59ea7907c31f9ab037dcefefe [3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.42&id=7613dcaceee281973145588f4244f2f78ef85b7f [4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.42&id=f96b2e06721249ebf8da3254cfef29dcb6583948 [5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.42&id=b329889974aed47e1167c85653c07097013e01a7 Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
87 lines
2.8 KiB
Diff
87 lines
2.8 KiB
Diff
From 4899d3181465e16d548af03b7825c4b06e0f0e44 Mon Sep 17 00:00:00 2001
|
|
From: Dom Cobley <popcornmix@gmail.com>
|
|
Date: Thu, 28 Apr 2022 16:11:34 +0100
|
|
Subject: [PATCH] Revert "fbdev: Hot-unplug firmware fb devices on
|
|
forced removal"
|
|
|
|
This reverts commit c894ac44786cfed383a6c6b20c1bfb12eb96018a.
|
|
---
|
|
drivers/video/fbdev/core/fbmem.c | 29 +++--------------------------
|
|
include/linux/fb.h | 1 -
|
|
2 files changed, 3 insertions(+), 27 deletions(-)
|
|
|
|
--- a/drivers/video/fbdev/core/fbmem.c
|
|
+++ b/drivers/video/fbdev/core/fbmem.c
|
|
@@ -25,7 +25,6 @@
|
|
#include <linux/init.h>
|
|
#include <linux/linux_logo.h>
|
|
#include <linux/proc_fs.h>
|
|
-#include <linux/platform_device.h>
|
|
#include <linux/seq_file.h>
|
|
#include <linux/console.h>
|
|
#include <linux/kmod.h>
|
|
@@ -1593,36 +1592,18 @@ static void do_remove_conflicting_frameb
|
|
/* check all firmware fbs and kick off if the base addr overlaps */
|
|
for_each_registered_fb(i) {
|
|
struct apertures_struct *gen_aper;
|
|
- struct device *device;
|
|
|
|
if (!(registered_fb[i]->flags & FBINFO_MISC_FIRMWARE))
|
|
continue;
|
|
|
|
gen_aper = registered_fb[i]->apertures;
|
|
- device = registered_fb[i]->device;
|
|
if (fb_do_apertures_overlap(gen_aper, a) ||
|
|
(primary && gen_aper && gen_aper->count &&
|
|
gen_aper->ranges[0].base == VGA_FB_PHYS)) {
|
|
|
|
printk(KERN_INFO "fb%d: switching to %s from %s\n",
|
|
i, name, registered_fb[i]->fix.id);
|
|
-
|
|
- /*
|
|
- * If we kick-out a firmware driver, we also want to remove
|
|
- * the underlying platform device, such as simple-framebuffer,
|
|
- * VESA, EFI, etc. A native driver will then be able to
|
|
- * allocate the memory range.
|
|
- *
|
|
- * If it's not a platform device, at least print a warning. A
|
|
- * fix would add code to remove the device from the system.
|
|
- */
|
|
- if (dev_is_platform(device)) {
|
|
- registered_fb[i]->forced_out = true;
|
|
- platform_device_unregister(to_platform_device(device));
|
|
- } else {
|
|
- pr_warn("fb%d: cannot remove device\n", i);
|
|
- do_unregister_framebuffer(registered_fb[i]);
|
|
- }
|
|
+ do_unregister_framebuffer(registered_fb[i]);
|
|
}
|
|
}
|
|
}
|
|
@@ -1949,13 +1930,9 @@ EXPORT_SYMBOL(register_framebuffer);
|
|
void
|
|
unregister_framebuffer(struct fb_info *fb_info)
|
|
{
|
|
- bool forced_out = fb_info->forced_out;
|
|
-
|
|
- if (!forced_out)
|
|
- mutex_lock(®istration_lock);
|
|
+ mutex_lock(®istration_lock);
|
|
do_unregister_framebuffer(fb_info);
|
|
- if (!forced_out)
|
|
- mutex_unlock(®istration_lock);
|
|
+ mutex_unlock(®istration_lock);
|
|
}
|
|
EXPORT_SYMBOL(unregister_framebuffer);
|
|
|
|
--- a/include/linux/fb.h
|
|
+++ b/include/linux/fb.h
|
|
@@ -502,7 +502,6 @@ struct fb_info {
|
|
} *apertures;
|
|
|
|
bool skip_vt_switch; /* no VT switch on suspend/resume required */
|
|
- bool forced_out; /* set when being removed by another driver */
|
|
};
|
|
|
|
static inline struct apertures_struct *alloc_apertures(unsigned int max_num) {
|