diff options
Diffstat (limited to 'arch/sparc/kernel')
27 files changed, 115 insertions, 501 deletions
diff --git a/arch/sparc/kernel/auxio_32.c b/arch/sparc/kernel/auxio_32.c index 09c857215a52..45c41232fc4c 100644 --- a/arch/sparc/kernel/auxio_32.c +++ b/arch/sparc/kernel/auxio_32.c | |||
@@ -76,6 +76,7 @@ unsigned char get_auxio(void) | |||
76 | return sbus_readb(auxio_register); | 76 | return sbus_readb(auxio_register); |
77 | return 0; | 77 | return 0; |
78 | } | 78 | } |
79 | EXPORT_SYMBOL(get_auxio); | ||
79 | 80 | ||
80 | void set_auxio(unsigned char bits_on, unsigned char bits_off) | 81 | void set_auxio(unsigned char bits_on, unsigned char bits_off) |
81 | { | 82 | { |
@@ -102,7 +103,7 @@ void set_auxio(unsigned char bits_on, unsigned char bits_off) | |||
102 | }; | 103 | }; |
103 | spin_unlock_irqrestore(&auxio_lock, flags); | 104 | spin_unlock_irqrestore(&auxio_lock, flags); |
104 | } | 105 | } |
105 | 106 | EXPORT_SYMBOL(set_auxio); | |
106 | 107 | ||
107 | /* sun4m power control register (AUXIO2) */ | 108 | /* sun4m power control register (AUXIO2) */ |
108 | 109 | ||
diff --git a/arch/sparc/kernel/auxio_64.c b/arch/sparc/kernel/auxio_64.c index 8b67347d4221..9f52db2d441c 100644 --- a/arch/sparc/kernel/auxio_64.c +++ b/arch/sparc/kernel/auxio_64.c | |||
@@ -72,6 +72,7 @@ void auxio_set_led(int on) | |||
72 | bit = (ebus ? AUXIO_PCIO_LED : AUXIO_AUX1_LED); | 72 | bit = (ebus ? AUXIO_PCIO_LED : AUXIO_AUX1_LED); |
73 | __auxio_set_bit(bit, on, ebus); | 73 | __auxio_set_bit(bit, on, ebus); |
74 | } | 74 | } |
75 | EXPORT_SYMBOL(auxio_set_led); | ||
75 | 76 | ||
76 | static void __auxio_sbus_set_lte(int on) | 77 | static void __auxio_sbus_set_lte(int on) |
77 | { | 78 | { |
@@ -90,6 +91,7 @@ void auxio_set_lte(int on) | |||
90 | break; | 91 | break; |
91 | } | 92 | } |
92 | } | 93 | } |
94 | EXPORT_SYMBOL(auxio_set_lte); | ||
93 | 95 | ||
94 | static struct of_device_id __initdata auxio_match[] = { | 96 | static struct of_device_id __initdata auxio_match[] = { |
95 | { | 97 | { |
diff --git a/arch/sparc/kernel/cpu.c b/arch/sparc/kernel/cpu.c index 6c2da2420f76..f0b825505da5 100644 --- a/arch/sparc/kernel/cpu.c +++ b/arch/sparc/kernel/cpu.c | |||
@@ -5,6 +5,7 @@ | |||
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
8 | #include <linux/module.h> | ||
8 | #include <linux/init.h> | 9 | #include <linux/init.h> |
9 | #include <linux/smp.h> | 10 | #include <linux/smp.h> |
10 | #include <linux/threads.h> | 11 | #include <linux/threads.h> |
@@ -20,6 +21,7 @@ | |||
20 | #include "kernel.h" | 21 | #include "kernel.h" |
21 | 22 | ||
22 | DEFINE_PER_CPU(cpuinfo_sparc, __cpu_data) = { 0 }; | 23 | DEFINE_PER_CPU(cpuinfo_sparc, __cpu_data) = { 0 }; |
24 | EXPORT_PER_CPU_SYMBOL(__cpu_data); | ||
23 | 25 | ||
24 | struct cpu_info { | 26 | struct cpu_info { |
25 | int psr_vers; | 27 | int psr_vers; |
diff --git a/arch/sparc/kernel/entry.S b/arch/sparc/kernel/entry.S index faf9ccd9ef5d..f41ecc5ac0b4 100644 --- a/arch/sparc/kernel/entry.S +++ b/arch/sparc/kernel/entry.S | |||
@@ -1088,8 +1088,8 @@ sunos_execv: | |||
1088 | ld [%sp + STACKFRAME_SZ + PT_I0], %o0 | 1088 | ld [%sp + STACKFRAME_SZ + PT_I0], %o0 |
1089 | 1089 | ||
1090 | .align 4 | 1090 | .align 4 |
1091 | .globl sys_pipe | 1091 | .globl sys_sparc_pipe |
1092 | sys_pipe: | 1092 | sys_sparc_pipe: |
1093 | mov %o7, %l5 | 1093 | mov %o7, %l5 |
1094 | add %sp, STACKFRAME_SZ, %o0 ! pt_regs *regs arg | 1094 | add %sp, STACKFRAME_SZ, %o0 ! pt_regs *regs arg |
1095 | call sparc_pipe | 1095 | call sparc_pipe |
diff --git a/arch/sparc/kernel/idprom.c b/arch/sparc/kernel/idprom.c index c16135e0c151..57922f69c3f7 100644 --- a/arch/sparc/kernel/idprom.c +++ b/arch/sparc/kernel/idprom.c | |||
@@ -8,11 +8,14 @@ | |||
8 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
9 | #include <linux/types.h> | 9 | #include <linux/types.h> |
10 | #include <linux/init.h> | 10 | #include <linux/init.h> |
11 | #include <linux/module.h> | ||
11 | 12 | ||
12 | #include <asm/oplib.h> | 13 | #include <asm/oplib.h> |
13 | #include <asm/idprom.h> | 14 | #include <asm/idprom.h> |
14 | 15 | ||
15 | struct idprom *idprom; | 16 | struct idprom *idprom; |
17 | EXPORT_SYMBOL(idprom); | ||
18 | |||
16 | static struct idprom idprom_buffer; | 19 | static struct idprom idprom_buffer; |
17 | 20 | ||
18 | #ifdef CONFIG_SPARC32 | 21 | #ifdef CONFIG_SPARC32 |
diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c index 7ce14f05eb48..87ea0d03d975 100644 --- a/arch/sparc/kernel/ioport.c +++ b/arch/sparc/kernel/ioport.c | |||
@@ -120,6 +120,7 @@ void __iomem *ioremap(unsigned long offset, unsigned long size) | |||
120 | sprintf(name, "phys_%08x", (u32)offset); | 120 | sprintf(name, "phys_%08x", (u32)offset); |
121 | return _sparc_alloc_io(0, offset, size, name); | 121 | return _sparc_alloc_io(0, offset, size, name); |
122 | } | 122 | } |
123 | EXPORT_SYMBOL(ioremap); | ||
123 | 124 | ||
124 | /* | 125 | /* |
125 | * Comlimentary to ioremap(). | 126 | * Comlimentary to ioremap(). |
@@ -141,6 +142,7 @@ void iounmap(volatile void __iomem *virtual) | |||
141 | kfree(res); | 142 | kfree(res); |
142 | } | 143 | } |
143 | } | 144 | } |
145 | EXPORT_SYMBOL(iounmap); | ||
144 | 146 | ||
145 | void __iomem *of_ioremap(struct resource *res, unsigned long offset, | 147 | void __iomem *of_ioremap(struct resource *res, unsigned long offset, |
146 | unsigned long size, char *name) | 148 | unsigned long size, char *name) |
@@ -237,6 +239,7 @@ void sbus_set_sbus64(struct device *dev, int x) | |||
237 | { | 239 | { |
238 | printk("sbus_set_sbus64: unsupported\n"); | 240 | printk("sbus_set_sbus64: unsupported\n"); |
239 | } | 241 | } |
242 | EXPORT_SYMBOL(sbus_set_sbus64); | ||
240 | 243 | ||
241 | /* | 244 | /* |
242 | * Allocate a chunk of memory suitable for DMA. | 245 | * Allocate a chunk of memory suitable for DMA. |
@@ -436,6 +439,7 @@ void *pci_alloc_consistent(struct pci_dev *pdev, size_t len, dma_addr_t *pba) | |||
436 | *pba = virt_to_phys(va); /* equals virt_to_bus (R.I.P.) for us. */ | 439 | *pba = virt_to_phys(va); /* equals virt_to_bus (R.I.P.) for us. */ |
437 | return (void *) res->start; | 440 | return (void *) res->start; |
438 | } | 441 | } |
442 | EXPORT_SYMBOL(pci_alloc_consistent); | ||
439 | 443 | ||
440 | /* Free and unmap a consistent DMA buffer. | 444 | /* Free and unmap a consistent DMA buffer. |
441 | * cpu_addr is what was returned from pci_alloc_consistent, | 445 | * cpu_addr is what was returned from pci_alloc_consistent, |
@@ -477,6 +481,7 @@ void pci_free_consistent(struct pci_dev *pdev, size_t n, void *p, dma_addr_t ba) | |||
477 | 481 | ||
478 | free_pages(pgp, get_order(n)); | 482 | free_pages(pgp, get_order(n)); |
479 | } | 483 | } |
484 | EXPORT_SYMBOL(pci_free_consistent); | ||
480 | 485 | ||
481 | /* Map a single buffer of the indicated size for DMA in streaming mode. | 486 | /* Map a single buffer of the indicated size for DMA in streaming mode. |
482 | * The 32-bit bus address to use is returned. | 487 | * The 32-bit bus address to use is returned. |
@@ -491,6 +496,7 @@ dma_addr_t pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, | |||
491 | /* IIep is write-through, not flushing. */ | 496 | /* IIep is write-through, not flushing. */ |
492 | return virt_to_phys(ptr); | 497 | return virt_to_phys(ptr); |
493 | } | 498 | } |
499 | EXPORT_SYMBOL(pci_map_single); | ||
494 | 500 | ||
495 | /* Unmap a single streaming mode DMA translation. The dma_addr and size | 501 | /* Unmap a single streaming mode DMA translation. The dma_addr and size |
496 | * must match what was provided for in a previous pci_map_single call. All | 502 | * must match what was provided for in a previous pci_map_single call. All |
@@ -508,6 +514,7 @@ void pci_unmap_single(struct pci_dev *hwdev, dma_addr_t ba, size_t size, | |||
508 | (size + PAGE_SIZE-1) & PAGE_MASK); | 514 | (size + PAGE_SIZE-1) & PAGE_MASK); |
509 | } | 515 | } |
510 | } | 516 | } |
517 | EXPORT_SYMBOL(pci_unmap_single); | ||
511 | 518 | ||
512 | /* | 519 | /* |
513 | * Same as pci_map_single, but with pages. | 520 | * Same as pci_map_single, but with pages. |
@@ -519,6 +526,7 @@ dma_addr_t pci_map_page(struct pci_dev *hwdev, struct page *page, | |||
519 | /* IIep is write-through, not flushing. */ | 526 | /* IIep is write-through, not flushing. */ |
520 | return page_to_phys(page) + offset; | 527 | return page_to_phys(page) + offset; |
521 | } | 528 | } |
529 | EXPORT_SYMBOL(pci_map_page); | ||
522 | 530 | ||
523 | void pci_unmap_page(struct pci_dev *hwdev, | 531 | void pci_unmap_page(struct pci_dev *hwdev, |
524 | dma_addr_t dma_address, size_t size, int direction) | 532 | dma_addr_t dma_address, size_t size, int direction) |
@@ -526,6 +534,7 @@ void pci_unmap_page(struct pci_dev *hwdev, | |||
526 | BUG_ON(direction == PCI_DMA_NONE); | 534 | BUG_ON(direction == PCI_DMA_NONE); |
527 | /* mmu_inval_dma_area XXX */ | 535 | /* mmu_inval_dma_area XXX */ |
528 | } | 536 | } |
537 | EXPORT_SYMBOL(pci_unmap_page); | ||
529 | 538 | ||
530 | /* Map a set of buffers described by scatterlist in streaming | 539 | /* Map a set of buffers described by scatterlist in streaming |
531 | * mode for DMA. This is the scather-gather version of the | 540 | * mode for DMA. This is the scather-gather version of the |
@@ -557,6 +566,7 @@ int pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sgl, int nents, | |||
557 | } | 566 | } |
558 | return nents; | 567 | return nents; |
559 | } | 568 | } |
569 | EXPORT_SYMBOL(pci_map_sg); | ||
560 | 570 | ||
561 | /* Unmap a set of streaming mode DMA translations. | 571 | /* Unmap a set of streaming mode DMA translations. |
562 | * Again, cpu read rules concerning calls here are the same as for | 572 | * Again, cpu read rules concerning calls here are the same as for |
@@ -578,6 +588,7 @@ void pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sgl, int nents, | |||
578 | } | 588 | } |
579 | } | 589 | } |
580 | } | 590 | } |
591 | EXPORT_SYMBOL(pci_unmap_sg); | ||
581 | 592 | ||
582 | /* Make physical memory consistent for a single | 593 | /* Make physical memory consistent for a single |
583 | * streaming mode DMA translation before or after a transfer. | 594 | * streaming mode DMA translation before or after a transfer. |
@@ -597,6 +608,7 @@ void pci_dma_sync_single_for_cpu(struct pci_dev *hwdev, dma_addr_t ba, size_t si | |||
597 | (size + PAGE_SIZE-1) & PAGE_MASK); | 608 | (size + PAGE_SIZE-1) & PAGE_MASK); |
598 | } | 609 | } |
599 | } | 610 | } |
611 | EXPORT_SYMBOL(pci_dma_sync_single_for_cpu); | ||
600 | 612 | ||
601 | void pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t ba, size_t size, int direction) | 613 | void pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t ba, size_t size, int direction) |
602 | { | 614 | { |
@@ -606,6 +618,7 @@ void pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t ba, size_t | |||
606 | (size + PAGE_SIZE-1) & PAGE_MASK); | 618 | (size + PAGE_SIZE-1) & PAGE_MASK); |
607 | } | 619 | } |
608 | } | 620 | } |
621 | EXPORT_SYMBOL(pci_dma_sync_single_for_device); | ||
609 | 622 | ||
610 | /* Make physical memory consistent for a set of streaming | 623 | /* Make physical memory consistent for a set of streaming |
611 | * mode DMA translations after a transfer. | 624 | * mode DMA translations after a transfer. |
@@ -628,6 +641,7 @@ void pci_dma_sync_sg_for_cpu(struct pci_dev *hwdev, struct scatterlist *sgl, int | |||
628 | } | 641 | } |
629 | } | 642 | } |
630 | } | 643 | } |
644 | EXPORT_SYMBOL(pci_dma_sync_sg_for_cpu); | ||
631 | 645 | ||
632 | void pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sgl, int nents, int direction) | 646 | void pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sgl, int nents, int direction) |
633 | { | 647 | { |
@@ -644,6 +658,7 @@ void pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sgl, | |||
644 | } | 658 | } |
645 | } | 659 | } |
646 | } | 660 | } |
661 | EXPORT_SYMBOL(pci_dma_sync_sg_for_device); | ||
647 | #endif /* CONFIG_PCI */ | 662 | #endif /* CONFIG_PCI */ |
648 | 663 | ||
649 | #ifdef CONFIG_PROC_FS | 664 | #ifdef CONFIG_PROC_FS |
diff --git a/arch/sparc/kernel/irq_32.c b/arch/sparc/kernel/irq_32.c index 1eff942fe22f..44dd5ee64339 100644 --- a/arch/sparc/kernel/irq_32.c +++ b/arch/sparc/kernel/irq_32.c | |||
@@ -294,6 +294,7 @@ void synchronize_irq(unsigned int irq) | |||
294 | while (sparc_irq[cpu_irq].flags & SPARC_IRQ_INPROGRESS) | 294 | while (sparc_irq[cpu_irq].flags & SPARC_IRQ_INPROGRESS) |
295 | cpu_relax(); | 295 | cpu_relax(); |
296 | } | 296 | } |
297 | EXPORT_SYMBOL(synchronize_irq); | ||
297 | #endif /* SMP */ | 298 | #endif /* SMP */ |
298 | 299 | ||
299 | void unexpected_irq(int irq, void *dev_id, struct pt_regs * regs) | 300 | void unexpected_irq(int irq, void *dev_id, struct pt_regs * regs) |
diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c index 923e9bbb9fe2..4638fba799e4 100644 --- a/arch/sparc/kernel/pci.c +++ b/arch/sparc/kernel/pci.c | |||
@@ -1077,6 +1077,7 @@ int pci_dma_supported(struct pci_dev *pdev, u64 device_mask) | |||
1077 | 1077 | ||
1078 | return (device_mask & dma_addr_mask) == dma_addr_mask; | 1078 | return (device_mask & dma_addr_mask) == dma_addr_mask; |
1079 | } | 1079 | } |
1080 | EXPORT_SYMBOL(pci_dma_supported); | ||
1080 | 1081 | ||
1081 | void pci_resource_to_user(const struct pci_dev *pdev, int bar, | 1082 | void pci_resource_to_user(const struct pci_dev *pdev, int bar, |
1082 | const struct resource *rp, resource_size_t *start, | 1083 | const struct resource *rp, resource_size_t *start, |
diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c index 75ed98be3edf..85e7037429b9 100644 --- a/arch/sparc/kernel/pcic.c +++ b/arch/sparc/kernel/pcic.c | |||
@@ -956,6 +956,7 @@ void outsb(unsigned long addr, const void *src, unsigned long count) | |||
956 | /* addr += 1; */ | 956 | /* addr += 1; */ |
957 | } | 957 | } |
958 | } | 958 | } |
959 | EXPORT_SYMBOL(outsb); | ||
959 | 960 | ||
960 | void outsw(unsigned long addr, const void *src, unsigned long count) | 961 | void outsw(unsigned long addr, const void *src, unsigned long count) |
961 | { | 962 | { |
@@ -966,6 +967,7 @@ void outsw(unsigned long addr, const void *src, unsigned long count) | |||
966 | /* addr += 2; */ | 967 | /* addr += 2; */ |
967 | } | 968 | } |
968 | } | 969 | } |
970 | EXPORT_SYMBOL(outsw); | ||
969 | 971 | ||
970 | void outsl(unsigned long addr, const void *src, unsigned long count) | 972 | void outsl(unsigned long addr, const void *src, unsigned long count) |
971 | { | 973 | { |
@@ -976,6 +978,7 @@ void outsl(unsigned long addr, const void *src, unsigned long count) | |||
976 | /* addr += 4; */ | 978 | /* addr += 4; */ |
977 | } | 979 | } |
978 | } | 980 | } |
981 | EXPORT_SYMBOL(outsl); | ||
979 | 982 | ||
980 | void insb(unsigned long addr, void *dst, unsigned long count) | 983 | void insb(unsigned long addr, void *dst, unsigned long count) |
981 | { | 984 | { |
@@ -986,6 +989,7 @@ void insb(unsigned long addr, void *dst, unsigned long count) | |||
986 | /* addr += 1; */ | 989 | /* addr += 1; */ |
987 | } | 990 | } |
988 | } | 991 | } |
992 | EXPORT_SYMBOL(insb); | ||
989 | 993 | ||
990 | void insw(unsigned long addr, void *dst, unsigned long count) | 994 | void insw(unsigned long addr, void *dst, unsigned long count) |
991 | { | 995 | { |
@@ -996,6 +1000,7 @@ void insw(unsigned long addr, void *dst, unsigned long count) | |||
996 | /* addr += 2; */ | 1000 | /* addr += 2; */ |
997 | } | 1001 | } |
998 | } | 1002 | } |
1003 | EXPORT_SYMBOL(insw); | ||
999 | 1004 | ||
1000 | void insl(unsigned long addr, void *dst, unsigned long count) | 1005 | void insl(unsigned long addr, void *dst, unsigned long count) |
1001 | { | 1006 | { |
@@ -1009,5 +1014,6 @@ void insl(unsigned long addr, void *dst, unsigned long count) | |||
1009 | /* addr += 4; */ | 1014 | /* addr += 4; */ |
1010 | } | 1015 | } |
1011 | } | 1016 | } |
1017 | EXPORT_SYMBOL(insl); | ||
1012 | 1018 | ||
1013 | subsys_initcall(pcic_init); | 1019 | subsys_initcall(pcic_init); |
diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c index 5a8d8ced33da..f4bee35a1b46 100644 --- a/arch/sparc/kernel/process_32.c +++ b/arch/sparc/kernel/process_32.c | |||
@@ -44,6 +44,7 @@ | |||
44 | * Set in pm platform drivers (apc.c and pmc.c) | 44 | * Set in pm platform drivers (apc.c and pmc.c) |
45 | */ | 45 | */ |
46 | void (*pm_idle)(void); | 46 | void (*pm_idle)(void); |
47 | EXPORT_SYMBOL(pm_idle); | ||
47 | 48 | ||
48 | /* | 49 | /* |
49 | * Power-off handler instantiation for pm.h compliance | 50 | * Power-off handler instantiation for pm.h compliance |
@@ -673,6 +674,7 @@ pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) | |||
673 | "g1", "g2", "g3", "o0", "o1", "memory", "cc"); | 674 | "g1", "g2", "g3", "o0", "o1", "memory", "cc"); |
674 | return retval; | 675 | return retval; |
675 | } | 676 | } |
677 | EXPORT_SYMBOL(kernel_thread); | ||
676 | 678 | ||
677 | unsigned long get_wchan(struct task_struct *task) | 679 | unsigned long get_wchan(struct task_struct *task) |
678 | { | 680 | { |
diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c index d5e2acef9877..cc8b5604442c 100644 --- a/arch/sparc/kernel/process_64.c +++ b/arch/sparc/kernel/process_64.c | |||
@@ -678,6 +678,7 @@ pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) | |||
678 | "g1", "g2", "g3", "o0", "o1", "memory", "cc"); | 678 | "g1", "g2", "g3", "o0", "o1", "memory", "cc"); |
679 | return retval; | 679 | return retval; |
680 | } | 680 | } |
681 | EXPORT_SYMBOL(kernel_thread); | ||
681 | 682 | ||
682 | typedef struct { | 683 | typedef struct { |
683 | union { | 684 | union { |
@@ -743,6 +744,7 @@ int dump_fpu (struct pt_regs * regs, elf_fpregset_t * fpregs) | |||
743 | } | 744 | } |
744 | return 1; | 745 | return 1; |
745 | } | 746 | } |
747 | EXPORT_SYMBOL(dump_fpu); | ||
746 | 748 | ||
747 | /* | 749 | /* |
748 | * sparc_execve() executes a new program after the asm stub has set | 750 | * sparc_execve() executes a new program after the asm stub has set |
diff --git a/arch/sparc/kernel/psycho_common.c b/arch/sparc/kernel/psycho_common.c index 40689ae3c9b0..8f1478475421 100644 --- a/arch/sparc/kernel/psycho_common.c +++ b/arch/sparc/kernel/psycho_common.c | |||
@@ -11,19 +11,19 @@ | |||
11 | #include "iommu_common.h" | 11 | #include "iommu_common.h" |
12 | #include "psycho_common.h" | 12 | #include "psycho_common.h" |
13 | 13 | ||
14 | #define PSYCHO_STRBUF_CTRL_DENAB 0x0000000000000002UL | 14 | #define PSYCHO_STRBUF_CTRL_DENAB 0x0000000000000002ULL |
15 | #define PSYCHO_STCERR_WRITE 0x0000000000000002UL | 15 | #define PSYCHO_STCERR_WRITE 0x0000000000000002ULL |
16 | #define PSYCHO_STCERR_READ 0x0000000000000001UL | 16 | #define PSYCHO_STCERR_READ 0x0000000000000001ULL |
17 | #define PSYCHO_STCTAG_PPN 0x0fffffff00000000UL | 17 | #define PSYCHO_STCTAG_PPN 0x0fffffff00000000ULL |
18 | #define PSYCHO_STCTAG_VPN 0x00000000ffffe000UL | 18 | #define PSYCHO_STCTAG_VPN 0x00000000ffffe000ULL |
19 | #define PSYCHO_STCTAG_VALID 0x0000000000000002UL | 19 | #define PSYCHO_STCTAG_VALID 0x0000000000000002ULL |
20 | #define PSYCHO_STCTAG_WRITE 0x0000000000000001UL | 20 | #define PSYCHO_STCTAG_WRITE 0x0000000000000001ULL |
21 | #define PSYCHO_STCLINE_LINDX 0x0000000001e00000UL | 21 | #define PSYCHO_STCLINE_LINDX 0x0000000001e00000ULL |
22 | #define PSYCHO_STCLINE_SPTR 0x00000000001f8000UL | 22 | #define PSYCHO_STCLINE_SPTR 0x00000000001f8000ULL |
23 | #define PSYCHO_STCLINE_LADDR 0x0000000000007f00UL | 23 | #define PSYCHO_STCLINE_LADDR 0x0000000000007f00ULL |
24 | #define PSYCHO_STCLINE_EPTR 0x00000000000000fcUL | 24 | #define PSYCHO_STCLINE_EPTR 0x00000000000000fcULL |
25 | #define PSYCHO_STCLINE_VALID 0x0000000000000002UL | 25 | #define PSYCHO_STCLINE_VALID 0x0000000000000002ULL |
26 | #define PSYCHO_STCLINE_FOFN 0x0000000000000001UL | 26 | #define PSYCHO_STCLINE_FOFN 0x0000000000000001ULL |
27 | 27 | ||
28 | static DEFINE_SPINLOCK(stc_buf_lock); | 28 | static DEFINE_SPINLOCK(stc_buf_lock); |
29 | static unsigned long stc_error_buf[128]; | 29 | static unsigned long stc_error_buf[128]; |
@@ -144,10 +144,10 @@ static void psycho_record_iommu_tags_and_data(struct pci_pbm_info *pbm, | |||
144 | #define PSYCHO_IOMMU_TAG_WRITE (0x1UL << 21UL) | 144 | #define PSYCHO_IOMMU_TAG_WRITE (0x1UL << 21UL) |
145 | #define PSYCHO_IOMMU_TAG_STREAM (0x1UL << 20UL) | 145 | #define PSYCHO_IOMMU_TAG_STREAM (0x1UL << 20UL) |
146 | #define PSYCHO_IOMMU_TAG_SIZE (0x1UL << 19UL) | 146 | #define PSYCHO_IOMMU_TAG_SIZE (0x1UL << 19UL) |
147 | #define PSYCHO_IOMMU_TAG_VPAGE 0x7ffffUL | 147 | #define PSYCHO_IOMMU_TAG_VPAGE 0x7ffffULL |
148 | #define PSYCHO_IOMMU_DATA_VALID (1UL << 30UL) | 148 | #define PSYCHO_IOMMU_DATA_VALID (1UL << 30UL) |
149 | #define PSYCHO_IOMMU_DATA_CACHE (1UL << 28UL) | 149 | #define PSYCHO_IOMMU_DATA_CACHE (1UL << 28UL) |
150 | #define PSYCHO_IOMMU_DATA_PPAGE 0xfffffffUL | 150 | #define PSYCHO_IOMMU_DATA_PPAGE 0xfffffffULL |
151 | 151 | ||
152 | static void psycho_dump_iommu_tags_and_data(struct pci_pbm_info *pbm, | 152 | static void psycho_dump_iommu_tags_and_data(struct pci_pbm_info *pbm, |
153 | u64 *tag, u64 *data) | 153 | u64 *tag, u64 *data) |
@@ -190,7 +190,7 @@ static void psycho_dump_iommu_tags_and_data(struct pci_pbm_info *pbm, | |||
190 | pbm->name, i, | 190 | pbm->name, i, |
191 | ((data_val & PSYCHO_IOMMU_DATA_VALID) ? 1 : 0), | 191 | ((data_val & PSYCHO_IOMMU_DATA_VALID) ? 1 : 0), |
192 | ((data_val & PSYCHO_IOMMU_DATA_CACHE) ? 1 : 0), | 192 | ((data_val & PSYCHO_IOMMU_DATA_CACHE) ? 1 : 0), |
193 | (data_val & PSYCHO_IOMMU_DATA_PPAGE)<<IOMMU_PAGE_SHIFT); | 193 | (data_val & PSYCHO_IOMMU_DATA_PPAGE) << IOMMU_PAGE_SHIFT); |
194 | } | 194 | } |
195 | } | 195 | } |
196 | 196 | ||
@@ -285,20 +285,20 @@ static irqreturn_t psycho_pcierr_intr_other(struct pci_pbm_info *pbm) | |||
285 | return ret; | 285 | return ret; |
286 | } | 286 | } |
287 | 287 | ||
288 | #define PSYCHO_PCIAFSR_PMA 0x8000000000000000UL | 288 | #define PSYCHO_PCIAFSR_PMA 0x8000000000000000ULL |
289 | #define PSYCHO_PCIAFSR_PTA 0x4000000000000000UL | 289 | #define PSYCHO_PCIAFSR_PTA 0x4000000000000000ULL |
290 | #define PSYCHO_PCIAFSR_PRTRY 0x2000000000000000UL | 290 | #define PSYCHO_PCIAFSR_PRTRY 0x2000000000000000ULL |
291 | #define PSYCHO_PCIAFSR_PPERR 0x1000000000000000UL | 291 | #define PSYCHO_PCIAFSR_PPERR 0x1000000000000000ULL |
292 | #define PSYCHO_PCIAFSR_SMA 0x0800000000000000UL | 292 | #define PSYCHO_PCIAFSR_SMA 0x0800000000000000ULL |
293 | #define PSYCHO_PCIAFSR_STA 0x0400000000000000UL | 293 | #define PSYCHO_PCIAFSR_STA 0x0400000000000000ULL |
294 | #define PSYCHO_PCIAFSR_SRTRY 0x0200000000000000UL | 294 | #define PSYCHO_PCIAFSR_SRTRY 0x0200000000000000ULL |
295 | #define PSYCHO_PCIAFSR_SPERR 0x0100000000000000UL | 295 | #define PSYCHO_PCIAFSR_SPERR 0x0100000000000000ULL |
296 | #define PSYCHO_PCIAFSR_RESV1 0x00ff000000000000UL | 296 | #define PSYCHO_PCIAFSR_RESV1 0x00ff000000000000ULL |
297 | #define PSYCHO_PCIAFSR_BMSK 0x0000ffff00000000UL | 297 | #define PSYCHO_PCIAFSR_BMSK 0x0000ffff00000000ULL |
298 | #define PSYCHO_PCIAFSR_BLK 0x0000000080000000UL | 298 | #define PSYCHO_PCIAFSR_BLK 0x0000000080000000ULL |
299 | #define PSYCHO_PCIAFSR_RESV2 0x0000000040000000UL | 299 | #define PSYCHO_PCIAFSR_RESV2 0x0000000040000000ULL |
300 | #define PSYCHO_PCIAFSR_MID 0x000000003e000000UL | 300 | #define PSYCHO_PCIAFSR_MID 0x000000003e000000ULL |
301 | #define PSYCHO_PCIAFSR_RESV3 0x0000000001ffffffUL | 301 | #define PSYCHO_PCIAFSR_RESV3 0x0000000001ffffffULL |
302 | 302 | ||
303 | irqreturn_t psycho_pcierr_intr(int irq, void *dev_id) | 303 | irqreturn_t psycho_pcierr_intr(int irq, void *dev_id) |
304 | { | 304 | { |
diff --git a/arch/sparc/kernel/sbus.c b/arch/sparc/kernel/sbus.c index 2ead310066d1..406e0872504e 100644 --- a/arch/sparc/kernel/sbus.c +++ b/arch/sparc/kernel/sbus.c | |||
@@ -117,6 +117,7 @@ void sbus_set_sbus64(struct device *dev, int bursts) | |||
117 | val |= (1UL << 4UL); | 117 | val |= (1UL << 4UL); |
118 | upa_writeq(val, cfg_reg); | 118 | upa_writeq(val, cfg_reg); |
119 | } | 119 | } |
120 | EXPORT_SYMBOL(sbus_set_sbus64); | ||
120 | 121 | ||
121 | /* INO number to IMAP register offset for SYSIO external IRQ's. | 122 | /* INO number to IMAP register offset for SYSIO external IRQ's. |
122 | * This should conform to both Sunfire/Wildfire server and Fusion | 123 | * This should conform to both Sunfire/Wildfire server and Fusion |
diff --git a/arch/sparc/kernel/setup_32.c b/arch/sparc/kernel/setup_32.c index c96c65d1b58b..998cadb4e7f2 100644 --- a/arch/sparc/kernel/setup_32.c +++ b/arch/sparc/kernel/setup_32.c | |||
@@ -199,7 +199,9 @@ extern unsigned short ram_flags; | |||
199 | extern int root_mountflags; | 199 | extern int root_mountflags; |
200 | 200 | ||
201 | char reboot_command[COMMAND_LINE_SIZE]; | 201 | char reboot_command[COMMAND_LINE_SIZE]; |
202 | |||
202 | enum sparc_cpu sparc_cpu_model; | 203 | enum sparc_cpu sparc_cpu_model; |
204 | EXPORT_SYMBOL(sparc_cpu_model); | ||
203 | 205 | ||
204 | struct tt_entry *sparc_ttable; | 206 | struct tt_entry *sparc_ttable; |
205 | 207 | ||
@@ -391,6 +393,7 @@ void sun_do_break(void) | |||
391 | 393 | ||
392 | prom_cmdline(); | 394 | prom_cmdline(); |
393 | } | 395 | } |
396 | EXPORT_SYMBOL(sun_do_break); | ||
394 | 397 | ||
395 | int stop_a_enabled = 1; | 398 | int stop_a_enabled = 1; |
396 | 399 | ||
diff --git a/arch/sparc/kernel/setup_64.c b/arch/sparc/kernel/setup_64.c index 555db7452ebe..49d061f4ae9d 100644 --- a/arch/sparc/kernel/setup_64.c +++ b/arch/sparc/kernel/setup_64.c | |||
@@ -58,6 +58,7 @@ | |||
58 | * operations in asm/ns87303.h | 58 | * operations in asm/ns87303.h |
59 | */ | 59 | */ |
60 | DEFINE_SPINLOCK(ns87303_lock); | 60 | DEFINE_SPINLOCK(ns87303_lock); |
61 | EXPORT_SYMBOL(ns87303_lock); | ||
61 | 62 | ||
62 | struct screen_info screen_info = { | 63 | struct screen_info screen_info = { |
63 | 0, 0, /* orig-x, orig-y */ | 64 | 0, 0, /* orig-x, orig-y */ |
@@ -425,5 +426,7 @@ void sun_do_break(void) | |||
425 | 426 | ||
426 | prom_cmdline(); | 427 | prom_cmdline(); |
427 | } | 428 | } |
429 | EXPORT_SYMBOL(sun_do_break); | ||
428 | 430 | ||
429 | int stop_a_enabled = 1; | 431 | int stop_a_enabled = 1; |
432 | EXPORT_SYMBOL(stop_a_enabled); | ||
diff --git a/arch/sparc/kernel/sparc_ksyms_32.c b/arch/sparc/kernel/sparc_ksyms_32.c index e1e97639231b..baeab8720237 100644 --- a/arch/sparc/kernel/sparc_ksyms_32.c +++ b/arch/sparc/kernel/sparc_ksyms_32.c | |||
@@ -5,49 +5,14 @@ | |||
5 | * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be) | 5 | * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be) |
6 | */ | 6 | */ |
7 | 7 | ||
8 | /* Tell string.h we don't want memcpy etc. as cpp defines */ | ||
9 | #define EXPORT_SYMTAB_STROPS | ||
10 | #define PROMLIB_INTERNAL | ||
11 | |||
12 | #include <linux/module.h> | 8 | #include <linux/module.h> |
13 | #include <linux/init.h> | 9 | #include <linux/init.h> |
14 | #include <linux/smp.h> | ||
15 | #include <linux/types.h> | ||
16 | #include <linux/string.h> | ||
17 | #include <linux/sched.h> | ||
18 | #include <linux/interrupt.h> | ||
19 | #include <linux/in6.h> | ||
20 | #include <linux/spinlock.h> | ||
21 | #include <linux/mm.h> | ||
22 | #include <linux/syscalls.h> | ||
23 | #ifdef CONFIG_PCI | ||
24 | #include <linux/pci.h> | ||
25 | #endif | ||
26 | #include <linux/pm.h> | ||
27 | #ifdef CONFIG_HIGHMEM | ||
28 | #include <linux/highmem.h> | ||
29 | #endif | ||
30 | 10 | ||
31 | #include <asm/oplib.h> | ||
32 | #include <asm/delay.h> | ||
33 | #include <asm/system.h> | ||
34 | #include <asm/auxio.h> | ||
35 | #include <asm/pgtable.h> | 11 | #include <asm/pgtable.h> |
36 | #include <asm/io.h> | ||
37 | #include <asm/irq.h> | ||
38 | #include <asm/idprom.h> | ||
39 | #include <asm/head.h> | ||
40 | #include <asm/smp.h> | ||
41 | #include <asm/ptrace.h> | ||
42 | #include <asm/uaccess.h> | 12 | #include <asm/uaccess.h> |
43 | #include <asm/checksum.h> | 13 | #include <asm/delay.h> |
44 | #ifdef CONFIG_SBUS | 14 | #include <asm/head.h> |
45 | #include <asm/dma.h> | 15 | #include <asm/dma.h> |
46 | #endif | ||
47 | #include <asm/io-unit.h> | ||
48 | #include <asm/bug.h> | ||
49 | |||
50 | extern spinlock_t rtc_lock; | ||
51 | 16 | ||
52 | struct poll { | 17 | struct poll { |
53 | int fd; | 18 | int fd; |
@@ -55,72 +20,15 @@ struct poll { | |||
55 | short revents; | 20 | short revents; |
56 | }; | 21 | }; |
57 | 22 | ||
58 | extern void (*__copy_1page)(void *, const void *); | 23 | /* from entry.S */ |
59 | extern void __memmove(void *, const void *, __kernel_size_t); | ||
60 | extern void (*bzero_1page)(void *); | ||
61 | extern void *__bzero(void *, size_t); | ||
62 | extern void *__memscan_zero(void *, size_t); | ||
63 | extern void *__memscan_generic(void *, int, size_t); | ||
64 | extern int __strncmp(const char *, const char *, __kernel_size_t); | ||
65 | |||
66 | extern int __ashrdi3(int, int); | ||
67 | extern int __ashldi3(int, int); | ||
68 | extern int __lshrdi3(int, int); | ||
69 | extern int __muldi3(int, int); | ||
70 | extern int __divdi3(int, int); | ||
71 | |||
72 | /* Private functions with odd calling conventions. */ | ||
73 | extern void ___atomic24_add(void); | ||
74 | extern void ___atomic24_sub(void); | ||
75 | extern void ___rw_read_enter(void); | ||
76 | extern void ___rw_read_try(void); | ||
77 | extern void ___rw_read_exit(void); | ||
78 | extern void ___rw_write_enter(void); | ||
79 | |||
80 | /* Alias functions whose names begin with "." and export the aliases. | ||
81 | * The module references will be fixed up by module_frob_arch_sections. | ||
82 | */ | ||
83 | extern int _Div(int, int); | ||
84 | extern int _Mul(int, int); | ||
85 | extern int _Rem(int, int); | ||
86 | extern unsigned _Udiv(unsigned, unsigned); | ||
87 | extern unsigned _Umul(unsigned, unsigned); | ||
88 | extern unsigned _Urem(unsigned, unsigned); | ||
89 | |||
90 | /* used by various drivers */ | ||
91 | EXPORT_SYMBOL(sparc_cpu_model); | ||
92 | EXPORT_SYMBOL(kernel_thread); | ||
93 | #ifdef CONFIG_SMP | ||
94 | // XXX find what uses (or used) these. AV: see asm/spinlock.h | ||
95 | EXPORT_SYMBOL(___rw_read_enter); | ||
96 | EXPORT_SYMBOL(___rw_read_try); | ||
97 | EXPORT_SYMBOL(___rw_read_exit); | ||
98 | EXPORT_SYMBOL(___rw_write_enter); | ||
99 | #endif | ||
100 | |||
101 | EXPORT_SYMBOL(sparc_valid_addr_bitmap); | ||
102 | EXPORT_SYMBOL(phys_base); | ||
103 | EXPORT_SYMBOL(pfn_base); | ||
104 | |||
105 | /* Atomic operations. */ | ||
106 | EXPORT_SYMBOL(___atomic24_add); | ||
107 | EXPORT_SYMBOL(___atomic24_sub); | ||
108 | |||
109 | /* Per-CPU information table */ | ||
110 | EXPORT_PER_CPU_SYMBOL(__cpu_data); | ||
111 | |||
112 | #ifdef CONFIG_SMP | ||
113 | /* IRQ implementation. */ | ||
114 | EXPORT_SYMBOL(synchronize_irq); | ||
115 | #endif | ||
116 | |||
117 | EXPORT_SYMBOL(__udelay); | 24 | EXPORT_SYMBOL(__udelay); |
118 | EXPORT_SYMBOL(__ndelay); | 25 | EXPORT_SYMBOL(__ndelay); |
119 | EXPORT_SYMBOL(rtc_lock); | ||
120 | EXPORT_SYMBOL(set_auxio); | ||
121 | EXPORT_SYMBOL(get_auxio); | ||
122 | EXPORT_SYMBOL(io_remap_pfn_range); | ||
123 | 26 | ||
27 | /* from head_32.S */ | ||
28 | EXPORT_SYMBOL(__ret_efault); | ||
29 | EXPORT_SYMBOL(empty_zero_page); | ||
30 | |||
31 | /* Defined using magic */ | ||
124 | #ifndef CONFIG_SMP | 32 | #ifndef CONFIG_SMP |
125 | EXPORT_SYMBOL(BTFIXUP_CALL(___xchg32)); | 33 | EXPORT_SYMBOL(BTFIXUP_CALL(___xchg32)); |
126 | #else | 34 | #else |
@@ -132,122 +40,7 @@ EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_sgl)); | |||
132 | EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_one)); | 40 | EXPORT_SYMBOL(BTFIXUP_CALL(mmu_get_scsi_one)); |
133 | EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_sgl)); | 41 | EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_sgl)); |
134 | EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_one)); | 42 | EXPORT_SYMBOL(BTFIXUP_CALL(mmu_release_scsi_one)); |
135 | |||
136 | EXPORT_SYMBOL(BTFIXUP_CALL(pgprot_noncached)); | 43 | EXPORT_SYMBOL(BTFIXUP_CALL(pgprot_noncached)); |
137 | 44 | ||
138 | #ifdef CONFIG_SBUS | 45 | /* Exporting a symbol from /init/main.c */ |
139 | EXPORT_SYMBOL(sbus_set_sbus64); | ||
140 | #endif | ||
141 | #ifdef CONFIG_PCI | ||
142 | EXPORT_SYMBOL(insb); | ||
143 | EXPORT_SYMBOL(outsb); | ||
144 | EXPORT_SYMBOL(insw); | ||
145 | EXPORT_SYMBOL(outsw); | ||
146 | EXPORT_SYMBOL(insl); | ||
147 | EXPORT_SYMBOL(outsl); | ||
148 | EXPORT_SYMBOL(pci_alloc_consistent); | ||
149 | EXPORT_SYMBOL(pci_free_consistent); | ||
150 | EXPORT_SYMBOL(pci_map_single); | ||
151 | EXPORT_SYMBOL(pci_unmap_single); | ||
152 | EXPORT_SYMBOL(pci_dma_sync_single_for_cpu); | ||
153 | EXPORT_SYMBOL(pci_dma_sync_single_for_device); | ||
154 | EXPORT_SYMBOL(pci_dma_sync_sg_for_cpu); | ||
155 | EXPORT_SYMBOL(pci_dma_sync_sg_for_device); | ||
156 | EXPORT_SYMBOL(pci_map_sg); | ||
157 | EXPORT_SYMBOL(pci_unmap_sg); | ||
158 | EXPORT_SYMBOL(pci_map_page); | ||
159 | EXPORT_SYMBOL(pci_unmap_page); | ||
160 | /* Actually, ioremap/iounmap are not PCI specific. But it is ok for drivers. */ | ||
161 | EXPORT_SYMBOL(ioremap); | ||
162 | EXPORT_SYMBOL(iounmap); | ||
163 | #endif | ||
164 | |||
165 | /* in arch/sparc/mm/highmem.c */ | ||
166 | #ifdef CONFIG_HIGHMEM | ||
167 | EXPORT_SYMBOL(kmap_atomic); | ||
168 | EXPORT_SYMBOL(kunmap_atomic); | ||
169 | #endif | ||
170 | |||
171 | /* prom symbols */ | ||
172 | EXPORT_SYMBOL(idprom); | ||
173 | EXPORT_SYMBOL(prom_root_node); | ||
174 | EXPORT_SYMBOL(prom_getchild); | ||
175 | EXPORT_SYMBOL(prom_getsibling); | ||
176 | EXPORT_SYMBOL(prom_searchsiblings); | ||
177 | EXPORT_SYMBOL(prom_firstprop); | ||
178 | EXPORT_SYMBOL(prom_nextprop); | ||
179 | EXPORT_SYMBOL(prom_getproplen); | ||
180 | EXPORT_SYMBOL(prom_getproperty); | ||
181 | EXPORT_SYMBOL(prom_node_has_property); | ||
182 | EXPORT_SYMBOL(prom_setprop); | ||
183 | EXPORT_SYMBOL(saved_command_line); | 46 | EXPORT_SYMBOL(saved_command_line); |
184 | EXPORT_SYMBOL(prom_apply_obio_ranges); | ||
185 | EXPORT_SYMBOL(prom_feval); | ||
186 | EXPORT_SYMBOL(prom_getbool); | ||
187 | EXPORT_SYMBOL(prom_getstring); | ||
188 | EXPORT_SYMBOL(prom_getint); | ||
189 | EXPORT_SYMBOL(prom_getintdefault); | ||
190 | EXPORT_SYMBOL(prom_finddevice); | ||
191 | EXPORT_SYMBOL(romvec); | ||
192 | EXPORT_SYMBOL(__prom_getchild); | ||
193 | EXPORT_SYMBOL(__prom_getsibling); | ||
194 | |||
195 | /* sparc library symbols */ | ||
196 | EXPORT_SYMBOL(memscan); | ||
197 | EXPORT_SYMBOL(strlen); | ||
198 | EXPORT_SYMBOL(strncmp); | ||
199 | EXPORT_SYMBOL(page_kernel); | ||
200 | |||
201 | /* Special internal versions of library functions. */ | ||
202 | EXPORT_SYMBOL(__copy_1page); | ||
203 | EXPORT_SYMBOL(__memcpy); | ||
204 | EXPORT_SYMBOL(__memset); | ||
205 | EXPORT_SYMBOL(bzero_1page); | ||
206 | EXPORT_SYMBOL(__bzero); | ||
207 | EXPORT_SYMBOL(__memscan_zero); | ||
208 | EXPORT_SYMBOL(__memscan_generic); | ||
209 | EXPORT_SYMBOL(__strncmp); | ||
210 | EXPORT_SYMBOL(__memmove); | ||
211 | |||
212 | /* Moving data to/from userspace. */ | ||
213 | EXPORT_SYMBOL(__copy_user); | ||
214 | EXPORT_SYMBOL(__strncpy_from_user); | ||
215 | EXPORT_SYMBOL(__strnlen_user); | ||
216 | |||
217 | /* Networking helper routines. */ | ||
218 | EXPORT_SYMBOL(__csum_partial_copy_sparc_generic); | ||
219 | EXPORT_SYMBOL(csum_partial); | ||
220 | |||
221 | /* Cache flushing. */ | ||
222 | EXPORT_SYMBOL(sparc_flush_page_to_ram); | ||
223 | |||
224 | /* For when serial stuff is built as modules. */ | ||
225 | EXPORT_SYMBOL(sun_do_break); | ||
226 | |||
227 | EXPORT_SYMBOL(__ret_efault); | ||
228 | |||
229 | EXPORT_SYMBOL(memcmp); | ||
230 | EXPORT_SYMBOL(memcpy); | ||
231 | EXPORT_SYMBOL(memset); | ||
232 | EXPORT_SYMBOL(memmove); | ||
233 | EXPORT_SYMBOL(__ashrdi3); | ||
234 | EXPORT_SYMBOL(__ashldi3); | ||
235 | EXPORT_SYMBOL(__lshrdi3); | ||
236 | EXPORT_SYMBOL(__muldi3); | ||
237 | EXPORT_SYMBOL(__divdi3); | ||
238 | |||
239 | EXPORT_SYMBOL(_Rem); | ||
240 | EXPORT_SYMBOL(_Urem); | ||
241 | EXPORT_SYMBOL(_Mul); | ||
242 | EXPORT_SYMBOL(_Umul); | ||
243 | EXPORT_SYMBOL(_Div); | ||
244 | EXPORT_SYMBOL(_Udiv); | ||
245 | |||
246 | #ifdef CONFIG_DEBUG_BUGVERBOSE | ||
247 | EXPORT_SYMBOL(do_BUG); | ||
248 | #endif | ||
249 | |||
250 | /* Sun Power Management Idle Handler */ | ||
251 | EXPORT_SYMBOL(pm_idle); | ||
252 | |||
253 | EXPORT_SYMBOL(empty_zero_page); | ||
diff --git a/arch/sparc/kernel/sparc_ksyms_64.c b/arch/sparc/kernel/sparc_ksyms_64.c index 0133211ab634..0f26066a08d9 100644 --- a/arch/sparc/kernel/sparc_ksyms_64.c +++ b/arch/sparc/kernel/sparc_ksyms_64.c | |||
@@ -5,50 +5,15 @@ | |||
5 | * Copyright (C) 1999 Jakub Jelinek (jj@ultra.linux.cz) | 5 | * Copyright (C) 1999 Jakub Jelinek (jj@ultra.linux.cz) |
6 | */ | 6 | */ |
7 | 7 | ||
8 | /* Tell string.h we don't want memcpy etc. as cpp defines */ | ||
9 | #define EXPORT_SYMTAB_STROPS | ||
10 | #define PROMLIB_INTERNAL | ||
11 | |||
12 | #include <linux/module.h> | 8 | #include <linux/module.h> |
13 | #include <linux/types.h> | ||
14 | #include <linux/string.h> | ||
15 | #include <linux/sched.h> | ||
16 | #include <linux/in6.h> | ||
17 | #include <linux/pci.h> | 9 | #include <linux/pci.h> |
18 | #include <linux/interrupt.h> | ||
19 | #include <linux/fs_struct.h> | ||
20 | #include <linux/fs.h> | ||
21 | #include <linux/mm.h> | ||
22 | #include <linux/socket.h> | ||
23 | #include <linux/syscalls.h> | ||
24 | #include <linux/percpu.h> | ||
25 | #include <linux/init.h> | 10 | #include <linux/init.h> |
26 | #include <linux/rwsem.h> | ||
27 | #include <net/compat.h> | ||
28 | 11 | ||
29 | #include <asm/oplib.h> | ||
30 | #include <asm/system.h> | 12 | #include <asm/system.h> |
31 | #include <asm/auxio.h> | ||
32 | #include <asm/pgtable.h> | ||
33 | #include <asm/io.h> | ||
34 | #include <asm/irq.h> | ||
35 | #include <asm/idprom.h> | ||
36 | #include <asm/elf.h> | ||
37 | #include <asm/head.h> | ||
38 | #include <asm/smp.h> | ||
39 | #include <asm/ptrace.h> | ||
40 | #include <asm/uaccess.h> | ||
41 | #include <asm/checksum.h> | ||
42 | #include <asm/fpumacro.h> | ||
43 | #include <asm/pgalloc.h> | ||
44 | #include <asm/cacheflush.h> | ||
45 | #ifdef CONFIG_SBUS | ||
46 | #include <asm/dma.h> | ||
47 | #endif | ||
48 | #include <asm/ns87303.h> | ||
49 | #include <asm/timer.h> | ||
50 | #include <asm/cpudata.h> | 13 | #include <asm/cpudata.h> |
51 | #include <asm/ftrace.h> | 14 | #include <asm/uaccess.h> |
15 | #include <asm/spitfire.h> | ||
16 | #include <asm/oplib.h> | ||
52 | #include <asm/hypervisor.h> | 17 | #include <asm/hypervisor.h> |
53 | 18 | ||
54 | struct poll { | 19 | struct poll { |
@@ -57,114 +22,24 @@ struct poll { | |||
57 | short revents; | 22 | short revents; |
58 | }; | 23 | }; |
59 | 24 | ||
60 | extern void die_if_kernel(char *str, struct pt_regs *regs); | 25 | /* from helpers.S */ |
61 | extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); | ||
62 | extern void *__bzero(void *, size_t); | ||
63 | extern void *__memscan_zero(void *, size_t); | ||
64 | extern void *__memscan_generic(void *, int, size_t); | ||
65 | extern __kernel_size_t strlen(const char *); | ||
66 | extern void sys_sigsuspend(void); | ||
67 | extern int compat_sys_ioctl(unsigned int fd, unsigned int cmd, u32 arg); | ||
68 | extern int (*handle_mathemu)(struct pt_regs *, struct fpustate *); | ||
69 | extern long sparc32_open(const char __user * filename, int flags, int mode); | ||
70 | extern int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long from, | ||
71 | unsigned long pfn, unsigned long size, pgprot_t prot); | ||
72 | |||
73 | extern int __ashrdi3(int, int); | ||
74 | |||
75 | extern int dump_fpu (struct pt_regs * regs, elf_fpregset_t * fpregs); | ||
76 | |||
77 | extern void xor_vis_2(unsigned long, unsigned long *, unsigned long *); | ||
78 | extern void xor_vis_3(unsigned long, unsigned long *, unsigned long *, | ||
79 | unsigned long *); | ||
80 | extern void xor_vis_4(unsigned long, unsigned long *, unsigned long *, | ||
81 | unsigned long *, unsigned long *); | ||
82 | extern void xor_vis_5(unsigned long, unsigned long *, unsigned long *, | ||
83 | unsigned long *, unsigned long *, unsigned long *); | ||
84 | |||
85 | extern void xor_niagara_2(unsigned long, unsigned long *, unsigned long *); | ||
86 | extern void xor_niagara_3(unsigned long, unsigned long *, unsigned long *, | ||
87 | unsigned long *); | ||
88 | extern void xor_niagara_4(unsigned long, unsigned long *, unsigned long *, | ||
89 | unsigned long *, unsigned long *); | ||
90 | extern void xor_niagara_5(unsigned long, unsigned long *, unsigned long *, | ||
91 | unsigned long *, unsigned long *, unsigned long *); | ||
92 | |||
93 | /* Per-CPU information table */ | ||
94 | EXPORT_PER_CPU_SYMBOL(__cpu_data); | ||
95 | |||
96 | /* used by various drivers */ | ||
97 | #ifdef CONFIG_SMP | ||
98 | /* Out of line rw-locking implementation. */ | ||
99 | EXPORT_SYMBOL(__read_lock); | ||
100 | EXPORT_SYMBOL(__read_unlock); | ||
101 | EXPORT_SYMBOL(__write_lock); | ||
102 | EXPORT_SYMBOL(__write_unlock); | ||
103 | EXPORT_SYMBOL(__write_trylock); | ||
104 | #endif /* CONFIG_SMP */ | ||
105 | |||
106 | #ifdef CONFIG_MCOUNT | ||
107 | EXPORT_SYMBOL(_mcount); | ||
108 | #endif | ||
109 | |||
110 | EXPORT_SYMBOL(sparc64_get_clock_tick); | ||
111 | |||
112 | /* RW semaphores */ | ||
113 | EXPORT_SYMBOL(__down_read); | ||
114 | EXPORT_SYMBOL(__down_read_trylock); | ||
115 | EXPORT_SYMBOL(__down_write); | ||
116 | EXPORT_SYMBOL(__down_write_trylock); | ||
117 | EXPORT_SYMBOL(__up_read); | ||
118 | EXPORT_SYMBOL(__up_write); | ||
119 | EXPORT_SYMBOL(__downgrade_write); | ||
120 | |||
121 | /* Atomic counter implementation. */ | ||
122 | EXPORT_SYMBOL(atomic_add); | ||
123 | EXPORT_SYMBOL(atomic_add_ret); | ||
124 | EXPORT_SYMBOL(atomic_sub); | ||
125 | EXPORT_SYMBOL(atomic_sub_ret); | ||
126 | EXPORT_SYMBOL(atomic64_add); | ||
127 | EXPORT_SYMBOL(atomic64_add_ret); | ||
128 | EXPORT_SYMBOL(atomic64_sub); | ||
129 | EXPORT_SYMBOL(atomic64_sub_ret); | ||
130 | |||
131 | /* Atomic bit operations. */ | ||
132 | EXPORT_SYMBOL(test_and_set_bit); | ||
133 | EXPORT_SYMBOL(test_and_clear_bit); | ||
134 | EXPORT_SYMBOL(test_and_change_bit); | ||
135 | EXPORT_SYMBOL(set_bit); | ||
136 | EXPORT_SYMBOL(clear_bit); | ||
137 | EXPORT_SYMBOL(change_bit); | ||
138 | |||
139 | EXPORT_SYMBOL(__flushw_user); | 26 | EXPORT_SYMBOL(__flushw_user); |
27 | EXPORT_SYMBOL_GPL(real_hard_smp_processor_id); | ||
140 | 28 | ||
29 | /* from head_64.S */ | ||
30 | EXPORT_SYMBOL(__ret_efault); | ||
141 | EXPORT_SYMBOL(tlb_type); | 31 | EXPORT_SYMBOL(tlb_type); |
142 | EXPORT_SYMBOL(sun4v_chip_type); | 32 | EXPORT_SYMBOL(sun4v_chip_type); |
143 | EXPORT_SYMBOL(get_fb_unmapped_area); | 33 | EXPORT_SYMBOL(prom_root_node); |
144 | EXPORT_SYMBOL(flush_icache_range); | ||
145 | |||
146 | EXPORT_SYMBOL(flush_dcache_page); | ||
147 | #ifdef DCACHE_ALIASING_POSSIBLE | ||
148 | EXPORT_SYMBOL(__flush_dcache_range); | ||
149 | #endif | ||
150 | 34 | ||
35 | /* from hvcalls.S */ | ||
151 | EXPORT_SYMBOL(sun4v_niagara_getperf); | 36 | EXPORT_SYMBOL(sun4v_niagara_getperf); |
152 | EXPORT_SYMBOL(sun4v_niagara_setperf); | 37 | EXPORT_SYMBOL(sun4v_niagara_setperf); |
153 | EXPORT_SYMBOL(sun4v_niagara2_getperf); | 38 | EXPORT_SYMBOL(sun4v_niagara2_getperf); |
154 | EXPORT_SYMBOL(sun4v_niagara2_setperf); | 39 | EXPORT_SYMBOL(sun4v_niagara2_setperf); |
155 | 40 | ||
156 | EXPORT_SYMBOL(auxio_set_led); | ||
157 | EXPORT_SYMBOL(auxio_set_lte); | ||
158 | #ifdef CONFIG_SBUS | ||
159 | EXPORT_SYMBOL(sbus_set_sbus64); | ||
160 | #endif | ||
161 | EXPORT_SYMBOL(outsb); | ||
162 | EXPORT_SYMBOL(outsw); | ||
163 | EXPORT_SYMBOL(outsl); | ||
164 | EXPORT_SYMBOL(insb); | ||
165 | EXPORT_SYMBOL(insw); | ||
166 | EXPORT_SYMBOL(insl); | ||
167 | #ifdef CONFIG_PCI | 41 | #ifdef CONFIG_PCI |
42 | /* inline functions in asm/pci_64.h */ | ||
168 | EXPORT_SYMBOL(pci_alloc_consistent); | 43 | EXPORT_SYMBOL(pci_alloc_consistent); |
169 | EXPORT_SYMBOL(pci_free_consistent); | 44 | EXPORT_SYMBOL(pci_free_consistent); |
170 | EXPORT_SYMBOL(pci_map_single); | 45 | EXPORT_SYMBOL(pci_map_single); |
@@ -173,112 +48,7 @@ EXPORT_SYMBOL(pci_map_sg); | |||
173 | EXPORT_SYMBOL(pci_unmap_sg); | 48 | EXPORT_SYMBOL(pci_unmap_sg); |
174 | EXPORT_SYMBOL(pci_dma_sync_single_for_cpu); | 49 | EXPORT_SYMBOL(pci_dma_sync_single_for_cpu); |
175 | EXPORT_SYMBOL(pci_dma_sync_sg_for_cpu); | 50 | EXPORT_SYMBOL(pci_dma_sync_sg_for_cpu); |
176 | EXPORT_SYMBOL(pci_dma_supported); | ||
177 | #endif | 51 | #endif |
178 | 52 | ||
179 | /* I/O device mmaping on Sparc64. */ | 53 | /* Exporting a symbol from /init/main.c */ |
180 | EXPORT_SYMBOL(io_remap_pfn_range); | ||
181 | |||
182 | EXPORT_SYMBOL(dump_fpu); | ||
183 | |||
184 | /* math-emu wants this */ | ||
185 | EXPORT_SYMBOL(die_if_kernel); | ||
186 | |||
187 | /* Kernel thread creation. */ | ||
188 | EXPORT_SYMBOL(kernel_thread); | ||
189 | |||
190 | /* prom symbols */ | ||
191 | EXPORT_SYMBOL(idprom); | ||
192 | EXPORT_SYMBOL(prom_root_node); | ||
193 | EXPORT_SYMBOL(prom_getchild); | ||
194 | EXPORT_SYMBOL(prom_getsibling); | ||
195 | EXPORT_SYMBOL(prom_searchsiblings); | ||
196 | EXPORT_SYMBOL(prom_firstprop); | ||
197 | EXPORT_SYMBOL(prom_nextprop); | ||
198 | EXPORT_SYMBOL(prom_getproplen); | ||
199 | EXPORT_SYMBOL(prom_getproperty); | ||
200 | EXPORT_SYMBOL(prom_node_has_property); | ||
201 | EXPORT_SYMBOL(prom_setprop); | ||
202 | EXPORT_SYMBOL(saved_command_line); | 54 | EXPORT_SYMBOL(saved_command_line); |
203 | EXPORT_SYMBOL(prom_finddevice); | ||
204 | EXPORT_SYMBOL(prom_feval); | ||
205 | EXPORT_SYMBOL(prom_getbool); | ||
206 | EXPORT_SYMBOL(prom_getstring); | ||
207 | EXPORT_SYMBOL(prom_getint); | ||
208 | EXPORT_SYMBOL(prom_getintdefault); | ||
209 | EXPORT_SYMBOL(__prom_getchild); | ||
210 | EXPORT_SYMBOL(__prom_getsibling); | ||
211 | |||
212 | /* sparc library symbols */ | ||
213 | EXPORT_SYMBOL(strlen); | ||
214 | EXPORT_SYMBOL(__strlen_user); | ||
215 | EXPORT_SYMBOL(__strnlen_user); | ||
216 | |||
217 | /* Special internal versions of library functions. */ | ||
218 | EXPORT_SYMBOL(_clear_page); | ||
219 | EXPORT_SYMBOL(clear_user_page); | ||
220 | EXPORT_SYMBOL(copy_user_page); | ||
221 | EXPORT_SYMBOL(__bzero); | ||
222 | EXPORT_SYMBOL(__memscan_zero); | ||
223 | EXPORT_SYMBOL(__memscan_generic); | ||
224 | EXPORT_SYMBOL(__memset); | ||
225 | |||
226 | EXPORT_SYMBOL(csum_partial); | ||
227 | EXPORT_SYMBOL(csum_partial_copy_nocheck); | ||
228 | EXPORT_SYMBOL(__csum_partial_copy_from_user); | ||
229 | EXPORT_SYMBOL(__csum_partial_copy_to_user); | ||
230 | EXPORT_SYMBOL(ip_fast_csum); | ||
231 | |||
232 | /* Moving data to/from/in userspace. */ | ||
233 | EXPORT_SYMBOL(___copy_to_user); | ||
234 | EXPORT_SYMBOL(___copy_from_user); | ||
235 | EXPORT_SYMBOL(___copy_in_user); | ||
236 | EXPORT_SYMBOL(copy_to_user_fixup); | ||
237 | EXPORT_SYMBOL(copy_from_user_fixup); | ||
238 | EXPORT_SYMBOL(copy_in_user_fixup); | ||
239 | EXPORT_SYMBOL(__strncpy_from_user); | ||
240 | EXPORT_SYMBOL(__clear_user); | ||
241 | |||
242 | /* Various address conversion macros use this. */ | ||
243 | EXPORT_SYMBOL(sparc64_valid_addr_bitmap); | ||
244 | |||
245 | /* No version information on this, heavily used in inline asm, | ||
246 | * and will always be 'void __ret_efault(void)'. | ||
247 | */ | ||
248 | EXPORT_SYMBOL(__ret_efault); | ||
249 | |||
250 | /* No version information on these, as gcc produces such symbols. */ | ||
251 | EXPORT_SYMBOL(memcmp); | ||
252 | EXPORT_SYMBOL(memcpy); | ||
253 | EXPORT_SYMBOL(memset); | ||
254 | EXPORT_SYMBOL(memmove); | ||
255 | EXPORT_SYMBOL(strncmp); | ||
256 | |||
257 | void VISenter(void); | ||
258 | /* RAID code needs this */ | ||
259 | EXPORT_SYMBOL(VISenter); | ||
260 | |||
261 | /* for input/keybdev */ | ||
262 | EXPORT_SYMBOL(sun_do_break); | ||
263 | EXPORT_SYMBOL(stop_a_enabled); | ||
264 | |||
265 | #ifdef CONFIG_DEBUG_BUGVERBOSE | ||
266 | EXPORT_SYMBOL(do_BUG); | ||
267 | #endif | ||
268 | |||
269 | /* for ns8703 */ | ||
270 | EXPORT_SYMBOL(ns87303_lock); | ||
271 | |||
272 | EXPORT_SYMBOL(tick_ops); | ||
273 | |||
274 | EXPORT_SYMBOL(xor_vis_2); | ||
275 | EXPORT_SYMBOL(xor_vis_3); | ||
276 | EXPORT_SYMBOL(xor_vis_4); | ||
277 | EXPORT_SYMBOL(xor_vis_5); | ||
278 | |||
279 | EXPORT_SYMBOL(xor_niagara_2); | ||
280 | EXPORT_SYMBOL(xor_niagara_3); | ||
281 | EXPORT_SYMBOL(xor_niagara_4); | ||
282 | EXPORT_SYMBOL(xor_niagara_5); | ||
283 | |||
284 | EXPORT_SYMBOL_GPL(real_hard_smp_processor_id); | ||
diff --git a/arch/sparc/kernel/sun4d_smp.c b/arch/sparc/kernel/sun4d_smp.c index 16ab0cb731c5..50afaed99c8a 100644 --- a/arch/sparc/kernel/sun4d_smp.c +++ b/arch/sparc/kernel/sun4d_smp.c | |||
@@ -60,7 +60,7 @@ extern int __smp4d_processor_id(void); | |||
60 | #define SMP_PRINTK(x) | 60 | #define SMP_PRINTK(x) |
61 | #endif | 61 | #endif |
62 | 62 | ||
63 | static inline unsigned long swap(volatile unsigned long *ptr, unsigned long val) | 63 | static inline unsigned long sun4d_swap(volatile unsigned long *ptr, unsigned long val) |
64 | { | 64 | { |
65 | __asm__ __volatile__("swap [%1], %0\n\t" : | 65 | __asm__ __volatile__("swap [%1], %0\n\t" : |
66 | "=&r" (val), "=&r" (ptr) : | 66 | "=&r" (val), "=&r" (ptr) : |
@@ -115,7 +115,7 @@ void __cpuinit smp4d_callin(void) | |||
115 | local_flush_tlb_all(); | 115 | local_flush_tlb_all(); |
116 | 116 | ||
117 | /* Allow master to continue. */ | 117 | /* Allow master to continue. */ |
118 | swap((unsigned long *)&cpu_callin_map[cpuid], 1); | 118 | sun4d_swap((unsigned long *)&cpu_callin_map[cpuid], 1); |
119 | local_flush_cache_all(); | 119 | local_flush_cache_all(); |
120 | local_flush_tlb_all(); | 120 | local_flush_tlb_all(); |
121 | 121 | ||
diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c index 39749e32dc7e..09058fc39e73 100644 --- a/arch/sparc/kernel/sys_sparc_64.c +++ b/arch/sparc/kernel/sys_sparc_64.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/ipc.h> | 23 | #include <linux/ipc.h> |
24 | #include <linux/personality.h> | 24 | #include <linux/personality.h> |
25 | #include <linux/random.h> | 25 | #include <linux/random.h> |
26 | #include <linux/module.h> | ||
26 | 27 | ||
27 | #include <asm/uaccess.h> | 28 | #include <asm/uaccess.h> |
28 | #include <asm/utrap.h> | 29 | #include <asm/utrap.h> |
@@ -354,6 +355,7 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u | |||
354 | 355 | ||
355 | return addr; | 356 | return addr; |
356 | } | 357 | } |
358 | EXPORT_SYMBOL(get_fb_unmapped_area); | ||
357 | 359 | ||
358 | /* Essentially the same as PowerPC... */ | 360 | /* Essentially the same as PowerPC... */ |
359 | void arch_pick_mmap_layout(struct mm_struct *mm) | 361 | void arch_pick_mmap_layout(struct mm_struct *mm) |
diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S index 7a6786a71363..87f5a3b8a253 100644 --- a/arch/sparc/kernel/syscalls.S +++ b/arch/sparc/kernel/syscalls.S | |||
@@ -20,7 +20,7 @@ execve_merge: | |||
20 | add %sp, PTREGS_OFF, %o0 | 20 | add %sp, PTREGS_OFF, %o0 |
21 | 21 | ||
22 | .align 32 | 22 | .align 32 |
23 | sys_pipe: | 23 | sys_sparc_pipe: |
24 | ba,pt %xcc, sparc_pipe | 24 | ba,pt %xcc, sparc_pipe |
25 | add %sp, PTREGS_OFF, %o0 | 25 | add %sp, PTREGS_OFF, %o0 |
26 | sys_nis_syscall: | 26 | sys_nis_syscall: |
diff --git a/arch/sparc/kernel/systbls_32.S b/arch/sparc/kernel/systbls_32.S index 7d0807586442..dccc95df0c7f 100644 --- a/arch/sparc/kernel/systbls_32.S +++ b/arch/sparc/kernel/systbls_32.S | |||
@@ -24,7 +24,7 @@ sys_call_table: | |||
24 | /*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause | 24 | /*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause |
25 | /*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice | 25 | /*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice |
26 | /*35*/ .long sys_chown, sys_sync, sys_kill, sys_newstat, sys_sendfile | 26 | /*35*/ .long sys_chown, sys_sync, sys_kill, sys_newstat, sys_sendfile |
27 | /*40*/ .long sys_newlstat, sys_dup, sys_pipe, sys_times, sys_getuid | 27 | /*40*/ .long sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_getuid |
28 | /*45*/ .long sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16 | 28 | /*45*/ .long sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16 |
29 | /*50*/ .long sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, sys_ioctl | 29 | /*50*/ .long sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, sys_ioctl |
30 | /*55*/ .long sys_reboot, sys_mmap2, sys_symlink, sys_readlink, sys_execve | 30 | /*55*/ .long sys_reboot, sys_mmap2, sys_symlink, sys_readlink, sys_execve |
@@ -56,7 +56,7 @@ sys_call_table: | |||
56 | /*185*/ .long sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_newuname | 56 | /*185*/ .long sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_newuname |
57 | /*190*/ .long sys_init_module, sys_personality, sparc_remap_file_pages, sys_epoll_create, sys_epoll_ctl | 57 | /*190*/ .long sys_init_module, sys_personality, sparc_remap_file_pages, sys_epoll_create, sys_epoll_ctl |
58 | /*195*/ .long sys_epoll_wait, sys_ioprio_set, sys_getppid, sparc_sigaction, sys_sgetmask | 58 | /*195*/ .long sys_epoll_wait, sys_ioprio_set, sys_getppid, sparc_sigaction, sys_sgetmask |
59 | /*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, old_readdir | 59 | /*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, sys_old_readdir |
60 | /*205*/ .long sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64 | 60 | /*205*/ .long sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64 |
61 | /*210*/ .long sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo | 61 | /*210*/ .long sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo |
62 | /*215*/ .long sys_ipc, sys_sigreturn, sys_clone, sys_ioprio_get, sys_adjtimex | 62 | /*215*/ .long sys_ipc, sys_sigreturn, sys_clone, sys_ioprio_get, sys_adjtimex |
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S index 9fc78cf354bd..e6007bb37046 100644 --- a/arch/sparc/kernel/systbls_64.S +++ b/arch/sparc/kernel/systbls_64.S | |||
@@ -26,7 +26,7 @@ sys_call_table32: | |||
26 | /*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys_pause | 26 | /*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys_pause |
27 | /*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice | 27 | /*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice |
28 | .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile | 28 | .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile |
29 | /*40*/ .word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid | 29 | /*40*/ .word compat_sys_newlstat, sys_dup, sys_sparc_pipe, compat_sys_times, sys_getuid |
30 | .word sys32_umount, sys_setgid16, sys_getgid16, sys32_signal, sys_geteuid16 | 30 | .word sys32_umount, sys_setgid16, sys_getgid16, sys32_signal, sys_geteuid16 |
31 | /*50*/ .word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl | 31 | /*50*/ .word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl |
32 | .word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve | 32 | .word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve |
@@ -100,7 +100,7 @@ sys_call_table: | |||
100 | /*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall | 100 | /*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall |
101 | /*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice | 101 | /*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice |
102 | .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64 | 102 | .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64 |
103 | /*40*/ .word sys_newlstat, sys_dup, sys_pipe, sys_times, sys_nis_syscall | 103 | /*40*/ .word sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_nis_syscall |
104 | .word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid | 104 | .word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid |
105 | /*50*/ .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl | 105 | /*50*/ .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl |
106 | .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve | 106 | .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve |
diff --git a/arch/sparc/kernel/time_32.c b/arch/sparc/kernel/time_32.c index 00f7383c7657..614ac7b4a9dd 100644 --- a/arch/sparc/kernel/time_32.c +++ b/arch/sparc/kernel/time_32.c | |||
@@ -48,6 +48,8 @@ | |||
48 | #include "irq.h" | 48 | #include "irq.h" |
49 | 49 | ||
50 | DEFINE_SPINLOCK(rtc_lock); | 50 | DEFINE_SPINLOCK(rtc_lock); |
51 | EXPORT_SYMBOL(rtc_lock); | ||
52 | |||
51 | static int set_rtc_mmss(unsigned long); | 53 | static int set_rtc_mmss(unsigned long); |
52 | static int sbus_do_settimeofday(struct timespec *tv); | 54 | static int sbus_do_settimeofday(struct timespec *tv); |
53 | 55 | ||
diff --git a/arch/sparc/kernel/time_64.c b/arch/sparc/kernel/time_64.c index 54405d362148..2db3c2229b95 100644 --- a/arch/sparc/kernel/time_64.c +++ b/arch/sparc/kernel/time_64.c | |||
@@ -176,6 +176,7 @@ static struct sparc64_tick_ops tick_operations __read_mostly = { | |||
176 | }; | 176 | }; |
177 | 177 | ||
178 | struct sparc64_tick_ops *tick_ops __read_mostly = &tick_operations; | 178 | struct sparc64_tick_ops *tick_ops __read_mostly = &tick_operations; |
179 | EXPORT_SYMBOL(tick_ops); | ||
179 | 180 | ||
180 | static void stick_disable_irq(void) | 181 | static void stick_disable_irq(void) |
181 | { | 182 | { |
@@ -639,6 +640,7 @@ unsigned long sparc64_get_clock_tick(unsigned int cpu) | |||
639 | return ft->clock_tick_ref; | 640 | return ft->clock_tick_ref; |
640 | return cpu_data(cpu).clock_tick; | 641 | return cpu_data(cpu).clock_tick; |
641 | } | 642 | } |
643 | EXPORT_SYMBOL(sparc64_get_clock_tick); | ||
642 | 644 | ||
643 | #ifdef CONFIG_CPU_FREQ | 645 | #ifdef CONFIG_CPU_FREQ |
644 | 646 | ||
diff --git a/arch/sparc/kernel/traps_32.c b/arch/sparc/kernel/traps_32.c index 213645be6e92..358283341b47 100644 --- a/arch/sparc/kernel/traps_32.c +++ b/arch/sparc/kernel/traps_32.c | |||
@@ -424,6 +424,7 @@ void do_BUG(const char *file, int line) | |||
424 | // bust_spinlocks(1); XXX Not in our original BUG() | 424 | // bust_spinlocks(1); XXX Not in our original BUG() |
425 | printk("kernel BUG at %s:%d!\n", file, line); | 425 | printk("kernel BUG at %s:%d!\n", file, line); |
426 | } | 426 | } |
427 | EXPORT_SYMBOL(do_BUG); | ||
427 | #endif | 428 | #endif |
428 | 429 | ||
429 | /* Since we have our mappings set up, on multiprocessors we can spin them | 430 | /* Since we have our mappings set up, on multiprocessors we can spin them |
diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c index bca3b4e09c41..c2d153d46586 100644 --- a/arch/sparc/kernel/traps_64.c +++ b/arch/sparc/kernel/traps_64.c | |||
@@ -128,6 +128,7 @@ void do_BUG(const char *file, int line) | |||
128 | bust_spinlocks(1); | 128 | bust_spinlocks(1); |
129 | printk("kernel BUG at %s:%d!\n", file, line); | 129 | printk("kernel BUG at %s:%d!\n", file, line); |
130 | } | 130 | } |
131 | EXPORT_SYMBOL(do_BUG); | ||
131 | #endif | 132 | #endif |
132 | 133 | ||
133 | static DEFINE_SPINLOCK(dimm_handler_lock); | 134 | static DEFINE_SPINLOCK(dimm_handler_lock); |
@@ -2261,6 +2262,7 @@ void die_if_kernel(char *str, struct pt_regs *regs) | |||
2261 | do_exit(SIGKILL); | 2262 | do_exit(SIGKILL); |
2262 | do_exit(SIGSEGV); | 2263 | do_exit(SIGSEGV); |
2263 | } | 2264 | } |
2265 | EXPORT_SYMBOL(die_if_kernel); | ||
2264 | 2266 | ||
2265 | #define VIS_OPCODE_MASK ((0x3 << 30) | (0x3f << 19)) | 2267 | #define VIS_OPCODE_MASK ((0x3 << 30) | (0x3f << 19)) |
2266 | #define VIS_OPCODE_VAL ((0x2 << 30) | (0x36 << 19)) | 2268 | #define VIS_OPCODE_VAL ((0x2 << 30) | (0x36 << 19)) |
diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c index f164d5a850f9..379209982a07 100644 --- a/arch/sparc/kernel/unaligned_64.c +++ b/arch/sparc/kernel/unaligned_64.c | |||
@@ -589,7 +589,6 @@ void handle_lddfmna(struct pt_regs *regs, unsigned long sfar, unsigned long sfsr | |||
589 | unsigned long pc = regs->tpc; | 589 | unsigned long pc = regs->tpc; |
590 | unsigned long tstate = regs->tstate; | 590 | unsigned long tstate = regs->tstate; |
591 | u32 insn; | 591 | u32 insn; |
592 | u32 first, second; | ||
593 | u64 value; | 592 | u64 value; |
594 | u8 freg; | 593 | u8 freg; |
595 | int flag; | 594 | int flag; |
@@ -601,19 +600,20 @@ void handle_lddfmna(struct pt_regs *regs, unsigned long sfar, unsigned long sfsr | |||
601 | pc = (u32)pc; | 600 | pc = (u32)pc; |
602 | if (get_user(insn, (u32 __user *) pc) != -EFAULT) { | 601 | if (get_user(insn, (u32 __user *) pc) != -EFAULT) { |
603 | int asi = decode_asi(insn, regs); | 602 | int asi = decode_asi(insn, regs); |
603 | u32 first, second; | ||
604 | int err; | 604 | int err; |
605 | 605 | ||
606 | if ((asi > ASI_SNFL) || | 606 | if ((asi > ASI_SNFL) || |
607 | (asi < ASI_P)) | 607 | (asi < ASI_P)) |
608 | goto daex; | 608 | goto daex; |
609 | first = second = 0; | ||
609 | err = get_user(first, (u32 __user *)sfar); | 610 | err = get_user(first, (u32 __user *)sfar); |
610 | if (!err) | 611 | if (!err) |
611 | err = get_user(second, (u32 __user *)(sfar + 4)); | 612 | err = get_user(second, (u32 __user *)(sfar + 4)); |
612 | if (err) { | 613 | if (err) { |
613 | if (asi & 0x2) /* NF */ { | 614 | if (!(asi & 0x2)) |
614 | first = 0; second = 0; | ||
615 | } else | ||
616 | goto daex; | 615 | goto daex; |
616 | first = second = 0; | ||
617 | } | 617 | } |
618 | save_and_clear_fpu(); | 618 | save_and_clear_fpu(); |
619 | freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20); | 619 | freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20); |