aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-07-12hwmon: (it87) Preserve configuration register bits on initJean Delvare1-1/+1
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 <[email protected]> Cc: [email protected] Signed-off-by: Jean Delvare <[email protected]> Reviewed-by: Guenter Roeck <[email protected]>
2012-07-12PM / Sleep: Fix build warning in sysfs.c for CONFIG_PM_SLEEP unsetRafael J. Wysocki1-0/+4
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 <[email protected]>
2012-07-12PM / Domains: Fix build warning for CONFIG_PM_RUNTIME unsetRafael J. Wysocki1-13/+13
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 <[email protected]>
2012-07-12cpufreq / ACPI: Fix not loading acpi-cpufreq driver regressionThomas Renninger1-2/+4
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 <[email protected]> CC: [email protected] Signed-off-by: Rafael J. Wysocki <[email protected]>
2012-07-12olpc-xo15-sci: Use struct dev_pm_ops for power managementRafael J. Wysocki1-2/+4
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 <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]> Acked-by: Randy Dunlap <[email protected]>
2012-07-12regulator: tps65217: Add device tree supportAnilKumar Ch4-3/+159
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 <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2012-07-12regulator: aat2870: Remove unused min_uV and max_uV from struct ↵Axel Lin1-5/+0
aat2870_regulator Both min_uV and max_uV are not used in the code, remove them. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2012-07-12regulator: aat2870: Convert to regulator_list_voltage_tableAxel Lin1-13/+3
Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2012-07-12regulator: da9052: initialize of_node param for regulator registerAxel Lin1-0/+1
Initialize config.of_node for regulator before registering. This is needed for DT based regulator support. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2012-07-12regulator: Add REGULATOR_STATUS_UNDEFINED.Krystian Garbaciak2-1/+6
REGULATOR_STATUS_UNDEFINED is to be returned by regulator, if any other state doesn't really apply. Signed-off-by: Krystian Garbaciak <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2012-07-12regulator: Fix a typo in regulator_mode_to_status() core function.Krystian Garbaciak1-1/+1
Case REGULATOR_STATUS_STANDBY -> REGULATOR_MODE_STANDBY. Signed-off-by: Krystian Garbaciak <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2012-07-12regulator: s2mps11: Use sec_reg_write rather than sec_reg_update when mask ↵Axel Lin1-3/+2
is 0xff Signed-off-by: Axel Lin <[email protected]> Acked-by: Sangbeom Kim <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2012-07-12regulator: s2mps11: Fix wrong setting for config.devAxel Lin1-9/+5
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 <[email protected]> Acked-by: Sangbeom Kim <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2012-07-12regulator: s2mps11: Fixup missing commasAxel Lin1-7/+7
Signed-off-by: Axel Lin <[email protected]> Acked-by: Sangbeom Kim <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2012-07-12regulator: tps65910: Remvoe ↵Axel Lin2-111/+79
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 <[email protected]> Tested-by: Laxman Dewangan <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2012-07-12Merge branch 'mxs/dt-for-3.6' of ↵Arnd Bergmann9-14/+831
git://git.linaro.org/people/shawnguo/linux-2.6 into next/dt From Shawn Guo <[email protected]>: 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 <[email protected]>
2012-07-12Merge tag 'imx-defconfig' of git://git.pengutronix.de/git/imx/linux-2.6 into ↵Arnd Bergmann852-4137/+8185
next/defconfig From Sascha Hauer <[email protected]>: 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 <[email protected]>
2012-07-12Merge branch 'imx/dt-for-3.6' of ↵Arnd Bergmann10-31/+166
git://git.linaro.org/people/shawnguo/linux-2.6 into next/dt From Shawn Guo <[email protected]>: 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 <[email protected]>
2012-07-12Merge tag 'imx-dt' of git://git.pengutronix.de/git/imx/linux-2.6 into next/dtArnd Bergmann8-0/+252
From Sascha Hauer <[email protected]>: 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 <[email protected]>
2012-07-12Merge tag 'omap-devel-dt-for-v3.6' of ↵Arnd Bergmann16-1/+556
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt From Tony Lindgren <[email protected]>: 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 <[email protected]>
2012-07-12Merge tag 'at91-for-next-dt' of git://github.com/at91linux/linux-at91 into ↵Arnd Bergmann4-0/+208
next/dt From Nicolas Ferre <[email protected]>: 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 <[email protected]>
2012-07-12Merge tag 'v3.5-rc6' into next/dtArnd Bergmann172-963/+1588
New pull requests are based on Linux 3.5-rc6
2012-07-12Merge branch 'for-3.6/dt' of ↵Arnd Bergmann3-16/+371
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 <[email protected]>
2012-07-12Merge branch 'tegra/cleanup' into next/dtArnd Bergmann30-69/+21
Dependency for tegra/dt branch. Signed-off-by: Arnd Bergmann <[email protected]>
2012-07-12sch_sfb: Fix missing NULL checkAlan Cox1-0/+2
Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=44461 Signed-off-by: Alan Cox <[email protected]> Acked-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-07-12Merge branch 'picoxcell/timer' into next/timerArnd Bergmann180-987/+1652
Imported from mailing list * picoxcell/timer: clocksource: dw_apb_timer: Add common DTS glue for dw_apb_timer Signed-off-by: Arnd Bergmann <[email protected]>
2012-07-12clocksource: dw_apb_timer: Add common DTS glue for dw_apb_timerDinh Nguyen8-24/+64
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 <[email protected]> Signed-off-by: Dinh Nguyen <[email protected]> Acked-by: Jamie Iles <[email protected]> Acked-by: Thomas Gleixner <[email protected]> Signed-off-by: Arnd Bergmann <[email protected]>
2012-07-12ARM: versatile: Make plat-versatile clock optionalPawel Moll3-1/+8
... 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 <[email protected]>
2012-07-12ARM: vexpress: Check master site in daughterboard's sysctl operationsPawel Moll3-11/+31
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 <[email protected]>
2012-07-12ARM: vexpress: remove automatic errata workaround selectionWill Deacon1-3/+2
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 <[email protected]> Signed-off-by: Rob Herring <[email protected]> Signed-off-by: Pawel Moll <[email protected]>
2012-07-12powerpc/85xx: Add phy nodes in SGMII mode for MPC8536/44/72DS & P2020DSJia Hongtao4-0/+44
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 <[email protected]> Signed-off-by: Jia Hongtao <[email protected]> Signed-off-by: Kumar Gala <[email protected]>
2012-07-12Merge branch 'lpc32xx/core-fixes' of git://git.antcom.de/linux-2.6 into next/socArnd Bergmann1-4/+3
From Roland Stigge <[email protected]>: 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 <[email protected]>
2012-07-12ARM: LPC32xx: Adjust to pl08x DMA interface changesRoland Stigge1-4/+3
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 <[email protected]>
2012-07-12ARM: EXYNOS: register devices in 'need_restore' state for pm_domainsMarek Szyprowski1-1/+3
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 <[email protected]> Reviewed-by: Kyungmin Park <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
2012-07-12ARM: EXYNOS: read initial state of power domain from hw registersMarek Szyprowski1-3/+6
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 <[email protected]> Reviewed-by: Kyungmin Park <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
2012-07-12ARM: EXYNOS: Clear SYS_WDTRESET bit to use watchdog resetJonghwan Choi2-0/+19
When SYS_WDTRESET is set, watchdog timer reset request is ignored by power management unit. Signed-off-by: Jonghwan Choi <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>
2012-07-12ARM: imx6q: ensure ANATOP controller is availableOtavio Salvador1-0/+1
During imx6q initialization the usb charger detector is disabled but for it, ANATOP controller symbols need to be available. Signed-off-by: Otavio Salvador <[email protected]> Cc: Richard Zhao <[email protected]> Signed-off-by: Shawn Guo <[email protected]>
2012-07-12ARM: dts: imx6q-sabrelite: add ecspi1 pinctrl supportHui Wang2-0/+11
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 <[email protected]> Signed-off-by: Hui Wang <[email protected]> Signed-off-by: Shawn Guo <[email protected]>
2012-07-12ARM: dts: imx6q-sabrelite: add usb devicesRichard Zhao2-2/+64
- add usbphy devices - add usb host controller and otg devices - add usb h1 vbus regulator Signed-off-by: Richard Zhao <[email protected]> Signed-off-by: Shawn Guo <[email protected]>
2012-07-12ARM: imx6q: disable usb charger detectorRichard Zhao1-0/+41
The external charger detector needs to be disabled, or the signal at DP will be poor Signed-off-by: Richard Zhao <[email protected]> Signed-off-by: Shawn Guo <[email protected]>
2012-07-12ARM: imx6q: add usbphy clocksRichard Zhao1-1/+6
Signed-off-by: Richard Zhao <[email protected]> Signed-off-by: Shawn Guo <[email protected]>
2012-07-12ARM: imx6q: add usb controller clock lookupsRichard Zhao1-0/+4
Signed-off-by: Richard Zhao <[email protected]> Signed-off-by: Shawn Guo <[email protected]>
2012-07-12ARM: dts: imx28-evk: add usb devicesRichard Zhao2-2/+48
- add usb phy devices - add usb controller devices - add usb vbus regulators Signed-off-by: Richard Zhao <[email protected]> Tested-by: Subodh Nijsure <[email protected]> Signed-off-by: Shawn Guo <[email protected]>
2012-07-12SH: Convert out[bwl] macros to inline functionsCorey Minyard1-3/+14
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 <[email protected]> Signed-off-by: Paul Mundt <[email protected]>
2012-07-11tracing: Check for allocation failure in __tracing_open()Dan Carpenter1-0/+4
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/[email protected] Cc: Frederic Weisbecker <[email protected]> Cc: Ingo Molnar <[email protected]> Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Steven Rostedt <[email protected]>
2012-07-11Merge tag 'fbdev-fixes-for-3.5-2' of git://github.com/schandinat/linux-2.6Linus Torvalds7-22/+33
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 Torvalds38-247/+197
Merge random patches from Andrew Morton. * Merge emailed patches from Andrew Morton <[email protected]>: (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 Lu3-46/+47
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 <[email protected]> Acked-by: Tejun Heo <[email protected]> Cc: Benjamin Herrenschmidt <[email protected]> Signed-off-by: Yinghai Lu <[email protected]> Cc: <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2012-07-11mm: sparse: fix usemap allocation above node descriptor sectionYinghai Lu4-7/+20
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 <[email protected]> Signed-off-by: Johannes Weiner <[email protected]> Cc: <[email protected]> [3.3.x, 3.4.x] Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2012-07-11mm: sparse: fix section usemap placement calculationYinghai Lu1-1/+1
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 <[email protected]> Signed-off-by: Johannes Weiner <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>