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

+23 -25
+1 -1
arch/powerpc/boot/Makefile
··· 195 195 image-$(CONFIG_PPC_CHRP) += zImage.chrp 196 196 image-$(CONFIG_PPC_EFIKA) += zImage.chrp 197 197 image-$(CONFIG_PPC_PMAC) += zImage.pmac 198 - image-$(CONFIG_PPC_HOLLY) += zImage.holly 198 + image-$(CONFIG_PPC_HOLLY) += dtbImage.holly 199 199 image-$(CONFIG_PPC_PRPMC2800) += dtbImage.prpmc2800 200 200 image-$(CONFIG_PPC_ISERIES) += zImage.iseries 201 201 image-$(CONFIG_DEFAULT_UIMAGE) += uImage
+4 -4
arch/powerpc/boot/dts/mpc8610_hpcd.dts
··· 281 281 cell-index = <0>; 282 282 reg = <0x0 0x80>; 283 283 interrupt-parent = <&mpic>; 284 - interrupts = <60 2>; 284 + interrupts = <76 2>; 285 285 }; 286 286 dma-channel@1 { 287 287 compatible = "fsl,mpc8610-dma-channel", ··· 289 289 cell-index = <1>; 290 290 reg = <0x80 0x80>; 291 291 interrupt-parent = <&mpic>; 292 - interrupts = <61 2>; 292 + interrupts = <77 2>; 293 293 }; 294 294 dma-channel@2 { 295 295 compatible = "fsl,mpc8610-dma-channel", ··· 297 297 cell-index = <2>; 298 298 reg = <0x100 0x80>; 299 299 interrupt-parent = <&mpic>; 300 - interrupts = <62 2>; 300 + interrupts = <78 2>; 301 301 }; 302 302 dma-channel@3 { 303 303 compatible = "fsl,mpc8610-dma-channel", ··· 305 305 cell-index = <3>; 306 306 reg = <0x180 0x80>; 307 307 interrupt-parent = <&mpic>; 308 - interrupts = <63 2>; 308 + interrupts = <79 2>; 309 309 }; 310 310 }; 311 311
+7
arch/powerpc/include/asm/elf.h
··· 409 409 /* Keep this the last entry. */ 410 410 #define R_PPC64_NUM 107 411 411 412 + /* There's actually a third entry here, but it's unused */ 413 + struct ppc64_opd_entry 414 + { 415 + unsigned long funcaddr; 416 + unsigned long r2; 417 + }; 418 + 412 419 #ifdef __KERNEL__ 413 420 414 421 #ifdef CONFIG_SPU_BASE
+11 -1
arch/powerpc/include/asm/sections.h
··· 2 2 #define _ASM_POWERPC_SECTIONS_H 3 3 #ifdef __KERNEL__ 4 4 5 + #include <linux/elf.h> 6 + #include <linux/uaccess.h> 5 7 #include <asm-generic/sections.h> 6 8 7 9 #ifdef __powerpc64__ ··· 19 17 } 20 18 21 19 #undef dereference_function_descriptor 22 - void *dereference_function_descriptor(void *); 20 + static inline void *dereference_function_descriptor(void *ptr) 21 + { 22 + struct ppc64_opd_entry *desc = ptr; 23 + void *p; 24 + 25 + if (!probe_kernel_address(&desc->funcaddr, p)) 26 + ptr = p; 27 + return ptr; 28 + } 23 29 24 30 #endif 25 31
-19
arch/powerpc/kernel/module_64.c
··· 21 21 #include <linux/err.h> 22 22 #include <linux/vmalloc.h> 23 23 #include <linux/bug.h> 24 - #include <linux/uaccess.h> 25 24 #include <asm/module.h> 26 - #include <asm/sections.h> 27 25 #include <asm/firmware.h> 28 26 #include <asm/code-patching.h> 29 27 #include <linux/sort.h> ··· 40 42 #else 41 43 #define DEBUGP(fmt , ...) 42 44 #endif 43 - 44 - /* There's actually a third entry here, but it's unused */ 45 - struct ppc64_opd_entry 46 - { 47 - unsigned long funcaddr; 48 - unsigned long r2; 49 - }; 50 45 51 46 /* Like PPC32, we need little trampolines to do > 24-bit jumps (into 52 47 the kernel itself). But on PPC64, these need to be used for every ··· 442 451 } 443 452 444 453 return 0; 445 - } 446 - 447 - void *dereference_function_descriptor(void *ptr) 448 - { 449 - struct ppc64_opd_entry *desc = ptr; 450 - void *p; 451 - 452 - if (!probe_kernel_address(&desc->funcaddr, p)) 453 - ptr = p; 454 - return ptr; 455 454 }