diff options
Diffstat (limited to 'arch/microblaze')
-rw-r--r-- | arch/microblaze/include/asm/device.h | 16 | ||||
-rw-r--r-- | arch/microblaze/include/asm/of_device.h | 3 | ||||
-rw-r--r-- | arch/microblaze/include/asm/scatterlist.h | 2 | ||||
-rw-r--r-- | arch/microblaze/include/asm/system.h | 11 | ||||
-rw-r--r-- | arch/microblaze/include/asm/thread_info.h | 2 | ||||
-rw-r--r-- | arch/microblaze/include/asm/uaccess.h | 87 | ||||
-rw-r--r-- | arch/microblaze/kernel/cpu/cache.c | 3 | ||||
-rw-r--r-- | arch/microblaze/kernel/entry-nommu.S | 2 | ||||
-rw-r--r-- | arch/microblaze/kernel/microblaze_ksyms.c | 11 | ||||
-rw-r--r-- | arch/microblaze/kernel/module.c | 2 | ||||
-rw-r--r-- | arch/microblaze/kernel/of_device.c | 13 | ||||
-rw-r--r-- | arch/microblaze/kernel/of_platform.c | 6 | ||||
-rw-r--r-- | arch/microblaze/mm/init.c | 1 | ||||
-rw-r--r-- | arch/microblaze/mm/pgtable.c | 1 | ||||
-rw-r--r-- | arch/microblaze/pci/pci-common.c | 2 |
15 files changed, 114 insertions, 48 deletions
diff --git a/arch/microblaze/include/asm/device.h b/arch/microblaze/include/asm/device.h index 402b46e630f6..123b2fe72d01 100644 --- a/arch/microblaze/include/asm/device.h +++ b/arch/microblaze/include/asm/device.h | |||
@@ -12,29 +12,15 @@ | |||
12 | struct device_node; | 12 | struct device_node; |
13 | 13 | ||
14 | struct dev_archdata { | 14 | struct dev_archdata { |
15 | /* Optional pointer to an OF device node */ | ||
16 | struct device_node *of_node; | ||
17 | |||
18 | /* DMA operations on that device */ | 15 | /* DMA operations on that device */ |
19 | struct dma_map_ops *dma_ops; | 16 | struct dma_map_ops *dma_ops; |
20 | void *dma_data; | 17 | void *dma_data; |
21 | }; | 18 | }; |
22 | 19 | ||
23 | struct pdev_archdata { | 20 | struct pdev_archdata { |
21 | u64 dma_mask; | ||
24 | }; | 22 | }; |
25 | 23 | ||
26 | static inline void dev_archdata_set_node(struct dev_archdata *ad, | ||
27 | struct device_node *np) | ||
28 | { | ||
29 | ad->of_node = np; | ||
30 | } | ||
31 | |||
32 | static inline struct device_node * | ||
33 | dev_archdata_get_node(const struct dev_archdata *ad) | ||
34 | { | ||
35 | return ad->of_node; | ||
36 | } | ||
37 | |||
38 | #endif /* _ASM_MICROBLAZE_DEVICE_H */ | 24 | #endif /* _ASM_MICROBLAZE_DEVICE_H */ |
39 | 25 | ||
40 | 26 | ||
diff --git a/arch/microblaze/include/asm/of_device.h b/arch/microblaze/include/asm/of_device.h index ba917cfaefe6..73cb98040982 100644 --- a/arch/microblaze/include/asm/of_device.h +++ b/arch/microblaze/include/asm/of_device.h | |||
@@ -21,9 +21,8 @@ | |||
21 | * probed using OF properties. | 21 | * probed using OF properties. |
22 | */ | 22 | */ |
23 | struct of_device { | 23 | struct of_device { |
24 | struct device_node *node; /* to be obsoleted */ | ||
25 | u64 dma_mask; /* DMA mask */ | ||
26 | struct device dev; /* Generic device interface */ | 24 | struct device dev; /* Generic device interface */ |
25 | struct pdev_archdata archdata; | ||
27 | }; | 26 | }; |
28 | 27 | ||
29 | extern ssize_t of_device_get_modalias(struct of_device *ofdev, | 28 | extern ssize_t of_device_get_modalias(struct of_device *ofdev, |
diff --git a/arch/microblaze/include/asm/scatterlist.h b/arch/microblaze/include/asm/scatterlist.h index 35d786fe93ae..dc4a8900cc80 100644 --- a/arch/microblaze/include/asm/scatterlist.h +++ b/arch/microblaze/include/asm/scatterlist.h | |||
@@ -1 +1,3 @@ | |||
1 | #include <asm-generic/scatterlist.h> | 1 | #include <asm-generic/scatterlist.h> |
2 | |||
3 | #define ISA_DMA_THRESHOLD (~0UL) | ||
diff --git a/arch/microblaze/include/asm/system.h b/arch/microblaze/include/asm/system.h index 59efb3fef957..48c4f0335e3f 100644 --- a/arch/microblaze/include/asm/system.h +++ b/arch/microblaze/include/asm/system.h | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <asm/registers.h> | 12 | #include <asm/registers.h> |
13 | #include <asm/setup.h> | 13 | #include <asm/setup.h> |
14 | #include <asm/irqflags.h> | 14 | #include <asm/irqflags.h> |
15 | #include <asm/cache.h> | ||
15 | 16 | ||
16 | #include <asm-generic/cmpxchg.h> | 17 | #include <asm-generic/cmpxchg.h> |
17 | #include <asm-generic/cmpxchg-local.h> | 18 | #include <asm-generic/cmpxchg-local.h> |
@@ -96,4 +97,14 @@ extern struct dentry *of_debugfs_root; | |||
96 | 97 | ||
97 | #define arch_align_stack(x) (x) | 98 | #define arch_align_stack(x) (x) |
98 | 99 | ||
100 | /* | ||
101 | * MicroBlaze doesn't handle unaligned accesses in hardware. | ||
102 | * | ||
103 | * Based on this we force the IP header alignment in network drivers. | ||
104 | * We also modify NET_SKB_PAD to be a cacheline in size, thus maintaining | ||
105 | * cacheline alignment of buffers. | ||
106 | */ | ||
107 | #define NET_IP_ALIGN 2 | ||
108 | #define NET_SKB_PAD L1_CACHE_BYTES | ||
109 | |||
99 | #endif /* _ASM_MICROBLAZE_SYSTEM_H */ | 110 | #endif /* _ASM_MICROBLAZE_SYSTEM_H */ |
diff --git a/arch/microblaze/include/asm/thread_info.h b/arch/microblaze/include/asm/thread_info.h index b2ca80f64640..8a8e9fc6e0c0 100644 --- a/arch/microblaze/include/asm/thread_info.h +++ b/arch/microblaze/include/asm/thread_info.h | |||
@@ -122,7 +122,7 @@ static inline struct thread_info *current_thread_info(void) | |||
122 | /* restore singlestep on return to user mode */ | 122 | /* restore singlestep on return to user mode */ |
123 | #define TIF_SINGLESTEP 4 | 123 | #define TIF_SINGLESTEP 4 |
124 | #define TIF_IRET 5 /* return with iret */ | 124 | #define TIF_IRET 5 /* return with iret */ |
125 | #define TIF_MEMDIE 6 | 125 | #define TIF_MEMDIE 6 /* is terminating due to OOM killer */ |
126 | #define TIF_SYSCALL_AUDIT 9 /* syscall auditing active */ | 126 | #define TIF_SYSCALL_AUDIT 9 /* syscall auditing active */ |
127 | #define TIF_SECCOMP 10 /* secure computing */ | 127 | #define TIF_SECCOMP 10 /* secure computing */ |
128 | #define TIF_FREEZE 14 /* Freezing for suspend */ | 128 | #define TIF_FREEZE 14 /* Freezing for suspend */ |
diff --git a/arch/microblaze/include/asm/uaccess.h b/arch/microblaze/include/asm/uaccess.h index 446bec29b142..26460d15b338 100644 --- a/arch/microblaze/include/asm/uaccess.h +++ b/arch/microblaze/include/asm/uaccess.h | |||
@@ -182,6 +182,39 @@ extern long __user_bad(void); | |||
182 | * Returns zero on success, or -EFAULT on error. | 182 | * Returns zero on success, or -EFAULT on error. |
183 | * On error, the variable @x is set to zero. | 183 | * On error, the variable @x is set to zero. |
184 | */ | 184 | */ |
185 | #define get_user(x, ptr) \ | ||
186 | __get_user_check((x), (ptr), sizeof(*(ptr))) | ||
187 | |||
188 | #define __get_user_check(x, ptr, size) \ | ||
189 | ({ \ | ||
190 | unsigned long __gu_val = 0; \ | ||
191 | const typeof(*(ptr)) __user *__gu_addr = (ptr); \ | ||
192 | int __gu_err = 0; \ | ||
193 | \ | ||
194 | if (access_ok(VERIFY_READ, __gu_addr, size)) { \ | ||
195 | switch (size) { \ | ||
196 | case 1: \ | ||
197 | __get_user_asm("lbu", __gu_addr, __gu_val, \ | ||
198 | __gu_err); \ | ||
199 | break; \ | ||
200 | case 2: \ | ||
201 | __get_user_asm("lhu", __gu_addr, __gu_val, \ | ||
202 | __gu_err); \ | ||
203 | break; \ | ||
204 | case 4: \ | ||
205 | __get_user_asm("lw", __gu_addr, __gu_val, \ | ||
206 | __gu_err); \ | ||
207 | break; \ | ||
208 | default: \ | ||
209 | __gu_err = __user_bad(); \ | ||
210 | break; \ | ||
211 | } \ | ||
212 | } else { \ | ||
213 | __gu_err = -EFAULT; \ | ||
214 | } \ | ||
215 | x = (typeof(*(ptr)))__gu_val; \ | ||
216 | __gu_err; \ | ||
217 | }) | ||
185 | 218 | ||
186 | #define __get_user(x, ptr) \ | 219 | #define __get_user(x, ptr) \ |
187 | ({ \ | 220 | ({ \ |
@@ -206,12 +239,6 @@ extern long __user_bad(void); | |||
206 | }) | 239 | }) |
207 | 240 | ||
208 | 241 | ||
209 | #define get_user(x, ptr) \ | ||
210 | ({ \ | ||
211 | access_ok(VERIFY_READ, (ptr), sizeof(*(ptr))) \ | ||
212 | ? __get_user((x), (ptr)) : -EFAULT; \ | ||
213 | }) | ||
214 | |||
215 | #define __put_user_asm(insn, __gu_ptr, __gu_val, __gu_err) \ | 242 | #define __put_user_asm(insn, __gu_ptr, __gu_val, __gu_err) \ |
216 | ({ \ | 243 | ({ \ |
217 | __asm__ __volatile__ ( \ | 244 | __asm__ __volatile__ ( \ |
@@ -266,6 +293,42 @@ extern long __user_bad(void); | |||
266 | * | 293 | * |
267 | * Returns zero on success, or -EFAULT on error. | 294 | * Returns zero on success, or -EFAULT on error. |
268 | */ | 295 | */ |
296 | #define put_user(x, ptr) \ | ||
297 | __put_user_check((x), (ptr), sizeof(*(ptr))) | ||
298 | |||
299 | #define __put_user_check(x, ptr, size) \ | ||
300 | ({ \ | ||
301 | typeof(*(ptr)) __pu_val; \ | ||
302 | typeof(*(ptr)) __user *__pu_addr = (ptr); \ | ||
303 | int __pu_err = 0; \ | ||
304 | \ | ||
305 | __pu_val = (x); \ | ||
306 | if (access_ok(VERIFY_WRITE, __pu_addr, size)) { \ | ||
307 | switch (size) { \ | ||
308 | case 1: \ | ||
309 | __put_user_asm("sb", __pu_addr, __pu_val, \ | ||
310 | __pu_err); \ | ||
311 | break; \ | ||
312 | case 2: \ | ||
313 | __put_user_asm("sh", __pu_addr, __pu_val, \ | ||
314 | __pu_err); \ | ||
315 | break; \ | ||
316 | case 4: \ | ||
317 | __put_user_asm("sw", __pu_addr, __pu_val, \ | ||
318 | __pu_err); \ | ||
319 | break; \ | ||
320 | case 8: \ | ||
321 | __put_user_asm_8(__pu_addr, __pu_val, __pu_err);\ | ||
322 | break; \ | ||
323 | default: \ | ||
324 | __pu_err = __user_bad(); \ | ||
325 | break; \ | ||
326 | } \ | ||
327 | } else { \ | ||
328 | __pu_err = -EFAULT; \ | ||
329 | } \ | ||
330 | __pu_err; \ | ||
331 | }) | ||
269 | 332 | ||
270 | #define __put_user(x, ptr) \ | 333 | #define __put_user(x, ptr) \ |
271 | ({ \ | 334 | ({ \ |
@@ -290,18 +353,6 @@ extern long __user_bad(void); | |||
290 | __gu_err; \ | 353 | __gu_err; \ |
291 | }) | 354 | }) |
292 | 355 | ||
293 | #ifndef CONFIG_MMU | ||
294 | |||
295 | #define put_user(x, ptr) __put_user((x), (ptr)) | ||
296 | |||
297 | #else /* CONFIG_MMU */ | ||
298 | |||
299 | #define put_user(x, ptr) \ | ||
300 | ({ \ | ||
301 | access_ok(VERIFY_WRITE, (ptr), sizeof(*(ptr))) \ | ||
302 | ? __put_user((x), (ptr)) : -EFAULT; \ | ||
303 | }) | ||
304 | #endif /* CONFIG_MMU */ | ||
305 | 356 | ||
306 | /* copy_to_from_user */ | 357 | /* copy_to_from_user */ |
307 | #define __copy_from_user(to, from, n) \ | 358 | #define __copy_from_user(to, from, n) \ |
diff --git a/arch/microblaze/kernel/cpu/cache.c b/arch/microblaze/kernel/cpu/cache.c index 21c3a92394de..109876e8d643 100644 --- a/arch/microblaze/kernel/cpu/cache.c +++ b/arch/microblaze/kernel/cpu/cache.c | |||
@@ -137,8 +137,9 @@ do { \ | |||
137 | do { \ | 137 | do { \ |
138 | int step = -line_length; \ | 138 | int step = -line_length; \ |
139 | int align = ~(line_length - 1); \ | 139 | int align = ~(line_length - 1); \ |
140 | int count; \ | ||
140 | end = ((end & align) == end) ? end - line_length : end & align; \ | 141 | end = ((end & align) == end) ? end - line_length : end & align; \ |
141 | int count = end - start; \ | 142 | count = end - start; \ |
142 | WARN_ON(count < 0); \ | 143 | WARN_ON(count < 0); \ |
143 | \ | 144 | \ |
144 | __asm__ __volatile__ (" 1: " #op " %0, %1; \ | 145 | __asm__ __volatile__ (" 1: " #op " %0, %1; \ |
diff --git a/arch/microblaze/kernel/entry-nommu.S b/arch/microblaze/kernel/entry-nommu.S index 391d6197fc3b..8cc18cd2cce6 100644 --- a/arch/microblaze/kernel/entry-nommu.S +++ b/arch/microblaze/kernel/entry-nommu.S | |||
@@ -476,6 +476,8 @@ ENTRY(ret_from_fork) | |||
476 | nop | 476 | nop |
477 | 477 | ||
478 | work_pending: | 478 | work_pending: |
479 | enable_irq | ||
480 | |||
479 | andi r11, r19, _TIF_NEED_RESCHED | 481 | andi r11, r19, _TIF_NEED_RESCHED |
480 | beqi r11, 1f | 482 | beqi r11, 1f |
481 | bralid r15, schedule | 483 | bralid r15, schedule |
diff --git a/arch/microblaze/kernel/microblaze_ksyms.c b/arch/microblaze/kernel/microblaze_ksyms.c index bc4dcb7d3861..ff85f7718035 100644 --- a/arch/microblaze/kernel/microblaze_ksyms.c +++ b/arch/microblaze/kernel/microblaze_ksyms.c | |||
@@ -52,3 +52,14 @@ EXPORT_SYMBOL_GPL(_ebss); | |||
52 | extern void _mcount(void); | 52 | extern void _mcount(void); |
53 | EXPORT_SYMBOL(_mcount); | 53 | EXPORT_SYMBOL(_mcount); |
54 | #endif | 54 | #endif |
55 | |||
56 | /* | ||
57 | * Assembly functions that may be used (directly or indirectly) by modules | ||
58 | */ | ||
59 | EXPORT_SYMBOL(__copy_tofrom_user); | ||
60 | EXPORT_SYMBOL(__strncpy_user); | ||
61 | |||
62 | #ifdef CONFIG_OPT_LIB_ASM | ||
63 | EXPORT_SYMBOL(memcpy); | ||
64 | EXPORT_SYMBOL(memmove); | ||
65 | #endif | ||
diff --git a/arch/microblaze/kernel/module.c b/arch/microblaze/kernel/module.c index cbecf110dc30..0e73f6606547 100644 --- a/arch/microblaze/kernel/module.c +++ b/arch/microblaze/kernel/module.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/string.h> | 16 | #include <linux/string.h> |
17 | 17 | ||
18 | #include <asm/pgtable.h> | 18 | #include <asm/pgtable.h> |
19 | #include <asm/cacheflush.h> | ||
19 | 20 | ||
20 | void *module_alloc(unsigned long size) | 21 | void *module_alloc(unsigned long size) |
21 | { | 22 | { |
@@ -151,6 +152,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab, | |||
151 | int module_finalize(const Elf32_Ehdr *hdr, const Elf_Shdr *sechdrs, | 152 | int module_finalize(const Elf32_Ehdr *hdr, const Elf_Shdr *sechdrs, |
152 | struct module *module) | 153 | struct module *module) |
153 | { | 154 | { |
155 | flush_dcache(); | ||
154 | return 0; | 156 | return 0; |
155 | } | 157 | } |
156 | 158 | ||
diff --git a/arch/microblaze/kernel/of_device.c b/arch/microblaze/kernel/of_device.c index 9a0f7632c47c..b372787886ed 100644 --- a/arch/microblaze/kernel/of_device.c +++ b/arch/microblaze/kernel/of_device.c | |||
@@ -12,7 +12,7 @@ | |||
12 | void of_device_make_bus_id(struct of_device *dev) | 12 | void of_device_make_bus_id(struct of_device *dev) |
13 | { | 13 | { |
14 | static atomic_t bus_no_reg_magic; | 14 | static atomic_t bus_no_reg_magic; |
15 | struct device_node *node = dev->node; | 15 | struct device_node *node = dev->dev.of_node; |
16 | const u32 *reg; | 16 | const u32 *reg; |
17 | u64 addr; | 17 | u64 addr; |
18 | int magic; | 18 | int magic; |
@@ -49,11 +49,10 @@ struct of_device *of_device_alloc(struct device_node *np, | |||
49 | if (!dev) | 49 | if (!dev) |
50 | return NULL; | 50 | return NULL; |
51 | 51 | ||
52 | dev->node = of_node_get(np); | 52 | dev->dev.of_node = of_node_get(np); |
53 | dev->dev.dma_mask = &dev->dma_mask; | 53 | dev->dev.dma_mask = &dev->archdata.dma_mask; |
54 | dev->dev.parent = parent; | 54 | dev->dev.parent = parent; |
55 | dev->dev.release = of_release_dev; | 55 | dev->dev.release = of_release_dev; |
56 | dev->dev.archdata.of_node = np; | ||
57 | 56 | ||
58 | if (bus_id) | 57 | if (bus_id) |
59 | dev_set_name(&dev->dev, bus_id); | 58 | dev_set_name(&dev->dev, bus_id); |
@@ -75,17 +74,17 @@ int of_device_uevent(struct device *dev, struct kobj_uevent_env *env) | |||
75 | 74 | ||
76 | ofdev = to_of_device(dev); | 75 | ofdev = to_of_device(dev); |
77 | 76 | ||
78 | if (add_uevent_var(env, "OF_NAME=%s", ofdev->node->name)) | 77 | if (add_uevent_var(env, "OF_NAME=%s", ofdev->dev.of_node->name)) |
79 | return -ENOMEM; | 78 | return -ENOMEM; |
80 | 79 | ||
81 | if (add_uevent_var(env, "OF_TYPE=%s", ofdev->node->type)) | 80 | if (add_uevent_var(env, "OF_TYPE=%s", ofdev->dev.of_node->type)) |
82 | return -ENOMEM; | 81 | return -ENOMEM; |
83 | 82 | ||
84 | /* Since the compatible field can contain pretty much anything | 83 | /* Since the compatible field can contain pretty much anything |
85 | * it's not really legal to split it out with commas. We split it | 84 | * it's not really legal to split it out with commas. We split it |
86 | * up using a number of environment variables instead. */ | 85 | * up using a number of environment variables instead. */ |
87 | 86 | ||
88 | compat = of_get_property(ofdev->node, "compatible", &cplen); | 87 | compat = of_get_property(ofdev->dev.of_node, "compatible", &cplen); |
89 | while (compat && *compat && cplen > 0) { | 88 | while (compat && *compat && cplen > 0) { |
90 | if (add_uevent_var(env, "OF_COMPATIBLE_%d=%s", seen, compat)) | 89 | if (add_uevent_var(env, "OF_COMPATIBLE_%d=%s", seen, compat)) |
91 | return -ENOMEM; | 90 | return -ENOMEM; |
diff --git a/arch/microblaze/kernel/of_platform.c b/arch/microblaze/kernel/of_platform.c index 0dc755286d38..ccf6f4257f4b 100644 --- a/arch/microblaze/kernel/of_platform.c +++ b/arch/microblaze/kernel/of_platform.c | |||
@@ -47,7 +47,7 @@ struct of_device *of_platform_device_create(struct device_node *np, | |||
47 | if (!dev) | 47 | if (!dev) |
48 | return NULL; | 48 | return NULL; |
49 | 49 | ||
50 | dev->dma_mask = 0xffffffffUL; | 50 | dev->archdata.dma_mask = 0xffffffffUL; |
51 | dev->dev.bus = &of_platform_bus_type; | 51 | dev->dev.bus = &of_platform_bus_type; |
52 | 52 | ||
53 | /* We do not fill the DMA ops for platform devices by default. | 53 | /* We do not fill the DMA ops for platform devices by default. |
@@ -166,7 +166,7 @@ EXPORT_SYMBOL(of_platform_bus_probe); | |||
166 | 166 | ||
167 | static int of_dev_node_match(struct device *dev, void *data) | 167 | static int of_dev_node_match(struct device *dev, void *data) |
168 | { | 168 | { |
169 | return to_of_device(dev)->node == data; | 169 | return to_of_device(dev)->dev.of_node == data; |
170 | } | 170 | } |
171 | 171 | ||
172 | struct of_device *of_find_device_by_node(struct device_node *np) | 172 | struct of_device *of_find_device_by_node(struct device_node *np) |
@@ -184,7 +184,7 @@ EXPORT_SYMBOL(of_find_device_by_node); | |||
184 | static int of_dev_phandle_match(struct device *dev, void *data) | 184 | static int of_dev_phandle_match(struct device *dev, void *data) |
185 | { | 185 | { |
186 | phandle *ph = data; | 186 | phandle *ph = data; |
187 | return to_of_device(dev)->node->phandle == *ph; | 187 | return to_of_device(dev)->dev.of_node->phandle == *ph; |
188 | } | 188 | } |
189 | 189 | ||
190 | struct of_device *of_find_device_by_phandle(phandle ph) | 190 | struct of_device *of_find_device_by_phandle(phandle ph) |
diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c index f42c2dde8b1c..cca3579d4268 100644 --- a/arch/microblaze/mm/init.c +++ b/arch/microblaze/mm/init.c | |||
@@ -47,6 +47,7 @@ unsigned long memory_start; | |||
47 | EXPORT_SYMBOL(memory_start); | 47 | EXPORT_SYMBOL(memory_start); |
48 | unsigned long memory_end; /* due to mm/nommu.c */ | 48 | unsigned long memory_end; /* due to mm/nommu.c */ |
49 | unsigned long memory_size; | 49 | unsigned long memory_size; |
50 | EXPORT_SYMBOL(memory_size); | ||
50 | 51 | ||
51 | /* | 52 | /* |
52 | * paging_init() sets up the page tables - in fact we've already done this. | 53 | * paging_init() sets up the page tables - in fact we've already done this. |
diff --git a/arch/microblaze/mm/pgtable.c b/arch/microblaze/mm/pgtable.c index 784557fb28cf..59bf2335a4ce 100644 --- a/arch/microblaze/mm/pgtable.c +++ b/arch/microblaze/mm/pgtable.c | |||
@@ -42,6 +42,7 @@ | |||
42 | 42 | ||
43 | unsigned long ioremap_base; | 43 | unsigned long ioremap_base; |
44 | unsigned long ioremap_bot; | 44 | unsigned long ioremap_bot; |
45 | EXPORT_SYMBOL(ioremap_bot); | ||
45 | 46 | ||
46 | /* The maximum lowmem defaults to 768Mb, but this can be configured to | 47 | /* The maximum lowmem defaults to 768Mb, but this can be configured to |
47 | * another value. | 48 | * another value. |
diff --git a/arch/microblaze/pci/pci-common.c b/arch/microblaze/pci/pci-common.c index 01c8c97c15b7..9cb782b8e036 100644 --- a/arch/microblaze/pci/pci-common.c +++ b/arch/microblaze/pci/pci-common.c | |||
@@ -1507,7 +1507,7 @@ void pcibios_finish_adding_to_bus(struct pci_bus *bus) | |||
1507 | pci_bus_add_devices(bus); | 1507 | pci_bus_add_devices(bus); |
1508 | 1508 | ||
1509 | /* Fixup EEH */ | 1509 | /* Fixup EEH */ |
1510 | eeh_add_device_tree_late(bus); | 1510 | /* eeh_add_device_tree_late(bus); */ |
1511 | } | 1511 | } |
1512 | EXPORT_SYMBOL_GPL(pcibios_finish_adding_to_bus); | 1512 | EXPORT_SYMBOL_GPL(pcibios_finish_adding_to_bus); |
1513 | 1513 | ||