diff options
author | David S. Miller <davem@davemloft.net> | 2009-06-15 06:02:23 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-06-15 06:02:23 -0400 |
commit | 9cbc1cb8cd46ce1f7645b9de249b2ce8460129bb (patch) | |
tree | 8d104ec2a459346b99413b0b77421ca7b9936c1a /arch/powerpc/include | |
parent | ca44d6e60f9de26281fda203f58b570e1748c015 (diff) | |
parent | 45e3e1935e2857c54783291107d33323b3ef33c8 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
Documentation/feature-removal-schedule.txt
drivers/scsi/fcoe/fcoe.c
net/core/drop_monitor.c
net/core/net-traces.c
Diffstat (limited to 'arch/powerpc/include')
-rw-r--r-- | arch/powerpc/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/powerpc/include/asm/bitsperlong.h | 12 | ||||
-rw-r--r-- | arch/powerpc/include/asm/dma-mapping.h | 6 | ||||
-rw-r--r-- | arch/powerpc/include/asm/fixmap.h | 4 | ||||
-rw-r--r-- | arch/powerpc/include/asm/hw_irq.h | 36 | ||||
-rw-r--r-- | arch/powerpc/include/asm/mman.h | 2 | ||||
-rw-r--r-- | arch/powerpc/include/asm/mpc52xx_psc.h | 11 | ||||
-rw-r--r-- | arch/powerpc/include/asm/paca.h | 1 | ||||
-rw-r--r-- | arch/powerpc/include/asm/page_32.h | 2 | ||||
-rw-r--r-- | arch/powerpc/include/asm/page_64.h | 2 | ||||
-rw-r--r-- | arch/powerpc/include/asm/perf_counter.h | 98 | ||||
-rw-r--r-- | arch/powerpc/include/asm/pgtable-ppc32.h | 26 | ||||
-rw-r--r-- | arch/powerpc/include/asm/reg.h | 2 | ||||
-rw-r--r-- | arch/powerpc/include/asm/signal.h | 2 | ||||
-rw-r--r-- | arch/powerpc/include/asm/systbl.h | 2 | ||||
-rw-r--r-- | arch/powerpc/include/asm/termios.h | 2 | ||||
-rw-r--r-- | arch/powerpc/include/asm/types.h | 9 | ||||
-rw-r--r-- | arch/powerpc/include/asm/unistd.h | 1 |
18 files changed, 198 insertions, 22 deletions
diff --git a/arch/powerpc/include/asm/atomic.h b/arch/powerpc/include/asm/atomic.h index b401950f5259..b7d2d07b6f96 100644 --- a/arch/powerpc/include/asm/atomic.h +++ b/arch/powerpc/include/asm/atomic.h | |||
@@ -472,6 +472,6 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) | |||
472 | 472 | ||
473 | #endif /* __powerpc64__ */ | 473 | #endif /* __powerpc64__ */ |
474 | 474 | ||
475 | #include <asm-generic/atomic.h> | 475 | #include <asm-generic/atomic-long.h> |
476 | #endif /* __KERNEL__ */ | 476 | #endif /* __KERNEL__ */ |
477 | #endif /* _ASM_POWERPC_ATOMIC_H_ */ | 477 | #endif /* _ASM_POWERPC_ATOMIC_H_ */ |
diff --git a/arch/powerpc/include/asm/bitsperlong.h b/arch/powerpc/include/asm/bitsperlong.h new file mode 100644 index 000000000000..5f1659032c40 --- /dev/null +++ b/arch/powerpc/include/asm/bitsperlong.h | |||
@@ -0,0 +1,12 @@ | |||
1 | #ifndef __ASM_POWERPC_BITSPERLONG_H | ||
2 | #define __ASM_POWERPC_BITSPERLONG_H | ||
3 | |||
4 | #if defined(__powerpc64__) | ||
5 | # define __BITS_PER_LONG 64 | ||
6 | #else | ||
7 | # define __BITS_PER_LONG 32 | ||
8 | #endif | ||
9 | |||
10 | #include <asm-generic/bitsperlong.h> | ||
11 | |||
12 | #endif /* __ASM_POWERPC_BITSPERLONG_H */ | ||
diff --git a/arch/powerpc/include/asm/dma-mapping.h b/arch/powerpc/include/asm/dma-mapping.h index c69f2b5f0cc4..cb448d68452c 100644 --- a/arch/powerpc/include/asm/dma-mapping.h +++ b/arch/powerpc/include/asm/dma-mapping.h | |||
@@ -26,7 +26,9 @@ | |||
26 | * allocate the space "normally" and use the cache management functions | 26 | * allocate the space "normally" and use the cache management functions |
27 | * to ensure it is consistent. | 27 | * to ensure it is consistent. |
28 | */ | 28 | */ |
29 | extern void *__dma_alloc_coherent(size_t size, dma_addr_t *handle, gfp_t gfp); | 29 | struct device; |
30 | extern void *__dma_alloc_coherent(struct device *dev, size_t size, | ||
31 | dma_addr_t *handle, gfp_t gfp); | ||
30 | extern void __dma_free_coherent(size_t size, void *vaddr); | 32 | extern void __dma_free_coherent(size_t size, void *vaddr); |
31 | extern void __dma_sync(void *vaddr, size_t size, int direction); | 33 | extern void __dma_sync(void *vaddr, size_t size, int direction); |
32 | extern void __dma_sync_page(struct page *page, unsigned long offset, | 34 | extern void __dma_sync_page(struct page *page, unsigned long offset, |
@@ -37,7 +39,7 @@ extern void __dma_sync_page(struct page *page, unsigned long offset, | |||
37 | * Cache coherent cores. | 39 | * Cache coherent cores. |
38 | */ | 40 | */ |
39 | 41 | ||
40 | #define __dma_alloc_coherent(gfp, size, handle) NULL | 42 | #define __dma_alloc_coherent(dev, gfp, size, handle) NULL |
41 | #define __dma_free_coherent(size, addr) ((void)0) | 43 | #define __dma_free_coherent(size, addr) ((void)0) |
42 | #define __dma_sync(addr, size, rw) ((void)0) | 44 | #define __dma_sync(addr, size, rw) ((void)0) |
43 | #define __dma_sync_page(pg, off, sz, rw) ((void)0) | 45 | #define __dma_sync_page(pg, off, sz, rw) ((void)0) |
diff --git a/arch/powerpc/include/asm/fixmap.h b/arch/powerpc/include/asm/fixmap.h index d60fd18f428c..f1f4e23a84e9 100644 --- a/arch/powerpc/include/asm/fixmap.h +++ b/arch/powerpc/include/asm/fixmap.h | |||
@@ -14,8 +14,6 @@ | |||
14 | #ifndef _ASM_FIXMAP_H | 14 | #ifndef _ASM_FIXMAP_H |
15 | #define _ASM_FIXMAP_H | 15 | #define _ASM_FIXMAP_H |
16 | 16 | ||
17 | extern unsigned long FIXADDR_TOP; | ||
18 | |||
19 | #ifndef __ASSEMBLY__ | 17 | #ifndef __ASSEMBLY__ |
20 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
21 | #include <asm/page.h> | 19 | #include <asm/page.h> |
@@ -24,6 +22,8 @@ extern unsigned long FIXADDR_TOP; | |||
24 | #include <asm/kmap_types.h> | 22 | #include <asm/kmap_types.h> |
25 | #endif | 23 | #endif |
26 | 24 | ||
25 | #define FIXADDR_TOP ((unsigned long)(-PAGE_SIZE)) | ||
26 | |||
27 | /* | 27 | /* |
28 | * Here we define all the compile-time 'special' virtual | 28 | * Here we define all the compile-time 'special' virtual |
29 | * addresses. The point is to have a constant address at | 29 | * addresses. The point is to have a constant address at |
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h index b7e034b0a6dd..53512374e1c9 100644 --- a/arch/powerpc/include/asm/hw_irq.h +++ b/arch/powerpc/include/asm/hw_irq.h | |||
@@ -131,5 +131,41 @@ static inline int irqs_disabled_flags(unsigned long flags) | |||
131 | */ | 131 | */ |
132 | struct irq_chip; | 132 | struct irq_chip; |
133 | 133 | ||
134 | #ifdef CONFIG_PERF_COUNTERS | ||
135 | static inline unsigned long test_perf_counter_pending(void) | ||
136 | { | ||
137 | unsigned long x; | ||
138 | |||
139 | asm volatile("lbz %0,%1(13)" | ||
140 | : "=r" (x) | ||
141 | : "i" (offsetof(struct paca_struct, perf_counter_pending))); | ||
142 | return x; | ||
143 | } | ||
144 | |||
145 | static inline void set_perf_counter_pending(void) | ||
146 | { | ||
147 | asm volatile("stb %0,%1(13)" : : | ||
148 | "r" (1), | ||
149 | "i" (offsetof(struct paca_struct, perf_counter_pending))); | ||
150 | } | ||
151 | |||
152 | static inline void clear_perf_counter_pending(void) | ||
153 | { | ||
154 | asm volatile("stb %0,%1(13)" : : | ||
155 | "r" (0), | ||
156 | "i" (offsetof(struct paca_struct, perf_counter_pending))); | ||
157 | } | ||
158 | |||
159 | #else | ||
160 | |||
161 | static inline unsigned long test_perf_counter_pending(void) | ||
162 | { | ||
163 | return 0; | ||
164 | } | ||
165 | |||
166 | static inline void set_perf_counter_pending(void) {} | ||
167 | static inline void clear_perf_counter_pending(void) {} | ||
168 | #endif /* CONFIG_PERF_COUNTERS */ | ||
169 | |||
134 | #endif /* __KERNEL__ */ | 170 | #endif /* __KERNEL__ */ |
135 | #endif /* _ASM_POWERPC_HW_IRQ_H */ | 171 | #endif /* _ASM_POWERPC_HW_IRQ_H */ |
diff --git a/arch/powerpc/include/asm/mman.h b/arch/powerpc/include/asm/mman.h index e7b99bac9f48..7b1c49811a24 100644 --- a/arch/powerpc/include/asm/mman.h +++ b/arch/powerpc/include/asm/mman.h | |||
@@ -1,7 +1,7 @@ | |||
1 | #ifndef _ASM_POWERPC_MMAN_H | 1 | #ifndef _ASM_POWERPC_MMAN_H |
2 | #define _ASM_POWERPC_MMAN_H | 2 | #define _ASM_POWERPC_MMAN_H |
3 | 3 | ||
4 | #include <asm-generic/mman.h> | 4 | #include <asm-generic/mman-common.h> |
5 | 5 | ||
6 | /* | 6 | /* |
7 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
diff --git a/arch/powerpc/include/asm/mpc52xx_psc.h b/arch/powerpc/include/asm/mpc52xx_psc.h index a218da6bec7c..fb8412057450 100644 --- a/arch/powerpc/include/asm/mpc52xx_psc.h +++ b/arch/powerpc/include/asm/mpc52xx_psc.h | |||
@@ -28,6 +28,10 @@ | |||
28 | #define MPC52xx_PSC_MAXNUM 6 | 28 | #define MPC52xx_PSC_MAXNUM 6 |
29 | 29 | ||
30 | /* Programmable Serial Controller (PSC) status register bits */ | 30 | /* Programmable Serial Controller (PSC) status register bits */ |
31 | #define MPC52xx_PSC_SR_UNEX_RX 0x0001 | ||
32 | #define MPC52xx_PSC_SR_DATA_VAL 0x0002 | ||
33 | #define MPC52xx_PSC_SR_DATA_OVR 0x0004 | ||
34 | #define MPC52xx_PSC_SR_CMDSEND 0x0008 | ||
31 | #define MPC52xx_PSC_SR_CDE 0x0080 | 35 | #define MPC52xx_PSC_SR_CDE 0x0080 |
32 | #define MPC52xx_PSC_SR_RXRDY 0x0100 | 36 | #define MPC52xx_PSC_SR_RXRDY 0x0100 |
33 | #define MPC52xx_PSC_SR_RXFULL 0x0200 | 37 | #define MPC52xx_PSC_SR_RXFULL 0x0200 |
@@ -61,6 +65,12 @@ | |||
61 | #define MPC52xx_PSC_RXTX_FIFO_EMPTY 0x0001 | 65 | #define MPC52xx_PSC_RXTX_FIFO_EMPTY 0x0001 |
62 | 66 | ||
63 | /* PSC interrupt status/mask bits */ | 67 | /* PSC interrupt status/mask bits */ |
68 | #define MPC52xx_PSC_IMR_UNEX_RX_SLOT 0x0001 | ||
69 | #define MPC52xx_PSC_IMR_DATA_VALID 0x0002 | ||
70 | #define MPC52xx_PSC_IMR_DATA_OVR 0x0004 | ||
71 | #define MPC52xx_PSC_IMR_CMD_SEND 0x0008 | ||
72 | #define MPC52xx_PSC_IMR_ERROR 0x0040 | ||
73 | #define MPC52xx_PSC_IMR_DEOF 0x0080 | ||
64 | #define MPC52xx_PSC_IMR_TXRDY 0x0100 | 74 | #define MPC52xx_PSC_IMR_TXRDY 0x0100 |
65 | #define MPC52xx_PSC_IMR_RXRDY 0x0200 | 75 | #define MPC52xx_PSC_IMR_RXRDY 0x0200 |
66 | #define MPC52xx_PSC_IMR_DB 0x0400 | 76 | #define MPC52xx_PSC_IMR_DB 0x0400 |
@@ -117,6 +127,7 @@ | |||
117 | #define MPC52xx_PSC_SICR_SIM_FIR (0x6 << 24) | 127 | #define MPC52xx_PSC_SICR_SIM_FIR (0x6 << 24) |
118 | #define MPC52xx_PSC_SICR_SIM_CODEC_24 (0x7 << 24) | 128 | #define MPC52xx_PSC_SICR_SIM_CODEC_24 (0x7 << 24) |
119 | #define MPC52xx_PSC_SICR_SIM_CODEC_32 (0xf << 24) | 129 | #define MPC52xx_PSC_SICR_SIM_CODEC_32 (0xf << 24) |
130 | #define MPC52xx_PSC_SICR_AWR (1 << 30) | ||
120 | #define MPC52xx_PSC_SICR_GENCLK (1 << 23) | 131 | #define MPC52xx_PSC_SICR_GENCLK (1 << 23) |
121 | #define MPC52xx_PSC_SICR_I2S (1 << 22) | 132 | #define MPC52xx_PSC_SICR_I2S (1 << 22) |
122 | #define MPC52xx_PSC_SICR_CLKPOL (1 << 21) | 133 | #define MPC52xx_PSC_SICR_CLKPOL (1 << 21) |
diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h index 082b3aedf145..6ef055723019 100644 --- a/arch/powerpc/include/asm/paca.h +++ b/arch/powerpc/include/asm/paca.h | |||
@@ -99,6 +99,7 @@ struct paca_struct { | |||
99 | u8 soft_enabled; /* irq soft-enable flag */ | 99 | u8 soft_enabled; /* irq soft-enable flag */ |
100 | u8 hard_enabled; /* set if irqs are enabled in MSR */ | 100 | u8 hard_enabled; /* set if irqs are enabled in MSR */ |
101 | u8 io_sync; /* writel() needs spin_unlock sync */ | 101 | u8 io_sync; /* writel() needs spin_unlock sync */ |
102 | u8 perf_counter_pending; /* PM interrupt while soft-disabled */ | ||
102 | 103 | ||
103 | /* Stuff for accurate time accounting */ | 104 | /* Stuff for accurate time accounting */ |
104 | u64 user_time; /* accumulated usermode TB ticks */ | 105 | u64 user_time; /* accumulated usermode TB ticks */ |
diff --git a/arch/powerpc/include/asm/page_32.h b/arch/powerpc/include/asm/page_32.h index a0e3f6e6b4ee..bd0849dbcaaa 100644 --- a/arch/powerpc/include/asm/page_32.h +++ b/arch/powerpc/include/asm/page_32.h | |||
@@ -41,7 +41,7 @@ extern void clear_pages(void *page, int order); | |||
41 | static inline void clear_page(void *page) { clear_pages(page, 0); } | 41 | static inline void clear_page(void *page) { clear_pages(page, 0); } |
42 | extern void copy_page(void *to, void *from); | 42 | extern void copy_page(void *to, void *from); |
43 | 43 | ||
44 | #include <asm-generic/page.h> | 44 | #include <asm-generic/getorder.h> |
45 | 45 | ||
46 | #define PGD_T_LOG2 (__builtin_ffs(sizeof(pgd_t)) - 1) | 46 | #define PGD_T_LOG2 (__builtin_ffs(sizeof(pgd_t)) - 1) |
47 | #define PTE_T_LOG2 (__builtin_ffs(sizeof(pte_t)) - 1) | 47 | #define PTE_T_LOG2 (__builtin_ffs(sizeof(pte_t)) - 1) |
diff --git a/arch/powerpc/include/asm/page_64.h b/arch/powerpc/include/asm/page_64.h index 043bfdfe4f73..5817a3b747e5 100644 --- a/arch/powerpc/include/asm/page_64.h +++ b/arch/powerpc/include/asm/page_64.h | |||
@@ -180,6 +180,6 @@ do { \ | |||
180 | (test_thread_flag(TIF_32BIT) ? \ | 180 | (test_thread_flag(TIF_32BIT) ? \ |
181 | VM_STACK_DEFAULT_FLAGS32 : VM_STACK_DEFAULT_FLAGS64) | 181 | VM_STACK_DEFAULT_FLAGS32 : VM_STACK_DEFAULT_FLAGS64) |
182 | 182 | ||
183 | #include <asm-generic/page.h> | 183 | #include <asm-generic/getorder.h> |
184 | 184 | ||
185 | #endif /* _ASM_POWERPC_PAGE_64_H */ | 185 | #endif /* _ASM_POWERPC_PAGE_64_H */ |
diff --git a/arch/powerpc/include/asm/perf_counter.h b/arch/powerpc/include/asm/perf_counter.h new file mode 100644 index 000000000000..cc7c887705b8 --- /dev/null +++ b/arch/powerpc/include/asm/perf_counter.h | |||
@@ -0,0 +1,98 @@ | |||
1 | /* | ||
2 | * Performance counter support - PowerPC-specific definitions. | ||
3 | * | ||
4 | * Copyright 2008-2009 Paul Mackerras, IBM Corporation. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License | ||
8 | * as published by the Free Software Foundation; either version | ||
9 | * 2 of the License, or (at your option) any later version. | ||
10 | */ | ||
11 | #include <linux/types.h> | ||
12 | |||
13 | #define MAX_HWCOUNTERS 8 | ||
14 | #define MAX_EVENT_ALTERNATIVES 8 | ||
15 | #define MAX_LIMITED_HWCOUNTERS 2 | ||
16 | |||
17 | /* | ||
18 | * This struct provides the constants and functions needed to | ||
19 | * describe the PMU on a particular POWER-family CPU. | ||
20 | */ | ||
21 | struct power_pmu { | ||
22 | int n_counter; | ||
23 | int max_alternatives; | ||
24 | u64 add_fields; | ||
25 | u64 test_adder; | ||
26 | int (*compute_mmcr)(u64 events[], int n_ev, | ||
27 | unsigned int hwc[], u64 mmcr[]); | ||
28 | int (*get_constraint)(u64 event, u64 *mskp, u64 *valp); | ||
29 | int (*get_alternatives)(u64 event, unsigned int flags, | ||
30 | u64 alt[]); | ||
31 | void (*disable_pmc)(unsigned int pmc, u64 mmcr[]); | ||
32 | int (*limited_pmc_event)(u64 event); | ||
33 | u32 flags; | ||
34 | int n_generic; | ||
35 | int *generic_events; | ||
36 | int (*cache_events)[PERF_COUNT_HW_CACHE_MAX] | ||
37 | [PERF_COUNT_HW_CACHE_OP_MAX] | ||
38 | [PERF_COUNT_HW_CACHE_RESULT_MAX]; | ||
39 | }; | ||
40 | |||
41 | extern struct power_pmu *ppmu; | ||
42 | |||
43 | /* | ||
44 | * Values for power_pmu.flags | ||
45 | */ | ||
46 | #define PPMU_LIMITED_PMC5_6 1 /* PMC5/6 have limited function */ | ||
47 | #define PPMU_ALT_SIPR 2 /* uses alternate posn for SIPR/HV */ | ||
48 | |||
49 | /* | ||
50 | * Values for flags to get_alternatives() | ||
51 | */ | ||
52 | #define PPMU_LIMITED_PMC_OK 1 /* can put this on a limited PMC */ | ||
53 | #define PPMU_LIMITED_PMC_REQD 2 /* have to put this on a limited PMC */ | ||
54 | #define PPMU_ONLY_COUNT_RUN 4 /* only counting in run state */ | ||
55 | |||
56 | struct pt_regs; | ||
57 | extern unsigned long perf_misc_flags(struct pt_regs *regs); | ||
58 | #define perf_misc_flags(regs) perf_misc_flags(regs) | ||
59 | |||
60 | extern unsigned long perf_instruction_pointer(struct pt_regs *regs); | ||
61 | |||
62 | /* | ||
63 | * The power_pmu.get_constraint function returns a 64-bit value and | ||
64 | * a 64-bit mask that express the constraints between this event and | ||
65 | * other events. | ||
66 | * | ||
67 | * The value and mask are divided up into (non-overlapping) bitfields | ||
68 | * of three different types: | ||
69 | * | ||
70 | * Select field: this expresses the constraint that some set of bits | ||
71 | * in MMCR* needs to be set to a specific value for this event. For a | ||
72 | * select field, the mask contains 1s in every bit of the field, and | ||
73 | * the value contains a unique value for each possible setting of the | ||
74 | * MMCR* bits. The constraint checking code will ensure that two events | ||
75 | * that set the same field in their masks have the same value in their | ||
76 | * value dwords. | ||
77 | * | ||
78 | * Add field: this expresses the constraint that there can be at most | ||
79 | * N events in a particular class. A field of k bits can be used for | ||
80 | * N <= 2^(k-1) - 1. The mask has the most significant bit of the field | ||
81 | * set (and the other bits 0), and the value has only the least significant | ||
82 | * bit of the field set. In addition, the 'add_fields' and 'test_adder' | ||
83 | * in the struct power_pmu for this processor come into play. The | ||
84 | * add_fields value contains 1 in the LSB of the field, and the | ||
85 | * test_adder contains 2^(k-1) - 1 - N in the field. | ||
86 | * | ||
87 | * NAND field: this expresses the constraint that you may not have events | ||
88 | * in all of a set of classes. (For example, on PPC970, you can't select | ||
89 | * events from the FPU, ISU and IDU simultaneously, although any two are | ||
90 | * possible.) For N classes, the field is N+1 bits wide, and each class | ||
91 | * is assigned one bit from the least-significant N bits. The mask has | ||
92 | * only the most-significant bit set, and the value has only the bit | ||
93 | * for the event's class set. The test_adder has the least significant | ||
94 | * bit set in the field. | ||
95 | * | ||
96 | * If an event is not subject to the constraint expressed by a particular | ||
97 | * field, then it will have 0 in both the mask and value for that field. | ||
98 | */ | ||
diff --git a/arch/powerpc/include/asm/pgtable-ppc32.h b/arch/powerpc/include/asm/pgtable-ppc32.h index ba45c997830f..c9ff9d75990e 100644 --- a/arch/powerpc/include/asm/pgtable-ppc32.h +++ b/arch/powerpc/include/asm/pgtable-ppc32.h | |||
@@ -10,7 +10,7 @@ | |||
10 | 10 | ||
11 | extern unsigned long va_to_phys(unsigned long address); | 11 | extern unsigned long va_to_phys(unsigned long address); |
12 | extern pte_t *va_to_pte(unsigned long address); | 12 | extern pte_t *va_to_pte(unsigned long address); |
13 | extern unsigned long ioremap_bot, ioremap_base; | 13 | extern unsigned long ioremap_bot; |
14 | 14 | ||
15 | #ifdef CONFIG_44x | 15 | #ifdef CONFIG_44x |
16 | extern int icache_44x_need_flush; | 16 | extern int icache_44x_need_flush; |
@@ -56,8 +56,30 @@ extern int icache_44x_need_flush; | |||
56 | printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e)) | 56 | printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e)) |
57 | 57 | ||
58 | /* | 58 | /* |
59 | * This is the bottom of the PKMAP area with HIGHMEM or an arbitrary | ||
60 | * value (for now) on others, from where we can start layout kernel | ||
61 | * virtual space that goes below PKMAP and FIXMAP | ||
62 | */ | ||
63 | #ifdef CONFIG_HIGHMEM | ||
64 | #define KVIRT_TOP PKMAP_BASE | ||
65 | #else | ||
66 | #define KVIRT_TOP (0xfe000000UL) /* for now, could be FIXMAP_BASE ? */ | ||
67 | #endif | ||
68 | |||
69 | /* | ||
70 | * ioremap_bot starts at that address. Early ioremaps move down from there, | ||
71 | * until mem_init() at which point this becomes the top of the vmalloc | ||
72 | * and ioremap space | ||
73 | */ | ||
74 | #ifdef CONFIG_NOT_COHERENT_CACHE | ||
75 | #define IOREMAP_TOP ((KVIRT_TOP - CONFIG_CONSISTENT_SIZE) & PAGE_MASK) | ||
76 | #else | ||
77 | #define IOREMAP_TOP KVIRT_TOP | ||
78 | #endif | ||
79 | |||
80 | /* | ||
59 | * Just any arbitrary offset to the start of the vmalloc VM area: the | 81 | * Just any arbitrary offset to the start of the vmalloc VM area: the |
60 | * current 64MB value just means that there will be a 64MB "hole" after the | 82 | * current 16MB value just means that there will be a 64MB "hole" after the |
61 | * physical memory until the kernel virtual memory starts. That means that | 83 | * physical memory until the kernel virtual memory starts. That means that |
62 | * any out-of-bounds memory accesses will hopefully be caught. | 84 | * any out-of-bounds memory accesses will hopefully be caught. |
63 | * The vmalloc() routines leaves a hole of 4kB between each vmalloced | 85 | * The vmalloc() routines leaves a hole of 4kB between each vmalloced |
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h index e8018d540e87..fb359b0a6937 100644 --- a/arch/powerpc/include/asm/reg.h +++ b/arch/powerpc/include/asm/reg.h | |||
@@ -492,11 +492,13 @@ | |||
492 | #define MMCR0_FCHV 0x00000001UL /* freeze conditions in hypervisor mode */ | 492 | #define MMCR0_FCHV 0x00000001UL /* freeze conditions in hypervisor mode */ |
493 | #define SPRN_MMCR1 798 | 493 | #define SPRN_MMCR1 798 |
494 | #define SPRN_MMCRA 0x312 | 494 | #define SPRN_MMCRA 0x312 |
495 | #define MMCRA_SDSYNC 0x80000000UL /* SDAR synced with SIAR */ | ||
495 | #define MMCRA_SIHV 0x10000000UL /* state of MSR HV when SIAR set */ | 496 | #define MMCRA_SIHV 0x10000000UL /* state of MSR HV when SIAR set */ |
496 | #define MMCRA_SIPR 0x08000000UL /* state of MSR PR when SIAR set */ | 497 | #define MMCRA_SIPR 0x08000000UL /* state of MSR PR when SIAR set */ |
497 | #define MMCRA_SLOT 0x07000000UL /* SLOT bits (37-39) */ | 498 | #define MMCRA_SLOT 0x07000000UL /* SLOT bits (37-39) */ |
498 | #define MMCRA_SLOT_SHIFT 24 | 499 | #define MMCRA_SLOT_SHIFT 24 |
499 | #define MMCRA_SAMPLE_ENABLE 0x00000001UL /* enable sampling */ | 500 | #define MMCRA_SAMPLE_ENABLE 0x00000001UL /* enable sampling */ |
501 | #define POWER6_MMCRA_SDSYNC 0x0000080000000000ULL /* SDAR/SIAR synced */ | ||
500 | #define POWER6_MMCRA_SIHV 0x0000040000000000ULL | 502 | #define POWER6_MMCRA_SIHV 0x0000040000000000ULL |
501 | #define POWER6_MMCRA_SIPR 0x0000020000000000ULL | 503 | #define POWER6_MMCRA_SIPR 0x0000020000000000ULL |
502 | #define POWER6_MMCRA_THRM 0x00000020UL | 504 | #define POWER6_MMCRA_THRM 0x00000020UL |
diff --git a/arch/powerpc/include/asm/signal.h b/arch/powerpc/include/asm/signal.h index 69f709d8e8e7..3eb13be11d8f 100644 --- a/arch/powerpc/include/asm/signal.h +++ b/arch/powerpc/include/asm/signal.h | |||
@@ -94,7 +94,7 @@ typedef struct { | |||
94 | #define MINSIGSTKSZ 2048 | 94 | #define MINSIGSTKSZ 2048 |
95 | #define SIGSTKSZ 8192 | 95 | #define SIGSTKSZ 8192 |
96 | 96 | ||
97 | #include <asm-generic/signal.h> | 97 | #include <asm-generic/signal-defs.h> |
98 | 98 | ||
99 | struct old_sigaction { | 99 | struct old_sigaction { |
100 | __sighandler_t sa_handler; | 100 | __sighandler_t sa_handler; |
diff --git a/arch/powerpc/include/asm/systbl.h b/arch/powerpc/include/asm/systbl.h index d98a30dfd41c..a0b92de51c7e 100644 --- a/arch/powerpc/include/asm/systbl.h +++ b/arch/powerpc/include/asm/systbl.h | |||
@@ -322,6 +322,6 @@ SYSCALL_SPU(epoll_create1) | |||
322 | SYSCALL_SPU(dup3) | 322 | SYSCALL_SPU(dup3) |
323 | SYSCALL_SPU(pipe2) | 323 | SYSCALL_SPU(pipe2) |
324 | SYSCALL(inotify_init1) | 324 | SYSCALL(inotify_init1) |
325 | SYSCALL(ni_syscall) | 325 | SYSCALL_SPU(perf_counter_open) |
326 | COMPAT_SYS_SPU(preadv) | 326 | COMPAT_SYS_SPU(preadv) |
327 | COMPAT_SYS_SPU(pwritev) | 327 | COMPAT_SYS_SPU(pwritev) |
diff --git a/arch/powerpc/include/asm/termios.h b/arch/powerpc/include/asm/termios.h index 2c14fea07c8a..a24f48704a34 100644 --- a/arch/powerpc/include/asm/termios.h +++ b/arch/powerpc/include/asm/termios.h | |||
@@ -78,7 +78,7 @@ struct termio { | |||
78 | 78 | ||
79 | #ifdef __KERNEL__ | 79 | #ifdef __KERNEL__ |
80 | 80 | ||
81 | #include <asm-generic/termios.h> | 81 | #include <asm-generic/termios-base.h> |
82 | 82 | ||
83 | #endif /* __KERNEL__ */ | 83 | #endif /* __KERNEL__ */ |
84 | 84 | ||
diff --git a/arch/powerpc/include/asm/types.h b/arch/powerpc/include/asm/types.h index 7ce27a52bb34..a5aea0ca34e9 100644 --- a/arch/powerpc/include/asm/types.h +++ b/arch/powerpc/include/asm/types.h | |||
@@ -40,15 +40,6 @@ typedef struct { | |||
40 | #endif /* __ASSEMBLY__ */ | 40 | #endif /* __ASSEMBLY__ */ |
41 | 41 | ||
42 | #ifdef __KERNEL__ | 42 | #ifdef __KERNEL__ |
43 | /* | ||
44 | * These aren't exported outside the kernel to avoid name space clashes | ||
45 | */ | ||
46 | #ifdef __powerpc64__ | ||
47 | #define BITS_PER_LONG 64 | ||
48 | #else | ||
49 | #define BITS_PER_LONG 32 | ||
50 | #endif | ||
51 | |||
52 | #ifndef __ASSEMBLY__ | 43 | #ifndef __ASSEMBLY__ |
53 | 44 | ||
54 | typedef __vector128 vector128; | 45 | typedef __vector128 vector128; |
diff --git a/arch/powerpc/include/asm/unistd.h b/arch/powerpc/include/asm/unistd.h index 3f06f8ec81c5..4badac2d11d1 100644 --- a/arch/powerpc/include/asm/unistd.h +++ b/arch/powerpc/include/asm/unistd.h | |||
@@ -341,6 +341,7 @@ | |||
341 | #define __NR_dup3 316 | 341 | #define __NR_dup3 316 |
342 | #define __NR_pipe2 317 | 342 | #define __NR_pipe2 317 |
343 | #define __NR_inotify_init1 318 | 343 | #define __NR_inotify_init1 318 |
344 | #define __NR_perf_counter_open 319 | ||
344 | #define __NR_preadv 320 | 345 | #define __NR_preadv 320 |
345 | #define __NR_pwritev 321 | 346 | #define __NR_pwritev 321 |
346 | 347 | ||