Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: Fix compile failure with non modular builds powerpc: Holly board needs dtbImage target powerpc: Fix interrupt values for DMA2 in MPC8610 HPCD device tree
This commit is contained in:
@@ -195,7 +195,7 @@ image-$(CONFIG_PPC_CELLEB) += zImage.pseries
|
|||||||
image-$(CONFIG_PPC_CHRP) += zImage.chrp
|
image-$(CONFIG_PPC_CHRP) += zImage.chrp
|
||||||
image-$(CONFIG_PPC_EFIKA) += zImage.chrp
|
image-$(CONFIG_PPC_EFIKA) += zImage.chrp
|
||||||
image-$(CONFIG_PPC_PMAC) += zImage.pmac
|
image-$(CONFIG_PPC_PMAC) += zImage.pmac
|
||||||
image-$(CONFIG_PPC_HOLLY) += zImage.holly
|
image-$(CONFIG_PPC_HOLLY) += dtbImage.holly
|
||||||
image-$(CONFIG_PPC_PRPMC2800) += dtbImage.prpmc2800
|
image-$(CONFIG_PPC_PRPMC2800) += dtbImage.prpmc2800
|
||||||
image-$(CONFIG_PPC_ISERIES) += zImage.iseries
|
image-$(CONFIG_PPC_ISERIES) += zImage.iseries
|
||||||
image-$(CONFIG_DEFAULT_UIMAGE) += uImage
|
image-$(CONFIG_DEFAULT_UIMAGE) += uImage
|
||||||
|
@@ -281,7 +281,7 @@
|
|||||||
cell-index = <0>;
|
cell-index = <0>;
|
||||||
reg = <0x0 0x80>;
|
reg = <0x0 0x80>;
|
||||||
interrupt-parent = <&mpic>;
|
interrupt-parent = <&mpic>;
|
||||||
interrupts = <60 2>;
|
interrupts = <76 2>;
|
||||||
};
|
};
|
||||||
dma-channel@1 {
|
dma-channel@1 {
|
||||||
compatible = "fsl,mpc8610-dma-channel",
|
compatible = "fsl,mpc8610-dma-channel",
|
||||||
@@ -289,7 +289,7 @@
|
|||||||
cell-index = <1>;
|
cell-index = <1>;
|
||||||
reg = <0x80 0x80>;
|
reg = <0x80 0x80>;
|
||||||
interrupt-parent = <&mpic>;
|
interrupt-parent = <&mpic>;
|
||||||
interrupts = <61 2>;
|
interrupts = <77 2>;
|
||||||
};
|
};
|
||||||
dma-channel@2 {
|
dma-channel@2 {
|
||||||
compatible = "fsl,mpc8610-dma-channel",
|
compatible = "fsl,mpc8610-dma-channel",
|
||||||
@@ -297,7 +297,7 @@
|
|||||||
cell-index = <2>;
|
cell-index = <2>;
|
||||||
reg = <0x100 0x80>;
|
reg = <0x100 0x80>;
|
||||||
interrupt-parent = <&mpic>;
|
interrupt-parent = <&mpic>;
|
||||||
interrupts = <62 2>;
|
interrupts = <78 2>;
|
||||||
};
|
};
|
||||||
dma-channel@3 {
|
dma-channel@3 {
|
||||||
compatible = "fsl,mpc8610-dma-channel",
|
compatible = "fsl,mpc8610-dma-channel",
|
||||||
@@ -305,7 +305,7 @@
|
|||||||
cell-index = <3>;
|
cell-index = <3>;
|
||||||
reg = <0x180 0x80>;
|
reg = <0x180 0x80>;
|
||||||
interrupt-parent = <&mpic>;
|
interrupt-parent = <&mpic>;
|
||||||
interrupts = <63 2>;
|
interrupts = <79 2>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -409,6 +409,13 @@ do { \
|
|||||||
/* Keep this the last entry. */
|
/* Keep this the last entry. */
|
||||||
#define R_PPC64_NUM 107
|
#define R_PPC64_NUM 107
|
||||||
|
|
||||||
|
/* There's actually a third entry here, but it's unused */
|
||||||
|
struct ppc64_opd_entry
|
||||||
|
{
|
||||||
|
unsigned long funcaddr;
|
||||||
|
unsigned long r2;
|
||||||
|
};
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
#ifdef CONFIG_SPU_BASE
|
#ifdef CONFIG_SPU_BASE
|
||||||
|
@@ -2,6 +2,8 @@
|
|||||||
#define _ASM_POWERPC_SECTIONS_H
|
#define _ASM_POWERPC_SECTIONS_H
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
|
#include <linux/elf.h>
|
||||||
|
#include <linux/uaccess.h>
|
||||||
#include <asm-generic/sections.h>
|
#include <asm-generic/sections.h>
|
||||||
|
|
||||||
#ifdef __powerpc64__
|
#ifdef __powerpc64__
|
||||||
@@ -17,7 +19,15 @@ static inline int in_kernel_text(unsigned long addr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#undef dereference_function_descriptor
|
#undef dereference_function_descriptor
|
||||||
void *dereference_function_descriptor(void *);
|
static inline void *dereference_function_descriptor(void *ptr)
|
||||||
|
{
|
||||||
|
struct ppc64_opd_entry *desc = ptr;
|
||||||
|
void *p;
|
||||||
|
|
||||||
|
if (!probe_kernel_address(&desc->funcaddr, p))
|
||||||
|
ptr = p;
|
||||||
|
return ptr;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -21,9 +21,7 @@
|
|||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <linux/vmalloc.h>
|
#include <linux/vmalloc.h>
|
||||||
#include <linux/bug.h>
|
#include <linux/bug.h>
|
||||||
#include <linux/uaccess.h>
|
|
||||||
#include <asm/module.h>
|
#include <asm/module.h>
|
||||||
#include <asm/sections.h>
|
|
||||||
#include <asm/firmware.h>
|
#include <asm/firmware.h>
|
||||||
#include <asm/code-patching.h>
|
#include <asm/code-patching.h>
|
||||||
#include <linux/sort.h>
|
#include <linux/sort.h>
|
||||||
@@ -43,13 +41,6 @@
|
|||||||
#define DEBUGP(fmt , ...)
|
#define DEBUGP(fmt , ...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* There's actually a third entry here, but it's unused */
|
|
||||||
struct ppc64_opd_entry
|
|
||||||
{
|
|
||||||
unsigned long funcaddr;
|
|
||||||
unsigned long r2;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Like PPC32, we need little trampolines to do > 24-bit jumps (into
|
/* Like PPC32, we need little trampolines to do > 24-bit jumps (into
|
||||||
the kernel itself). But on PPC64, these need to be used for every
|
the kernel itself). But on PPC64, these need to be used for every
|
||||||
jump, actually, to reset r2 (TOC+0x8000). */
|
jump, actually, to reset r2 (TOC+0x8000). */
|
||||||
@@ -452,13 +443,3 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *dereference_function_descriptor(void *ptr)
|
|
||||||
{
|
|
||||||
struct ppc64_opd_entry *desc = ptr;
|
|
||||||
void *p;
|
|
||||||
|
|
||||||
if (!probe_kernel_address(&desc->funcaddr, p))
|
|
||||||
ptr = p;
|
|
||||||
return ptr;
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user