1
0
Fork 0
alistair23-linux/drivers
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
..
acorn [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
acpi [PATCH] ACPI: fix fan/thermal resume 2006-07-10 13:24:18 -07:00
amba [PATCH] 64bit resource: fix up printks for resources in misc drivers 2006-06-27 09:23:59 -07:00
atm [ATM]: Typo in drivers/atm/Kconfig... 2006-07-08 13:30:09 -07:00
base [PATCH] don't select CONFIG_HOTPLUG 2006-07-10 13:24:12 -07:00
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2006-07-03 15:28:34 -07:00
bluetooth [PATCH] release_firmware() fixes 2006-07-10 13:24:15 -07:00
cdrom [PATCH] cdrom: fix bad cgc.buflen assignment 2006-07-10 13:24:15 -07:00
char [PATCH] make valid_mmap_phys_addr_range() take a pfn 2006-07-10 13:24:25 -07:00
clocksource [PATCH] GTOD: add scx200 HRT clocksource 2006-06-26 09:58:21 -07:00
connector [PATCH] connector-exports 2006-06-23 07:43:06 -07:00
cpufreq [PATCH] Fix cpufreq vs hotplug lockdep recursion. 2006-07-07 09:46:45 -07:00
crypto [CRYPTO] padlock: Rearrange context structure to reduce code size 2006-06-26 17:34:39 +10:00
dio [PATCH] hp300: fix driver_register() return handling, remove dio_module_init() 2006-03-25 08:22:53 -08:00
dma [IOAT]: fix kernel-doc in source files 2006-07-03 19:45:31 -07:00
edac [PATCH] Fix and enable EDAC sysfs operation 2006-07-10 13:24:25 -07:00
eisa Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fc4 [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
firmware Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
hwmon Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
i2c [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
ide [PATCH] lockdep: annotate on-stack completions 2006-07-03 15:27:09 -07:00
ieee1394 [PATCH] lockdep: annotate ieee1394 skb-queue-head locking 2006-07-03 15:27:08 -07:00
infiniband [PATCH] mthca: initialize send and receive queue locks separately 2006-07-04 10:24:57 -07:00
input [PATCH] lockdep: annotate serio 2006-07-03 15:27:07 -07:00
isdn [PATCH] hisax: fix usage of __init* 2006-07-10 13:24:15 -07:00
leds Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
macintosh [PATCH] powermac: Combined fixes for backlight code 2006-07-10 13:24:20 -07:00
mca
md [PATCH] md: fix oops in error-handling 2006-07-10 13:24:17 -07:00
media [PATCH] release_firmware() fixes 2006-07-10 13:24:15 -07:00
message Merge ../scsi-misc-2.6 2006-07-03 09:41:12 -05:00
mfd [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
misc [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
mmc [PATCH] lockdep: annotate on-stack completions, mmc 2006-07-03 15:27:10 -07:00
mtd Merge git://git.infradead.org/mtd-2.6 2006-07-03 21:29:08 -07:00
net [PATCH] release_firmware() fixes 2006-07-10 13:24:15 -07:00
nubus Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
oprofile [PATCH] oprofile: convert from semaphores to mutexes 2006-06-25 10:01:04 -07:00
parisc [PATCH] irq-flags: PARISC: Use the new IRQF_ constants 2006-07-02 13:58:52 -07:00
parport [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
pci [PATCH] pci: initialize struct pci_dev.error_state 2006-07-10 13:24:21 -07:00
pcmcia [PATCH] don't select CONFIG_HOTPLUG 2006-07-10 13:24:12 -07:00
pnp [PATCH] PNPACPI: support shareable interrupts 2006-07-03 15:26:58 -07:00
rapidio Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
rtc [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
s390 [PATCH] s390: broken null test in claw driver 2006-07-10 13:24:25 -07:00
sbus [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
scsi [PATCH] FDPIC: Move roundup() into linux/kernel.h 2006-07-10 13:24:22 -07:00
serial [ARM] 3710/1: AT91 Serial: Use GPIO API 2006-07-05 14:31:13 +01:00
sh
sn [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
spi [PATCH] lockdep: annotate on-stack completions 2006-07-03 15:27:09 -07:00
tc [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
telephony Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6 2006-06-29 14:19:21 -07:00
usb [PATCH] usb-storage: wait for URB to complete 2006-07-10 13:24:21 -07:00
video [PATCH] powermac: Combined fixes for backlight code 2006-07-10 13:24:20 -07:00
w1 [PATCH] connector-exports 2006-06-23 07:43:06 -07:00
zorro Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
Kconfig [I/OAT]: DMA memcpy subsystem 2006-06-17 21:18:43 -07:00
Makefile [PATCH] Time: i386 Clocksource Drivers 2006-06-26 09:58:21 -07:00