Update to 6.6.57

This commit is contained in:
Aleksey Samoilov 2024-10-19 15:30:26 +04:00
parent d586a553d3
commit 0298ecfc5f
24 changed files with 749 additions and 416 deletions

6
debian/changelog vendored
View file

@ -1,3 +1,9 @@
linux (6.6.57-1~tileos) bookworm; urgency=medium
* New upstream release
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sat, 19 Oct 2024 13:32:24 +0400
linux (6.6.33-2~tileos) bookworm; urgency=medium
* Refresh patches

View file

@ -25,9 +25,11 @@ format to detect missing firmware.
drivers/base/firmware_loader/main.c | 17 ++++++++---------
2 files changed, 9 insertions(+), 10 deletions(-)
--- a/drivers/base/firmware_loader/fallback.c
+++ b/drivers/base/firmware_loader/fallback.c
@@ -558,7 +558,7 @@ static int fw_load_from_user_helper(stru
Index: linux/drivers/base/firmware_loader/fallback.c
===================================================================
--- linux.orig/drivers/base/firmware_loader/fallback.c
+++ linux/drivers/base/firmware_loader/fallback.c
@@ -135,7 +135,7 @@ static int fw_load_from_user_helper(stru
if (opt_flags & FW_OPT_NOWAIT) {
timeout = usermodehelper_read_lock_wait(timeout);
if (!timeout) {
@ -36,9 +38,11 @@ format to detect missing firmware.
name);
return -EBUSY;
}
--- a/drivers/base/firmware_loader/main.c
+++ b/drivers/base/firmware_loader/main.c
@@ -535,18 +535,15 @@ fw_get_filesystem_firmware(struct device
Index: linux/drivers/base/firmware_loader/main.c
===================================================================
--- linux.orig/drivers/base/firmware_loader/main.c
+++ linux/drivers/base/firmware_loader/main.c
@@ -550,18 +550,15 @@ fw_get_filesystem_firmware(struct device
file_size_ptr,
READING_FIRMWARE);
if (rc < 0) {
@ -61,7 +65,7 @@ format to detect missing firmware.
if (decompress) {
dev_dbg(device, "f/w decompressing %s\n",
fw_priv->fw_name);
@@ -559,8 +556,6 @@ fw_get_filesystem_firmware(struct device
@@ -574,8 +571,6 @@ fw_get_filesystem_firmware(struct device
continue;
}
} else {
@ -70,7 +74,7 @@ format to detect missing firmware.
if (!fw_priv->data)
fw_priv->data = buffer;
fw_priv->size = size;
@@ -570,6 +565,10 @@ fw_get_filesystem_firmware(struct device
@@ -585,6 +580,10 @@ fw_get_filesystem_firmware(struct device
}
__putname(path);

View file

@ -23,10 +23,10 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
create mode 100644 arch/alpha/lib/stycpy.S
create mode 100644 arch/alpha/lib/styncpy.S
diff --git a/arch/alpha/lib/Makefile b/arch/alpha/lib/Makefile
index 1cc74f7b50ef..8f1c32a25a40 100644
--- a/arch/alpha/lib/Makefile
+++ b/arch/alpha/lib/Makefile
Index: linux/arch/alpha/lib/Makefile
===================================================================
--- linux.orig/arch/alpha/lib/Makefile
+++ linux/arch/alpha/lib/Makefile
@@ -45,17 +45,3 @@ AFLAGS___remlu.o = -DREM -DINTSIZE
$(addprefix $(obj)/,__divqu.o __remqu.o __divlu.o __remlu.o): \
$(src)/$(ev6-y)divide.S FORCE
@ -45,11 +45,10 @@ index 1cc74f7b50ef..8f1c32a25a40 100644
-$(obj)/styncpy.o: $(obj)/strncpy.o $(obj)/$(ev67-y)strncat.o \
- $(obj)/$(ev6-y)stxncpy.o FORCE
- $(call if_changed,ld)
diff --git a/arch/alpha/lib/stycpy.S b/arch/alpha/lib/stycpy.S
new file mode 100644
index 000000000000..b4376834c91f
Index: linux/arch/alpha/lib/stycpy.S
===================================================================
--- /dev/null
+++ b/arch/alpha/lib/stycpy.S
+++ linux/arch/alpha/lib/stycpy.S
@@ -0,0 +1,8 @@
+#include "strcpy.S"
+#ifdef CONFIG_ALPHA_EV6
@ -59,11 +58,10 @@ index 000000000000..b4376834c91f
+#include "strcat.S"
+#include "stxcpy.S"
+#endif
diff --git a/arch/alpha/lib/styncpy.S b/arch/alpha/lib/styncpy.S
new file mode 100644
index 000000000000..c393f816ff98
Index: linux/arch/alpha/lib/styncpy.S
===================================================================
--- /dev/null
+++ b/arch/alpha/lib/styncpy.S
+++ linux/arch/alpha/lib/styncpy.S
@@ -0,0 +1,8 @@
+#include "strncpy.S"
+#ifdef CONFIG_ALPHA_EV6

View file

@ -17,11 +17,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/arm/mm/flush.c | 1 +
1 file changed, 1 insertion(+)
Index: debian-kernel/arch/arm/mm/flush.c
Index: linux/arch/arm/mm/flush.c
===================================================================
--- debian-kernel.orig/arch/arm/mm/flush.c
+++ debian-kernel/arch/arm/mm/flush.c
@@ -292,6 +292,7 @@ void __sync_icache_dcache(pte_t pteval)
--- linux.orig/arch/arm/mm/flush.c
+++ linux/arch/arm/mm/flush.c
@@ -310,6 +310,7 @@ void __sync_icache_dcache(pte_t pteval)
if (pte_exec(pteval))
__flush_icache_all();
}

View file

@ -28,7 +28,7 @@ Index: linux/arch/arm64/kernel/acpi.c
===================================================================
--- linux.orig/arch/arm64/kernel/acpi.c
+++ linux/arch/arm64/kernel/acpi.c
@@ -32,6 +32,8 @@
@@ -34,6 +34,8 @@
#include <asm/daifflags.h>
#include <asm/smp_plat.h>
@ -37,7 +37,7 @@ Index: linux/arch/arm64/kernel/acpi.c
int acpi_noirq = 1; /* skip ACPI IRQ initialization */
int acpi_disabled = 1;
EXPORT_SYMBOL(acpi_disabled);
@@ -178,6 +180,33 @@ out:
@@ -173,6 +175,33 @@ out:
}
/*
@ -71,7 +71,7 @@ Index: linux/arch/arm64/kernel/acpi.c
* acpi_boot_table_init() called from setup_arch(), always.
* 1. find RSDP and get its address, and then find XSDT
* 2. extract all tables and checksums them all
@@ -232,11 +261,14 @@ done:
@@ -226,11 +255,14 @@ done:
if (acpi_disabled) {
if (earlycon_acpi_spcr_enable)
early_init_dt_scan_chosen_stdout();

View file

@ -28,7 +28,7 @@ Index: linux/arch/powerpc/boot/Makefile
===================================================================
--- linux.orig/arch/powerpc/boot/Makefile
+++ linux/arch/powerpc/boot/Makefile
@@ -70,7 +70,7 @@ BOOTCFLAGS += -fno-stack-protector
@@ -99,7 +99,7 @@ BOOTCFLAGS += -fno-stack-protector
endif
BOOTCFLAGS += -include $(srctree)/include/linux/compiler_attributes.h

View file

@ -53,7 +53,7 @@ Index: linux/arch/sh/boot/compressed/Makefile
===================================================================
--- linux.orig/arch/sh/boot/compressed/Makefile
+++ linux/arch/sh/boot/compressed/Makefile
@@ -36,7 +36,7 @@ endif
@@ -29,7 +29,7 @@ endif
ccflags-remove-$(CONFIG_MCOUNT) += -pg
@ -62,7 +62,7 @@ Index: linux/arch/sh/boot/compressed/Makefile
-T $(obj)/../../kernel/vmlinux.lds
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
@@ -60,7 +60,7 @@ $(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.b
@@ -53,7 +53,7 @@ $(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.b
OBJCOPYFLAGS += -R .empty_zero_page

View file

@ -13,9 +13,11 @@ Fixes: 52ffe0ff02fc ("Support x86(32-bit) cross platform callchain unwind.")
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/tools/perf/arch/x86/util/unwind-libunwind.c
+++ b/tools/perf/arch/x86/util/unwind-libunwind.c
@@ -66,7 +66,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum)
Index: linux/tools/perf/arch/x86/util/unwind-libunwind.c
===================================================================
--- linux.orig/tools/perf/arch/x86/util/unwind-libunwind.c
+++ linux/tools/perf/arch/x86/util/unwind-libunwind.c
@@ -67,7 +67,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum)
break;
default:
pr_err("unwind: invalid reg id %d\n", regnum);
@ -24,7 +26,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
}
return id;
@@ -106,7 +106,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum)
@@ -107,7 +107,7 @@ int LIBUNWIND__ARCH_REG_ID(int regnum)
break;
default:
pr_err("unwind: invalid reg id %d\n", regnum);

View file

@ -14,9 +14,11 @@ We need to allow it to be autoloaded on this model only, and then
un-blacklist it in udev.
---
--- a/drivers/video/fbdev/via/via-core.c
+++ b/drivers/video/fbdev/via/via-core.c
@@ -695,7 +695,14 @@ static const struct pci_device_id via_pc
Index: linux/drivers/video/fbdev/via/via-core.c
===================================================================
--- linux.orig/drivers/video/fbdev/via/via-core.c
+++ linux/drivers/video/fbdev/via/via-core.c
@@ -700,7 +700,14 @@ static const struct pci_device_id via_pc
.driver_data = UNICHROME_VX900 },
{ }
};

View file

@ -18,7 +18,7 @@ Index: linux/kernel/fork.c
===================================================================
--- linux.orig/kernel/fork.c
+++ linux/kernel/fork.c
@@ -108,6 +108,11 @@
@@ -110,6 +110,11 @@
#define CREATE_TRACE_POINTS
#include <trace/events/task.h>
@ -30,7 +30,7 @@ Index: linux/kernel/fork.c
/*
* Minimum number of threads to boot the kernel
@@ -2008,6 +2013,10 @@ static __latent_entropy struct task_stru
@@ -2257,6 +2262,10 @@ __latent_entropy struct task_struct *cop
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
return ERR_PTR(-EINVAL);
@ -41,7 +41,7 @@ Index: linux/kernel/fork.c
/*
* Thread groups must share signals as well, and detached threads
* can only be started up within the thread group.
@@ -3166,6 +3175,12 @@ int ksys_unshare(unsigned long unshare_f
@@ -3409,6 +3418,12 @@ int ksys_unshare(unsigned long unshare_f
if (unshare_flags & CLONE_NEWNS)
unshare_flags |= CLONE_FS;
@ -58,7 +58,7 @@ Index: linux/kernel/sysctl.c
===================================================================
--- linux.orig/kernel/sysctl.c
+++ linux/kernel/sysctl.c
@@ -136,6 +136,10 @@ static enum sysctl_writes_mode sysctl_wr
@@ -135,6 +135,10 @@ static enum sysctl_writes_mode sysctl_wr
int sysctl_legacy_va_layout;
#endif
@ -69,7 +69,7 @@ Index: linux/kernel/sysctl.c
#endif /* CONFIG_SYSCTL */
/*
@@ -1659,6 +1663,15 @@ static struct ctl_table kern_table[] = {
@@ -1623,6 +1627,15 @@ static struct ctl_table kern_table[] = {
.mode = 0644,
.proc_handler = proc_dointvec,
},

View file

@ -19,9 +19,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/ieee802154/socket.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
--- a/net/ieee802154/socket.c
+++ b/net/ieee802154/socket.c
@@ -1122,4 +1122,4 @@ module_init(af_ieee802154_init);
Index: linux/net/ieee802154/socket.c
===================================================================
--- linux.orig/net/ieee802154/socket.c
+++ linux/net/ieee802154/socket.c
@@ -1137,4 +1137,4 @@ module_init(af_ieee802154_init);
module_exit(af_ieee802154_remove);
MODULE_LICENSE("GPL");

View file

@ -17,9 +17,11 @@ https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git/commit/?id
fs/btrfs/disk-io.c | 8 ++++++++
1 file changed, 8 insertions(+)
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -3832,6 +3832,15 @@ int __cold open_ctree(struct super_block *sb,
Index: linux/fs/btrfs/disk-io.c
===================================================================
--- linux.orig/fs/btrfs/disk-io.c
+++ linux/fs/btrfs/disk-io.c
@@ -3503,6 +3503,15 @@ int __cold open_ctree(struct super_block
btrfs_set_and_info(fs_info, SSD, "enabling ssd optimizations");
}

View file

@ -11,9 +11,11 @@ userland (modem-manager) to override this with a modprobe.conf file
once it's ready to speak MBIM.
---
--- a/drivers/net/usb/cdc_ncm.c
+++ b/drivers/net/usb/cdc_ncm.c
@@ -53,11 +53,7 @@
Index: linux/drivers/net/usb/cdc_ncm.c
===================================================================
--- linux.orig/drivers/net/usb/cdc_ncm.c
+++ linux/drivers/net/usb/cdc_ncm.c
@@ -54,11 +54,7 @@
#include <linux/usb/cdc.h>
#include <linux/usb/cdc_ncm.h>

View file

@ -13,9 +13,11 @@ Therefore disable auto-loading.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/net/dccp/ipv4.c
+++ b/net/dccp/ipv4.c
@@ -1071,8 +1071,8 @@ module_exit(dccp_v4_exit);
Index: linux/net/dccp/ipv4.c
===================================================================
--- linux.orig/net/dccp/ipv4.c
+++ linux/net/dccp/ipv4.c
@@ -1096,8 +1096,8 @@ module_exit(dccp_v4_exit);
* values directly, Also cover the case where the protocol is not specified,
* i.e. net-pf-PF_INET-proto-0-type-SOCK_DCCP
*/
@ -26,9 +28,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Arnaldo Carvalho de Melo <acme@mandriva.com>");
MODULE_DESCRIPTION("DCCP - Datagram Congestion Controlled Protocol");
--- a/net/dccp/ipv6.c
+++ b/net/dccp/ipv6.c
@@ -1125,8 +1125,8 @@ module_exit(dccp_v6_exit);
Index: linux/net/dccp/ipv6.c
===================================================================
--- linux.orig/net/dccp/ipv6.c
+++ linux/net/dccp/ipv6.c
@@ -1172,8 +1172,8 @@ module_exit(dccp_v6_exit);
* values directly, Also cover the case where the protocol is not specified,
* i.e. net-pf-PF_INET6-proto-0-type-SOCK_DCCP
*/

View file

@ -10,9 +10,11 @@ do about that. So warn and taint the kernel if this feature is
actually used.
---
--- a/fs/notify/fanotify/fanotify_user.c
+++ b/fs/notify/fanotify/fanotify_user.c
@@ -1661,6 +1661,14 @@ static int do_fanotify_mark(int fanotify
Index: linux/fs/notify/fanotify/fanotify_user.c
===================================================================
--- linux.orig/fs/notify/fanotify/fanotify_user.c
+++ linux/fs/notify/fanotify/fanotify_user.c
@@ -1732,6 +1732,14 @@ static int do_fanotify_mark(int fanotify
umask = FANOTIFY_EVENT_FLAGS;
}

View file

@ -7,9 +7,11 @@ Forwarded: not-needed
This reverts commit 561ec64ae67ef25cac8d72bb9c4bfc955edfd415
('VFS: don't do protected {sym,hard}links by default').
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1020,8 +1020,8 @@ static inline void put_link(struct namei
Index: linux/fs/namei.c
===================================================================
--- linux.orig/fs/namei.c
+++ linux/fs/namei.c
@@ -1028,8 +1028,8 @@ static inline void put_link(struct namei
path_put(&last->link);
}

View file

@ -13,9 +13,11 @@ maintained or widely used. Therefore disable auto-loading.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -1986,7 +1986,7 @@ module_init(ax25_init);
Index: linux/net/ax25/af_ax25.c
===================================================================
--- linux.orig/net/ax25/af_ax25.c
+++ linux/net/ax25/af_ax25.c
@@ -2066,7 +2066,7 @@ module_init(ax25_init);
MODULE_AUTHOR("Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>");
MODULE_DESCRIPTION("The amateur radio AX.25 link layer protocol");
MODULE_LICENSE("GPL");
@ -24,9 +26,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
static void __exit ax25_exit(void)
{
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -1486,7 +1486,7 @@ MODULE_PARM_DESC(nr_ndevs, "number of NE
Index: linux/net/netrom/af_netrom.c
===================================================================
--- linux.orig/net/netrom/af_netrom.c
+++ linux/net/netrom/af_netrom.c
@@ -1498,7 +1498,7 @@ MODULE_PARM_DESC(nr_ndevs, "number of NE
MODULE_AUTHOR("Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>");
MODULE_DESCRIPTION("The amateur radio NET/ROM network and transport layer protocol");
MODULE_LICENSE("GPL");
@ -35,9 +39,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
static void __exit nr_exit(void)
{
--- a/net/rose/af_rose.c
+++ b/net/rose/af_rose.c
@@ -1577,7 +1577,7 @@ MODULE_PARM_DESC(rose_ndevs, "number of
Index: linux/net/rose/af_rose.c
===================================================================
--- linux.orig/net/rose/af_rose.c
+++ linux/net/rose/af_rose.c
@@ -1630,7 +1630,7 @@ MODULE_PARM_DESC(rose_ndevs, "number of
MODULE_AUTHOR("Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>");
MODULE_DESCRIPTION("The amateur radio ROSE network layer protocol");
MODULE_LICENSE("GPL");

View file

@ -19,16 +19,13 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/rds/af_rds.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/net/rds/af_rds.c b/net/rds/af_rds.c
index 98e0538..d8d4525 100644
--- a/net/rds/af_rds.c
+++ b/net/rds/af_rds.c
@@ -574,4 +574,4 @@ MODULE_DESCRIPTION("RDS: Reliable Datagram Sockets"
Index: linux/net/rds/af_rds.c
===================================================================
--- linux.orig/net/rds/af_rds.c
+++ linux/net/rds/af_rds.c
@@ -959,4 +959,4 @@ MODULE_DESCRIPTION("RDS: Reliable Datagr
" v" DRV_VERSION " (" DRV_RELDATE ")");
MODULE_VERSION(DRV_VERSION);
MODULE_LICENSE("Dual BSD/GPL");
-MODULE_ALIAS_NETPROTO(PF_RDS);
+/* MODULE_ALIAS_NETPROTO(PF_RDS); */
--
1.7.2.3

View file

@ -6,8 +6,10 @@ Forwarded: not-needed
We want to provide the option of autogrouping but without enabling
it by default yet.
--- a/kernel/sched/autogroup.c
+++ b/kernel/sched/autogroup.c
Index: linux/kernel/sched/autogroup.c
===================================================================
--- linux.orig/kernel/sched/autogroup.c
+++ linux/kernel/sched/autogroup.c
@@ -4,7 +4,7 @@
* Auto-group scheduling implementation:
*/

View file

@ -20,9 +20,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
security/Kconfig | 9 +++++++++
3 files changed, 22 insertions(+)
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -1387,6 +1387,11 @@ int perf_cpu_time_max_percent_handler(st
Index: linux/include/linux/perf_event.h
===================================================================
--- linux.orig/include/linux/perf_event.h
+++ linux/include/linux/perf_event.h
@@ -1586,6 +1586,11 @@ int perf_cpu_time_max_percent_handler(st
int perf_event_max_stack_handler(struct ctl_table *table, int write,
void *buffer, size_t *lenp, loff_t *ppos);
@ -34,9 +36,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
/* Access to perf_event_open(2) syscall. */
#define PERF_SECURITY_OPEN 0
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -415,8 +415,13 @@ static struct kmem_cache *perf_event_cac
Index: linux/kernel/events/core.c
===================================================================
--- linux.orig/kernel/events/core.c
+++ linux/kernel/events/core.c
@@ -419,8 +419,13 @@ static struct kmem_cache *perf_event_cac
* 0 - disallow raw tracepoint access for unpriv
* 1 - disallow cpu events for unpriv
* 2 - disallow kernel profiling for unpriv
@ -50,7 +54,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
/* Minimum for 512 kiB + 1 user control page */
int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
@@ -12325,6 +12330,9 @@ SYSCALL_DEFINE5(perf_event_open,
@@ -12478,6 +12483,9 @@ SYSCALL_DEFINE5(perf_event_open,
if (err)
return err;
@ -60,11 +64,13 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
/* Do we allow access to perf_event_open(2) ? */
err = security_perf_event_open(&attr, PERF_SECURITY_OPEN);
if (err)
--- a/security/Kconfig
+++ b/security/Kconfig
@@ -19,6 +19,15 @@ config SECURITY_DMESG_RESTRICT
Index: linux/security/Kconfig
===================================================================
--- linux.orig/security/Kconfig
+++ linux/security/Kconfig
@@ -51,6 +51,15 @@ config PROC_MEM_NO_FORCE
If you are unsure how to answer this question, answer N.
endchoice
+config SECURITY_PERF_EVENTS_RESTRICT
+ bool "Restrict unprivileged use of performance events"

View file

@ -13,9 +13,11 @@ corresponding to "on", "off", and "on,intgpu_off".
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/drivers/iommu/intel/Kconfig
+++ b/drivers/iommu/intel/Kconfig
@@ -56,14 +56,25 @@ config INTEL_IOMMU_SVM
Index: linux/drivers/iommu/intel/Kconfig
===================================================================
--- linux.orig/drivers/iommu/intel/Kconfig
+++ linux/drivers/iommu/intel/Kconfig
@@ -55,14 +55,25 @@ config INTEL_IOMMU_SVM
to access DMA resources through process address space by
means of a Process Address Space ID (PASID).
@ -47,9 +49,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
config INTEL_IOMMU_BROKEN_GFX_WA
bool "Workaround broken graphics drivers (going away soon)"
depends on BROKEN && X86
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -283,14 +283,14 @@ static LIST_HEAD(dmar_satc_units);
Index: linux/drivers/iommu/intel/iommu.c
===================================================================
--- linux.orig/drivers/iommu/intel/iommu.c
+++ linux/drivers/iommu/intel/iommu.c
@@ -288,14 +288,14 @@ static LIST_HEAD(dmar_satc_units);
static void device_block_translation(struct device *dev);
static void intel_iommu_domain_free(struct iommu_domain *domain);
@ -66,7 +70,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
static int intel_iommu_superpage = 1;
static int iommu_identity_mapping;
static int iommu_skip_te_disable;
@@ -328,6 +328,7 @@ static int __init intel_iommu_setup(char
@@ -333,6 +333,7 @@ static int __init intel_iommu_setup(char
while (*str) {
if (!strncmp(str, "on", 2)) {
dmar_disabled = 0;

View file

@ -20,9 +20,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/iommu/intel/iommu.c | 14 ++++++++++++++
2 files changed, 16 insertions(+)
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -2053,6 +2053,8 @@
Index: linux/Documentation/admin-guide/kernel-parameters.txt
===================================================================
--- linux.orig/Documentation/admin-guide/kernel-parameters.txt
+++ linux/Documentation/admin-guide/kernel-parameters.txt
@@ -2129,6 +2129,8 @@
bypassed by not enabling DMAR with this option. In
this case, gfx device will use physical address for
DMA.
@ -31,9 +33,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
strict [Default Off]
Deprecated, equivalent to iommu.strict=1.
sp_off [Default Off]
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -35,6 +35,9 @@
Index: linux/drivers/iommu/intel/iommu.c
===================================================================
--- linux.orig/drivers/iommu/intel/iommu.c
+++ linux/drivers/iommu/intel/iommu.c
@@ -36,6 +36,9 @@
#define CONTEXT_SIZE VTD_PAGE_SIZE
#define IS_GFX_DEVICE(pdev) ((pdev->class >> 16) == PCI_BASE_CLASS_DISPLAY)
@ -43,7 +47,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
#define IS_USB_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB)
#define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA)
#define IS_AZALIA(pdev) ((pdev)->vendor == 0x8086 && (pdev)->device == 0x3a3e)
@@ -293,12 +296,14 @@ int intel_iommu_enabled = 0;
@@ -292,12 +295,14 @@ int intel_iommu_enabled = 0;
EXPORT_SYMBOL_GPL(intel_iommu_enabled);
static int dmar_map_gfx = 1;
@ -58,7 +62,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
const struct iommu_ops intel_iommu_ops;
@@ -337,6 +342,9 @@ static int __init intel_iommu_setup(char
@@ -336,6 +341,9 @@ static int __init intel_iommu_setup(char
} else if (!strncmp(str, "igfx_off", 8)) {
dmar_map_gfx = 0;
pr_info("Disable GFX device mapping\n");
@ -68,7 +72,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
} else if (!strncmp(str, "forcedac", 8)) {
pr_warn("intel_iommu=forcedac deprecated; use iommu.forcedac instead\n");
iommu_dma_forcedac = true;
@@ -2582,6 +2590,9 @@ static int device_def_domain_type(struct
@@ -2545,6 +2553,9 @@ static int device_def_domain_type(struct
if ((iommu_identity_mapping & IDENTMAP_GFX) && IS_GFX_DEVICE(pdev))
return IOMMU_DOMAIN_IDENTITY;
@ -78,7 +82,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
}
return 0;
@@ -2985,6 +2996,9 @@ static int __init init_dmars(void)
@@ -2852,6 +2863,9 @@ static int __init init_dmars(void)
if (!dmar_map_gfx)
iommu_identity_mapping |= IDENTMAP_GFX;

View file

@ -13,9 +13,11 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
mm/memtest.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
--- a/mm/memtest.c
+++ b/mm/memtest.c
@@ -26,6 +26,10 @@ static u64 patterns[] __initdata = {
Index: linux/mm/memtest.c
===================================================================
--- linux.orig/mm/memtest.c
+++ linux/mm/memtest.c
@@ -31,6 +31,10 @@ static u64 patterns[] __initdata = {
static void __init reserve_bad_mem(u64 pattern, phys_addr_t start_bad, phys_addr_t end_bad)
{