diff options
Diffstat (limited to 'arch/alpha')
-rw-r--r-- | arch/alpha/Kconfig | 7 | ||||
-rw-r--r-- | arch/alpha/include/asm/a.out.h | 2 | ||||
-rw-r--r-- | arch/alpha/include/asm/elf.h | 4 | ||||
-rw-r--r-- | arch/alpha/include/asm/statfs.h | 4 | ||||
-rw-r--r-- | arch/alpha/kernel/pci_iommu.c | 17 | ||||
-rw-r--r-- | arch/alpha/kernel/smp.c | 4 |
6 files changed, 18 insertions, 20 deletions
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index 1bec55d63ef6..a0f642b6a4b9 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig | |||
@@ -5,6 +5,7 @@ | |||
5 | config ALPHA | 5 | config ALPHA |
6 | bool | 6 | bool |
7 | default y | 7 | default y |
8 | select HAVE_AOUT | ||
8 | select HAVE_IDE | 9 | select HAVE_IDE |
9 | select HAVE_OPROFILE | 10 | select HAVE_OPROFILE |
10 | help | 11 | help |
@@ -68,9 +69,6 @@ config AUTO_IRQ_AFFINITY | |||
68 | depends on SMP | 69 | depends on SMP |
69 | default y | 70 | default y |
70 | 71 | ||
71 | config ARCH_SUPPORTS_AOUT | ||
72 | def_bool y | ||
73 | |||
74 | source "init/Kconfig" | 72 | source "init/Kconfig" |
75 | 73 | ||
76 | 74 | ||
@@ -224,8 +222,7 @@ config ALPHA_MIATA | |||
224 | bool "Miata" | 222 | bool "Miata" |
225 | help | 223 | help |
226 | The Digital PersonalWorkStation (PWS 433a, 433au, 500a, 500au, 600a, | 224 | The Digital PersonalWorkStation (PWS 433a, 433au, 500a, 500au, 600a, |
227 | or 600au). There is an Installation HOWTO for this hardware at | 225 | or 600au). |
228 | <http://eijk.homelinux.org/~stefan/miata.html>. | ||
229 | 226 | ||
230 | config ALPHA_MIKASA | 227 | config ALPHA_MIKASA |
231 | bool "Mikasa" | 228 | bool "Mikasa" |
diff --git a/arch/alpha/include/asm/a.out.h b/arch/alpha/include/asm/a.out.h index 02ce8473870a..acdc681231cb 100644 --- a/arch/alpha/include/asm/a.out.h +++ b/arch/alpha/include/asm/a.out.h | |||
@@ -95,7 +95,7 @@ struct exec | |||
95 | Worse, we have to notice the start address before swapping to use | 95 | Worse, we have to notice the start address before swapping to use |
96 | /sbin/loader, which of course is _not_ a TASO application. */ | 96 | /sbin/loader, which of course is _not_ a TASO application. */ |
97 | #define SET_AOUT_PERSONALITY(BFPM, EX) \ | 97 | #define SET_AOUT_PERSONALITY(BFPM, EX) \ |
98 | set_personality (((BFPM->sh_bang || EX.ah.entry < 0x100000000L \ | 98 | set_personality (((BFPM->taso || EX.ah.entry < 0x100000000L \ |
99 | ? ADDR_LIMIT_32BIT : 0) | PER_OSF4)) | 99 | ? ADDR_LIMIT_32BIT : 0) | PER_OSF4)) |
100 | 100 | ||
101 | #endif /* __KERNEL__ */ | 101 | #endif /* __KERNEL__ */ |
diff --git a/arch/alpha/include/asm/elf.h b/arch/alpha/include/asm/elf.h index fc1002ea1e0c..5c75c1b2352a 100644 --- a/arch/alpha/include/asm/elf.h +++ b/arch/alpha/include/asm/elf.h | |||
@@ -144,9 +144,9 @@ extern int dump_elf_task_fp(elf_fpreg_t *dest, struct task_struct *task); | |||
144 | : amask (AMASK_CIX) ? "ev6" : "ev67"); \ | 144 | : amask (AMASK_CIX) ? "ev6" : "ev67"); \ |
145 | }) | 145 | }) |
146 | 146 | ||
147 | #define SET_PERSONALITY(EX, IBCS2) \ | 147 | #define SET_PERSONALITY(EX) \ |
148 | set_personality(((EX).e_flags & EF_ALPHA_32BIT) \ | 148 | set_personality(((EX).e_flags & EF_ALPHA_32BIT) \ |
149 | ? PER_LINUX_32BIT : (IBCS2) ? PER_SVR4 : PER_LINUX) | 149 | ? PER_LINUX_32BIT : PER_LINUX) |
150 | 150 | ||
151 | extern int alpha_l1i_cacheshape; | 151 | extern int alpha_l1i_cacheshape; |
152 | extern int alpha_l1d_cacheshape; | 152 | extern int alpha_l1d_cacheshape; |
diff --git a/arch/alpha/include/asm/statfs.h b/arch/alpha/include/asm/statfs.h index ad15830baefe..de35cd438a10 100644 --- a/arch/alpha/include/asm/statfs.h +++ b/arch/alpha/include/asm/statfs.h | |||
@@ -1,6 +1,10 @@ | |||
1 | #ifndef _ALPHA_STATFS_H | 1 | #ifndef _ALPHA_STATFS_H |
2 | #define _ALPHA_STATFS_H | 2 | #define _ALPHA_STATFS_H |
3 | 3 | ||
4 | /* Alpha is the only 64-bit platform with 32-bit statfs. And doesn't | ||
5 | even seem to implement statfs64 */ | ||
6 | #define __statfs_word __u32 | ||
7 | |||
4 | #include <asm-generic/statfs.h> | 8 | #include <asm-generic/statfs.h> |
5 | 9 | ||
6 | #endif | 10 | #endif |
diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c index 2179c602032a..b9094da05d7a 100644 --- a/arch/alpha/kernel/pci_iommu.c +++ b/arch/alpha/kernel/pci_iommu.c | |||
@@ -41,13 +41,6 @@ mk_iommu_pte(unsigned long paddr) | |||
41 | return (paddr >> (PAGE_SHIFT-1)) | 1; | 41 | return (paddr >> (PAGE_SHIFT-1)) | 1; |
42 | } | 42 | } |
43 | 43 | ||
44 | static inline long | ||
45 | calc_npages(long bytes) | ||
46 | { | ||
47 | return (bytes + PAGE_SIZE - 1) >> PAGE_SHIFT; | ||
48 | } | ||
49 | |||
50 | |||
51 | /* Return the minimum of MAX or the first power of two larger | 44 | /* Return the minimum of MAX or the first power of two larger |
52 | than main memory. */ | 45 | than main memory. */ |
53 | 46 | ||
@@ -287,7 +280,7 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size, | |||
287 | if (!arena || arena->dma_base + arena->size - 1 > max_dma) | 280 | if (!arena || arena->dma_base + arena->size - 1 > max_dma) |
288 | arena = hose->sg_isa; | 281 | arena = hose->sg_isa; |
289 | 282 | ||
290 | npages = calc_npages((paddr & ~PAGE_MASK) + size); | 283 | npages = iommu_num_pages(paddr, size, PAGE_SIZE); |
291 | 284 | ||
292 | /* Force allocation to 64KB boundary for ISA bridges. */ | 285 | /* Force allocation to 64KB boundary for ISA bridges. */ |
293 | if (pdev && pdev == isa_bridge) | 286 | if (pdev && pdev == isa_bridge) |
@@ -387,7 +380,7 @@ pci_unmap_single(struct pci_dev *pdev, dma_addr_t dma_addr, size_t size, | |||
387 | BUG(); | 380 | BUG(); |
388 | } | 381 | } |
389 | 382 | ||
390 | npages = calc_npages((dma_addr & ~PAGE_MASK) + size); | 383 | npages = iommu_num_pages(dma_addr, size, PAGE_SIZE); |
391 | 384 | ||
392 | spin_lock_irqsave(&arena->lock, flags); | 385 | spin_lock_irqsave(&arena->lock, flags); |
393 | 386 | ||
@@ -580,7 +573,7 @@ sg_fill(struct device *dev, struct scatterlist *leader, struct scatterlist *end, | |||
580 | contiguous. */ | 573 | contiguous. */ |
581 | 574 | ||
582 | paddr &= ~PAGE_MASK; | 575 | paddr &= ~PAGE_MASK; |
583 | npages = calc_npages(paddr + size); | 576 | npages = iommu_num_pages(paddr, size, PAGE_SIZE); |
584 | dma_ofs = iommu_arena_alloc(dev, arena, npages, 0); | 577 | dma_ofs = iommu_arena_alloc(dev, arena, npages, 0); |
585 | if (dma_ofs < 0) { | 578 | if (dma_ofs < 0) { |
586 | /* If we attempted a direct map above but failed, die. */ | 579 | /* If we attempted a direct map above but failed, die. */ |
@@ -616,7 +609,7 @@ sg_fill(struct device *dev, struct scatterlist *leader, struct scatterlist *end, | |||
616 | sg++; | 609 | sg++; |
617 | } | 610 | } |
618 | 611 | ||
619 | npages = calc_npages((paddr & ~PAGE_MASK) + size); | 612 | npages = iommu_num_pages(paddr, size, PAGE_SIZE); |
620 | 613 | ||
621 | paddr &= PAGE_MASK; | 614 | paddr &= PAGE_MASK; |
622 | for (i = 0; i < npages; ++i, paddr += PAGE_SIZE) | 615 | for (i = 0; i < npages; ++i, paddr += PAGE_SIZE) |
@@ -775,7 +768,7 @@ pci_unmap_sg(struct pci_dev *pdev, struct scatterlist *sg, int nents, | |||
775 | DBGA(" (%ld) sg [%lx,%lx]\n", | 768 | DBGA(" (%ld) sg [%lx,%lx]\n", |
776 | sg - end + nents, addr, size); | 769 | sg - end + nents, addr, size); |
777 | 770 | ||
778 | npages = calc_npages((addr & ~PAGE_MASK) + size); | 771 | npages = iommu_num_pages(addr, size, PAGE_SIZE); |
779 | ofs = (addr - arena->dma_base) >> PAGE_SHIFT; | 772 | ofs = (addr - arena->dma_base) >> PAGE_SHIFT; |
780 | iommu_arena_free(arena, ofs, npages); | 773 | iommu_arena_free(arena, ofs, npages); |
781 | 774 | ||
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c index 83df541650fc..e657c45d91d2 100644 --- a/arch/alpha/kernel/smp.c +++ b/arch/alpha/kernel/smp.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/cache.h> | 27 | #include <linux/cache.h> |
28 | #include <linux/profile.h> | 28 | #include <linux/profile.h> |
29 | #include <linux/bitops.h> | 29 | #include <linux/bitops.h> |
30 | #include <linux/cpu.h> | ||
30 | 31 | ||
31 | #include <asm/hwrpb.h> | 32 | #include <asm/hwrpb.h> |
32 | #include <asm/ptrace.h> | 33 | #include <asm/ptrace.h> |
@@ -149,6 +150,9 @@ smp_callin(void) | |||
149 | atomic_inc(&init_mm.mm_count); | 150 | atomic_inc(&init_mm.mm_count); |
150 | current->active_mm = &init_mm; | 151 | current->active_mm = &init_mm; |
151 | 152 | ||
153 | /* inform the notifiers about the new cpu */ | ||
154 | notify_cpu_starting(cpuid); | ||
155 | |||
152 | /* Must have completely accurate bogos. */ | 156 | /* Must have completely accurate bogos. */ |
153 | local_irq_enable(); | 157 | local_irq_enable(); |
154 | 158 | ||