Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dfb863a7 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
  powerpc: Force page alignment for initrd reserved memory
  dtc/powerpc: remove obsolete .gitignore entries
  powerpc/85xx: fix race bug of calling request_irq after enable elbc interrupts
  powerpc/book3e: Fix CPU feature handling on e5500 in 32-bit mode
  powerpc/fsl_rio: Fix compile error when CONFIG_FSL_RIO not set
parents 461df4de 307cfe71
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
addnote
dtc
empty.c
hack-coff
infblock.c
+0 −3
Original line number Diff line number Diff line
dtc-lexer.lex.c
dtc-parser.tab.c
dtc-parser.tab.h
+1 −1
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
#define ASM_PPC_RIO_H

extern void platform_rio_init(void);
#ifdef CONFIG_RAPIDIO
#ifdef CONFIG_FSL_RIO
extern int fsl_rio_mcheck_exception(struct pt_regs *);
#else
static inline int fsl_rio_mcheck_exception(struct pt_regs *regs) {return 0; }
+1 −1
Original line number Diff line number Diff line
@@ -1979,7 +1979,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
		.pvr_value		= 0x80240000,
		.cpu_name		= "e5500",
		.cpu_features		= CPU_FTRS_E5500,
		.cpu_user_features	= COMMON_USER_BOOKE,
		.cpu_user_features	= COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
		.mmu_features		= MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS |
			MMU_FTR_USE_TLBILX,
		.icache_bsize		= 64,
+24 −3
Original line number Diff line number Diff line
@@ -82,11 +82,29 @@ static int __init early_parse_mem(char *p)
}
early_param("mem", early_parse_mem);

/*
 * overlaps_initrd - check for overlap with page aligned extension of
 * initrd.
 */
static inline int overlaps_initrd(unsigned long start, unsigned long size)
{
#ifdef CONFIG_BLK_DEV_INITRD
	if (!initrd_start)
		return 0;

	return	(start + size) > _ALIGN_DOWN(initrd_start, PAGE_SIZE) &&
			start <= _ALIGN_UP(initrd_end, PAGE_SIZE);
#else
	return 0;
#endif
}

/**
 * move_device_tree - move tree to an unused area, if needed.
 *
 * The device tree may be allocated beyond our memory limit, or inside the
 * crash kernel region for kdump. If so, move it out of the way.
 * crash kernel region for kdump, or within the page aligned range of initrd.
 * If so, move it out of the way.
 */
static void __init move_device_tree(void)
{
@@ -99,7 +117,8 @@ static void __init move_device_tree(void)
	size = be32_to_cpu(initial_boot_params->totalsize);

	if ((memory_limit && (start + size) > PHYSICAL_START + memory_limit) ||
			overlaps_crashkernel(start, size)) {
			overlaps_crashkernel(start, size) ||
			overlaps_initrd(start, size)) {
		p = __va(memblock_alloc(size, PAGE_SIZE));
		memcpy(p, initial_boot_params, size);
		initial_boot_params = (struct boot_param_header *)p;
@@ -555,7 +574,9 @@ static void __init early_reserve_mem(void)
#ifdef CONFIG_BLK_DEV_INITRD
	/* then reserve the initrd, if any */
	if (initrd_start && (initrd_end > initrd_start))
		memblock_reserve(__pa(initrd_start), initrd_end - initrd_start);
		memblock_reserve(_ALIGN_DOWN(__pa(initrd_start), PAGE_SIZE),
			_ALIGN_UP(initrd_end, PAGE_SIZE) -
			_ALIGN_DOWN(initrd_start, PAGE_SIZE));
#endif /* CONFIG_BLK_DEV_INITRD */

#ifdef CONFIG_PPC32
Loading