Skip to content

Commit 17a870b

Browse files
author
Russell King
committed
Merge branches 'fixes' and 'misc'; commit 'kuser^{/add CPU_THUMB_CAPABLE to indicate}' into for-linus
3 parents 9e34404 + cdcc5fa + c466bda commit 17a870b

File tree

126 files changed

+951
-551
lines changed

Some content is hidden

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

126 files changed

+951
-551
lines changed

Documentation/DocBook/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ DOCBOOKS := z8530book.xml \
1212
kernel-api.xml filesystems.xml lsm.xml kgdb.xml \
1313
gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
1414
genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
15-
80211.xml sh.xml regulator.xml w1.xml \
15+
sh.xml regulator.xml w1.xml \
1616
writing_musb_glue_layer.xml iio.xml
1717

1818
ifeq ($(DOCBOOKS),)

Documentation/unaligned-memory-access.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ bool ether_addr_equal(const u8 *addr1, const u8 *addr2)
151151
#else
152152
const u16 *a = (const u16 *)addr1;
153153
const u16 *b = (const u16 *)addr2;
154-
return ((a[0] ^ b[0]) | (a[1] ^ b[1]) | (a[2] ^ b[2])) != 0;
154+
return ((a[0] ^ b[0]) | (a[1] ^ b[1]) | (a[2] ^ b[2])) == 0;
155155
#endif
156156
}
157157

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
VERSION = 4
22
PATCHLEVEL = 10
33
SUBLEVEL = 0
4-
EXTRAVERSION = -rc1
4+
EXTRAVERSION = -rc2
55
NAME = Roaring Lionus
66

77
# *DOCUMENTATION*

arch/arm/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ config ARM
22
bool
33
default y
44
select ARCH_CLOCKSOURCE_DATA
5+
select ARCH_HAS_DEBUG_VIRTUAL
56
select ARCH_HAS_DEVMEM_IS_ALLOWED
67
select ARCH_HAS_ELF_RANDOMIZE
78
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST

arch/arm/Kconfig-nommu

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ config PROCESSOR_ID
3434
used instead of the auto-probing which utilizes the register.
3535

3636
config REMAP_VECTORS_TO_RAM
37-
bool 'Install vectors to the beginning of RAM' if DRAM_BASE
38-
depends on DRAM_BASE
37+
bool 'Install vectors to the beginning of RAM'
3938
help
4039
The kernel needs to change the hardware exception vectors.
4140
In nommu mode, the hardware exception vectors are normally

arch/arm/boot/compressed/decompress.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ extern void error(char *);
3232

3333
/* Not needed, but used in some headers pulled in by decompressors */
3434
extern char * strstr(const char * s1, const char *s2);
35+
extern size_t strlen(const char *s);
3536

3637
#ifdef CONFIG_KERNEL_GZIP
3738
#include "../../../../lib/decompress_inflate.c"

arch/arm/common/mcpm_entry.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ extern unsigned long mcpm_entry_vectors[MAX_NR_CLUSTERS][MAX_CPUS_PER_CLUSTER];
144144

145145
void mcpm_set_entry_vector(unsigned cpu, unsigned cluster, void *ptr)
146146
{
147-
unsigned long val = ptr ? virt_to_phys(ptr) : 0;
147+
unsigned long val = ptr ? __pa_symbol(ptr) : 0;
148148
mcpm_entry_vectors[cluster][cpu] = val;
149149
sync_cache_w(&mcpm_entry_vectors[cluster][cpu]);
150150
}
@@ -299,8 +299,8 @@ void mcpm_cpu_power_down(void)
299299
* the kernel as if the power_up method just had deasserted reset
300300
* on the CPU.
301301
*/
302-
phys_reset = (phys_reset_t)(unsigned long)virt_to_phys(cpu_reset);
303-
phys_reset(virt_to_phys(mcpm_entry_point));
302+
phys_reset = (phys_reset_t)(unsigned long)__pa_symbol(cpu_reset);
303+
phys_reset(__pa_symbol(mcpm_entry_point));
304304

305305
/* should never get here */
306306
BUG();
@@ -388,8 +388,8 @@ static int __init nocache_trampoline(unsigned long _arg)
388388
__mcpm_outbound_leave_critical(cluster, CLUSTER_DOWN);
389389
__mcpm_cpu_down(cpu, cluster);
390390

391-
phys_reset = (phys_reset_t)(unsigned long)virt_to_phys(cpu_reset);
392-
phys_reset(virt_to_phys(mcpm_entry_point));
391+
phys_reset = (phys_reset_t)(unsigned long)__pa_symbol(cpu_reset);
392+
phys_reset(__pa_symbol(mcpm_entry_point));
393393
BUG();
394394
}
395395

@@ -449,7 +449,7 @@ int __init mcpm_sync_init(
449449
sync_cache_w(&mcpm_sync);
450450

451451
if (power_up_setup) {
452-
mcpm_power_up_setup_phys = virt_to_phys(power_up_setup);
452+
mcpm_power_up_setup_phys = __pa_symbol(power_up_setup);
453453
sync_cache_w(&mcpm_power_up_setup_phys);
454454
}
455455

arch/arm/include/asm/hardware/cache-uniphier.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#ifndef __CACHE_UNIPHIER_H
1717
#define __CACHE_UNIPHIER_H
1818

19-
#include <linux/types.h>
19+
#include <linux/errno.h>
2020

2121
#ifdef CONFIG_CACHE_UNIPHIER
2222
int uniphier_cache_init(void);

arch/arm/include/asm/memory.h

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,15 @@
8383
#define IOREMAP_MAX_ORDER 24
8484
#endif
8585

86+
#define VECTORS_BASE UL(0xffff0000)
87+
8688
#else /* CONFIG_MMU */
8789

90+
#ifndef __ASSEMBLY__
91+
extern unsigned long vectors_base;
92+
#define VECTORS_BASE vectors_base
93+
#endif
94+
8895
/*
8996
* The limitation of user task size can grow up to the end of free ram region.
9097
* It is difficult to define and perhaps will never meet the original meaning
@@ -111,6 +118,13 @@
111118

112119
#endif /* !CONFIG_MMU */
113120

121+
#ifdef CONFIG_XIP_KERNEL
122+
#define KERNEL_START _sdata
123+
#else
124+
#define KERNEL_START _stext
125+
#endif
126+
#define KERNEL_END _end
127+
114128
/*
115129
* We fix the TCM memories max 32 KiB ITCM resp DTCM at these
116130
* locations
@@ -206,7 +220,7 @@ extern const void *__pv_table_begin, *__pv_table_end;
206220
: "r" (x), "I" (__PV_BITS_31_24) \
207221
: "cc")
208222

209-
static inline phys_addr_t __virt_to_phys(unsigned long x)
223+
static inline phys_addr_t __virt_to_phys_nodebug(unsigned long x)
210224
{
211225
phys_addr_t t;
212226

@@ -238,7 +252,7 @@ static inline unsigned long __phys_to_virt(phys_addr_t x)
238252
#define PHYS_OFFSET PLAT_PHYS_OFFSET
239253
#define PHYS_PFN_OFFSET ((unsigned long)(PHYS_OFFSET >> PAGE_SHIFT))
240254

241-
static inline phys_addr_t __virt_to_phys(unsigned long x)
255+
static inline phys_addr_t __virt_to_phys_nodebug(unsigned long x)
242256
{
243257
return (phys_addr_t)x - PAGE_OFFSET + PHYS_OFFSET;
244258
}
@@ -254,6 +268,16 @@ static inline unsigned long __phys_to_virt(phys_addr_t x)
254268
((((unsigned long)(kaddr) - PAGE_OFFSET) >> PAGE_SHIFT) + \
255269
PHYS_PFN_OFFSET)
256270

271+
#define __pa_symbol_nodebug(x) __virt_to_phys_nodebug((x))
272+
273+
#ifdef CONFIG_DEBUG_VIRTUAL
274+
extern phys_addr_t __virt_to_phys(unsigned long x);
275+
extern phys_addr_t __phys_addr_symbol(unsigned long x);
276+
#else
277+
#define __virt_to_phys(x) __virt_to_phys_nodebug(x)
278+
#define __phys_addr_symbol(x) __pa_symbol_nodebug(x)
279+
#endif
280+
257281
/*
258282
* These are *only* valid on the kernel direct mapped RAM memory.
259283
* Note: Drivers should NOT use these. They are the wrong
@@ -276,6 +300,7 @@ static inline void *phys_to_virt(phys_addr_t x)
276300
* Drivers should NOT use these either.
277301
*/
278302
#define __pa(x) __virt_to_phys((unsigned long)(x))
303+
#define __pa_symbol(x) __phys_addr_symbol(RELOC_HIDE((unsigned long)(x), 0))
279304
#define __va(x) ((void *)__phys_to_virt((phys_addr_t)(x)))
280305
#define pfn_to_kaddr(pfn) __va((phys_addr_t)(pfn) << PAGE_SHIFT)
281306

arch/arm/include/asm/pgtable-nommu.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ typedef pte_t *pte_addr_t;
6363
/*
6464
* Mark the prot value as uncacheable and unbufferable.
6565
*/
66-
#define pgprot_noncached(prot) __pgprot(0)
67-
#define pgprot_writecombine(prot) __pgprot(0)
68-
#define pgprot_dmacoherent(prot) __pgprot(0)
66+
#define pgprot_noncached(prot) (prot)
67+
#define pgprot_writecombine(prot) (prot)
68+
#define pgprot_dmacoherent(prot) (prot)
6969

7070

7171
/*

0 commit comments

Comments
 (0)