diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2014-02-25 08:48:36 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2014-02-25 08:48:36 +0000 |
commit | d76c64b5a9597000f39ef80a65ad880a652b533c (patch) | |
tree | a9e086cba4e936391f38e65707d06fd0f5f83f3d | |
parent | 89d8ce68950f20888e104e8704809325ebd3f171 (diff) | |
download | aports-d76c64b5a9597000f39ef80a65ad880a652b533c.tar.bz2 aports-d76c64b5a9597000f39ef80a65ad880a652b533c.tar.xz |
main/linux-grsec: upgrade to 3.4.82
-rw-r--r-- | main/linux-grsec/APKBUILD | 6 | ||||
-rw-r--r-- | main/linux-grsec/grsecurity-2.9.1-3.4.82-unofficial.patch (renamed from main/linux-grsec/grsecurity-2.9.1-3.4.78-unofficial.patch) | 154 |
2 files changed, 76 insertions, 84 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD index 73966e168f..3ff55d9f13 100644 --- a/main/linux-grsec/APKBUILD +++ b/main/linux-grsec/APKBUILD @@ -2,7 +2,7 @@ _flavor=grsec pkgname=linux-${_flavor} -pkgver=3.4.78 +pkgver=3.4.82 _kernver=3.4 pkgrel=0 pkgdesc="Linux kernel with grsecurity" @@ -142,8 +142,8 @@ dev() { } md5sums="967f72983655e2479f951195953e8480 linux-3.4.tar.xz -b91e8ee017f50af8bd038026935fff2d patch-3.4.78.xz -21626c259298003ab53b52b5a503ca81 grsecurity-2.9.1-3.4.78-unofficial.patch +1f6fcc1f91fcce2a0f71416c3251e83e patch-3.4.82.xz +a79915193376d3a3ff4dc3b2009b8091 grsecurity-2.9.1-3.4.82-unofficial.patch 776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch cb6fcd6e966e73c87a839c4c0183f81f 0001-Revert-ipv4-Don-t-use-the-cached-pmtu-informations-f.patch d2f7ba780ff7567c21381428264d7fdd intel_idle.patch diff --git a/main/linux-grsec/grsecurity-2.9.1-3.4.78-unofficial.patch b/main/linux-grsec/grsecurity-2.9.1-3.4.82-unofficial.patch index 612d58f6af..90a8f59864 100644 --- a/main/linux-grsec/grsecurity-2.9.1-3.4.78-unofficial.patch +++ b/main/linux-grsec/grsecurity-2.9.1-3.4.82-unofficial.patch @@ -269,7 +269,7 @@ index 88fd7f5..b318a78 100644 ============================================================== diff --git a/Makefile b/Makefile -index e891990..9da978b 100644 +index ee80efa..ae85e11 100644 --- a/Makefile +++ b/Makefile @@ -245,8 +245,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ @@ -20755,7 +20755,7 @@ index 8375622..b7bca1a 100644 case 1: \ ____emulate_2op(ctxt,_op,_bx,_by,"b",u8); \ diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c -index 2bf03a9..e3453d7 100644 +index 578613d..a88e6d0 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -54,7 +54,7 @@ @@ -30714,7 +30714,7 @@ index 34791fb..58c5b21 100644 mutex_unlock(&dev->struct_mutex); diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c -index ba60f3c..e2dff7f 100644 +index 38c0a47..e61f898 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -1178,7 +1178,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev) @@ -33592,7 +33592,7 @@ index 737d388..811ad5a 100644 pmd->bl_info.value_type.inc = data_block_inc; pmd->bl_info.value_type.dec = data_block_dec; diff --git a/drivers/md/dm.c b/drivers/md/dm.c -index 32370ea..39b8232 100644 +index 0cf8c51..ae0f41c 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -176,9 +176,9 @@ struct mapped_device { @@ -33618,7 +33618,7 @@ index 32370ea..39b8232 100644 INIT_LIST_HEAD(&md->uevent_list); spin_lock_init(&md->uevent_lock); -@@ -2006,7 +2006,7 @@ static void event_callback(void *context) +@@ -2007,7 +2007,7 @@ static void event_callback(void *context) dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj); @@ -33627,7 +33627,7 @@ index 32370ea..39b8232 100644 wake_up(&md->eventq); } -@@ -2648,18 +2648,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action, +@@ -2649,18 +2649,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action, uint32_t dm_next_uevent_seq(struct mapped_device *md) { @@ -33924,7 +33924,7 @@ index 67a8393..948961d 100644 rdev_dec_pending(rdev, mddev); diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c -index 6155c8b..fc770aa 100644 +index 17b918d..2318a9e 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -1698,18 +1698,18 @@ static void raid5_end_read_request(struct bio * bi, int error) @@ -37747,7 +37747,7 @@ index d3d8727..f9327bb8 100644 struct io_req { struct list_head list; diff --git a/drivers/staging/sbe-2t3e3/netdev.c b/drivers/staging/sbe-2t3e3/netdev.c -index c7b5e8b..783d6cb 100644 +index c7b5e8b..783d6cbe 100644 --- a/drivers/staging/sbe-2t3e3/netdev.c +++ b/drivers/staging/sbe-2t3e3/netdev.c @@ -51,7 +51,7 @@ int t3e3_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) @@ -38233,10 +38233,10 @@ index 4daf962..b4a2281 100644 ipwireless_disassociate_network_ttys(network, ttyj->channel_idx); diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c -index 4a418e4..77e207c 100644 +index acc0eab..ef8eeb7 100644 --- a/drivers/tty/n_gsm.c +++ b/drivers/tty/n_gsm.c -@@ -1639,7 +1639,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr) +@@ -1650,7 +1650,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr) kref_init(&dlci->ref); mutex_init(&dlci->mutex); dlci->fifo = &dlci->_fifo; @@ -45249,7 +45249,7 @@ index cf6f434..3d7942c 100644 err_nocleanup: diff --git a/fs/file.c b/fs/file.c -index ba3f605..fade102 100644 +index d512ca5..3f69c95 100644 --- a/fs/file.c +++ b/fs/file.c @@ -15,6 +15,7 @@ @@ -63554,7 +63554,7 @@ index fd07c45..4676b8e 100644 static inline void anon_vma_merge(struct vm_area_struct *vma, struct vm_area_struct *next) diff --git a/include/linux/sched.h b/include/linux/sched.h -index e132a2d..5aede09 100644 +index 8cd5cb8..6d7a7a9 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -100,6 +100,7 @@ struct bio_list; @@ -63565,7 +63565,7 @@ index e132a2d..5aede09 100644 /* * List of flags we want to share for kernel threads, -@@ -382,10 +383,13 @@ struct user_namespace; +@@ -383,10 +384,13 @@ struct user_namespace; #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN) extern int sysctl_max_map_count; @@ -63579,7 +63579,7 @@ index e132a2d..5aede09 100644 extern void arch_pick_mmap_layout(struct mm_struct *mm); extern unsigned long arch_get_unmapped_area(struct file *, unsigned long, unsigned long, -@@ -647,6 +651,17 @@ struct signal_struct { +@@ -648,6 +652,17 @@ struct signal_struct { #ifdef CONFIG_TASKSTATS struct taskstats *stats; #endif @@ -63597,7 +63597,7 @@ index e132a2d..5aede09 100644 #ifdef CONFIG_AUDIT unsigned audit_tty; struct tty_audit_buf *tty_audit_buf; -@@ -730,6 +745,11 @@ struct user_struct { +@@ -731,6 +746,11 @@ struct user_struct { struct key *session_keyring; /* UID's default session keyring */ #endif @@ -63609,7 +63609,7 @@ index e132a2d..5aede09 100644 /* Hash table maintenance information */ struct hlist_node uidhash_node; uid_t uid; -@@ -1393,8 +1413,8 @@ struct task_struct { +@@ -1395,8 +1415,8 @@ struct task_struct { struct list_head thread_group; struct completion *vfork_done; /* for vfork() */ @@ -63620,7 +63620,7 @@ index e132a2d..5aede09 100644 cputime_t utime, stime, utimescaled, stimescaled; cputime_t gtime; -@@ -1410,13 +1430,6 @@ struct task_struct { +@@ -1412,13 +1432,6 @@ struct task_struct { struct task_cputime cputime_expires; struct list_head cpu_timers[3]; @@ -63634,7 +63634,7 @@ index e132a2d..5aede09 100644 char comm[TASK_COMM_LEN]; /* executable name excluding path - access with [gs]et_task_comm (which lock it with task_lock()) -@@ -1433,8 +1446,16 @@ struct task_struct { +@@ -1435,8 +1448,16 @@ struct task_struct { #endif /* CPU-specific state of this task */ struct thread_struct thread; @@ -63651,7 +63651,7 @@ index e132a2d..5aede09 100644 /* open file information */ struct files_struct *files; /* namespaces */ -@@ -1476,6 +1497,11 @@ struct task_struct { +@@ -1478,6 +1499,11 @@ struct task_struct { struct rt_mutex_waiter *pi_blocked_on; #endif @@ -63663,7 +63663,7 @@ index e132a2d..5aede09 100644 #ifdef CONFIG_DEBUG_MUTEXES /* mutex deadlock detection */ struct mutex_waiter *blocked_on; -@@ -1592,6 +1618,27 @@ struct task_struct { +@@ -1594,6 +1620,27 @@ struct task_struct { unsigned long default_timer_slack_ns; struct list_head *scm_work_list; @@ -63691,7 +63691,7 @@ index e132a2d..5aede09 100644 #ifdef CONFIG_FUNCTION_GRAPH_TRACER /* Index of current stored address in ret_stack */ int curr_ret_stack; -@@ -1626,6 +1673,51 @@ struct task_struct { +@@ -1628,6 +1675,51 @@ struct task_struct { #endif }; @@ -63743,7 +63743,7 @@ index e132a2d..5aede09 100644 /* Future-safe accessor for struct task_struct's cpus_allowed. */ #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed) -@@ -2153,7 +2245,9 @@ void yield(void); +@@ -2155,7 +2247,9 @@ void yield(void); extern struct exec_domain default_exec_domain; union thread_union { @@ -63753,7 +63753,7 @@ index e132a2d..5aede09 100644 unsigned long stack[THREAD_SIZE/sizeof(long)]; }; -@@ -2186,6 +2280,7 @@ extern struct pid_namespace init_pid_ns; +@@ -2188,6 +2282,7 @@ extern struct pid_namespace init_pid_ns; */ extern struct task_struct *find_task_by_vpid(pid_t nr); @@ -63761,7 +63761,7 @@ index e132a2d..5aede09 100644 extern struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns); -@@ -2329,7 +2424,7 @@ extern void __cleanup_sighand(struct sighand_struct *); +@@ -2331,7 +2426,7 @@ extern void __cleanup_sighand(struct sighand_struct *); extern void exit_itimers(struct signal_struct *); extern void flush_itimer_signals(void); @@ -63770,7 +63770,7 @@ index e132a2d..5aede09 100644 extern void daemonize(const char *, ...); extern int allow_signal(int); -@@ -2520,9 +2615,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p) +@@ -2522,9 +2617,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p) #endif @@ -68561,7 +68561,7 @@ index 19db29f..33b52b6 100644 if (pm_wakeup_pending()) { diff --git a/kernel/printk.c b/kernel/printk.c -index e95c662..95f2be3 100644 +index e131c46..a7682fb 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -316,6 +316,11 @@ static int check_syslog_permissions(int type, bool from_file) @@ -69302,10 +69302,10 @@ index 15f60d0..7e50319 100644 #ifdef CONFIG_RT_GROUP_SCHED /* diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 3a5b317..80c2318 100644 +index 94f1327..57611f9 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -4047,6 +4047,8 @@ int can_nice(const struct task_struct *p, const int nice) +@@ -4105,6 +4105,8 @@ int can_nice(const struct task_struct *p, const int nice) /* convert nice value [19,-20] to rlimit style value [1,40] */ int nice_rlim = 20 - nice; @@ -69314,7 +69314,7 @@ index 3a5b317..80c2318 100644 return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) || capable(CAP_SYS_NICE)); } -@@ -4080,7 +4082,8 @@ SYSCALL_DEFINE1(nice, int, increment) +@@ -4138,7 +4140,8 @@ SYSCALL_DEFINE1(nice, int, increment) if (nice > 19) nice = 19; @@ -69324,7 +69324,7 @@ index 3a5b317..80c2318 100644 return -EPERM; retval = security_task_setnice(current, nice); -@@ -4237,6 +4240,7 @@ recheck: +@@ -4295,6 +4298,7 @@ recheck: unsigned long rlim_rtprio = task_rlimit(p, RLIMIT_RTPRIO); @@ -69333,7 +69333,7 @@ index 3a5b317..80c2318 100644 if (policy != p->policy && !rlim_rtprio) return -EPERM; diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 363df37..0af97b8 100644 +index dd33c9f..49b88ac 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -5126,7 +5126,7 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle) { } @@ -70107,7 +70107,7 @@ index f8961bf..6ef6352 100644 cpumask_clear_cpu(cpu, tick_get_broadcast_mask()); tick_broadcast_clear_oneshot(cpu); diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c -index eff0b1e..9000af7 100644 +index 32f0cb8..7dbd305 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -14,6 +14,7 @@ @@ -70289,10 +70289,10 @@ index c0bd030..62a1927 100644 ret = -EIO; bt->dropped_file = debugfs_create_file("dropped", 0444, dir, bt, diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c -index f0e76e93..140b8f1 100644 +index 5efdddf..fc22a80 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c -@@ -1806,12 +1806,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec) +@@ -1814,12 +1814,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec) if (unlikely(ftrace_disabled)) return 0; @@ -70312,7 +70312,7 @@ index f0e76e93..140b8f1 100644 } /* -@@ -2916,7 +2921,7 @@ static void ftrace_free_entry_rcu(struct rcu_head *rhp) +@@ -2955,7 +2960,7 @@ static void ftrace_free_entry_rcu(struct rcu_head *rhp) int register_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops, @@ -70322,7 +70322,7 @@ index f0e76e93..140b8f1 100644 struct ftrace_func_probe *entry; struct ftrace_page *pg; diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c -index 2866783..4cc30cf 100644 +index bd0f1c4..7054bb0 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -344,9 +344,9 @@ struct buffer_data_page { @@ -70451,7 +70451,7 @@ index 2866783..4cc30cf 100644 /* set write to only the index of the write */ write &= RB_WRITE_MASK; -@@ -2019,7 +2019,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer, +@@ -2026,7 +2026,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer, kmemcheck_annotate_bitfield(event, bitfield); rb_update_event(cpu_buffer, event, length, add_timestamp, delta); @@ -70460,7 +70460,7 @@ index 2866783..4cc30cf 100644 /* * If this is the first commit on the page, then update -@@ -2052,7 +2052,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer, +@@ -2059,7 +2059,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer, if (bpage->page == (void *)addr && rb_page_write(bpage) == old_index) { unsigned long write_mask = @@ -70469,7 +70469,7 @@ index 2866783..4cc30cf 100644 unsigned long event_length = rb_event_length(event); /* * This is on the tail page. It is possible that -@@ -2062,7 +2062,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer, +@@ -2069,7 +2069,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer, */ old_index += write_mask; new_index += write_mask; @@ -70478,7 +70478,7 @@ index 2866783..4cc30cf 100644 if (index == old_index) { /* update counters */ local_sub(event_length, &cpu_buffer->entries_bytes); -@@ -2401,7 +2401,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer, +@@ -2408,7 +2408,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer, /* Do the likely case first */ if (likely(bpage->page == (void *)addr)) { @@ -70487,7 +70487,7 @@ index 2866783..4cc30cf 100644 return; } -@@ -2413,7 +2413,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer, +@@ -2420,7 +2420,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer, start = bpage; do { if (bpage->page == (void *)addr) { @@ -70496,7 +70496,7 @@ index 2866783..4cc30cf 100644 return; } rb_inc_page(cpu_buffer, &bpage); -@@ -2695,7 +2695,7 @@ static inline unsigned long +@@ -2702,7 +2702,7 @@ static inline unsigned long rb_num_of_entries(struct ring_buffer_per_cpu *cpu_buffer) { return local_read(&cpu_buffer->entries) - @@ -70505,7 +70505,7 @@ index 2866783..4cc30cf 100644 } /** -@@ -2783,7 +2783,7 @@ unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu) +@@ -2790,7 +2790,7 @@ unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu) return 0; cpu_buffer = buffer->buffers[cpu]; @@ -70514,7 +70514,7 @@ index 2866783..4cc30cf 100644 return ret; } -@@ -2804,7 +2804,7 @@ ring_buffer_commit_overrun_cpu(struct ring_buffer *buffer, int cpu) +@@ -2811,7 +2811,7 @@ ring_buffer_commit_overrun_cpu(struct ring_buffer *buffer, int cpu) return 0; cpu_buffer = buffer->buffers[cpu]; @@ -70523,7 +70523,7 @@ index 2866783..4cc30cf 100644 return ret; } -@@ -2849,7 +2849,7 @@ unsigned long ring_buffer_overruns(struct ring_buffer *buffer) +@@ -2856,7 +2856,7 @@ unsigned long ring_buffer_overruns(struct ring_buffer *buffer) /* if you care about this being correct, lock the buffer */ for_each_buffer_cpu(buffer, cpu) { cpu_buffer = buffer->buffers[cpu]; @@ -70532,7 +70532,7 @@ index 2866783..4cc30cf 100644 } return overruns; -@@ -3021,8 +3021,8 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer) +@@ -3028,8 +3028,8 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer) /* * Reset the reader page to size zero. */ @@ -70543,7 +70543,7 @@ index 2866783..4cc30cf 100644 local_set(&cpu_buffer->reader_page->page->commit, 0); cpu_buffer->reader_page->real_end = 0; -@@ -3056,7 +3056,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer) +@@ -3063,7 +3063,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer) * want to compare with the last_overrun. */ smp_mb(); @@ -70552,7 +70552,7 @@ index 2866783..4cc30cf 100644 /* * Here's the tricky part. -@@ -3604,8 +3604,8 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer) +@@ -3611,8 +3611,8 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer) cpu_buffer->head_page = list_entry(cpu_buffer->pages, struct buffer_page, list); @@ -70563,7 +70563,7 @@ index 2866783..4cc30cf 100644 local_set(&cpu_buffer->head_page->page->commit, 0); cpu_buffer->head_page->read = 0; -@@ -3614,14 +3614,14 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer) +@@ -3621,14 +3621,14 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer) cpu_buffer->commit_page = cpu_buffer->head_page; INIT_LIST_HEAD(&cpu_buffer->reader_page->list); @@ -70582,7 +70582,7 @@ index 2866783..4cc30cf 100644 local_set(&cpu_buffer->entries, 0); local_set(&cpu_buffer->committing, 0); local_set(&cpu_buffer->commits, 0); -@@ -4019,8 +4019,8 @@ int ring_buffer_read_page(struct ring_buffer *buffer, +@@ -4026,8 +4026,8 @@ int ring_buffer_read_page(struct ring_buffer *buffer, rb_init_page(bpage); bpage = reader->page; reader->page = *data_page; @@ -71047,7 +71047,7 @@ index 3ac50dc..240bb7e 100644 static inline void *ptr_to_indirect(void *ptr) { diff --git a/lib/vsprintf.c b/lib/vsprintf.c -index 73e2c45..a8bea8e 100644 +index cd0aab7..a8bea8e 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -16,6 +16,9 @@ @@ -71119,7 +71119,7 @@ index 73e2c45..a8bea8e 100644 case 'B': return symbol_string(buf, end, ptr, spec, *fmt); case 'R': -@@ -921,12 +937,15 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, +@@ -921,6 +937,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, va_end(va); return buf; } @@ -71128,15 +71128,7 @@ index 73e2c45..a8bea8e 100644 case 'K': /* * %pK cannot be used in IRQ context because its test - * for CAP_SYSLOG would be meaningless. - */ -- if (in_irq() || in_serving_softirq() || in_nmi()) { -+ if (kptr_restrict && (in_irq() || in_serving_softirq() || -+ in_nmi())) { - if (spec.field_width == -1) - spec.field_width = 2 * sizeof(void *); - return string(buf, end, "pK-error", spec); -@@ -969,6 +988,19 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, +@@ -970,6 +988,19 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, } break; } @@ -71156,7 +71148,7 @@ index 73e2c45..a8bea8e 100644 spec.flags |= SMALL; if (spec.field_width == -1) { spec.field_width = 2 * sizeof(void *); -@@ -1680,11 +1712,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf) +@@ -1681,11 +1712,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf) typeof(type) value; \ if (sizeof(type) == 8) { \ args = PTR_ALIGN(args, sizeof(u32)); \ @@ -71171,7 +71163,7 @@ index 73e2c45..a8bea8e 100644 } \ args += sizeof(type); \ value; \ -@@ -1747,7 +1779,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf) +@@ -1748,7 +1779,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf) case FORMAT_TYPE_STR: { const char *str_arg = args; args += strlen(str_arg) + 1; @@ -71294,10 +71286,10 @@ index 3da5c0b..a9ec74a 100644 /* if an huge pmd materialized from under us just retry later */ if (unlikely(pmd_trans_huge(*pmd))) diff --git a/mm/hugetlb.c b/mm/hugetlb.c -index af20b77..0dca285 100644 +index 7111f2f..5e926e1 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c -@@ -2484,6 +2484,27 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -2501,6 +2501,27 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, return 1; } @@ -71325,7 +71317,7 @@ index af20b77..0dca285 100644 /* * Hugetlb_cow() should be called with page lock of the original hugepage held. * Called with hugetlb_instantiation_mutex held and pte_page locked so we -@@ -2596,6 +2617,11 @@ retry_avoidcopy: +@@ -2613,6 +2634,11 @@ retry_avoidcopy: make_huge_pte(vma, new_page, 1)); page_remove_rmap(old_page); hugepage_add_new_anon_rmap(new_page, vma, address); @@ -71337,7 +71329,7 @@ index af20b77..0dca285 100644 /* Make the old page be freed below */ new_page = old_page; mmu_notifier_invalidate_range_end(mm, -@@ -2750,6 +2776,10 @@ retry: +@@ -2767,6 +2793,10 @@ retry: && (vma->vm_flags & VM_SHARED))); set_huge_pte_at(mm, address, ptep, new_pte); @@ -71348,7 +71340,7 @@ index af20b77..0dca285 100644 if ((flags & FAULT_FLAG_WRITE) && !(vma->vm_flags & VM_SHARED)) { /* Optimization, do the COW without a second fault */ ret = hugetlb_cow(mm, vma, address, ptep, new_pte, page); -@@ -2779,6 +2809,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -2796,6 +2826,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, static DEFINE_MUTEX(hugetlb_instantiation_mutex); struct hstate *h = hstate_vma(vma); @@ -71359,7 +71351,7 @@ index af20b77..0dca285 100644 address &= huge_page_mask(h); ptep = huge_pte_offset(mm, address); -@@ -2792,6 +2826,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -2809,6 +2843,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, VM_FAULT_SET_HINDEX(h - hstates); } @@ -71387,7 +71379,7 @@ index af20b77..0dca285 100644 if (!ptep) return VM_FAULT_OOM; diff --git a/mm/internal.h b/mm/internal.h -index 2189af4..f2ca332 100644 +index 0c26b5e..1cc340f 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -95,6 +95,7 @@ extern void putback_lru_page(struct page *page); @@ -74058,7 +74050,7 @@ index d3afb47..252a19c 100644 new->vm_region = region; diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 508822e..58eb303 100644 +index 39d530a..31bc794 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -335,7 +335,7 @@ out: @@ -74903,7 +74895,7 @@ index 8105be4..33e52d7 100644 EXPORT_SYMBOL(kmem_cache_free); diff --git a/mm/slub.c b/mm/slub.c -index 71de9b5..51f97c9 100644 +index c6f225f..bf0de6d 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -209,7 +209,7 @@ struct track { @@ -75150,7 +75142,7 @@ index 71de9b5..51f97c9 100644 enum slab_stat_type { SL_ALL, /* All slabs */ SL_PARTIAL, /* Only partially allocated slabs */ -@@ -4709,7 +4790,7 @@ SLAB_ATTR_RO(ctor); +@@ -4715,7 +4796,7 @@ SLAB_ATTR_RO(ctor); static ssize_t aliases_show(struct kmem_cache *s, char *buf) { @@ -75159,7 +75151,7 @@ index 71de9b5..51f97c9 100644 } SLAB_ATTR_RO(aliases); -@@ -5280,6 +5361,7 @@ static char *create_unique_id(struct kmem_cache *s) +@@ -5286,6 +5367,7 @@ static char *create_unique_id(struct kmem_cache *s) return name; } @@ -75167,7 +75159,7 @@ index 71de9b5..51f97c9 100644 static int sysfs_slab_add(struct kmem_cache *s) { int err; -@@ -5342,6 +5424,7 @@ static void sysfs_slab_remove(struct kmem_cache *s) +@@ -5348,6 +5430,7 @@ static void sysfs_slab_remove(struct kmem_cache *s) kobject_del(&s->kobj); kobject_put(&s->kobj); } @@ -75175,7 +75167,7 @@ index 71de9b5..51f97c9 100644 /* * Need to buffer aliases during bootup until sysfs becomes -@@ -5355,6 +5438,7 @@ struct saved_alias { +@@ -5361,6 +5444,7 @@ struct saved_alias { static struct saved_alias *alias_list; @@ -75183,7 +75175,7 @@ index 71de9b5..51f97c9 100644 static int sysfs_slab_alias(struct kmem_cache *s, const char *name) { struct saved_alias *al; -@@ -5377,6 +5461,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name) +@@ -5383,6 +5467,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name) alias_list = al; return 0; } @@ -75214,7 +75206,7 @@ index 1b7e22a..3fcd4f3 100644 return pgd; } diff --git a/mm/swap.c b/mm/swap.c -index f689e9a..4a937cf 100644 +index a8feea6..4c9e1b9 100644 --- a/mm/swap.c +++ b/mm/swap.c @@ -72,6 +72,8 @@ static void __put_compound_page(struct page *page) @@ -75990,7 +75982,7 @@ index f78f898..00f4a02 100644 diff --git a/net/compat.c b/net/compat.c -index 17f997e..ef4f9e9 100644 +index 93f5423..03a3dd8 100644 --- a/net/compat.c +++ b/net/compat.c @@ -73,9 +73,9 @@ int get_compat_msghdr(struct msghdr *kmsg, struct compat_msghdr __user *umsg) @@ -76120,7 +76112,7 @@ index 17f997e..ef4f9e9 100644 struct group_filter __user *kgf; int __user *koptlen; u32 interface, fmode, numsrc; -@@ -817,7 +817,7 @@ asmlinkage long compat_sys_socketcall(int call, u32 __user *args) +@@ -812,7 +812,7 @@ asmlinkage long compat_sys_socketcall(int call, u32 __user *args) if (call < SYS_SOCKET || call > SYS_SENDMMSG) return -EINVAL; @@ -79695,7 +79687,7 @@ index 0000000..008ac1a + [[ "$plugincc" =~ "$2" ]] && echo "$2" +fi diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c -index 44ddaa5..a3119bd 100644 +index ea243fe..807496a 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c @@ -128,7 +128,7 @@ static void device_id_check(const char *modname, const char *device_id, |