diff options
author | David Howells <dhowells@redhat.com> | 2005-11-28 16:43:51 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-28 17:42:23 -0500 |
commit | 8080f231224ccd3169f39e73fd750ba98d5b98a7 (patch) | |
tree | e86762b01f248dbf735e786783d3d9eb0e7c9950 /arch/frv | |
parent | c13cf856cbe16aec3007604dc013cbf3a16c6686 (diff) |
[PATCH] FRV: Make the FRV arch work again
The attached patch implements a bunch of small changes to the FRV arch to
make it work again.
It deals with the following problems:
(1) SEM_DEBUG should be SEMAPHORE_DEBUG.
(2) The argument list to pcibios_penalize_isa_irq() has changed.
(3) CONFIG_HIGHMEM can't be used directly in #if as it may not be defined.
(4) page->private is no longer directly accessible.
(5) linux/hardirq.h assumes asm/hardirq.h will include linux/irq.h
(6) The IDE MMIO access functions are given pointers, not integers, and so
get type casting errors.
(7) __pa() is passed an explicit u64 type in drivers/char/mem.c, but that
can't be cast directly to a pointer on a 32-bit platform.
(8) SEMAPHORE_DEBUG should not be contingent on WAITQUEUE_DEBUG as that no
longer exists.
(9) PREEMPT_ACTIVE is too low a value.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/frv')
-rw-r--r-- | arch/frv/kernel/semaphore.c | 2 | ||||
-rw-r--r-- | arch/frv/mb93090-mb00/pci-irq.c | 2 | ||||
-rw-r--r-- | arch/frv/mm/init.c | 2 | ||||
-rw-r--r-- | arch/frv/mm/pgalloc.c | 6 |
4 files changed, 6 insertions, 6 deletions
diff --git a/arch/frv/kernel/semaphore.c b/arch/frv/kernel/semaphore.c index 5cba9c1f2b3d..7971d680ae29 100644 --- a/arch/frv/kernel/semaphore.c +++ b/arch/frv/kernel/semaphore.c | |||
@@ -20,7 +20,7 @@ struct sem_waiter { | |||
20 | struct task_struct *task; | 20 | struct task_struct *task; |
21 | }; | 21 | }; |
22 | 22 | ||
23 | #if SEM_DEBUG | 23 | #if SEMAPHORE_DEBUG |
24 | void semtrace(struct semaphore *sem, const char *str) | 24 | void semtrace(struct semaphore *sem, const char *str) |
25 | { | 25 | { |
26 | if (sem->debug) | 26 | if (sem->debug) |
diff --git a/arch/frv/mb93090-mb00/pci-irq.c b/arch/frv/mb93090-mb00/pci-irq.c index af981bda015c..24622d89b1ca 100644 --- a/arch/frv/mb93090-mb00/pci-irq.c +++ b/arch/frv/mb93090-mb00/pci-irq.c | |||
@@ -60,7 +60,7 @@ void __init pcibios_fixup_irqs(void) | |||
60 | } | 60 | } |
61 | } | 61 | } |
62 | 62 | ||
63 | void __init pcibios_penalize_isa_irq(int irq, int active) | 63 | void __init pcibios_penalize_isa_irq(int irq) |
64 | { | 64 | { |
65 | } | 65 | } |
66 | 66 | ||
diff --git a/arch/frv/mm/init.c b/arch/frv/mm/init.c index 79433159b5f0..765088ea8a50 100644 --- a/arch/frv/mm/init.c +++ b/arch/frv/mm/init.c | |||
@@ -108,7 +108,7 @@ void __init paging_init(void) | |||
108 | 108 | ||
109 | memset((void *) empty_zero_page, 0, PAGE_SIZE); | 109 | memset((void *) empty_zero_page, 0, PAGE_SIZE); |
110 | 110 | ||
111 | #if CONFIG_HIGHMEM | 111 | #ifdef CONFIG_HIGHMEM |
112 | if (num_physpages - num_mappedpages) { | 112 | if (num_physpages - num_mappedpages) { |
113 | pgd_t *pge; | 113 | pgd_t *pge; |
114 | pud_t *pue; | 114 | pud_t *pue; |
diff --git a/arch/frv/mm/pgalloc.c b/arch/frv/mm/pgalloc.c index 2c67dfe5a6b3..f76dd03ddd99 100644 --- a/arch/frv/mm/pgalloc.c +++ b/arch/frv/mm/pgalloc.c | |||
@@ -85,7 +85,7 @@ static inline void pgd_list_add(pgd_t *pgd) | |||
85 | struct page *page = virt_to_page(pgd); | 85 | struct page *page = virt_to_page(pgd); |
86 | page->index = (unsigned long) pgd_list; | 86 | page->index = (unsigned long) pgd_list; |
87 | if (pgd_list) | 87 | if (pgd_list) |
88 | pgd_list->private = (unsigned long) &page->index; | 88 | set_page_private(pgd_list, (unsigned long) &page->index); |
89 | pgd_list = page; | 89 | pgd_list = page; |
90 | set_page_private(page, (unsigned long)&pgd_list); | 90 | set_page_private(page, (unsigned long)&pgd_list); |
91 | } | 91 | } |
@@ -94,10 +94,10 @@ static inline void pgd_list_del(pgd_t *pgd) | |||
94 | { | 94 | { |
95 | struct page *next, **pprev, *page = virt_to_page(pgd); | 95 | struct page *next, **pprev, *page = virt_to_page(pgd); |
96 | next = (struct page *) page->index; | 96 | next = (struct page *) page->index; |
97 | pprev = (struct page **)page_private(page); | 97 | pprev = (struct page **) page_private(page); |
98 | *pprev = next; | 98 | *pprev = next; |
99 | if (next) | 99 | if (next) |
100 | next->private = (unsigned long) pprev; | 100 | set_page_private(next, (unsigned long) pprev); |
101 | } | 101 | } |
102 | 102 | ||
103 | void pgd_ctor(void *pgd, kmem_cache_t *cache, unsigned long unused) | 103 | void pgd_ctor(void *pgd, kmem_cache_t *cache, unsigned long unused) |