linux/arch/arm
Russell King 97f1040982 Revert "ARM: 7304/1: ioremap: fix boundary check when reusing static mapping"
This reverts commit 3c424f3598.

Joachim Eastwood reports:
| "ARM: 7304/1: ioremap: fix boundary check when reusing static mapping"
| Commit: 3c424f3598 in Linus master
|
| Breaks booting on my custom AT91RM9200 board.
| There isn't any error messages or anything that indicates what goes
| wrong it just stops after; Uncompressing Linux... done, booting the
| kernel.
|
| Reverting it makes my board boot again.

and further debugging reveals:

ioremap: pfn=fffff phys=fffff000 offset=400 size=1000
ioremap: area c3ffdfc0: phys_addr=200000 pfn=200 size=4000
ioremap: found: addr fef74000 => fed73000 => fed73400

Clearly, an area for pfn 0x200, 16K can't ever satisfy a request for pfn
0xfffff.  This happens because the changed if statement becomes:

                if (0x00200 > 0xfffff ||
                    0xfffff000 + 0x400 + 0x1000-1 > 0x00200000 + 0x4000-1)
and therefore:
                if (0x00200 > 0xfffff ||
                    0x000003ff > 0x00203fff)

The if condition fails, and so we _believe_ that the SRAM mapping fits
our request.  Clearly that's totally bogus.

Moreover, the original premise of the 'fix' patch was wrong:
|    The condition checking boundaries of the requested and existing
|    mappings didn't take in-page offset into consideration though,
|    which lead to obscure and hard to debug problems when requested
|    mapping crossed end of the static one.

as the code immediately above this loop does:

        size = PAGE_ALIGN(offset + size);

so 'size' already contains the requested offset into the page.

So, revert the broken 'fix'.

Acked-by: Nicolas Pitre <nico@linaro.org>
2012-02-02 17:37:41 +00:00
..
boot Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2012-01-16 14:34:54 -08:00
common ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP 2012-01-23 10:20:05 +00:00
configs SH/R-Mobile updates for 3.3 merge window. 2012-01-11 23:29:20 -08:00
include/asm ARM: 7301/1: Rename the T() macro to TUSER() to avoid namespace conflicts 2012-01-25 11:07:40 +00:00
kernel ARM: 7299/1: ftrace: clear zero bit in reported IPs for Thumb-2 2012-01-25 09:24:37 +00:00
lib ARM: 7301/1: Rename the T() macro to TUSER() to avoid namespace conflicts 2012-01-25 11:07:40 +00:00
mach-at91 Revert "atmel_lcdfb: Adjust HFP calculation so it matches the manual." 2012-01-11 22:29:30 +00:00
mach-bcmring Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
mach-clps711x Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-cns3xxx Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-davinci MTD pull for 3.3 2012-01-10 13:45:22 -08:00
mach-dove Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-ebsa110 Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-ep93xx Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-01-17 18:40:24 -08:00
mach-exynos ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP 2012-01-23 10:20:05 +00:00
mach-footbridge Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-gemini
mach-h720x Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-highbank ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP 2012-01-23 10:20:05 +00:00
mach-imx ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP 2012-01-23 10:20:05 +00:00
mach-integrator Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-iop13xx Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-iop32x Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-iop33x Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-ixp4xx Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-ixp23xx Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-ixp2000 Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-kirkwood Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-ks8695 Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-l7200/include/mach
mach-lpc32xx Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
mach-mmp Merge branch 'samsung/driver' into next/drivers 2012-01-09 16:16:29 +00:00
mach-msm ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP 2012-01-23 10:20:05 +00:00
mach-mv78xx0 Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-mx5 ARM: 7291/1: cache: assume 64-byte L1 cachelines for ARMv7 CPUs 2012-01-23 10:20:05 +00:00
mach-mxs clock management changes for i.MX 2012-01-09 14:44:15 -08:00
mach-netx Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-nomadik Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-omap1 New feature development 2012-01-09 14:38:51 -08:00
mach-omap2 ARM: 7291/1: cache: assume 64-byte L1 cachelines for ARMv7 CPUs 2012-01-23 10:20:05 +00:00
mach-orion5x Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-picoxcell Merge branch 'picoxcell-fixes' of git://github.com/jamieiles/linux-2.6-ji into fixes 2012-01-16 22:45:42 -08:00
mach-pnx4008 Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-prima2 Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-pxa Revert "RTC: sa1100: support sa1100, pxa and mmp soc families" 2012-01-19 17:19:18 +00:00
mach-realview ARM: 7298/1: realview: fix mapping of MPCore private memory region 2012-01-25 09:24:36 +00:00
mach-rpc Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-s3c64xx Merge branch 'samsung-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes 2012-01-16 22:46:19 -08:00
mach-s3c2410 Device tree conversions for samsung and tegra 2012-01-09 14:28:38 -08:00
mach-s3c2412 Device tree conversions for samsung and tegra 2012-01-09 14:28:38 -08:00
mach-s3c2416 Cleanups for the Samsung platforms 2012-01-09 14:30:28 -08:00
mach-s3c2440 Board-level changes 2012-01-09 14:37:41 -08:00
mach-s3c2443 Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
mach-s5p64x0 Driver specific changes 2012-01-09 14:39:22 -08:00
mach-s5pc100 Cleanups for the Samsung platforms 2012-01-09 14:30:28 -08:00
mach-s5pv210 Cleanups for the Samsung platforms 2012-01-09 14:30:28 -08:00
mach-sa1100 Merge branch 'sa11x0-mcp-fixes' into fixes 2012-01-26 21:06:54 +00:00
mach-shark Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-shmobile ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP 2012-01-23 10:20:05 +00:00
mach-spear3xx Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-spear6xx Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mach-tegra Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound 2012-01-12 08:00:30 -08:00
mach-u300 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl 2012-01-10 10:19:57 -08:00
mach-ux500 ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP 2012-01-23 10:20:05 +00:00
mach-versatile Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
mach-vexpress ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP 2012-01-23 10:20:05 +00:00
mach-vt8500
mach-w90x900 Merge branch 'master' into fixes 2012-01-13 15:00:22 +00:00
mach-zynq Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
mm Revert "ARM: 7304/1: ioremap: fix boundary check when reusing static mapping" 2012-02-02 17:37:41 +00:00
nwfpe ARM: 7207/1: Use generic ARM instruction set condition code checks for nwfpe. 2011-12-13 08:52:02 +00:00
oprofile oprofile, arm/sh: Fix oprofile_arch_exit() linkage issue 2011-12-23 11:58:34 +01:00
plat-iop Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
plat-mxc Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-01-17 18:40:24 -08:00
plat-nomadik Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-01-17 18:40:24 -08:00
plat-omap ARM: Add arm_memblock_steal() to allocate memory away from the kernel 2012-01-13 15:02:35 +00:00
plat-orion New feature development 2012-01-09 14:38:51 -08:00
plat-pxa
plat-s3c24xx Merge branch 'master' into fixes 2012-01-13 15:00:22 +00:00
plat-s5p Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
plat-samsung ARM: fixes for ARM platforms 2012-01-17 18:55:56 -08:00
plat-spear Merge branch 'depends/rmk/restart' into next/cleanup 2012-01-07 11:51:28 +00:00
plat-versatile ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP 2012-01-23 10:20:05 +00:00
tools ARM: Update mach-types 2011-12-23 22:58:10 +00:00
vfp
Kconfig ARM: 7291/1: cache: assume 64-byte L1 cachelines for ARMv7 CPUs 2012-01-23 10:20:05 +00:00
Kconfig-nommu
Kconfig.debug
Makefile arm: Remove TCC subarch from Kconfig/Makefile 2012-01-05 13:33:59 +01:00