git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
[pandora-kernel.git]
/
arch
/
m68k
/
mm
/
kmap.c
diff --git
a/arch/m68k/mm/kmap.c
b/arch/m68k/mm/kmap.c
index
fe2383e
..
f46f049
100644
(file)
--- a/
arch/m68k/mm/kmap.c
+++ b/
arch/m68k/mm/kmap.c
@@
-7,7
+7,6
@@
* used by other architectures /Roman Zippel
*/
* used by other architectures /Roman Zippel
*/
-#include <linux/config.h>
#include <linux/mm.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/kernel.h>
#include <linux/string.h>
@@
-102,7
+101,7
@@
static inline void free_io_area(void *addr)
*/
/* Rewritten by Andreas Schwab to remove all races. */
*/
/* Rewritten by Andreas Schwab to remove all races. */
-void *__ioremap(unsigned long physaddr, unsigned long size, int cacheflag)
+void
__iomem
*__ioremap(unsigned long physaddr, unsigned long size, int cacheflag)
{
struct vm_struct *area;
unsigned long virtaddr, retaddr;
{
struct vm_struct *area;
unsigned long virtaddr, retaddr;
@@
-121,7
+120,7
@@
void *__ioremap(unsigned long physaddr, unsigned long size, int cacheflag)
if (MACH_IS_AMIGA) {
if ((physaddr >= 0x40000000) && (physaddr + size < 0x60000000)
&& (cacheflag == IOMAP_NOCACHE_SER))
if (MACH_IS_AMIGA) {
if ((physaddr >= 0x40000000) && (physaddr + size < 0x60000000)
&& (cacheflag == IOMAP_NOCACHE_SER))
- return (void *)physaddr;
+ return (void
__iomem
*)physaddr;
}
#endif
}
#endif
@@
-218,21
+217,21
@@
void *__ioremap(unsigned long physaddr, unsigned long size, int cacheflag)
#endif
flush_tlb_all();
#endif
flush_tlb_all();
- return (void *)retaddr;
+ return (void
__iomem
*)retaddr;
}
/*
* Unmap a ioremap()ed region again
*/
}
/*
* Unmap a ioremap()ed region again
*/
-void iounmap(void *addr)
+void iounmap(void
__iomem
*addr)
{
#ifdef CONFIG_AMIGA
if ((!MACH_IS_AMIGA) ||
(((unsigned long)addr < 0x40000000) ||
((unsigned long)addr > 0x60000000)))
{
#ifdef CONFIG_AMIGA
if ((!MACH_IS_AMIGA) ||
(((unsigned long)addr < 0x40000000) ||
((unsigned long)addr > 0x60000000)))
- free_io_area(addr);
+ free_io_area(
(__force void *)
addr);
#else
#else
- free_io_area(addr);
+ free_io_area(
(__force void *)
addr);
#endif
}
#endif
}
@@
-259,13
+258,15
@@
void __iounmap(void *addr, unsigned long size)
if (CPU_IS_020_OR_030) {
int pmd_off = (virtaddr/PTRTREESIZE) & 15;
if (CPU_IS_020_OR_030) {
int pmd_off = (virtaddr/PTRTREESIZE) & 15;
+ int pmd_type = pmd_dir->pmd[pmd_off] & _DESCTYPE_MASK;
- if (
(pmd_dir->pmd[pmd_off] & _DESCTYPE_MASK)
== _PAGE_PRESENT) {
+ if (
pmd_type
== _PAGE_PRESENT) {
pmd_dir->pmd[pmd_off] = 0;
virtaddr += PTRTREESIZE;
size -= PTRTREESIZE;
continue;
pmd_dir->pmd[pmd_off] = 0;
virtaddr += PTRTREESIZE;
size -= PTRTREESIZE;
continue;
- }
+ } else if (pmd_type == 0)
+ continue;
}
if (pmd_bad(*pmd_dir)) {
}
if (pmd_bad(*pmd_dir)) {