summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* xfs: clean up code layout in xfs_trans_ail.cDave Chinner2011-04-081-136/+118
| | | | | | | | | | This patch rearranges the location of functions in xfs_trans_ail.c to remove the need for forward declarations of those functions in preparation for adding new functions without the need for forward declarations. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Alex Elder <aelder@sgi.com>
* xfs: convert the xfsaild threads to a workqueueDave Chinner2011-04-083-151/+124
| | | | | | | | | | | | | | | Similar to the xfssyncd, the per-filesystem xfsaild threads can be converted to a global workqueue and run periodically by delayed works. This makes sense for the AIL pushing because it uses variable timeouts depending on the work that needs to be done. By removing the xfsaild, we simplify the AIL pushing code and remove the need to spread the code to implement the threading and pushing across multiple files. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Alex Elder <aelder@sgi.com>
* xfs: introduce background inode reclaim workDave Chinner2011-04-082-3/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Background inode reclaim needs to run more frequently that the XFS syncd work is run as 30s is too long between optimal reclaim runs. Add a new periodic work item to the xfs syncd workqueue to run a fast, non-blocking inode reclaim scan. Background inode reclaim is kicked by the act of marking inodes for reclaim. When an AG is first marked as having reclaimable inodes, the background reclaim work is kicked. It will continue to run periodically untill it detects that there are no more reclaimable inodes. It will be kicked again when the first inode is queued for reclaim. To ensure shrinker based inode reclaim throttles to the inode cleaning and reclaim rate but still reclaim inodes efficiently, make it kick the background inode reclaim so that when we are low on memory we are trying to reclaim inodes as efficiently as possible. This kick shoul d not be necessary, but it will protect against failures to kick the background reclaim when inodes are first dirtied. To provide the rate throttling, make the shrinker pass do synchronous inode reclaim so that it blocks on inodes under IO. This means that the shrinker will reclaim inodes rather than just skipping over them, but it does not adversely affect the rate of reclaim because most dirty inodes are already under IO due to the background reclaim work the shrinker kicked. These two modifications solve one of the two OOM killer invocations Chris Mason reported recently when running a stress testing script. The particular workload trigger for the OOM killer invocation is where there are more threads than CPUs all unlinking files in an extremely memory constrained environment. Unlike other solutions, this one does not have a performance impact on performance when memory is not constrained or the number of concurrent threads operating is <= to the number of CPUs. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Alex Elder <aelder@sgi.com>
* xfs: convert ENOSPC inode flushing to use new syncd workqueueDave Chinner2011-04-083-102/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | On of the problems with the current inode flush at ENOSPC is that we queue a flush per ENOSPC event, regardless of how many are already queued. Thi can result in hundreds of queued flushes, most of which simply burn CPU scanned and do no real work. This simply slows down allocation at ENOSPC. We really only need one active flush at a time, and we can easily implement that via the new xfs_syncd_wq. All we need to do is queue a flush if one is not already active, then block waiting for the currently active flush to complete. The result is that we only ever have a single ENOSPC inode flush active at a time and this greatly reduces the overhead of ENOSPC processing. On my 2p test machine, this results in tests exercising ENOSPC conditions running significantly faster - 042 halves execution time, 083 drops from 60s to 5s, etc - while not introducing test regressions. This allows us to remove the old xfssyncd threads and infrastructure as they are no longer used. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Alex Elder <aelder@sgi.com>
* xfs: introduce a xfssyncd workqueueDave Chinner2011-04-084-61/+63
| | | | | | | | | | | | | | | | | | | | | | | | | All of the work xfssyncd does is background functionality. There is no need for a thread per filesystem to do this work - it can al be managed by a global workqueue now they manage concurrency effectively. Introduce a new gglobal xfssyncd workqueue, and convert the periodic work to use this new functionality. To do this, use a delayed work construct to schedule the next running of the periodic sync work for the filesystem. When the sync work is complete, queue a new delayed work for the next running of the sync work. For laptop mode, we wait on completion for the sync works, so ensure that the sync work queuing interface can flush and wait for work to complete to enable the work queue infrastructure to replace the current sequence number and wakeup that is used. Because the sync work does non-trivial amounts of work, mark the new work queue as CPU intensive. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Alex Elder <aelder@sgi.com>
* xfs: fix extent format buffer allocation sizeDave Chinner2011-04-081-27/+40
| | | | | | | | | | | | | | | | | | | | | | | When formatting an inode item, we have to allocate a separate buffer to hold extents when there are delayed allocation extents on the inode and it is in extent format. The allocation size is derived from the in-core data fork representation, which accounts for delayed allocation extents, while the on-disk representation does not contain any delalloc extents. As a result of this mismatch, the allocated buffer can be far larger than needed to hold the real extent list which, due to the fact the inode is in extent format, is limited to the size of the literal area of the inode. However, we can have thousands of delalloc extents, resulting in an allocation size orders of magnitude larger than is needed to hold all the real extents. Fix this by limiting the size of the buffer being allocated to the size of the literal area of the inodes in the filesystem (i.e. the maximum size an inode fork can grow to). Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Alex Elder <aelder@sgi.com>
* xfs: fix unreferenced var error in xfs_buf.cDave Chinner2011-03-311-2/+0
| | | | | Signed-off-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Alex Elder <aelder@sgi.com>
* Linux 2.6.39-rc1v2.6.39-rc1Linus Torvalds2011-03-291-2/+2
|
* Merge branch 'for-linus' of ↵Linus Torvalds2011-03-2931-1396/+1615
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (26 commits) mmc: SDHI should depend on SUPERH || ARCH_SHMOBILE mmc: tmio_mmc: Move some defines into a shared header mmc: tmio: support aggressive clock gating mmc: tmio: fix power-mode interpretation mmc: tmio: remove work-around for unmasked SDIO interrupts sh: fix SDHI IO address-range ARM: mach-shmobile: fix SDHI IO address-range mmc: tmio: only access registers above 0xff, if available mfd: remove now redundant sh_mobile_sdhi.h header sh: convert boards to use linux/mmc/sh_mobile_sdhi.h ARM: mach-shmobile: convert boards to use linux/mmc/sh_mobile_sdhi.h mmc: tmio: convert the SDHI MMC driver from MFD to a platform driver sh: ecovec: use the CONFIG_MMC_TMIO symbols instead of MFD mmc: tmio: split core functionality, DMA and MFD glue mmc: tmio: use PIO for short transfers mmc: tmio-mmc: Improve DMA stability on sh-mobile mmc: fix mmc_app_send_scr() for dma transfer mmc: sdhci-esdhc: enable esdhc on imx53 mmc: sdhci-esdhc: use writel/readl as general APIs mmc: sdhci: add the abort CMDTYPE bits definition ...
| * mmc: SDHI should depend on SUPERH || ARCH_SHMOBILEGuennadi Liakhovetski2011-03-281-0/+1
| | | | | | | | | | | | | | | | | | Fix build breakage on platforms, not providing readsw and writesw functions, e.g., on x86(_64). Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: tmio_mmc: Move some defines into a shared headerSimon Horman2011-03-264-46/+69
| | | | | | | | | | | | | | | | | | | | | | | | Also add TMIO_BBS. This allows these defines to also be used by zboot. Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: tmio: support aggressive clock gatingGuennadi Liakhovetski2011-03-251-9/+8
| | | | | | | | | | | | Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: tmio: fix power-mode interpretationGuennadi Liakhovetski2011-03-251-5/+5
| | | | | | | | | | | | | | | | | | | | The power-mode sequence on MMC is MMC_POWER_OFF -> MMC_POWER_UP -> MMC_POWER_ON and not MMC_POWER_ON -> MMC_POWER_UP, as the driver currently is implying. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: tmio: remove work-around for unmasked SDIO interruptsGuennadi Liakhovetski2011-03-251-21/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | SDIO IRQs got unmasked on sh-mobile while writing to the CTL_CLK_AND_WAIT_CTL register, because that register at address 0x138 is not implemented on those SoCs and writes to it overwrite the register at address 0x38: CTL_SDIO_IRQ_MASK. Previous patches eliminated access to register above 0xff on sh-mobile, so that this work-around isn't needed anymore. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * sh: fix SDHI IO address-rangeGuennadi Liakhovetski2011-03-255-8/+8
| | | | | | | | | | | | | | | | SDHI registers occupy only a 0x100 byte large window, not 0x200 byte. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * ARM: mach-shmobile: fix SDHI IO address-rangeGuennadi Liakhovetski2011-03-253-7/+7
| | | | | | | | | | | | | | | | SDHI registers occupy only a 0x100 byte large window, not 0x200 byte. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: tmio: only access registers above 0xff, if availableGuennadi Liakhovetski2011-03-251-6/+19
| | | | | | | | | | | | | | | | | | | | | | Not all tmio implementations have registers above oxff. Accessing them on thise platforms is dangerous. In some cases it leads to address wrapping to addresses below 0x100, which corrupts random unrelated registers. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mfd: remove now redundant sh_mobile_sdhi.h headerGuennadi Liakhovetski2011-03-251-7/+0
| | | | | | | | | | | | | | Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Acked-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Chris Ball <cjb@laptop.org>
| * sh: convert boards to use linux/mmc/sh_mobile_sdhi.hGuennadi Liakhovetski2011-03-255-5/+5
| | | | | | | | | | | | Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * ARM: mach-shmobile: convert boards to use linux/mmc/sh_mobile_sdhi.hGuennadi Liakhovetski2011-03-253-3/+3
| | | | | | | | | | | | Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: tmio: convert the SDHI MMC driver from MFD to a platform driverGuennadi Liakhovetski2011-03-258-95/+68
| | | | | | | | | | | | | | | | | | | | | | | | On sh-mobile platforms the SDHI driver was using the tmio_mmc SD/SDIO MFD cell driver. Now that the tmio_mmc driver has been split into a core and a separate MFD glue, we can support SDHI natively without the need to emulate an MFD controller. This also allows to support systems with an on-SoC SDHI controller and a separate MFD with a TMIO core. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * sh: ecovec: use the CONFIG_MMC_TMIO symbols instead of MFDGuennadi Liakhovetski2011-03-251-3/+3
| | | | | | | | | | | | | | | | | | The CONFIG_MFD_SH_MOBILE_SDHI Kconfig symbol is going to disappear soon, switch ecovec to using CONFIG_MMC_TMIO(_MODULE). Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: tmio: split core functionality, DMA and MFD glueGuennadi Liakhovetski2011-03-256-1285/+1409
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TMIO MMC chips contain an SD / SDIO IP core from Panasonic, similar to the one, used in MN5774 and other MN57xx controllers. These IP cores are included in many multifunction devices, in sh-mobile chips from Renesas, in the latter case they can also use DMA. Some sh-mobile implementations also have some other specialities, that MFD-based solutions don't have. This makes supporting all these features in a monolithic driver inconveniet and error-prone. This patch splits the driver into 3 parts: the core, the MFD glue and the DMA support. In case of a modular build, two modules will be built: mmc_tmio_core and mmc_tmio. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: tmio: use PIO for short transfersGuennadi Liakhovetski2011-03-251-10/+23
| | | | | | | | | | | | | | | | | | | | | | This patch allows transferring of some requests in PIO and some in DMA mode and defaults to using DMA only for transfers longer than 8 bytes. This is especially useful with SDIO, which can have lots of 2- and 4-byte transfers, creating unnecessary high overhead, when executed in DMA. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: tmio-mmc: Improve DMA stability on sh-mobileGuennadi Liakhovetski2011-03-251-29/+34
| | | | | | | | | | | | | | | | | | | | On some SDHI tmio implementations the order of DMA and command completion interrupts swaps, which leads to malfunction. This patch postpones DMA activation until the MMC command completion IRQ time. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: fix mmc_app_send_scr() for dma transferYoshihiro Shimoda2011-03-251-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch is based on the commit "af51715079e7fb6b290e1881d63d815dc4de5011": * Bugfix to that mmc_send_cxd_data() code: dma-to-stack is unsafe/nonportable, so kmalloc a bounce buffer instead. The driver may invalidate the mmc_card->csd when host driver uses dma. So this subroutine also needs a kmalloc buffer. Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: sdhci-esdhc: enable esdhc on imx53Richard Zhu2011-03-251-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the NO INT in the Multi-BLK IO in SD/MMC, and Multi-BLK read in SDIO on imx53. The CMDTYPE of the CMD register (offset 0xE) should be set to "11" when the STOP CMD12 is issued on imx53 to abort one open ended multi-blk IO. Otherwise the TC INT wouldn't be generated. In exact block transfer, the controller doesn't complete the operations automatically as required at the end of the transfer and remains on hold if the abort command is not sent on imx53. As a result, the TC flag is not asserted and SW receives timeout exception. Set bit1 of Vendor Spec register to fix it. Signed-off-by: Richard Zhu <Hong-Xing.Zhu@freescale.com> Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: sdhci-esdhc: use writel/readl as general APIsRichard Zhu2011-03-252-8/+38
| | | | | | | | | | | | | | | | | | | | Add one flag to indicate the GPIO CD/WP is enabled or not on imx platforms, and reuse the writel/readl as the general APIs for imx SOCs. Signed-off-by: Richard Zhu <Hong-Xing.Zhu@freescale.com> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: sdhci: add the abort CMDTYPE bits definitionRichard Zhu2011-03-251-0/+1
| | | | | | | | | | | | | | Add the abort CMDTYPE bits definition of command register (offset 0xE) Signed-off-by: Richard Zhu <Hong-Xing.Zhu@freescale.com> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: sdhci-esdhc: remove SDHCI_QUIRK_NO_CARD_NO_RESET from esdhcRichard Zhu2011-03-252-3/+3
| | | | | | | | | | | | | | | | | | sdhci-esdhc-imx does not need SDHCI_QUIRK_NO_CARD_NO_RESET. Make it OF-specific. Signed-off-by: Richard Zhu <Hong-Xing.Zhu@freescale.com> Tested-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: of_mmc_spi: Need to include irq.h and of_irq.hDavid Miller2011-03-251-0/+2
| | | | | | | | | | | | | | | | | | Since these are the headers that provide irq_of_parse_and_map() and NO_IRQ. Signed-off-by: David S. Miller <davem@davemloft.net> Acked-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: mmci: Add ARM variant with extended FIFOPawel Moll2011-03-251-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | New IO FPGA implementation for Versatile Express boards contain MMCI (PL180) cell with FIFO extended to 128 words (512 bytes). Matt Waddel reports that this patch improves MMC performance on his vexpress system, and also fixes "mmcblk0: error -5 transferring data" errors. Signed-off-by: Pawel Moll <pawel.moll@arm.com> Tested-by: Matt Waddel <matt.waddel@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: dw_mmc: set fixed burst in BMOD registerJaehoon Chung2011-03-251-2/+2
| | | | | | | | | | | | | | | | | | This patch uses the fixed burst bit when using an internal DMA controller. I found increased performance with IDMAC when this bit is set. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: use pci_dev->revisionSergei Shtylyov2011-03-252-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | The SDHCI driver uses PCI_CLASS_REVISION instead of PCI_REVISION_ID, so it was not converted by commit 44c10138fd4bbc4b6d6bff0873c24902f2a9da65 (PCI: Change all drivers to use pci_device->revision). The newer VIA driver has similar code too. This patch converts both drivers to use the 'revision' field of 'struct pci_dev'. Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Acked-by: Harald Welte <HaraldWelte@viatech.com> Signed-off-by: Chris Ball <cjb@laptop.org>
| * mmc: mmc_test: Remove set-but-unused variable.Chris Ball2011-03-251-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: drivers/mmc/card/mmc_test.c: In function ‘mmc_test_seq_perf’: drivers/mmc/card/mmc_test.c:1878:28: warning: variable ‘ts’ set but not used [-Wunused-but-set-variable] There's no reason to be calling timespec_sub() here, because mmc_test_print_avg_rate() is going to do that itself. Signed-off-by: Chris Ball <cjb@laptop.org> Cc: Adrian Hunter <adrian.hunter@nokia.com>
* | Merge branch 'frv' of ↵Linus Torvalds2011-03-297-27/+76
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-frv * 'frv' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-frv: FRV: Use generic show_interrupts() FRV: Convert genirq namespace frv: Select GENERIC_HARDIRQS_NO_DEPRECATED frv: Convert cpu irq_chip to new functions frv: Convert mb93493 irq_chip to new functions frv: Convert mb93093 irq_chip to new function frv: Convert mb93091 irq_chip to new functions frv: Fix typo from __do_IRQ overhaul frv: Remove stale irq_chip.end FRV: Do some cleanups FRV: Missing node arg in alloc_thread_info_node() macro NOMMU: implement access_remote_vm NOMMU: support SMP dynamic percpu_alloc NOMMU: percpu should use is_vmalloc_addr().
| * | FRV: Use generic show_interrupts()Thomas Gleixner2011-03-292-42/+4
| | | | | | | | | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Howells <dhowells@redhat.com>
| * | FRV: Convert genirq namespaceThomas Gleixner2011-03-294-6/+7
| | | | | | | | | | | | | | | | | | | | | Convert to new function names. Converted with coccinelle. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Howells <dhowells@redhat.com>
| * | frv: Select GENERIC_HARDIRQS_NO_DEPRECATEDThomas Gleixner2011-03-292-1/+3
| | | | | | | | | | | | | | | | | | | | | All chips converted Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Howells <dhowells@redhat.com>
| * | frv: Convert cpu irq_chip to new functionsThomas Gleixner2011-03-291-13/+13
| | | | | | | | | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Howells <dhowells@redhat.com>
| * | frv: Convert mb93493 irq_chip to new functionsThomas Gleixner2011-03-291-11/+11
| | | | | | | | | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Howells <dhowells@redhat.com>
| * | frv: Convert mb93093 irq_chip to new functionThomas Gleixner2011-03-291-13/+13
| | | | | | | | | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Howells <dhowells@redhat.com>
| * | frv: Convert mb93091 irq_chip to new functionsThomas Gleixner2011-03-291-13/+13
| | | | | | | | | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Howells <dhowells@redhat.com>
| * | frv: Fix typo from __do_IRQ overhaulThomas Gleixner2011-03-291-1/+1
| | | | | | | | | | | | | | | | | | | | | Compiles way better. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Howells <dhowells@redhat.com>
| * | frv: Remove stale irq_chip.endThomas Gleixner2011-03-292-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | irq_chip.end got obsolete with the removal of __do_IRQ(). irq-mb93093.c even lacks an implementation, but nobody noticed that it's broken since commit 88d6e1 in 2006. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Howells <dhowells@redhat.com>
| * | FRV: Do some cleanupsAmerigo Wang2011-03-293-10/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. frv doesn't support SMP, remove the useless SMP bits. 2. frv has its own alloc_task_struct, so define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR (I am not sure if frv should use generic alloc_task_struct().) Signed-off-by: WANG Cong <amwang@redhat.com> Signed-off-by: David Howells <dhowells@redhat.com>
| * | FRV: Missing node arg in alloc_thread_info_node() macroDavid Howells2011-03-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two alloc_thread_info_node() macros defined (one for debugging and one for normal). The commit that changed them most recently: commit b6a84016bd2598e35ead635147fa53619982648d Author: Eric Dumazet <eric.dumazet@gmail.com> Date: Tue Mar 22 16:30:42 2011 -0700 Subject: mm: NUMA aware alloc_thread_info_node() didn't add the node argument into the macro argument list for the normal macro. This results in the following error: kernel/fork.c:267:39: error: macro "alloc_thread_info_node" passed 2 arguments, but takes just 1 kernel/fork.c: In function 'dup_task_struct': kernel/fork.c:267: error: 'alloc_thread_info_node' undeclared (first use in this function) kernel/fork.c:267: error: (Each undeclared identifier is reported only once kernel/fork.c:267: error: for each function it appears in.) Signed-off-by: David Howells <dhowells@redhat.com>
| * | NOMMU: implement access_remote_vmMike Frysinger2011-03-291-13/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent vm changes brought in a new function which the core procfs code utilizes. So implement it for nommu systems too to avoid link failures. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: David Howells <dhowells@redhat.com> Tested-by: Simon Horman <horms@verge.net.au> Tested-by: Ithamar Adema <ithamar.adema@team-embedded.nl> Acked-by: Greg Ungerer <gerg@uclinux.org>
| * | NOMMU: support SMP dynamic percpu_allocGraf Yang2011-03-281-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The percpu code requires more functions to be implemented in the mm core which nommu currently does not provide. So add inline implementations since these are largely meaningless on nommu systems. Signed-off-by: Graf Yang <graf.yang@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Greg Ungerer <gerg@uclinux.org>
| * | NOMMU: percpu should use is_vmalloc_addr().David Howells2011-03-281-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | per_cpu_ptr_to_phys() uses VMALLOC_START and VMALLOC_END to determine if an address is in the vmalloc() region or not. This is incorrect on NOMMU as there is no real vmalloc() capability (vmalloc() is emulated by kmalloc()). The correct way to do this is to use is_vmalloc_addr(). This encapsulates the vmalloc() region test in MMU mode and just returns 0 in NOMMU mode. On FRV in NOMMU mode, the percpu compilation fails without this patch: mm/percpu.c: In function 'per_cpu_ptr_to_phys': mm/percpu.c:1011: error: 'VMALLOC_START' undeclared (first use in this function) mm/percpu.c:1011: error: (Each undeclared identifier is reported only once mm/percpu.c:1011: error: for each function it appears in.) mm/percpu.c:1012: error: 'VMALLOC_END' undeclared (first use in this function) mm/percpu.c:1018: warning: control reaches end of non-void function Signed-off-by: David Howells <dhowells@redhat.com>