1
linux/arch/ia64/kernel
Lennert Buytenhek 06c67befee [PATCH] make valid_mmap_phys_addr_range() take a pfn
Newer ARMs have a 40 bit physical address space, but mapping physical
memory above 4G needs a special page table format which we (currently?) do
not use for userspace mappings, so what happens instead is that mapping an
address >= 4G will happily discard the upper bits and wrap.

There is a valid_mmap_phys_addr_range() arch hook where we could check for
>= 4G addresses and deny the mapping, but this hook takes an unsigned long
address:

	static inline int valid_mmap_phys_addr_range(unsigned long addr, size_t size);

And drivers/char/mem.c:mmap_mem() calls it like this:

	static int mmap_mem(struct file * file, struct vm_area_struct * vma)
	{
		size_t size = vma->vm_end - vma->vm_start;

		if (!valid_mmap_phys_addr_range(vma->vm_pgoff << PAGE_SHIFT, size))

So that's not much help either.

This patch makes the hook take a pfn instead of a phys address.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-07-10 13:24:25 -07:00
..
cpufreq Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
acpi-ext.c Pull acpi_os_free into release branch 2006-07-01 17:19:08 -04:00
acpi-processor.c
acpi.c Pull acpi_os_free into release branch 2006-07-01 17:19:08 -04:00
asm-offsets.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
audit.c [PATCH] audit syscall classes 2006-07-01 07:44:10 -04:00
brl_emu.c
cyclone.c [IA64] don't report !sn2 or !summit hardware as an error 2006-03-07 15:26:49 -08:00
efi_stub.S [IA64] make efi_stub.S fit in 80 cols 2006-06-21 14:35:28 -07:00
efi.c [PATCH] make valid_mmap_phys_addr_range() take a pfn 2006-07-10 13:24:25 -07:00
entry.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
entry.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fsys.S [IA64] cleanup in fsys.S 2006-02-28 08:53:32 -08:00
gate-data.S
gate.lds.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
gate.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ia64_ksyms.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
init_task.c
iosapic.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
irq_ia64.c [PATCH] irq-flags: IA64: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
irq_lsapic.c [PATCH] genirq: add ->retrigger() irq op to consolidate hw_irq_resend() 2006-06-29 10:26:23 -07:00
irq.c [PATCH] genirq: cleanup: remove irq_descp() 2006-06-29 10:26:22 -07:00
ivt.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
jprobes.S [IA64] prevent accidental modification of args in jprobe handler 2006-01-13 14:45:21 -08:00
kprobes.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
machvec.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
Makefile [PATCH] audit syscall classes 2006-07-01 07:44:10 -04:00
mca_asm.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mca_drv_asm.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mca_drv.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mca_drv.h [IA64] MCA recovery: kernel context recovery table 2006-03-24 09:49:52 -08:00
mca.c [PATCH] sched: cleanup, remove task_t, convert to struct task_struct 2006-07-03 15:27:11 -07:00
minstate.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
module.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
numa.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pal.S
palinfo.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
patch.c [IA64] add init declaration - gate page functions 2006-03-22 16:54:38 -08:00
perfmon_default_smpl.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
perfmon_generic.h
perfmon_itanium.h
perfmon_mckinley.h
perfmon_montecito.h [IA64] Perfmon for Montecito 2006-01-16 10:31:44 -08:00
perfmon.c [PATCH] irq-flags: IA64: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
process.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
ptrace.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
sal.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
salinfo.c [PATCH] cpu hotplug: use hotplug version of cpu notifier in appropriate places 2006-06-27 17:32:41 -07:00
semaphore.c
setup.c [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
sigframe.h
signal.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
smp.c
smpboot.c [PATCH] sched: cleanup, remove task_t, convert to struct task_struct 2006-07-03 15:27:11 -07:00
sys_ia64.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
time.c [PATCH] irq-flags: IA64: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
topology.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
traps.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
unaligned.c [IA64] sysctl option to silence unaligned trap warnings 2006-02-28 09:42:23 -08:00
uncached.c [PATCH] change gen_pool allocator to not touch managed memory 2006-06-23 07:42:49 -07:00
unwind_decoder.c
unwind_i.h
unwind.c
vmlinux.lds.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00