summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-07-12hwmon: (it87) Preserve configuration register bits on initJean Delvare
We were accidentally losing one bit in the configuration register on device initialization. It was reported to freeze one specific system right away. Properly preserve all bits we don't explicitly want to change in order to prevent that. Reported-by: Stevie Trujillo <stevie.trujillo@gmail.com> Cc: stable@vger.kernel.org Signed-off-by: Jean Delvare <khali@linux-fr.org> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
2012-07-12PM / Sleep: Fix build warning in sysfs.c for CONFIG_PM_SLEEP unsetRafael J. Wysocki
The power/async device sysfs attribute is only used if both CONFIG_PM_ADVANCED_DEBUG and CONFIG_PM_SLEEP are set, but the code implementing it doesn't depend on CONFIG_PM_SLEEP. As a result, a build warning appears if CONFIG_PM_ADVANCED_DEBUG is set and CONFIG_PM_SLEEP is not set. Fix it by adding a #ifdef CONFIG_PM_SLEEP around the code in question. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2012-07-12PM / Domains: Fix build warning for CONFIG_PM_RUNTIME unsetRafael J. Wysocki
The functions genpd_save_dev() and genpd_restore_dev() are not used for CONFIG_PM_RUNTIME unset, so move them under an appropriate #ifdef. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2012-07-12cpufreq / ACPI: Fix not loading acpi-cpufreq driver regressionThomas Renninger
Commit d640113fe80e45ebd4a5b420b introduced a regression on SMP systems where the processor core with ACPI id zero is disabled (typically should be the case because of hyperthreading). The regression got spread through stable kernels. On 3.0.X it got introduced via 3.0.18. Such platforms may be rare, but do exist. Look out for a disabled processor with acpi_id 0 in dmesg: ACPI: LAPIC (acpi_id[0x00] lapic_id[0x10] disabled) This problem has been observed on a: HP Proliant BL280c G6 blade This patch restricts the introduced workaround to platforms with nr_cpu_ids <= 1. Signed-off-by: Thomas Renninger <trenn@suse.de> CC: stable@vger.kernel.org Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2012-07-12olpc-xo15-sci: Use struct dev_pm_ops for power managementRafael J. Wysocki
Make the OLPC XO15 SCI driver define its resume callback through a struct dev_pm_ops object rather than by using a legacy PM hook in struct acpi_device_ops. Reported-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Randy Dunlap <rdunlap@xenotime.net>
2012-07-12regulator: tps65217: Add device tree supportAnilKumar Ch
This commit adds device tree support for tps65217 pmic. And usage details are added to device tree documentation. Driver is tested by using kernel module with regulator set and get APIs. Signed-off-by: AnilKumar Ch <anilkumar@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-12regulator: aat2870: Remove unused min_uV and max_uV from struct ↵Axel Lin
aat2870_regulator Both min_uV and max_uV are not used in the code, remove them. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-12regulator: aat2870: Convert to regulator_list_voltage_tableAxel Lin
Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-12regulator: da9052: initialize of_node param for regulator registerAxel Lin
Initialize config.of_node for regulator before registering. This is needed for DT based regulator support. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-12regulator: Add REGULATOR_STATUS_UNDEFINED.Krystian Garbaciak
REGULATOR_STATUS_UNDEFINED is to be returned by regulator, if any other state doesn't really apply. Signed-off-by: Krystian Garbaciak <krystian.garbaciak@diasemi.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-12regulator: Fix a typo in regulator_mode_to_status() core function.Krystian Garbaciak
Case REGULATOR_STATUS_STANDBY -> REGULATOR_MODE_STANDBY. Signed-off-by: Krystian Garbaciak <krystian.garbaciak@diasemi.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-12regulator: s2mps11: Use sec_reg_write rather than sec_reg_update when mask ↵Axel Lin
is 0xff Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Sangbeom Kim <sbkim73@samsung.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-12regulator: s2mps11: Fix wrong setting for config.devAxel Lin
Currently s2mps11->iodev, s2mps11->dev and config.dev point to NULL. This patch fixes the settings for config.dev. Current code does not need the *dev and *iodev of struct s2mps11_info, so remove them. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Sangbeom Kim <sbkim73@samsung.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-12regulator: s2mps11: Fixup missing commasAxel Lin
Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Sangbeom Kim <sbkim73@samsung.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-12regulator: tps65910: Remvoe ↵Axel Lin
tps65910_reg_[read|modify_bits|read_locked|write_locked] functions The tps65910 mfd driver has been converted to regmap APIs. This patch adds tps65910_reg_update_bits() in include/linux/mfd/tps65910.h. Thus we can use tps65910_reg_read/tps65910_reg_write/tps65910_reg_update_bits directly and remove tps65910_reg_[read|modify_bits|read_locked|write_locked] functions. With this change, we can also remove the mutex in struct tps65910_reg. Signed-off-by: Axel Lin <axel.lin@gmail.com> Tested-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-07-12Merge branch 'mxs/dt-for-3.6' of ↵Arnd Bergmann
git://git.linaro.org/people/shawnguo/linux-2.6 into next/dt From Shawn Guo <shawn.guo@linaro.org>: Here is the second (last) batch of mxs mxs device tree changes for 3.6. * 'mxs/dt-for-3.6' of git://git.linaro.org/people/shawnguo/linux-2.6: ARM: dts: imx28-evk: add usb devices ARM: mxs: rename dts files with soc name being the prefix ARM: apx4devkit: add pin muxing for GPIOs ARM: apx4devkit: remove AUART3 ARM: apx4devkit: add SSP2 support ARM: apx4devkit: fix the bus-width of SSP0 to 4 bits ARM: apx4devkit: add display support ARM: apx4devkit: add NAND support ARM: mxs: add dtb-y target into Makefile.boot ARM: mxs: convert stmp378x_devb board to device tree ARM: mxs: convert tx28 board to device tree ARM: mxs: convert apx4devkit board to device tree ARM: mxs: convert m28evk board to device tree ARM: dts: imx28: move lcdif control pins into board dts ARM: dts: imx28: move extra gpmi-nand pins into board dts Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2012-07-12Merge tag 'imx-defconfig' of git://git.pengutronix.de/git/imx/linux-2.6 into ↵Arnd Bergmann
next/defconfig From Sascha Hauer <s.hauer@pengutronix.de>: ARM i.MX defconfig updates for v3.6 * tag 'imx-defconfig' of git://git.pengutronix.de/git/imx/linux-2.6: ARM: imx_v4_v5_defconfig: update features ARM: imx_v6_v7_defconfig: update features Includes an update to v3.5-rc5 Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2012-07-12Merge branch 'imx/dt-for-3.6' of ↵Arnd Bergmann
git://git.linaro.org/people/shawnguo/linux-2.6 into next/dt From Shawn Guo <shawn.guo@linaro.org>: Here is the second (last) batch of imx device tree changes for 3.6. * 'imx/dt-for-3.6' of git://git.linaro.org/people/shawnguo/linux-2.6: ARM: imx6q: ensure ANATOP controller is available ARM: dts: imx6q-sabrelite: add ecspi1 pinctrl support ARM: dts: imx6q-sabrelite: add usb devices ARM: imx6q: disable usb charger detector ARM: imx6q: add usbphy clocks ARM: imx6q: add usb controller clock lookups ARM: dts: imx: update #interrupt-cells for gpio nodes bindings: update imx and mxs #gpio-cells Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2012-07-12Merge tag 'imx-dt' of git://git.pengutronix.de/git/imx/linux-2.6 into next/dtArnd Bergmann
From Sascha Hauer <s.hauer@pengutronix.de>: ARM i.MX dt updates for v3.6 * tag 'imx-dt' of git://git.pengutronix.de/git/imx/linux-2.6: arm/dts: Add support for i.MX31 bug 1.x board from buglabs. ARM i.MX31: Add devicetree support ARM: dts: Add basic support for mx27_3ds board Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2012-07-12Merge tag 'omap-devel-dt-for-v3.6' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt From Tony Lindgren <tony@atomide.com>: Device tree related patches for omaps * tag 'omap-devel-dt-for-v3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: arm/dts: New dts file for PandaBoardES (4460) arm/dts: omap4-panda: Audio support for PandaBoard 4430 arm/dts: omap4-sdp: Enable audio support via device tree arm/dts: omap4-sdp: Add support for twl6040 arm/dts: omap4-sdp: Add fixed regulator to represent VBAT arm/dts: omap4: Add entry for OMAP DMIC IP arm/dts: omap4: Add entry for OMAP McPDM IP arm/dts: am33xx wdt node arm/dts: remove MMC/SD and SPI related entries from am33xx.dtsi watchdog: omap_wdt: add device tree support ARM: OMAP: avoid build wdt platform device if with dt support arm/dts: add wdt node for omap3 and omap4 arm/dts: OMAP4: Add Variscite OMAP4 System-On-Modeule support arm/dts: Add support for AM335x BeagleBone arm/dts: Add support for AM335x EVM arm/dts: Add initial DT support for AM33XX SoC family arm/dts: omap3-evm: Add i2c and twl4030 support arm/dts: Add support for TI AM3517/05 EVM board arm/dts: OMAP2: Add support for OMAP2420H4 Board Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2012-07-12Merge tag 'at91-for-next-dt' of git://github.com/at91linux/linux-at91 into ↵Arnd Bergmann
next/dt From Nicolas Ferre <nicolas.ferre@atmel.com>: Two new boards described with device tree * tag 'at91-for-next-dt' of git://github.com/at91linux/linux-at91: ARM: at91: Add support for board aks-cdu ARM: at91: add support for Telit EVK-PRO3 with Telit GE863-PRO3 Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2012-07-12Merge tag 'v3.5-rc6' into next/dtArnd Bergmann
New pull requests are based on Linux 3.5-rc6
2012-07-12Merge branch 'for-3.6/dt' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/dt This branch contains changes to Tegra device tree files, and related Kconfig and Makefile changes. Highlights are: * New support for the Whistler board. * Use of the I2C pinctrl-based bus mux on Seaboard/Springbank. This branch is based on Tegra's for-3.6/cleanup branch from a previous pull request. * 'for-3.6/dt' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra: ARM: dt: tegra seaboard: move battery monitor to mux'd I2C bus. ARM: dt: tegra: seaboard: instantiate pinctrl-based I2C bus mux ARM: dt: tegra: add Whistler device tree file Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2012-07-12Merge branch 'tegra/cleanup' into next/dtArnd Bergmann
Dependency for tegra/dt branch. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2012-07-12sch_sfb: Fix missing NULL checkAlan Cox
Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=44461 Signed-off-by: Alan Cox <alan@linux.intel.com> Acked-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2012-07-12Merge branch 'picoxcell/timer' into next/timerArnd Bergmann
Imported from mailing list * picoxcell/timer: clocksource: dw_apb_timer: Add common DTS glue for dw_apb_timer Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2012-07-12clocksource: dw_apb_timer: Add common DTS glue for dw_apb_timerDinh Nguyen
Make a common device tree glue for clocksource/dw_apb_timer. Move mach-picoxcell/time.c to be a generic device tree application of the dw_apb_timer. Configure mach-picoxcell to use the dw_apb_timer_of device tree implementation in drivers/clocksource. Signed-off-by: Pavel Machek <pavel@denx.de> Signed-off-by: Dinh Nguyen <dinguyen@altera.com> Acked-by: Jamie Iles <jamie@jamieiles.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2012-07-12ARM: versatile: Make plat-versatile clock optionalPawel Moll
... in preparation for common clock coming for Integrator and Versatile Express. Based on Linus Walleij's "ARM: integrator: convert to common clock" patch. Signed-off-by: Pawel Moll <pawel.moll@arm.com>
2012-07-12ARM: vexpress: Check master site in daughterboard's sysctl operationsPawel Moll
With recent enough motherboard firmware, core tile can be fitted in either of the two daughterboard sites. The non-DT tile code for V2P-CA9 did not check that when configuring DVI output nor setting CLCD pixel clock. Fixed now, providing "get master site" API in motherboard's code. Signed-off-by: Pawel Moll <pawel.moll@arm.com>
2012-07-12ARM: vexpress: remove automatic errata workaround selectionWill Deacon
The vexpress Kconfig setup tries to be clever^Whelpful and selects some errata workarounds for certain revisions of the Cortex-A9 and PL310, which may be required depending on the core tile. Since the mach-vexpress can support A5, A7 and A15 coretiles, let's make errata workaround selection optional. Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Rob Herring <robherring2@gmail.com> Signed-off-by: Pawel Moll <pawel.moll@arm.com>
2012-07-12powerpc/85xx: Add phy nodes in SGMII mode for MPC8536/44/72DS & P2020DSJia Hongtao
In SGMII riser card different PHY chip are used with different external IRQ from eTSEC. To support PHY link state auto detect in SGMII mode we should add another group of PHY nodes for SGMII mode. For MPC8572DS IRQ6 is used for PHY0~PHY1, IRQ7 is used for PHY2~PHY3. For MPC8544DS and MPC8536DS IRQ6 is used for PHY0~PHY1. For P2020DS IRQ5 is used for PHY1~PHY2. Signed-off-by: Li Yang <leoli@freescale.com> Signed-off-by: Jia Hongtao <B38951@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2012-07-12Merge branch 'lpc32xx/core-fixes' of git://git.antcom.de/linux-2.6 into next/socArnd Bergmann
From Roland Stigge <stigge@antcom.de>: This is the pull request including the fix for the compile error caused by lpc32xx-next and dma branches collisions in linux-next. * 'lpc32xx/core-fixes' of git://git.antcom.de/linux-2.6: ARM: LPC32xx: Adjust to pl08x DMA interface changes Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2012-07-12ARM: LPC32xx: Adjust to pl08x DMA interface changesRoland Stigge
This patch adjusts the LPC32xx platform support to the new pl08x DMA interface, fixing the compile error resulting from changed pl08x structures. Signed-off-by: Roland Stigge <stigge@antcom.de>
2012-07-12ARM: EXYNOS: register devices in 'need_restore' state for pm_domainsMarek Szyprowski
Commit ca1d72f033 ('PM / Domains: Make it possible to add devices to inactive domains') introduced possibility to add devices to inactive power domains and added pm_genpd_dev_need_restore() function which lets platform core to notify power domain core that the specified device must be restored (with its runtime_resume() callback) before first use. This patch adds the pm_genpd_dev_need_restore() call what brings back the suspend/resume behaviour for the client devices known from the previous power domain driver (removed by commit 91cfbd4ee0 - 'ARM: EXYNOS: Hook up power domains to generic power domain infrastructure'). Client device drivers relay on that suspend/resume behaviour, thus this patch fixes runtime pm operation for client devices. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2012-07-12ARM: EXYNOS: read initial state of power domain from hw registersMarek Szyprowski
Some bootloaders disable unused power domains to reduce power consuption. Power domain driver can easily read the actual state from the hardware registers instead of assuming that their initial state is always 'on'. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2012-07-12ARM: EXYNOS: Clear SYS_WDTRESET bit to use watchdog resetJonghwan Choi
When SYS_WDTRESET is set, watchdog timer reset request is ignored by power management unit. Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2012-07-12ARM: imx6q: ensure ANATOP controller is availableOtavio Salvador
During imx6q initialization the usb charger detector is disabled but for it, ANATOP controller symbols need to be available. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Cc: Richard Zhao <richard.zhao@freescale.com> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-07-12ARM: dts: imx6q-sabrelite: add ecspi1 pinctrl supportHui Wang
Imx6q sabrelite board uses ecspi1 to connect a spi flash sst25vf016b, we need to add pinctrl information for it in the dts, otherwise the ecspi1 driver can't work and the connected flash is wrongly detected as a mr25h256 flash like this: m25p80 spi32766.0: found mr25h256, expected sst25vf016b m25p80 spi32766.0: mr25h256 (32 Kbytes) Cc: Richard Zhao <richard.zhao@freescale.com> Signed-off-by: Hui Wang <jason77.wang@gmail.com> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-07-12ARM: dts: imx6q-sabrelite: add usb devicesRichard Zhao
- add usbphy devices - add usb host controller and otg devices - add usb h1 vbus regulator Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-07-12ARM: imx6q: disable usb charger detectorRichard Zhao
The external charger detector needs to be disabled, or the signal at DP will be poor Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-07-12ARM: imx6q: add usbphy clocksRichard Zhao
Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-07-12ARM: imx6q: add usb controller clock lookupsRichard Zhao
Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-07-12ARM: dts: imx28-evk: add usb devicesRichard Zhao
- add usb phy devices - add usb controller devices - add usb vbus regulators Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Tested-by: Subodh Nijsure <snijsure@grid-net.com> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
2012-07-12SH: Convert out[bwl] macros to inline functionsCorey Minyard
The macros just called BUG(), but that results in unused variable warnings all over the place, like in the IPMI driver. The build regression emails were annoying me, so here's the fix. I have not even compile tested this, but it's rather obvious. [ port type mangled to unsigned long ] Signed-off-by: Corey Minyard <cminyard@mvista.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2012-07-11tracing: Check for allocation failure in __tracing_open()Dan Carpenter
Clean up and return -ENOMEM on if the kzalloc() fails. This also prevents a potential crash, as the pointer that failed to allocate would be later used. Link: http://lkml.kernel.org/r/20120711063507.GF11812@elgon.mountain Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@redhat.com> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2012-07-11Merge tag 'fbdev-fixes-for-3.5-2' of git://github.com/schandinat/linux-2.6Linus Torvalds
Pull fbdev fixes from Florian Tobias Schandinat: "Two fixes for OMAPDSS by Tomi Valkeinen: - one to avoid warnings when runtime PM is not enabled - one workaround to dependancy issues during suspend/resume" * tag 'fbdev-fixes-for-3.5-2' of git://github.com/schandinat/linux-2.6: OMAPDSS: fix warnings if CONFIG_PM_RUNTIME=n OMAPDSS: Use PM notifiers for system suspend
2012-07-11Merge branch 'akpm' (Andrew's patch-bomb)Linus Torvalds
Merge random patches from Andrew Morton. * Merge emailed patches from Andrew Morton <akpm@linux-foundation.org>: (32 commits) memblock: free allocated memblock_reserved_regions later mm: sparse: fix usemap allocation above node descriptor section mm: sparse: fix section usemap placement calculation xtensa: fix incorrect memset shmem: cleanup shmem_add_to_page_cache shmem: fix negative rss in memcg memory.stat tmpfs: revert SEEK_DATA and SEEK_HOLE drivers/rtc/rtc-twl.c: fix threaded IRQ to use IRQF_ONESHOT fat: fix non-atomic NFS i_pos read MAINTAINERS: add OMAP CPUfreq driver to OMAP Power Management section sgi-xp: nested calls to spin_lock_irqsave() fs: ramfs: file-nommu: add SetPageUptodate() drivers/rtc/rtc-mxc.c: fix irq enabled interrupts warning mm/memory_hotplug.c: release memory resources if hotadd_new_pgdat() fails h8300/uaccess: add mising __clear_user() h8300/uaccess: remove assignment to __gu_val in unhandled case of get_user() h8300/time: add missing #include <asm/irq_regs.h> h8300/signal: fix typo "statis" h8300/pgtable: add missing #include <asm-generic/pgtable.h> drivers/rtc/rtc-ab8500.c: ensure correct probing of the AB8500 RTC when Device Tree is enabled ...
2012-07-11memblock: free allocated memblock_reserved_regions laterYinghai Lu
memblock_free_reserved_regions() calls memblock_free(), but memblock_free() would double reserved.regions too, so we could free the old range for reserved.regions. Also tj said there is another bug which could be related to this. | I don't think we're saving any noticeable | amount by doing this "free - give it to page allocator - reserve | again" dancing. We should just allocate regions aligned to page | boundaries and free them later when memblock is no longer in use. in that case, when DEBUG_PAGEALLOC, will get panic: memblock_free: [0x0000102febc080-0x0000102febf080] memblock_free_reserved_regions+0x37/0x39 BUG: unable to handle kernel paging request at ffff88102febd948 IP: [<ffffffff836a5774>] __next_free_mem_range+0x9b/0x155 PGD 4826063 PUD cf67a067 PMD cf7fa067 PTE 800000102febd160 Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC CPU 0 Pid: 0, comm: swapper Not tainted 3.5.0-rc2-next-20120614-sasha #447 RIP: 0010:[<ffffffff836a5774>] [<ffffffff836a5774>] __next_free_mem_range+0x9b/0x155 See the discussion at https://lkml.org/lkml/2012/6/13/469 So try to allocate with PAGE_SIZE alignment and free it later. Reported-by: Sasha Levin <levinsasha928@gmail.com> Acked-by: Tejun Heo <tj@kernel.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Yinghai Lu <yinghai@kernel.org> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-07-11mm: sparse: fix usemap allocation above node descriptor sectionYinghai Lu
After commit f5bf18fa22f8 ("bootmem/sparsemem: remove limit constraint in alloc_bootmem_section"), usemap allocations may easily be placed outside the optimal section that holds the node descriptor, even if there is space available in that section. This results in unnecessary hotplug dependencies that need to have the node unplugged before the section holding the usemap. The reason is that the bootmem allocator doesn't guarantee a linear search starting from the passed allocation goal but may start out at a much higher address absent an upper limit. Fix this by trying the allocation with the limit at the section end, then retry without if that fails. This keeps the fix from f5bf18fa22f8 of not panicking if the allocation does not fit in the section, but still makes sure to try to stay within the section at first. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Cc: <stable@vger.kernel.org> [3.3.x, 3.4.x] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-07-11mm: sparse: fix section usemap placement calculationYinghai Lu
Commit 238305bb4d41 ("mm: remove sparsemem allocation details from the bootmem allocator") introduced a bug in the allocation goal calculation that put section usemaps not in the same section as the node descriptors, creating unnecessary hotplug dependencies between them: node 0 must be removed before remove section 16399 node 1 must be removed before remove section 16399 node 2 must be removed before remove section 16399 node 3 must be removed before remove section 16399 node 4 must be removed before remove section 16399 node 5 must be removed before remove section 16399 node 6 must be removed before remove section 16399 The reason is that it applies PAGE_SECTION_MASK to the physical address of the node descriptor when finding a suitable place to put the usemap, when this mask is actually intended to be used with PFNs. Because the PFN mask is wider, the target address will point beyond the wanted section holding the node descriptor and the node must be offlined before the section holding the usemap can go. Fix this by extending the mask to address width before use. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>