Ver código fonte

Update additional Debian patches for v5.11

Maximilian Luz 4 anos atrás
pai
commit
b672e7faf2

+ 129 - 0
pkg/debian/kernel/0001-Export-symbols-needed-by-Android-drivers.patch

@@ -0,0 +1,129 @@
+From 50229d157d311b63268eaccbfec669da0dbb516c Mon Sep 17 00:00:00 2001
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Mon, 7 Sep 2020 02:51:53 +0100
+Subject: [PATCH 1/2] Export symbols needed by Android drivers
+
+We want to enable use of the Android ashmem and binder drivers to
+support Anbox, but they should not be built-in as that would waste
+resources and increase security attack surface on systems that don't
+need them.
+
+Export the currently un-exported symbols they depend on.
+---
+ fs/file.c           | 1 +
+ kernel/fork.c       | 1 +
+ kernel/sched/core.c | 1 +
+ kernel/task_work.c  | 1 +
+ mm/memory.c         | 1 +
+ mm/shmem.c          | 1 +
+ security/security.c | 4 ++++
+ 7 files changed, 10 insertions(+)
+
+diff --git a/fs/file.c b/fs/file.c
+index dab120b71e44..ed2ec6ecc466 100644
+--- a/fs/file.c
++++ b/fs/file.c
+@@ -761,6 +761,7 @@ int close_fd_get_file(unsigned int fd, struct file **res)
+ 	*res = NULL;
+ 	return -ENOENT;
+ }
++EXPORT_SYMBOL(__close_fd_get_file);
+ 
+ void do_close_on_exec(struct files_struct *files)
+ {
+diff --git a/kernel/fork.c b/kernel/fork.c
+index d66cd1014211..ff215b3fdb15 100644
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -1120,6 +1120,7 @@ void mmput_async(struct mm_struct *mm)
+ 		schedule_work(&mm->async_put_work);
+ 	}
+ }
++EXPORT_SYMBOL_GPL(mmput_async);
+ #endif
+ 
+ /**
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index ff74fca39ed2..943239122b29 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -5575,6 +5575,7 @@ int can_nice(const struct task_struct *p, const int nice)
+ 	return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
+ 		capable(CAP_SYS_NICE));
+ }
++EXPORT_SYMBOL_GPL(can_nice);
+ 
+ #ifdef __ARCH_WANT_SYS_NICE
+ 
+diff --git a/kernel/task_work.c b/kernel/task_work.c
+index 9cde961875c0..5c8dea45d4f8 100644
+--- a/kernel/task_work.c
++++ b/kernel/task_work.c
+@@ -57,6 +57,7 @@ int task_work_add(struct task_struct *task, struct callback_head *work,
+ 
+ 	return 0;
+ }
++EXPORT_SYMBOL(task_work_add);
+ 
+ /**
+  * task_work_cancel - cancel a pending work added by task_work_add()
+diff --git a/mm/memory.c b/mm/memory.c
+index feff48e1465a..9e9b0fd92e38 100644
+--- a/mm/memory.c
++++ b/mm/memory.c
+@@ -1542,6 +1542,7 @@ void zap_page_range(struct vm_area_struct *vma, unsigned long start,
+ 	mmu_notifier_invalidate_range_end(&range);
+ 	tlb_finish_mmu(&tlb, start, range.end);
+ }
++EXPORT_SYMBOL_GPL(zap_page_range);
+ 
+ /**
+  * zap_page_range_single - remove user pages in a given range
+diff --git a/mm/shmem.c b/mm/shmem.c
+index 7c6b6d8f6c39..83151e1345e6 100644
+--- a/mm/shmem.c
++++ b/mm/shmem.c
+@@ -4287,6 +4287,7 @@ int shmem_zero_setup(struct vm_area_struct *vma)
+ 
+ 	return 0;
+ }
++EXPORT_SYMBOL_GPL(shmem_zero_setup);
+ 
+ /**
+  * shmem_read_mapping_page_gfp - read into page cache, using specified page allocation flags.
+diff --git a/security/security.c b/security/security.c
+index 7b09cfbae94f..5eaec62c51f2 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -727,24 +727,28 @@ int security_binder_set_context_mgr(struct task_struct *mgr)
+ {
+ 	return call_int_hook(binder_set_context_mgr, 0, mgr);
+ }
++EXPORT_SYMBOL_GPL(security_binder_set_context_mgr);
+ 
+ int security_binder_transaction(struct task_struct *from,
+ 				struct task_struct *to)
+ {
+ 	return call_int_hook(binder_transaction, 0, from, to);
+ }
++EXPORT_SYMBOL_GPL(security_binder_transaction);
+ 
+ int security_binder_transfer_binder(struct task_struct *from,
+ 				    struct task_struct *to)
+ {
+ 	return call_int_hook(binder_transfer_binder, 0, from, to);
+ }
++EXPORT_SYMBOL_GPL(security_binder_transfer_binder);
+ 
+ int security_binder_transfer_file(struct task_struct *from,
+ 				  struct task_struct *to, struct file *file)
+ {
+ 	return call_int_hook(binder_transfer_file, 0, from, to, file);
+ }
++EXPORT_SYMBOL_GPL(security_binder_transfer_file);
+ 
+ int security_ptrace_access_check(struct task_struct *child, unsigned int mode)
+ {
+-- 
+2.30.1
+

+ 33 - 30
pkg/debian/kernel/android-enable-building-ashmem-and-binder-as-modules.patch → pkg/debian/kernel/0002-android-Enable-building-ashmem-and-binder-as-modules.patch

@@ -1,7 +1,7 @@
+From e2a9a34af4fd99de652638bfc0365aba284b95f8 Mon Sep 17 00:00:00 2001
 From: Ben Hutchings <ben@decadent.org.uk>
 From: Ben Hutchings <ben@decadent.org.uk>
 Date: Fri, 22 Jun 2018 17:27:00 +0100
 Date: Fri, 22 Jun 2018 17:27:00 +0100
-Subject: android: Enable building ashmem and binder as modules
-Bug-Debian: https://bugs.debian.org/901492
+Subject: [PATCH 2/2] android: Enable building ashmem and binder as modules
 
 
 We want to enable use of the Android ashmem and binder drivers to
 We want to enable use of the Android ashmem and binder drivers to
 support Anbox, but they should not be built-in as that would waste
 support Anbox, but they should not be built-in as that would waste
@@ -21,10 +21,10 @@ need them.
  drivers/staging/android/ashmem.c | 3 +++
  drivers/staging/android/ashmem.c | 3 +++
  6 files changed, 12 insertions(+), 7 deletions(-)
  6 files changed, 12 insertions(+), 7 deletions(-)
 
 
-Index: debian-kernel/drivers/android/Kconfig
-===================================================================
---- debian-kernel.orig/drivers/android/Kconfig
-+++ debian-kernel/drivers/android/Kconfig
+diff --git a/drivers/android/Kconfig b/drivers/android/Kconfig
+index 53b22e26266c..f3c50236e8d1 100644
+--- a/drivers/android/Kconfig
++++ b/drivers/android/Kconfig
 @@ -9,7 +9,7 @@ config ANDROID
 @@ -9,7 +9,7 @@ config ANDROID
  if ANDROID
  if ANDROID
  
  
@@ -34,10 +34,10 @@ Index: debian-kernel/drivers/android/Kconfig
  	depends on MMU
  	depends on MMU
  	default n
  	default n
  	help
  	help
-Index: debian-kernel/drivers/android/Makefile
-===================================================================
---- debian-kernel.orig/drivers/android/Makefile
-+++ debian-kernel/drivers/android/Makefile
+diff --git a/drivers/android/Makefile b/drivers/android/Makefile
+index c9d3d0c99c25..55411d9a9c2a 100644
+--- a/drivers/android/Makefile
++++ b/drivers/android/Makefile
 @@ -1,6 +1,7 @@
 @@ -1,6 +1,7 @@
  # SPDX-License-Identifier: GPL-2.0-only
  # SPDX-License-Identifier: GPL-2.0-only
  ccflags-y += -I$(src)			# needed for trace events
  ccflags-y += -I$(src)			# needed for trace events
@@ -49,10 +49,10 @@ Index: debian-kernel/drivers/android/Makefile
 +binder_linux-y := binder.o binder_alloc.o
 +binder_linux-y := binder.o binder_alloc.o
 +binder_linux-$(CONFIG_ANDROID_BINDERFS)	+= binderfs.o
 +binder_linux-$(CONFIG_ANDROID_BINDERFS)	+= binderfs.o
 +binder_linux-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o
 +binder_linux-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o
-Index: debian-kernel/drivers/android/binder_alloc.c
-===================================================================
---- debian-kernel.orig/drivers/android/binder_alloc.c
-+++ debian-kernel/drivers/android/binder_alloc.c
+diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
+index 7caf74ad2405..9202a44bd55d 100644
+--- a/drivers/android/binder_alloc.c
++++ b/drivers/android/binder_alloc.c
 @@ -38,7 +38,7 @@ enum {
 @@ -38,7 +38,7 @@ enum {
  };
  };
  static uint32_t binder_alloc_debug_mask = BINDER_DEBUG_USER_ERROR;
  static uint32_t binder_alloc_debug_mask = BINDER_DEBUG_USER_ERROR;
@@ -62,10 +62,10 @@ Index: debian-kernel/drivers/android/binder_alloc.c
  		   uint, 0644);
  		   uint, 0644);
  
  
  #define binder_alloc_debug(mask, x...) \
  #define binder_alloc_debug(mask, x...) \
-Index: debian-kernel/drivers/staging/android/Kconfig
-===================================================================
---- debian-kernel.orig/drivers/staging/android/Kconfig
-+++ debian-kernel/drivers/staging/android/Kconfig
+diff --git a/drivers/staging/android/Kconfig b/drivers/staging/android/Kconfig
+index 70498adb1575..5c35653ed36d 100644
+--- a/drivers/staging/android/Kconfig
++++ b/drivers/staging/android/Kconfig
 @@ -4,7 +4,7 @@ menu "Android"
 @@ -4,7 +4,7 @@ menu "Android"
  if ANDROID
  if ANDROID
  
  
@@ -75,21 +75,21 @@ Index: debian-kernel/drivers/staging/android/Kconfig
  	depends on SHMEM
  	depends on SHMEM
  	help
  	help
  	  The ashmem subsystem is a new shared memory allocator, similar to
  	  The ashmem subsystem is a new shared memory allocator, similar to
-Index: debian-kernel/drivers/staging/android/Makefile
-===================================================================
---- debian-kernel.orig/drivers/staging/android/Makefile
-+++ debian-kernel/drivers/staging/android/Makefile
-@@ -3,4 +3,5 @@ ccflags-y += -I$(src)			# needed for tra
- 
- obj-y					+= ion/
+diff --git a/drivers/staging/android/Makefile b/drivers/staging/android/Makefile
+index e9a55a5e6529..60cb8eacc793 100644
+--- a/drivers/staging/android/Makefile
++++ b/drivers/staging/android/Makefile
+@@ -1,4 +1,5 @@
+ # SPDX-License-Identifier: GPL-2.0
+ ccflags-y += -I$(src)			# needed for trace events
  
  
 -obj-$(CONFIG_ASHMEM)			+= ashmem.o
 -obj-$(CONFIG_ASHMEM)			+= ashmem.o
 +obj-$(CONFIG_ASHMEM)			+= ashmem_linux.o
 +obj-$(CONFIG_ASHMEM)			+= ashmem_linux.o
 +ashmem_linux-y				+= ashmem.o
 +ashmem_linux-y				+= ashmem.o
-Index: debian-kernel/drivers/staging/android/ashmem.c
-===================================================================
---- debian-kernel.orig/drivers/staging/android/ashmem.c
-+++ debian-kernel/drivers/staging/android/ashmem.c
+diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c
+index 4789d36ddfd3..f86efd3da373 100644
+--- a/drivers/staging/android/ashmem.c
++++ b/drivers/staging/android/ashmem.c
 @@ -24,6 +24,7 @@
 @@ -24,6 +24,7 @@
  #include <linux/bitops.h>
  #include <linux/bitops.h>
  #include <linux/mutex.h>
  #include <linux/mutex.h>
@@ -98,9 +98,12 @@ Index: debian-kernel/drivers/staging/android/ashmem.c
  #include "ashmem.h"
  #include "ashmem.h"
  
  
  #define ASHMEM_NAME_PREFIX "dev/ashmem/"
  #define ASHMEM_NAME_PREFIX "dev/ashmem/"
-@@ -953,3 +954,5 @@ out:
+@@ -965,3 +966,5 @@ static int __init ashmem_init(void)
  	return ret;
  	return ret;
  }
  }
  device_initcall(ashmem_init);
  device_initcall(ashmem_init);
 +
 +
 +MODULE_LICENSE("GPL v2");
 +MODULE_LICENSE("GPL v2");
+-- 
+2.30.1
+

+ 0 - 193
pkg/debian/kernel/export-symbols-needed-by-android-drivers.patch

@@ -1,193 +0,0 @@
-From: Ben Hutchings <ben@decadent.org.uk>
-Date: Tue, 26 Jun 2018 16:59:01 +0100
-Subject: Export symbols needed by Android drivers
-Bug-Debian: https://bugs.debian.org/901492
-
-We want to enable use of the Android ashmem and binder drivers to
-support Anbox, but they should not be built-in as that would waste
-resources and increase security attack surface on systems that don't
-need them.
-
-Export the currently un-exported symbols they depend on.
-
----
- fs/file.c           | 5 +++++
- kernel/fork.c       | 1 +
- kernel/sched/core.c | 1 +
- kernel/signal.c     | 1 +
- kernel/task_work.c  | 1 +
- mm/memory.c         | 1 +
- mm/shmem.c          | 1 +
- mm/vmalloc.c        | 2 ++
- security/security.c | 4 ++++
- 9 files changed, 17 insertions(+)
-
-Index: debian-kernel/fs/file.c
-===================================================================
---- debian-kernel.orig/fs/file.c
-+++ debian-kernel/fs/file.c
-@@ -409,6 +409,7 @@ struct files_struct *get_files_struct(st
- 
- 	return files;
- }
-+EXPORT_SYMBOL_GPL(get_files_struct);
- 
- void put_files_struct(struct files_struct *files)
- {
-@@ -421,6 +422,7 @@ void put_files_struct(struct files_struc
- 		kmem_cache_free(files_cachep, files);
- 	}
- }
-+EXPORT_SYMBOL_GPL(put_files_struct);
- 
- void reset_files_struct(struct files_struct *files)
- {
-@@ -534,6 +536,7 @@ out:
- 	spin_unlock(&files->file_lock);
- 	return error;
- }
-+EXPORT_SYMBOL_GPL(__alloc_fd);
- 
- static int alloc_fd(unsigned start, unsigned flags)
- {
-@@ -612,6 +615,7 @@ void __fd_install(struct files_struct *f
- 	rcu_assign_pointer(fdt->fd[fd], file);
- 	rcu_read_unlock_sched();
- }
-+EXPORT_SYMBOL_GPL(__fd_install);
- 
- void fd_install(unsigned int fd, struct file *file)
- {
-@@ -676,6 +680,7 @@ out_unlock:
- 	*res = NULL;
- 	return -ENOENT;
- }
-+EXPORT_SYMBOL(__close_fd_get_file);
- 
- void do_close_on_exec(struct files_struct *files)
- {
-Index: debian-kernel/kernel/fork.c
-===================================================================
---- debian-kernel.orig/kernel/fork.c
-+++ debian-kernel/kernel/fork.c
-@@ -1131,6 +1131,7 @@ void mmput_async(struct mm_struct *mm)
- 		schedule_work(&mm->async_put_work);
- 	}
- }
-+EXPORT_SYMBOL_GPL(mmput_async);
- #endif
- 
- /**
-Index: debian-kernel/kernel/sched/core.c
-===================================================================
---- debian-kernel.orig/kernel/sched/core.c
-+++ debian-kernel/kernel/sched/core.c
-@@ -4667,6 +4667,7 @@ int can_nice(const struct task_struct *p
- 	return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
- 		capable(CAP_SYS_NICE));
- }
-+EXPORT_SYMBOL_GPL(can_nice);
- 
- #ifdef __ARCH_WANT_SYS_NICE
- 
-Index: debian-kernel/kernel/signal.c
-===================================================================
---- debian-kernel.orig/kernel/signal.c
-+++ debian-kernel/kernel/signal.c
-@@ -1396,6 +1396,7 @@ struct sighand_struct *__lock_task_sigha
- 
- 	return sighand;
- }
-+EXPORT_SYMBOL_GPL(__lock_task_sighand);
- 
- /*
-  * send signal info to all the members of a group
-Index: debian-kernel/kernel/task_work.c
-===================================================================
---- debian-kernel.orig/kernel/task_work.c
-+++ debian-kernel/kernel/task_work.c
-@@ -52,6 +52,7 @@ task_work_add(struct task_struct *task,
- 
- 	return 0;
- }
-+EXPORT_SYMBOL(task_work_add);
- 
- /**
-  * task_work_cancel - cancel a pending work added by task_work_add()
-Index: debian-kernel/mm/memory.c
-===================================================================
---- debian-kernel.orig/mm/memory.c
-+++ debian-kernel/mm/memory.c
-@@ -1367,6 +1367,7 @@ void zap_page_range(struct vm_area_struc
- 	mmu_notifier_invalidate_range_end(&range);
- 	tlb_finish_mmu(&tlb, start, range.end);
- }
-+EXPORT_SYMBOL_GPL(zap_page_range);
- 
- /**
-  * zap_page_range_single - remove user pages in a given range
-Index: debian-kernel/mm/shmem.c
-===================================================================
---- debian-kernel.orig/mm/shmem.c
-+++ debian-kernel/mm/shmem.c
-@@ -4158,6 +4158,7 @@ int shmem_zero_setup(struct vm_area_stru
- 
- 	return 0;
- }
-+EXPORT_SYMBOL_GPL(shmem_zero_setup);
- 
- /**
-  * shmem_read_mapping_page_gfp - read into page cache, using specified page allocation flags.
-Index: debian-kernel/mm/vmalloc.c
-===================================================================
---- debian-kernel.orig/mm/vmalloc.c
-+++ debian-kernel/mm/vmalloc.c
-@@ -1278,6 +1278,7 @@ overflow:
- 	kmem_cache_free(vmap_area_cachep, va);
- 	return ERR_PTR(-EBUSY);
- }
-+EXPORT_SYMBOL_GPL(map_kernel_range_noflush);
- 
- int register_vmap_purge_notifier(struct notifier_block *nb)
- {
-@@ -2147,6 +2148,7 @@ struct vm_struct *get_vm_area(unsigned l
- 				  NUMA_NO_NODE, GFP_KERNEL,
- 				  __builtin_return_address(0));
- }
-+EXPORT_SYMBOL_GPL(get_vm_area);
- 
- struct vm_struct *get_vm_area_caller(unsigned long size, unsigned long flags,
- 				const void *caller)
-Index: debian-kernel/security/security.c
-===================================================================
---- debian-kernel.orig/security/security.c
-+++ debian-kernel/security/security.c
-@@ -725,24 +725,28 @@ int security_binder_set_context_mgr(stru
- {
- 	return call_int_hook(binder_set_context_mgr, 0, mgr);
- }
-+EXPORT_SYMBOL_GPL(security_binder_set_context_mgr);
- 
- int security_binder_transaction(struct task_struct *from,
- 				struct task_struct *to)
- {
- 	return call_int_hook(binder_transaction, 0, from, to);
- }
-+EXPORT_SYMBOL_GPL(security_binder_transaction);
- 
- int security_binder_transfer_binder(struct task_struct *from,
- 				    struct task_struct *to)
- {
- 	return call_int_hook(binder_transfer_binder, 0, from, to);
- }
-+EXPORT_SYMBOL_GPL(security_binder_transfer_binder);
- 
- int security_binder_transfer_file(struct task_struct *from,
- 				  struct task_struct *to, struct file *file)
- {
- 	return call_int_hook(binder_transfer_file, 0, from, to, file);
- }
-+EXPORT_SYMBOL_GPL(security_binder_transfer_file);
- 
- int security_ptrace_access_check(struct task_struct *child, unsigned int mode)
- {