Skip to content

Commit b017a97

Browse files
author
Alex Shi
committed
Merge tag 'v4.4.78' into linux-linaro-lsk-v4.4
This is the 4.4.78 stable release
2 parents 5289d9c + ece78cd commit b017a97

75 files changed

Lines changed: 746 additions & 343 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
VERSION = 4
22
PATCHLEVEL = 4
3-
SUBLEVEL = 77
3+
SUBLEVEL = 78
44
EXTRAVERSION =
55
NAME = Blurry Fish Butt
66

arch/arm/include/asm/elf.h

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,8 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
112112
#define CORE_DUMP_USE_REGSET
113113
#define ELF_EXEC_PAGESIZE 4096
114114

115-
/* This is the location that an ET_DYN program is loaded if exec'ed. Typical
116-
use of this is to invoke "./ld.so someprog" to test out a new version of
117-
the loader. We need to make sure that it is out of the way of the program
118-
that it will "exec", and that there is sufficient room for the brk. */
119-
120-
#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
115+
/* This is the base location for PIE (ET_DYN with INTERP) loads. */
116+
#define ELF_ET_DYN_BASE 0x400000UL
121117

122118
/* When the program starts, a1 contains a pointer to a function to be
123119
registered with atexit, as per the SVR4 ABI. A value of 0 means we

arch/arm64/include/asm/elf.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,11 @@
113113
#define ELF_EXEC_PAGESIZE PAGE_SIZE
114114

115115
/*
116-
* This is the location that an ET_DYN program is loaded if exec'ed. Typical
117-
* use of this is to invoke "./ld.so someprog" to test out a new version of
118-
* the loader. We need to make sure that it is out of the way of the program
119-
* that it will "exec", and that there is sufficient room for the brk.
116+
* This is the base location for PIE (ET_DYN with INTERP) loads. On
117+
* 64-bit, this is raised to 4GB to leave the entire 32-bit address
118+
* space open for things that want to use the area for 32-bit pointers.
120119
*/
121-
#define ELF_ET_DYN_BASE (2 * TASK_SIZE_64 / 3)
120+
#define ELF_ET_DYN_BASE 0x100000000UL
122121

123122
#ifndef __ASSEMBLY__
124123

@@ -169,7 +168,8 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm,
169168

170169
#ifdef CONFIG_COMPAT
171170

172-
#define COMPAT_ELF_ET_DYN_BASE (2 * TASK_SIZE_32 / 3)
171+
/* PIE load location for compat arm. Must match ARM ELF_ET_DYN_BASE. */
172+
#define COMPAT_ELF_ET_DYN_BASE 0x000400000UL
173173

174174
/* AArch32 registers. */
175175
#define COMPAT_ELF_NGREG 18

arch/parisc/include/asm/dma-mapping.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ struct hppa_dma_ops {
3939
** flush/purge and allocate "regular" cacheable pages for everything.
4040
*/
4141

42+
#define DMA_ERROR_CODE (~(dma_addr_t)0)
43+
4244
#ifdef CONFIG_PA11
4345
extern struct hppa_dma_ops pcxl_dma_ops;
4446
extern struct hppa_dma_ops pcx_dma_ops;
@@ -209,12 +211,13 @@ parisc_walk_tree(struct device *dev)
209211
break;
210212
}
211213
}
212-
BUG_ON(!dev->platform_data);
213214
return dev->platform_data;
214215
}
215-
216-
#define GET_IOC(dev) (HBA_DATA(parisc_walk_tree(dev))->iommu)
217-
216+
217+
#define GET_IOC(dev) ({ \
218+
void *__pdata = parisc_walk_tree(dev); \
219+
__pdata ? HBA_DATA(__pdata)->iommu : NULL; \
220+
})
218221

219222
#ifdef CONFIG_IOMMU_CCIO
220223
struct parisc_device;

arch/parisc/include/asm/mmu_context.h

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,26 @@ static inline void load_context(mm_context_t context)
4949
mtctl(__space_to_prot(context), 8);
5050
}
5151

52-
static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, struct task_struct *tsk)
52+
static inline void switch_mm_irqs_off(struct mm_struct *prev,
53+
struct mm_struct *next, struct task_struct *tsk)
5354
{
54-
5555
if (prev != next) {
5656
mtctl(__pa(next->pgd), 25);
5757
load_context(next->context);
5858
}
5959
}
6060

61+
static inline void switch_mm(struct mm_struct *prev,
62+
struct mm_struct *next, struct task_struct *tsk)
63+
{
64+
unsigned long flags;
65+
66+
local_irq_save(flags);
67+
switch_mm_irqs_off(prev, next, tsk);
68+
local_irq_restore(flags);
69+
}
70+
#define switch_mm_irqs_off switch_mm_irqs_off
71+
6172
#define deactivate_mm(tsk,mm) do { } while (0)
6273

6374
static inline void activate_mm(struct mm_struct *prev, struct mm_struct *next)

arch/parisc/kernel/syscall_table.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@
361361
ENTRY_SAME(ni_syscall) /* 263: reserved for vserver */
362362
ENTRY_SAME(add_key)
363363
ENTRY_SAME(request_key) /* 265 */
364-
ENTRY_SAME(keyctl)
364+
ENTRY_COMP(keyctl)
365365
ENTRY_SAME(ioprio_set)
366366
ENTRY_SAME(ioprio_get)
367367
ENTRY_SAME(inotify_init)

arch/parisc/mm/fault.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
298298
case 15: /* Data TLB miss fault/Data page fault */
299299
/* send SIGSEGV when outside of vma */
300300
if (!vma ||
301-
address < vma->vm_start || address > vma->vm_end) {
301+
address < vma->vm_start || address >= vma->vm_end) {
302302
si.si_signo = SIGSEGV;
303303
si.si_code = SEGV_MAPERR;
304304
break;

arch/powerpc/include/asm/elf.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,13 @@
2323
#define CORE_DUMP_USE_REGSET
2424
#define ELF_EXEC_PAGESIZE PAGE_SIZE
2525

26-
/* This is the location that an ET_DYN program is loaded if exec'ed. Typical
27-
use of this is to invoke "./ld.so someprog" to test out a new version of
28-
the loader. We need to make sure that it is out of the way of the program
29-
that it will "exec", and that there is sufficient room for the brk. */
30-
31-
#define ELF_ET_DYN_BASE 0x20000000
26+
/*
27+
* This is the base location for PIE (ET_DYN with INTERP) loads. On
28+
* 64-bit, this is raised to 4GB to leave the entire 32-bit address
29+
* space open for things that want to use the area for 32-bit pointers.
30+
*/
31+
#define ELF_ET_DYN_BASE (is_32bit_task() ? 0x000400000UL : \
32+
0x100000000UL)
3233

3334
#define ELF_CORE_EFLAGS (is_elf2_task() ? 2 : 0)
3435

arch/s390/include/asm/elf.h

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -154,14 +154,13 @@ extern unsigned int vdso_enabled;
154154
#define CORE_DUMP_USE_REGSET
155155
#define ELF_EXEC_PAGESIZE 4096
156156

157-
/* This is the location that an ET_DYN program is loaded if exec'ed. Typical
158-
use of this is to invoke "./ld.so someprog" to test out a new version of
159-
the loader. We need to make sure that it is out of the way of the program
160-
that it will "exec", and that there is sufficient room for the brk. 64-bit
161-
tasks are aligned to 4GB. */
162-
#define ELF_ET_DYN_BASE (is_32bit_task() ? \
163-
(STACK_TOP / 3 * 2) : \
164-
(STACK_TOP / 3 * 2) & ~((1UL << 32) - 1))
157+
/*
158+
* This is the base location for PIE (ET_DYN with INTERP) loads. On
159+
* 64-bit, this is raised to 4GB to leave the entire 32-bit address
160+
* space open for things that want to use the area for 32-bit pointers.
161+
*/
162+
#define ELF_ET_DYN_BASE (is_compat_task() ? 0x000400000UL : \
163+
0x100000000UL)
165164

166165
/* This yields a mask that user programs can use to figure out what
167166
instruction set this CPU supports. */

arch/x86/crypto/sha1_ssse3_glue.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ asmlinkage void sha1_transform_avx2(u32 *digest, const char *data,
201201

202202
static bool avx2_usable(void)
203203
{
204-
if (avx_usable() && boot_cpu_has(X86_FEATURE_AVX2)
204+
if (false && avx_usable() && boot_cpu_has(X86_FEATURE_AVX2)
205205
&& boot_cpu_has(X86_FEATURE_BMI1)
206206
&& boot_cpu_has(X86_FEATURE_BMI2))
207207
return true;

0 commit comments

Comments
 (0)