commit d4429f608abde89e8bc1e24b43cd503feb95c496 Merge: e10117d 6a1c9df Author: Linus Torvalds Date: Thu Oct 21 21:19:54 2010 -0700 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (71 commits) powerpc/44x: Update ppc44x_defconfig powerpc/watchdog: Make default timeout for Book-E watchdog a Kconfig option fsl_rio: Add comments for sRIO registers. powerpc/fsl-booke: Add e55xx (64-bit) smp defconfig powerpc/fsl-booke: Add p5020 DS board support powerpc/fsl-booke64: Use TLB CAMs to cover linear mapping on FSL 64-bit chips powerpc/fsl-booke: Add support for FSL Arch v1.0 MMU in setup_page_sizes powerpc/fsl-booke: Add support for FSL 64-bit e5500 core powerpc/85xx: add cache-sram support powerpc/85xx: add ngPIXIS FPGA device tree node to the P1022DS board powerpc: Fix compile error with paca code on ppc64e powerpc/fsl-booke: Add p3041 DS board support oprofile/fsl emb: Don't set MSR[PMM] until after clearing the interrupt. powerpc/fsl-booke: Add PCI device ids for P2040/P3041/P5010/P5020 QoirQ chips powerpc/mpc8xxx_gpio: Add support for 'qoriq-gpio' controllers powerpc/fsl_booke: Add support to boot from core other than 0 powerpc/p1022: Add probing for individual DMA channels powerpc/fsl_soc: Search all global-utilities nodes for rstccr powerpc: Fix invalid page flags in create TLB CAM path for PTE_64BIT powerpc/mpc83xx: Support for MPC8308 P1M board ... Fix up conflict with the generic irq_work changes in arch/powerpc/kernel/time.c commit e10117d36ef758da0690c95ecffc09d5dd7da479 Merge: f3270b1 89692c0 Author: Linus Torvalds Date: Thu Oct 21 19:03:38 2010 -0700 Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: (26 commits) include/linux/libata.h: fix typo pata_bf54x: fix return type of bfin_set_devctl Drivers: ata: Makefile: replace the use of -objs with -y libahci: fix result_tf handling after an ATA PIO data-in command pata_sl82c105: implement sff_irq_check() method pata_sil680: implement sff_irq_check() method pata_pdc202xx_old: implement sff_irq_check() method pata_cmd640: implement sff_irq_check() method ata_piix: Add device ID for ICH4-L pata_sil680: make sil680_sff_exec_command() 'static' ata: Intel IDE-R support libata: reorder ata_queued_cmd to remove alignment padding on 64 bit builds libata: Signal that our SATL supports WRITE SAME(16) with UNMAP ata_piix: remove SIDPR locking libata: implement cross-port EH exclusion libata: add @ap to ata_wait_register() and introduce ata_msleep() ata_piix: implement LPM support libata: implement LPM support for port multipliers libata: reimplement link power management libata: implement sata_link_scr_lpm() and make ata_dev_set_feature() global ... commit f3270b16e00f0614fa418dcc50883da5949375b4 Merge: 3044100 2decd65 Author: Linus Torvalds Date: Thu Oct 21 19:01:34 2010 -0700 Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2 * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (48 commits) ocfs2: Avoid to evaluate xattr block flags again. ocfs2/cluster: Release debugfs file elapsed_time_in_ms ocfs2: Add a mount option "coherency=*" to handle cluster coherency for O_DIRECT writes. Initialize max_slots early When I tried to compile I got the following warning: fs/ocfs2/slot_map.c: In function ‘ocfs2_init_slot_info’: fs/ocfs2/slot_map.c:360: warning: ‘bytes’ may be used uninitialized in this function fs/ocfs2/slot_map.c:360: note: ‘bytes’ was declared here Compiler: gcc version 4.4.3 (GCC) on Mandriva I'm not sure why this warning occurs, I think compiler don't know that variable "bytes" is initialized when it is sent by reference to ocfs2_slot_map_physical_size and it throws that ugly warning. However, a simple initialization of "bytes" variable with 0 will fix it. ocfs2: validate bg_free_bits_count after update ocfs2/cluster: Bump up dlm protocol to version 1.1 ocfs2/cluster: Show per region heartbeat elapsed time ocfs2/cluster: Add mlogs for heartbeat up/down events ocfs2/cluster: Create debugfs dir/files for each region ocfs2/cluster: Create debugfs files for live, quorum and failed region bitmaps ocfs2/cluster: Maintain bitmap of failed regions ocfs2/cluster: Maintain bitmap of quorum regions ocfs2/cluster: Track bitmap of live heartbeat regions ocfs2/cluster: Track number of global heartbeat regions ocfs2/cluster: Maintain live node bitmap per heartbeat region ocfs2/cluster: Reorganize o2hb debugfs init ocfs2/cluster: Check slots for unconfigured live nodes ocfs2/cluster: Print messages when adding/removing nodes ocfs2/cluster: Print messages when adding/removing heartbeat regions ... commit 3044100e58c84e133791c8b60a2f5bef69d732e4 Merge: b515316 67e87f0 Author: Linus Torvalds Date: Thu Oct 21 18:52:11 2010 -0700 Merge branch 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (74 commits) x86-64: Only set max_pfn_mapped to 512 MiB if we enter via head_64.S xen: Cope with unmapped pages when initializing kernel pagetable memblock, bootmem: Round pfn properly for memory and reserved regions memblock: Annotate memblock functions with __init_memblock memblock: Allow memblock_init to be called early memblock/arm: Fix memblock_region_is_memory() typo x86, memblock: Remove __memblock_x86_find_in_range_size() memblock: Fix wraparound in find_region() x86-32, memblock: Make add_highpages honor early reserved ranges x86, memblock: Fix crashkernel allocation arm, memblock: Fix the sparsemem build memblock: Fix section mismatch warnings powerpc, memblock: Fix memblock API change fallout memblock, microblaze: Fix memblock API change fallout x86: Remove old bootmem code x86, memblock: Use memblock_memory_size()/memblock_free_memory_size() to get correct dma_reserve x86: Remove not used early_res code x86, memblock: Replace e820_/_early string with memblock_ x86: Use memblock to replace early_res x86, memblock: Use memblock_debug to control debug message print out ... Fix up trivial conflicts in arch/x86/kernel/setup.c and kernel/Makefile commit 89692c03226a066a017048cf7fbacbaa645f0e79 Author: Andrea Gelmini Date: Sat Oct 16 15:19:18 2010 +0200 include/linux/libata.h: fix typo Signed-off-by: Andrea Gelmini Signed-off-by: Jeff Garzik commit c0695733d56ea12ad62ee534c2eed91f917548ae Author: Mike Frysinger Date: Thu Oct 21 04:00:40 2010 -0400 pata_bf54x: fix return type of bfin_set_devctl The new devctl func added for us to the driver has the wrong return type. Which is to say there shouldn't be any. This fixes compile time warnings as there shouldn't be any runtime difference. Signed-off-by: Mike Frysinger Signed-off-by: Jeff Garzik commit 4b1be934110cee3ad8d3f813f1a5bf28a56ca691 Author: Tracey Dent Date: Fri Oct 15 23:41:33 2010 -0400 Drivers: ata: Makefile: replace the use of -objs with -y Changed -objs to -y in Makefile. Signed-off-by: Tracey Dent Signed-off-by: Jeff Garzik commit 6ad601955315b010a117306b994f2204fae85fdc Author: Tejun Heo Date: Fri Oct 15 11:00:08 2010 +0200 libahci: fix result_tf handling after an ATA PIO data-in command ATA devices don't send D2H Reg FIS after an successful ATA PIO data-in command. The host is supposed to take the TF and E_Status of the preceding PIO Setup FIS. Update ahci_qc_fill_rtf() such that it takes TF + E_Status from PIO Setup FIS after a successful ATA PIO data-in command. Without this patch, result_tf for such a command is filled with the content of the previous D2H Reg FIS which belongs to a previous command, which can make the command incorrectly seen as failed. * Patch updated to grab the whole TF + E_Status from PIO Setup FIS instead of just E_Status as suggested by Robert Hancock. Signed-off-by: Tejun Heo Reported-by: Mark Lord Cc: Robert Hancock Cc: stable@kernel.org Signed-off-by: Jeff Garzik commit f7a437dda2b5c104a897405cbff678aa1eb37897 Author: Sergei Shtylyov Date: Fri Oct 8 19:02:13 2010 +0400 pata_sl82c105: implement sff_irq_check() method Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit 9b980e10fa7380b8315e8a414325045eab43826f Author: Sergei Shtylyov Date: Fri Oct 8 19:01:08 2010 +0400 pata_sil680: implement sff_irq_check() method Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit 606254e3c1faeb091203c58c2da8e3e4433aae6d Author: Sergei Shtylyov Date: Fri Oct 8 18:57:45 2010 +0400 pata_pdc202xx_old: implement sff_irq_check() method Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit c1ce90f25c52201469c71a2a91e2d9b27c3082f2 Author: Sergei Shtylyov Date: Fri Oct 8 18:56:39 2010 +0400 pata_cmd640: implement sff_irq_check() method Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit 4bb969db48dd507e5313dafa285215cb1c36704a Author: Ben Hutchings Date: Sun Oct 10 22:42:21 2010 +0100 ata_piix: Add device ID for ICH4-L ICH4-L is a variant of ICH4 lacking USB2 functionality and with some different device IDs. It is documented in Intel specification update 290745-025, currently at , and is included in the device ID table for piix. Signed-off-by: Ben Hutchings Signed-off-by: Jeff Garzik commit ada5b12ecca3088ddb588c872db56abef322787e Author: Sergei Shtylyov Date: Tue Oct 5 20:31:47 2010 +0400 pata_sil680: make sil680_sff_exec_command() 'static' ... since, of course, it's not used outside this driver. Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit 60039a5295b3d82a48fe132c699987d2e1408675 Author: Alan Cox Date: Tue Sep 28 13:19:38 2010 +0100 ata: Intel IDE-R support Intel IDE-R devices are part of the Intel AMT management setup. They don't have any special configuration registers or settings so the ata_generic driver will support them fully. Rather than add a huge table of IDs for each chipset and keep sending in new ones this patch autodetects them. Signed-off-by: Alan Cox Acked-by: Tejun Heo Signed-off-by: Jeff Garzik commit b34e90429ce8a23546b6b927d4e151df4c113644 Author: Richard Kennedy Date: Fri Sep 10 12:19:43 2010 +0100 libata: reorder ata_queued_cmd to remove alignment padding on 64 bit builds Reorder structure ata_queued_cmd to remove 8 bytes of alignment padding on 64 bit builds & therefore reduce the size of structure ata_port by 256 bytes. Overall this will have little impact, other than reducing the amount of memory that is cleared when allocating ata_ports. Signed-off-by: Richard Kennedy Signed-off-by: Jeff Garzik commit 02e0a60477d839b8f8f974790192f5230f2371d2 Author: Martin K. Petersen Date: Fri Sep 10 01:23:18 2010 -0400 libata: Signal that our SATL supports WRITE SAME(16) with UNMAP Until now identifying that a device supports WRITE SAME(16) with the UNMAP bit set has been black magic. Implement support for the SBC-3 Thin Provisioning VPD page and set the TPWS bit. Signed-off-by: Martin K. Petersen Signed-off-by: Jeff Garzik commit 9950110cf0f79db91c0103876f3a58c9069243eb Author: Tejun Heo Date: Mon Sep 6 17:57:40 2010 +0200 ata_piix: remove SIDPR locking Now that libata provides proper cross-port EH exclusion. The SIDPR locking added by commit 213373cf (ata_piix: fix locking around SIDPR access) is no longer necessary. Remove it. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit c0c362b60e259e3480a36ef70280d545818844f0 Author: Tejun Heo Date: Mon Sep 6 17:57:14 2010 +0200 libata: implement cross-port EH exclusion In libata, the non-EH code paths should always take and release ap->lock explicitly when accessing hardware or shared data structures. However, once EH is active, it's assumed that the port is owned by EH and EH methods don't explicitly take ap->lock unless race from irq handler or other code paths are expected. However, libata EH didn't guarantee exclusion among EHs for ports of the same host. IOW, multiple EHs may execute in parallel on multiple ports of the same controller. In many cases, especially in SATA, the ports are completely independent of each other and this doesn't cause problems; however, there are cases where different ports share the same resource, which lead to obscure timing related bugs such as the one fixed by commit 213373cf (ata_piix: fix locking around SIDPR access). This patch implements exclusion among EHs of the same host. When EH begins, it acquires per-host EH ownership by calling ata_eh_acquire(). When EH finishes, the ownership is released by calling ata_eh_release(). EH ownership is also released whenever the EH thread goes to sleep from ata_msleep() or explicitly and reacquired after waking up. This ensures that while EH is actively accessing the hardware, it has exclusive access to it while allowing EHs to interleave and progress in parallel as they hit waiting stages, which dominate the time spent in EH. This achieves cross-port EH exclusion without pervasive and fragile changes while still allowing parallel EH for the most part. This was first reported by yuanding02@gmail.com more than three years ago in the following bugzilla. :-) https://bugzilla.kernel.org/show_bug.cgi?id=8223 Signed-off-by: Tejun Heo Cc: Alan Cox Reported-by: yuanding02@gmail.com Signed-off-by: Jeff Garzik commit 97750cebb3000a9cc08f8ce8dc8c7143be7d7201 Author: Tejun Heo Date: Mon Sep 6 17:56:29 2010 +0200 libata: add @ap to ata_wait_register() and introduce ata_msleep() Add optional @ap argument to ata_wait_register() and replace msleep() calls with ata_msleep() which take optional @ap in addition to the duration. These will be used to implement EH exclusion. This patch doesn't cause any behavior difference. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit a97c40068fab5d85c4241451fc312cb9025d7e6c Author: Tejun Heo Date: Wed Sep 1 17:50:08 2010 +0200 ata_piix: implement LPM support Now that DIPM can be used independently from HIPM, ata_piix can support LPM too. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 6c8ea89cecd780faa4f4c8ed8b3b6ab88f9fa841 Author: Tejun Heo Date: Wed Sep 1 17:50:07 2010 +0200 libata: implement LPM support for port multipliers Port multipliers can do DIPM on fan-out links fine. Implement support for it. Tested w/ SIMG 57xx and marvell PMPs. Both the host and fan-out links enter power save modes nicely. SIMG 37xx and 47xx report link offline on SStatus causing EH to detach the devices. Blacklisted. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 6b7ae9545ad9875a289f4191c0216b473e313cb9 Author: Tejun Heo Date: Wed Sep 1 17:50:06 2010 +0200 libata: reimplement link power management The current LPM implementation has the following issues. * Operation order isn't well thought-out. e.g. HIPM should be configured after IPM in SControl is properly configured. Not the other way around. * Suspend/resume paths call ata_lpm_enable/disable() which must only be called from EH context directly. Also, ata_lpm_enable/disable() were called whether LPM was in use or not. * Implementation is per-port when it should be per-link. As a result, it can't be used for controllers with slave links or PMP. * LPM state isn't managed consistently. After a link reset for whatever reason including suspend/resume the actual LPM state would be reset leaving ap->lpm_policy inconsistent. * Generic/driver-specific logic boundary isn't clear. Currently, libahci has to mangle stuff which libata EH proper should be handling. This makes the implementation unnecessarily complex and fragile. * Tied to ALPM. Doesn't consider DIPM only cases and doesn't check whether the device allows HIPM. * Error handling isn't implemented. Given the extent of mismatch with the rest of libata, I don't think trying to fix it piecewise makes much sense. This patch reimplements LPM support. * The new implementation is per-link. The target policy is still port-wide (ap->target_lpm_policy) but all the mechanisms and states are per-link and integrate well with the rest of link abstraction and can work with slave and PMP links. * Core EH has proper control of LPM state. LPM state is reconfigured when and only when reconfiguration is necessary. It makes sure that LPM state is reset when probing for new device on the link. Controller agnostic logic is now implemented in libata EH proper and driver implementation only has to deal with controller specifics. * Proper error handling. LPM config failure is attributed to the device on the link and LPM is disabled for the link if it fails repeatedly. * ops->enable/disable_pm() are replaced with single ops->set_lpm() which takes @policy and @hints. This simplifies driver specific implementation. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 1152b2617a6e1943b6b82e07c962950e56f1000c Author: Tejun Heo Date: Wed Sep 1 17:50:05 2010 +0200 libata: implement sata_link_scr_lpm() and make ata_dev_set_feature() global Link power management is about to be reimplemented. Prepare for it. * Implement sata_link_scr_lpm(). * Drop static from ata_dev_set_feature() and make it available to other libata files. * Trivial whitespace adjustments. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit c93b263e0d4fa8ce5fec0142a98196d1a127e845 Author: Tejun Heo Date: Wed Sep 1 17:50:04 2010 +0200 libata: clean up lpm related symbols and sysfs show/store functions Link power management related symbols are in confusing state w/ mixed usages of lpm, ipm and pm. This patch cleans up lpm related symbols and sysfs show/store functions as follows. * lpm states - NOT_AVAILABLE, MIN_POWER, MAX_PERFORMANCE and MEDIUM_POWER are renamed to ATA_LPM_UNKNOWN and ATA_LPM_{MIN|MAX|MED}_POWER. * Pre/postfixes are unified to lpm. * sysfs show/store functions for link_power_management_policy were curiously named get/put and unnecessarily complex. Renamed to show/store and simplified. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit c43d559f0423816bb2918d892131d21c51816c3d Author: Luck, Tony Date: Mon Aug 23 13:18:02 2010 -0700 [libata] Fix section mismatch: ata_sff_exit This build error showed up in linux-next tag next-20100820 for ia64: WARNING: vmlinux.o(.init.text+0x4a952): Section mismatch in reference from the function ata_init() to the function .exit.text:ata_sff_exit() The function __init ata_init() references a function __exit ata_sff_exit(). This is often seen when error handling in the init function uses functionality in the exit path. The fix is often to remove the __exit annotation of ata_sff_exit() so it may be used outside an exit section. Sure enough, dropping the __exit fixes the problem. Signed-off-by: Tony Luck Signed-off-by: Jeff Garzik commit 6a2148c6dc68cd221397a0b9d44ddb89802e5cc0 Author: Jeff Garzik Date: Thu Aug 19 16:11:32 2010 -0400 drivers/ata/libata-transport.c: include linux/slab.h Signed-off-by: Jeff Garzik commit 295124dce4ddfd40b1f12d3ffd2779673e87c701 Author: Grant Grundler Date: Tue Aug 17 10:56:53 2010 -0700 [libata] support for > 512 byte sectors (e.g. 4K Native) This change enables my x86 machine to recognize and talk to a "Native 4K" SATA device. When I started working on this, I didn't know Matthew Wilcox had posted a similar patch 2 years ago: http://git.kernel.org/?p=linux/kernel/git/willy/ata.git;a=shortlog;h=refs/heads/ata-large-sectors Gwendal Grignou pointed me at the the above code and small portions of this patch include Matthew's work. That's why Mathew is first on the "Signed-off-by:". I've NOT included his use of a bitmap to determine 512 vs Native for ATA command block size - just used a simple table. And bugs are almost certainly mine. Lastly, the patch has been tested with a native 4K 'Engineering Sample' drive provided by Hitachi GST. Signed-off-by: Matthew Wilcox Signed-off-by: Grant Grundler Reviewed-by: Gwendal Grignou Signed-off-by: Jeff Garzik commit 1aadf5c3bbbbb0db09dcb5aa26c61326e0d3e9e7 Author: Tejun Heo Date: Fri Jun 25 15:03:34 2010 +0200 libata: always use ata_qc_complete_multiple() for NCQ command completions Currently, sata_fsl, mv and nv call ata_qc_complete() multiple times from their interrupt handlers to indicate completion of NCQ commands. This limits the visibility the libata core layer has into how commands are being executed and completed, which is necessary to support IRQ expecting in generic way. libata already has an interface to complete multiple commands at once - ata_qc_complete_multiple() which ahci and sata_sil24 already use. This patch updates the three drivers to use ata_qc_complete_multiple() too and updates comments on ata_qc_complete[_multiple]() regarding their usages with NCQ completions. This change not only provides better visibility into command execution to the core layer but also simplifies low level drivers. * sata_fsl: It already builds done_mask. Conversion is straight forward. * sata_mv: mv_process_crpb_response() no longer checks for illegal completions, it just returns whether the tag is completed or not. mv_process_crpb_entries() builds done_mask from it and passes it to ata_qc_complete_multiple() which will check for illegal completions. * sata_nv adma: Similar to sata_mv. nv_adma_check_cpb() now just returns the tag status and nv_adma_interrupt() builds done_mask from it and passes it to ata_qc_complete_multiple(). * sata_nv swncq: It already builds done_mask. Drop unnecessary illegal transition checks and call ata_qc_complete_multiple(). In the long run, it might be a good idea to make ata_qc_complete() whine if called when multiple NCQ commands are in flight. Signed-off-by: Tejun Heo Cc: Ashish Kalra Cc: Saeed Bishara Cc: Mark Lord Cc: Robert Hancock Signed-off-by: Jeff Garzik commit d9027470b88631d0956ac37cdadfdeb9cdcf2c99 Author: Gwendal Grignou Date: Tue May 25 12:31:38 2010 -0700 [libata] Add ATA transport class This is a scheleton for libata transport class. All information is read only, exporting information from libata: - ata_port class: one per ATA port - ata_link class: one per ATA port or 15 for SATA Port Multiplier - ata_device class: up to 2 for PATA link, usually one for SATA. Signed-off-by: Gwendal Grignou Reviewed-by: Grant Grundler Signed-off-by: Jeff Garzik commit b5153163ed580e00c67bdfecb02b2e3843817b3e Merge: a8cbf22 6451d77 Author: Linus Torvalds Date: Thu Oct 21 16:42:32 2010 -0700 Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (278 commits) arm: remove machine_desc.io_pg_offst and .phys_io arm: use addruart macro to establish debug mappings arm: return both physical and virtual addresses from addruart arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC ARM: make struct machine_desc definition coherent with its comment eukrea_mbimxsd-baseboard: Pass the correct GPIO to gpio_free cpuimx27: fix compile when ULPI is selected mach-pcm037_eet: fix compile errors Fixing ethernet driver compilation error for i.MX31 ADS board cpuimx51: update board support mx5: add cpuimx51sd module and its baseboard iomux-mx51: fix GPIO_1_xx 's IOMUX configuration imx-esdhc: update devices registration mx51: add resources for SD/MMC on i.MX51 iomux-mx51: fix SD1 and SD2's iomux configuration clock-mx51: rename CLOCK1 to CLOCK_CCGR for better readability clock-mx51: factorize clk_set_parent and clk_get_rate eukrea_mbimxsd: add support for DVI displays cpuimx25 & cpuimx35: fix OTG port registration in host mode i.MX31 and i.MX35 : fix errate TLSbo65953 and ENGcm09472 ... commit a8cbf22559ceefdcdfac00701e8e6da7518b7e8e Merge: e36f561 9c03439 Author: Linus Torvalds Date: Thu Oct 21 14:53:17 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: (26 commits) PM / Wakeup: Show wakeup sources statistics in debugfs PM: Introduce library for device-specific OPPs (v7) PM: Add sysfs attr for rechecking dev hash from PM trace PM: Lock PM device list mutex in show_dev_hash() PM / Runtime: Remove idle notification after failing suspend PM / Hibernate: Modify signature used to mark swap PM / Runtime: Reduce code duplication in core helper functions PM: Allow wakeup events to abort freezing of tasks PM: runtime: add missed pm_request_autosuspend PM / Hibernate: Make some boot messages look less scary PM / Runtime: Implement autosuspend support PM / Runtime: Add no_callbacks flag PM / Runtime: Combine runtime PM entry points PM / Runtime: Merge synchronous and async runtime routines PM / Runtime: Replace boolean arguments with bitflags PM / Runtime: Move code in drivers/base/power/runtime.c sysfs: Add sysfs_merge_group() and sysfs_unmerge_group() PM: Fix potential issue with failing asynchronous suspend PM / Wakeup: Introduce wakeup source objects and event statistics (v3) PM: Fix signed/unsigned warning in dpm_show_time() ... commit e36f561a2c88394ef2708f1ab300fe8a79e9f651 Merge: 70ada77 df9ee29 Author: Linus Torvalds Date: Thu Oct 21 14:37:27 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-irqflags * git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-irqflags: Fix IRQ flag handling naming MIPS: Add missing #inclusions of smc91x: Add missing #inclusion of Drop a couple of unnecessary asm/system.h inclusions SH: Add missing consts to sys_execve() declaration Blackfin: Rename IRQ flags handling functions Blackfin: Add missing dep to asm/irqflags.h Blackfin: Rename DES PC2() symbol to avoid collision Blackfin: Split the BF532 BFIN_*_FIO_FLAG() functions to their own header Blackfin: Split PLL code from mach-specific cdef headers commit 70ada77920723fbc2b35e9b301022fb1e166b41b Merge: b22793f 2764c50 Author: Linus Torvalds Date: Thu Oct 21 14:37:00 2010 -0700 Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 * 'next-spi' of git://git.secretlab.ca/git/linux-2.6: (53 commits) spi/omap2_mcspi: Verify TX reg is empty after TX only xfer with DMA spi/omap2_mcspi: disable channel after TX_ONLY transfer in PIO mode spi/bfin_spi: namespace local structs spi/bfin_spi: init early spi/bfin_spi: check per-transfer bits_per_word spi/bfin_spi: warn when CS is driven by hardware (CPHA=0) spi/bfin_spi: cs should be always low when a new transfer begins spi/bfin_spi: fix typo in comment spi/bfin_spi: reject unsupported SPI modes spi/bfin_spi: use dma_disable_irq_nosync() in irq handler spi/bfin_spi: combine duplicate SPI_CTL read/write logic spi/bfin_spi: reset ctl_reg bits when setup is run again on a device spi/bfin_spi: push all size checks into the transfer function spi/bfin_spi: use nosync when disabling the IRQ from the IRQ handler spi/bfin_spi: sync hardware state before reprogramming everything spi/bfin_spi: save/restore state when suspending/resuming spi/bfin_spi: redo GPIO CS handling Blackfin: SPI: expand SPI bitmasks spi/bfin_spi: use the SPI namespaced bit names spi/bfin_spi: drop extra memory we don't need ... commit b22793f7fdc38d73c4bb4299a313deef56dcfe66 Merge: b653788 c0f37d2 Author: Linus Torvalds Date: Thu Oct 21 14:27:18 2010 -0700 Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: [IA64] Cannot use register_percpu_irq() from ia64_mca_init() [IA64] Initialize interrupts later (from init_IRQ()) [IA64] enable ARCH_DMA_ADDR_T_64BIT [IA64] ioc3_serial: release resources in error return path [IA64] Stop using the deprecated __do_IRQ() code path [IA64] Remove unnecessary casts of private_data in perfmon.c [IA64] Fix missing iounmap in error path in cyclone.c [IA64] salinfo: sema_init instead of init_MUTEX [IA64] xen: use ARRAY_SIZE macro in xen_pv_ops.c [IA64] Use static const char * const in palinfo.c [IA64] remove asm/compat.h [IA64] Add CONFIG_STACKTRACE_SUPPORT [IA64] Move local_softirq_pending() definition [IA64] iommu: Add a dummy iommu_table.h file in IA64. [IA64] unwind - optimise linked-list searches for modules [IA64] unwind: remove preprocesser noise, and correct comment commit b65378898c2eefb20f419632c1199bc0592e2f79 Merge: 157b6ce 5b917a1 Author: Linus Torvalds Date: Thu Oct 21 14:25:16 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (22 commits) pcmcia: synclink_cs: fix information leak to userland pcmcia: don't call flush_scheduled_work() spuriously serial_cs: drop spurious flush_scheduled_work() call pcmcia/yenta: guide users in case of problems with O2-bridges pcmcia: fix unused function compile warning pcmcia: vrc4173_cardu: Fix error path for pci_release_regions and pci_disable_device pcmcia: add a few debug statements pcmcia: remove obsolete and wrong comments pcmcia: avoid messages on module (un)loading pcmcia: move driver name to struct pcmcia_driver pcmcia: remove the "Finally, report what we've done" message pcmcia: use autoconfiguration feature for ioports and iomem pcmcia: introduce autoconfiguration feature pcmcia: Documentation update pcmcia: convert pcmcia_request_configuration to pcmcia_enable_device pcmcia: move config_{base,index,regs} to struct pcmcia_device pcmcia: simplify IntType pcmcia: simplify Status, ExtStatus register access pcmcia: remove Pin, Copy configuration register access pcmcia: move Vpp setup to struct pcmcia_device ... commit 157b6ceb13e4b4148ee03dd517dbe88748943125 Merge: 4a60cfa 6e96366 Author: Linus Torvalds Date: Thu Oct 21 14:23:48 2010 -0700 Merge branch 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, iommu: Update header comments with appropriate naming ia64, iommu: Add a dummy iommu_table.h file in IA64. x86, iommu: Fix IOMMU_INIT alignment rules x86, doc: Adding comments about .iommu_table and its neighbors. x86, iommu: Utilize the IOMMU_INIT macros functionality. x86, VT-d: Make Intel VT-d IOMMU use IOMMU_INIT_* macros. x86, GART/AMD-VI: Make AMD GART and IOMMU use IOMMU_INIT_* macros. x86, calgary: Make Calgary IOMMU use IOMMU_INIT_* macros. x86, xen-swiotlb: Make Xen-SWIOTLB use IOMMU_INIT_* macros. x86, swiotlb: Make SWIOTLB use IOMMU_INIT_* macros. x86, swiotlb: Simplify SWIOTLB pci_swiotlb_detect routine. x86, iommu: Add proper dependency sort routine (and sanity check). x86, iommu: Make all IOMMU's detection routines return a value. x86, iommu: Add IOMMU_INIT macros, .iommu_table section, and iommu_table_entry structure commit 4a60cfa9457749f7987fd4f3c956dbba5a281129 Merge: 62bea97 27afdf2 Author: Linus Torvalds Date: Thu Oct 21 14:11:46 2010 -0700 Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (96 commits) apic, x86: Use BIOS settings for IBS and MCE threshold interrupt LVT offsets apic, x86: Check if EILVT APIC registers are available (AMD only) x86: ioapic: Call free_irte only if interrupt remapping enabled arm: Use ARCH_IRQ_INIT_FLAGS genirq, ARM: Fix boot on ARM platforms genirq: Fix CONFIG_GENIRQ_NO_DEPRECATED=y build x86: Switch sparse_irq allocations to GFP_KERNEL genirq: Switch sparse_irq allocator to GFP_KERNEL genirq: Make sparse_lock a mutex x86: lguest: Use new irq allocator genirq: Remove the now unused sparse irq leftovers genirq: Sanitize dynamic irq handling genirq: Remove arch_init_chip_data() x86: xen: Sanitise sparse_irq handling x86: Use sane enumeration x86: uv: Clean up the direct access to irq_desc x86: Make io_apic.c local functions static genirq: Remove irq_2_iommu x86: Speed up the irq_remapped check in hot pathes intr_remap: Simplify the code further ... Fix up trivial conflicts in arch/x86/Kconfig commit 62bea97f54d806218a992b18d1f425cfb5060175 Merge: b61f6a5 8af3c15 Author: Linus Torvalds Date: Thu Oct 21 14:08:08 2010 -0700 Merge branch 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: ntp: Clamp PLL update interval commit b61f6a57f1919ef8dbd33f864df9b8b361c65b11 Merge: 0575db8 fb62db2 Author: Linus Torvalds Date: Thu Oct 21 14:06:17 2010 -0700 Merge branch 'futexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'futexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: futex: Fix kernel-doc notation & typos futex: Add lock context annotations futex: Mark restart_block.futex.uaddr[2] __user futex: Change 3rd arg of fetch_robust_entry() to unsigned int* commit 0575db881d18a4791013fc93ba756ad08b18fb48 Merge: c029e40 7ada876 Author: Linus Torvalds Date: Thu Oct 21 14:05:55 2010 -0700 Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: futex: Fix errors in nested key ref-counting commit c029e405bd3d4e92d09fbbc97c03952585986ebe Merge: a9ccd80 525906b Author: Linus Torvalds Date: Thu Oct 21 14:04:58 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (21 commits) EDAC, MCE: Fix shift warning on 32-bit EDAC, MCE: Add a BIT_64() macro EDAC, MCE: Enable MCE decoding on F12h EDAC, MCE: Add F12h NB MCE decoder EDAC, MCE: Add F12h IC MCE decoder EDAC, MCE: Add F12h DC MCE decoder EDAC, MCE: Add support for F11h MCEs EDAC, MCE: Enable MCE decoding on F14h EDAC, MCE: Fix FR MCEs decoding EDAC, MCE: Complete NB MCE decoders EDAC, MCE: Warn about LS MCEs on F14h EDAC, MCE: Adjust IC decoders to F14h EDAC, MCE: Adjust DC decoders to F14h EDAC, MCE: Rename files EDAC, MCE: Rework MCE injection EDAC: Export edac sysfs class to users. EDAC, MCE: Pass complete MCE info to decoders EDAC, MCE: Sanitize error codes EDAC, MCE: Remove unused function parameter EDAC, MCE: Add HW_ERR prefix ... commit a9ccd80aadadef8c424142d41fddea7c0880f0e9 Merge: 81d1c3a e79f86b Author: Linus Torvalds Date: Thu Oct 21 14:04:25 2010 -0700 Merge branch 'stable/swiotlb-0.9' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb-2.6 * 'stable/swiotlb-0.9' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb-2.6: swiotlb: Use page alignment for early buffer allocation swiotlb: make io_tlb_overflow static commit 81d1c3a52cd78fdbb9f0d80214fc9e7d49bf22c0 Merge: 5fe8321 3e0f686 Author: Linus Torvalds Date: Thu Oct 21 14:04:03 2010 -0700 Merge branch 'stable/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft-2.6 * 'stable/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft-2.6: ibft: fix kconfig dependencies commit 5fe8321b8886d814e65952d74b207fe59e1096ea Merge: 709d9f5 fa47f7e Author: Linus Torvalds Date: Thu Oct 21 13:54:05 2010 -0700 Merge branch 'x86-x2apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-x2apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, x2apic: Simplify apic init in SMP and UP builds x86, intr-remap: Remove IRTE setup duplicate code x86, intr-remap: Set redirection hint in the IRTE commit 709d9f54cc1847a2d24224ffedec7fd4d0f3c714 Merge: cca8209 b0f4c06 Author: Linus Torvalds Date: Thu Oct 21 13:53:24 2010 -0700 Merge branch 'x86-vmware-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-vmware-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, paravirt: Remove alloc_pmd_clone hook, only used by VMI x86, vmware: Remove deprecated VMI kernel support Fix up trivial #include conflict in arch/x86/kernel/smpboot.c commit cca8209ed962f87990345ba073979d2b55dd1187 Merge: d77bdc4 9e9006e Author: Linus Torvalds Date: Thu Oct 21 13:52:01 2010 -0700 Merge branch 'x86-olpc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-olpc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, olpc: XO-1 uses/depends on PCI x86, olpc: Register XO-1 platform devices x86, olpc: Add XO-1 poweroff support x86, olpc: Don't retry EC commands forever x86, olpc: Rework BIOS signature check x86, olpc: Only enable PCI configuration type override on XO-1 commit d77bdc423d6d6efcd18d329bbf8eb9351953dd30 Merge: 87affd0b 351e5a7 Author: Linus Torvalds Date: Thu Oct 21 13:51:41 2010 -0700 Merge branch 'x86-mtrr-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-mtrr-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, mtrr: Support mtrr lookup for range spanning across MTRR range x86, mtrr: Refactor MTRR type overlap check code commit 87affd0b9416d8f43d2d4de1f3fdfbe7f3559380 Merge: c3b86a2 940b3c7 Author: Linus Torvalds Date: Thu Oct 21 13:47:54 2010 -0700 Merge branch 'x86-mrst-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-mrst-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: sfi: Make local functions static x86, earlyprintk: Add hsu early console for Intel Medfield platform x86, earlyprintk: Add earlyprintk for Intel Moorestown platform x86: Add two helper macros for fixed address mapping x86, mrst: A function in a header file needs to be marked "inline" commit c3b86a29429dac1033e3f602f51fa8d00006a8eb Merge: 8d8d2e9 2aeb66d Author: Linus Torvalds Date: Thu Oct 21 13:47:29 2010 -0700 Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86-32, percpu: Correct the ordering of the percpu readmostly section x86, mm: Enable ARCH_DMA_ADDR_T_64BIT with X86_64 || HIGHMEM64G x86: Spread tlb flush vector between nodes percpu: Introduce a read-mostly percpu API x86, mm: Fix incorrect data type in vmalloc_sync_all() x86, mm: Hold mm->page_table_lock while doing vmalloc_sync x86, mm: Fix bogus whitespace in sync_global_pgds() x86-32: Fix sparse warning for the __PHYSICAL_MASK calculation x86, mm: Add RESERVE_BRK_ARRAY() helper mm, x86: Saving vmcore with non-lazy freeing of vmas x86, kdump: Change copy_oldmem_page() to use cached addressing x86, mm: fix uninitialized addr in kernel_physical_mapping_init() x86, kmemcheck: Remove double test x86, mm: Make spurious_fault check explicitly check the PRESENT bit x86-64, mem: Update all PGDs for direct mapping and vmemmap mapping changes x86, mm: Separate x86_64 vmalloc_sync_all() into separate functions x86, mm: Avoid unnecessary TLB flush commit 8d8d2e9ccd331a1345c88b292ebee9d256fd8749 Merge: 2a8b67f 3b4b682 Author: Linus Torvalds Date: Thu Oct 21 13:46:28 2010 -0700 Merge branch 'x86-mem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-mem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, mem: Optimize memmove for small size and unaligned cases x86, mem: Optimize memcpy by avoiding memory false dependece x86, mem: Don't implement forward memmove() as memcpy() commit 2a8b67fb72c4c4bc15fe8095e3ed613789c8b82f Merge: b6f7e38 ce5f682 Author: Linus Torvalds Date: Thu Oct 21 13:45:38 2010 -0700 Merge branch 'x86-idle-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-idle-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, hotplug: In the MWAIT case of play_dead, CLFLUSH the cache line x86, hotplug: Move WBINVD back outside the play_dead loop x86, hotplug: Use mwait to offline a processor, fix the legacy case x86, mwait: Move mwait constants to a common header file commit b6f7e38dbb310557fe890b04b1a376c93f638c3b Merge: 214515b b2b57fe Author: Linus Torvalds Date: Thu Oct 21 13:34:32 2010 -0700 Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, fpu: Merge fpu_save_init() x86-32, fpu: Rewrite fpu_save_init() x86, fpu: Remove PSHUFB_XMM5_* macros x86, fpu: Remove unnecessary ifdefs from i387 code. x86-32, fpu: Remove math_emulate stub x86-64, fpu: Simplify constraints for fxsave/fxtstor x86-64, fpu: Fix %cs value in convert_from_fxsr() x86-64, fpu: Disable preemption when using TS_USEDFPU x86, fpu: Merge __save_init_fpu() x86, fpu: Merge tolerant_fwait() x86, fpu: Merge fpu_init() x86: Use correct type for %cr4 x86, xsave: Disable xsave in i387 emulation mode Fixed up fxsaveq-induced conflict in arch/x86/include/asm/i387.h commit 214515b5787a1035b2c8807abe8be569de63b2f6 Merge: bf70030 d0ed0c3 Author: Linus Torvalds Date: Thu Oct 21 13:20:32 2010 -0700 Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: Remove pr_ uses of KERN_ therm_throt.c: Trivial printk message fix for a unsuitable abbreviation of 'thermal' x86: Use {push,pop}{l,q}_cfi in more places i386: Add unwind directives to syscall ptregs stubs x86-64: Use symbolics instead of raw numbers in entry_64.S x86-64: Adjust frame type at paranoid_exit: x86-64: Fix unwind annotations in syscall stubs commit bf70030dc0b031f000c74721f2e9c88686b7da6d Merge: d60a279 366d4a4 Author: Linus Torvalds Date: Thu Oct 21 13:18:36 2010 -0700 Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, cpu: Fix X86_FEATURE_NOPL x86, cpu: Re-run get_cpu_cap() after adjusting the CPUID level commit d60a2793ba562c6ea9bbf62112da3e6342adcf83 Merge: 781c5a6 40ffa93 Author: Linus Torvalds Date: Thu Oct 21 13:18:06 2010 -0700 Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: Remove stale pmtimer_64.c x86, cleanups: Use clear_page/copy_page rather than memset/memcpy x86: Remove unnecessary #ifdef ACPI/X86_IO_ACPI x86, cleanup: Remove obsolete boot_cpu_id variable commit 781c5a67f152c17c3e4a9ed9647f8c0be6ea5ae9 Merge: e990c77 9ea77bd Author: Linus Torvalds Date: Thu Oct 21 13:06:49 2010 -0700 Merge branch 'x86-bios-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-bios-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, bios: Make the x86 early memory reservation a kernel option x86, bios: By default, reserve the low 64K for all BIOSes commit e990c77d06dbacc8e5c5edd2c4a1005d318a4fa6 Merge: 2f0384e d7acb92 Author: Linus Torvalds Date: Thu Oct 21 13:06:00 2010 -0700 Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86-64, asm: If the assembler supports fxsave64, use it i386: Make kernel_execve() suitable for stack unwinding commit 2f0384e5fc4766ad909597547d0e2b716c036755 Merge: bc4016f 5c80cc7 Author: Linus Torvalds Date: Thu Oct 21 13:01:08 2010 -0700 Merge branch 'x86-amd-nb-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-amd-nb-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, amd_nb: Enable GART support for AMD family 0x15 CPUs x86, amd: Use compute unit information to determine thread siblings x86, amd: Extract compute unit information for AMD CPUs x86, amd: Add support for CPUID topology extension of AMD CPUs x86, nmi: Support NMI watchdog on newer AMD CPU families x86, mtrr: Assume SYS_CFG[Tom2ForceMemTypeWB] exists on all future AMD CPUs x86, k8: Rename k8.[ch] to amd_nb.[ch] and CONFIG_K8_NB to CONFIG_AMD_NB x86, k8-gart: Decouple handling of garts and northbridges x86, cacheinfo: Fix dependency of AMD L3 CID x86, kvm: add new AMD SVM feature bits x86, cpu: Fix allowed CPUID bits for KVM guests x86, cpu: Update AMD CPUID feature bits x86, cpu: Fix renamed, not-yet-shipping AMD CPUID feature bit x86, AMD: Remove needless CPU family check (for L3 cache info) x86, tsc: Remove CPU frequency calibration on AMD commit bc4016f48161454a9a8e5eb209b0693c6cde9f62 Merge: 5d70f79 b7dadc3 Author: Linus Torvalds Date: Thu Oct 21 12:55:43 2010 -0700 Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (29 commits) sched: Export account_system_vtime() sched: Call tick_check_idle before __irq_enter sched: Remove irq time from available CPU power sched: Do not account irq time to current task x86: Add IRQ_TIME_ACCOUNTING sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time sched: Add a PF flag for ksoftirqd identification sched: Consolidate account_system_vtime extern declaration sched: Fix softirq time accounting sched: Drop group_capacity to 1 only if local group has extra capacity sched: Force balancing on newidle balance if local group has capacity sched: Set group_imb only a task can be pulled from the busiest cpu sched: Do not consider SCHED_IDLE tasks to be cache hot sched: Drop all load weight manipulation for RT tasks sched: Create special class for stop/migrate work sched: Unindent labels sched: Comment updates: fix default latency and granularity numbers tracing/sched: Add sched_pi_setprio tracepoint sched: Give CPU bound RT tasks preference sched: Try not to migrate higher priority RT tasks ... commit 5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22 Merge: 888a6f7 750ed15 Author: Linus Torvalds Date: Thu Oct 21 12:54:49 2010 -0700 Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (163 commits) tracing: Fix compile issue for trace_sched_wakeup.c [S390] hardirq: remove pointless header file includes [IA64] Move local_softirq_pending() definition perf, powerpc: Fix power_pmu_event_init to not use event->ctx ftrace: Remove recursion between recordmcount and scripts/mod/empty jump_label: Add COND_STMT(), reducer wrappery perf: Optimize sw events perf: Use jump_labels to optimize the scheduler hooks jump_label: Add atomic_t interface jump_label: Use more consistent naming perf, hw_breakpoint: Fix crash in hw_breakpoint creation perf: Find task before event alloc perf: Fix task refcount bugs perf: Fix group moving irq_work: Add generic hardirq context callbacks perf_events: Fix transaction recovery in group_sched_in() perf_events: Fix bogus AMD64 generic TLB events perf_events: Fix bogus context time tracking tracing: Remove parent recording in latency tracer graph options tracing: Use one prologue for the preempt irqs off tracer function tracers ... commit 888a6f77e0418b049f83d37547c209b904d30af4 Merge: 31b7eab 6506cf6c Author: Linus Torvalds Date: Thu Oct 21 12:54:12 2010 -0700 Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (52 commits) sched: fix RCU lockdep splat from task_group() rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp->qsmask value sched: suppress RCU lockdep splat in task_fork_fair net: suppress RCU lockdep false positive in sock_update_classid rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter rcu: Add tracing data to support queueing models rcu: fix sparse errors in rcutorture.c rcu: only one evaluation of arg in rcu_dereference_check() unless sparse kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC rcu: fix _oddness handling of verbose stall warnings rcu: performance fixes to TINY_PREEMPT_RCU callback checking rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes vhost: add __rcu annotations rcu: add comment stating that list_empty() applies to RCU-protected lists rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU rcu: Upgrade srcu_read_lock() docbook about SRCU grace periods rcu: document ways of stalling updates in low-memory situations rcu: repair code-duplication FIXMEs ... commit 31b7eab27a314b153d8fa07ba9e9ec00a98141e1 Merge: 1053e6b 4ba053c Author: Linus Torvalds Date: Thu Oct 21 12:49:31 2010 -0700 Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: lockdep: Check the depth of subclass lockdep: Add improved subclass caching affs: Use sema_init instead of init_MUTEX hfs: Convert tree_lock to mutex arm: Bcmring: semaphore cleanup printk: Make console_sem a semaphore not a pseudo mutex drivers/macintosh/adb: Do not claim that the semaphore is a mutex parport: Semaphore cleanup irda: Semaphore cleanup net: Wan/cosa.c: Convert "mutex" to semaphore net: Ppp_async: semaphore cleanup hamradio: Mkiss: semaphore cleanup hamradio: 6pack: semaphore cleanup net: 3c527: semaphore cleanup input: Serio/hp_sdc: semaphore cleanup input: Serio/hil_mlc: semaphore cleanup input: Misc/hp_sdc_rtc: semaphore cleanup lockup_detector: Make callback function static lockup detector: Fix grammar by adding a missing "to" in the comments lockdep: Remove __debug_show_held_locks commit 1053e6bba091d9d18797f7789df6a7ef8735f20c Merge: a8fe150 3d8a1a6 Author: Linus Torvalds Date: Thu Oct 21 12:49:15 2010 -0700 Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86/amd-iommu: Update copyright headers x86/amd-iommu: Reenable AMD IOMMU if it's mysteriously vanished over suspend AGP: Warn when GATT memory cannot be set to UC x86, GART: Disable GART table walk probes x86, GART: Remove superfluous AMD64_GARTEN commit a8fe1500986c32b46b36118aa250f6badca11bfc Merge: 94ebd23 f0d3d98 Author: Linus Torvalds Date: Thu Oct 21 12:41:19 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (26 commits) selinux: include vmalloc.h for vmalloc_user secmark: fix config problem when CONFIG_NF_CONNTRACK_SECMARK is not set selinux: implement mmap on /selinux/policy SELinux: allow userspace to read policy back out of the kernel SELinux: drop useless (and incorrect) AVTAB_MAX_SIZE SELinux: deterministic ordering of range transition rules kernel: roundup should only reference arguments once kernel: rounddown helper function secmark: export secctx, drop secmark in procfs conntrack: export lsm context rather than internal secid via netlink security: secid_to_secctx returns len when data is NULL secmark: make secmark object handling generic secmark: do not return early if there was no error AppArmor: Ensure the size of the copy is < the buffer allocated to hold it TOMOYO: Print URL information before panic(). security: remove unused parameter from security_task_setscheduler() tpm: change 'tpm_suspend_pcr' to be module parameter selinux: fix up style problem on /selinux/status selinux: change to new flag variable selinux: really fix dependency causing parallel compile failure. ... commit 94ebd235c493f43681f609b0e02733337053e8f0 Merge: f6f0a6d fe5a50a Author: Linus Torvalds Date: Thu Oct 21 12:40:33 2010 -0700 Merge branch 'virtio' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus * 'virtio' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: virtio_blk: remove BKL leftovers virtio: console: Disable lseek(2) for port file operations virtio: console: Send SIGIO in case of port unplug virtio: console: Send SIGIO on new data arrival on ports virtio: console: Send SIGIO to processes that request it for host events virtio: console: Reference counting portdev structs is not needed virtio: console: Add reference counting for port struct virtio: console: Use cdev_alloc() instead of cdev_init() virtio: console: Add a find_port_by_devt() function virtio: console: Add a list of portdevs that are active virtio: console: open: Use a common path for error handling virtio: console: remove_port() should return void virtio: console: Make write() return -ENODEV on hot-unplug virtio: console: Make read() return -ENODEV on hot-unplug virtio: console: Unblock poll on port hot-unplug virtio: console: Un-block reads on chardev close virtio: console: Check if portdev is valid in send_control_msg() virtio: console: Remove control vq data only if using multiport support virtio: console: Reset vdev before removing device commit f6f0a6d6a7258eff41fd202fc70df18271a2de79 Merge: 2017bd1 33027af Author: Linus Torvalds Date: Thu Oct 21 12:39:53 2010 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (22 commits) GFS2: fixed typo GFS2: Fix type mapping for demote_rq interface GFS2 fatal: filesystem consistency error on rename GFS2: Improve journal allocation via sysfs GFS2: Add "norecovery" mount option as a synonym for "spectator" GFS2: Fix spectator umount issue GFS2: Fix compiler warning from previous patch GFS2: reserve more blocks for transactions GFS2: Fix journal check for spectator mounts GFS2: Remove upgrade mount option GFS2: Remove localcaching mount option GFS2: Remove ignore_local_fs mount argument GFS2: Make . and .. qstrs constant GFS2: Use new workqueue scheme GFS2: Update handling of DLM return codes to match reality GFS2: Don't enforce min hold time when two demotes occur in rapid succession GFS2: Fix whitespace in previous patch GFS2: fallocate support GFS2: Add a bug trap in allocation code GFS2: No longer experimental ... commit 2017bd19454ea7cdae19922d15b6930f6c8088a2 Merge: 9f1ad09 efa4c12 Author: Linus Torvalds Date: Thu Oct 21 12:38:28 2010 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (22 commits) ceph: do not carry i_lock for readdir from dcache fs/ceph/xattr.c: Use kmemdup rbd: passing wrong variable to bvec_kunmap_irq() rbd: null vs ERR_PTR ceph: fix num_pages_free accounting in pagelist ceph: add CEPH_MDS_OP_SETDIRLAYOUT and associated ioctl. ceph: don't crash when passed bad mount options ceph: fix debugfs warnings block: rbd: removing unnecessary test block: rbd: fixed may leaks ceph: switch from BKL to lock_flocks() ceph: preallocate flock state without locks held ceph: add pagelist_reserve, pagelist_truncate, pagelist_set_cursor ceph: use mapping->nrpages to determine if mapping is empty ceph: only invalidate on check_caps if we actually have pages ceph: do not hide .snap in root directory rbd: introduce rados block device (rbd), based on libceph ceph: factor out libceph from Ceph file system ceph-rbd: osdc support for osd call and rollback operations ceph: messenger and osdc changes for rbd ... commit 9f1ad09493451c19d00c004da479acf699eeedd6 Merge: f6f94e2 46bf36e Author: Linus Torvalds Date: Thu Oct 21 12:33:45 2010 -0700 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus: (29 commits) hfsplus: fix getxattr return value hfsplus: remove the unused hfsplus_kmap/hfsplus_kunmap helpers hfsplus: create correct initial catalog entries for device files hfsplus: remove superflous rootflags field in hfsplus_inode_info hfsplus: fix link corruption hfsplus: validate btree flags hfsplus: handle more on-disk corruptions without oopsing hfsplus: hfs_bnode_find() can fail, resulting in hfs_bnode_split() breakage hfsplus: fix oops on mount with corrupted btree extent records hfsplus: fix rename over directories hfsplus: convert tree_lock to mutex hfsplus: add missing extent locking in hfsplus_write_inode hfsplus: protect readdir against removals from open_dir_list hfsplus: use atomic bitops for the superblock flags hfsplus: add per-superblock lock for volume header updates hfsplus: remove the rsrc_inodes list hfsplus: do not cache and write next_alloc hfsplus: fix error handling in hfsplus_symlink hfsplus: merge mknod/mkdir/creat hfsplus: clean up hfsplus_write_inode ... commit 5b917a1420d3d1a9c8da49fb0090692dc9aaee86 Author: Vasiliy Kulikov Date: Sun Oct 17 18:41:24 2010 +0400 pcmcia: synclink_cs: fix information leak to userland Structure new_line is copied to userland with some padding fields unitialized. It leads to leaking of stack memory. Signed-off-by: Vasiliy Kulikov CC: stable@kernel.org Signed-off-by: Dominik Brodowski commit 525906bc898d712f21e5bfcfc85ab0e517e3d086 Author: Borislav Petkov Date: Fri Oct 15 15:27:02 2010 +0200 EDAC, MCE: Fix shift warning on 32-bit Fix drivers/edac/mce_amd.c:262: warning: left shift count >= width of type on 32-bit builds. Reported-by: Randy Dunlap Signed-off-by: Borislav Petkov commit cf1d2200dbc214c26a116c4d0c75b7cf27bb19b6 Author: Borislav Petkov Date: Fri Oct 15 15:20:18 2010 +0200 EDAC, MCE: Add a BIT_64() macro Add a macro for 64-bit vectors to use when accessing MSR contents. Signed-off-by: Borislav Petkov commit fda7561f438aeddf074e2db0890e283195aa7779 Author: Borislav Petkov Date: Wed Sep 22 16:12:03 2010 +0200 EDAC, MCE: Enable MCE decoding on F12h Turn on MCE decoding on F12h. Signed-off-by: Borislav Petkov commit cb9d5ecdff66197f65a6be8032ccc1ebf7199684 Author: Borislav Petkov Date: Thu Sep 16 17:36:12 2010 +0200 EDAC, MCE: Add F12h NB MCE decoder F12h is completely covered by the generic path. Signed-off-by: Borislav Petkov commit e7281eb37da045abac5bd795d1169fc2e3eeea49 Author: Borislav Petkov Date: Thu Sep 16 16:45:22 2010 +0200 EDAC, MCE: Add F12h IC MCE decoder ... which is the same as for K8 and F10h. Signed-off-by: Borislav Petkov commit 9be0bb1072e3544934e0ac20f184e50805aecf9c Author: Borislav Petkov Date: Thu Sep 16 15:08:14 2010 +0200 EDAC, MCE: Add F12h DC MCE decoder F12h DC MCE signatures are a subset of F10h's so reuse them. Signed-off-by: Borislav Petkov commit f0157b3afd2ec6331245768a785487249a3c9734 Author: Borislav Petkov Date: Tue Oct 5 19:07:16 2010 +0200 EDAC, MCE: Add support for F11h MCEs F11h has almost the same MCE signatures as K8 except DRAM ECC and MC5 bank errors. Reuse functionality from the other families. Signed-off-by: Borislav Petkov commit 9530d608ef0e1f76b7fd82bb92645062292fc009 Author: Borislav Petkov Date: Mon Sep 6 15:05:45 2010 +0200 EDAC, MCE: Enable MCE decoding on F14h Now that all decoders have been taught about F14h, models < 0x10 MCEs, enable decoding on this family of CPUs. Also, issue a short informational message upon boot that MCE decoding gets enabled. Signed-off-by: Borislav Petkov commit fe4ea2623bec3e595f8e77a8514307c389c096ae Author: Borislav Petkov Date: Tue Aug 31 18:38:24 2010 +0200 EDAC, MCE: Fix FR MCEs decoding Those are N/A on K8, so don't decode them there. Signed-off-by: Borislav Petkov commit 5ce88f6ea6bef929f59f9468413f922c9a486fa4 Author: Borislav Petkov Date: Tue Aug 31 18:28:08 2010 +0200 EDAC, MCE: Complete NB MCE decoders Add support for decoding F14h BU MCEs and improve decoding of the remaining families. Signed-off-by: Borislav Petkov commit ded506232865e8e932bc21c87f48170d50db4d97 Author: Borislav Petkov Date: Fri Aug 27 17:03:34 2010 +0200 EDAC, MCE: Warn about LS MCEs on F14h F14h CPUs do not generate LS MCEs so exit early and warn the user in case this path is ever hit that something else might be going haywire. Signed-off-by: Borislav Petkov commit dd53bce4e8987f6848840d42bbeead5221eff308 Author: Borislav Petkov Date: Thu Aug 26 19:05:49 2010 +0200 EDAC, MCE: Adjust IC decoders to F14h Add support for IC MCEs for F14h CPUs. K8 and F10h are almost identical so use one function for both. Signed-off-by: Borislav Petkov commit 888ab8e6eb2e41179cdc8edf5d0abd1cce0f0370 Author: Borislav Petkov Date: Wed Aug 18 15:11:35 2010 +0200 EDAC, MCE: Adjust DC decoders to F14h Add a per-family data cache decoders. Since there is a certain overlap between the different DC MCE signatures, reuse functionality between the families as far as possible. Signed-off-by: Borislav Petkov commit 47ca08a40b043815134d489e21870b53276f1a4a Author: Borislav Petkov Date: Mon Sep 27 15:30:39 2010 +0200 EDAC, MCE: Rename files Drop "edac_" string from the filenames since they're prefixed with edac/ in their pathname anyway. Signed-off-by: Borislav Petkov commit 9cdeb404a1870c5022915e576dbdc3cde21af5bf Author: Borislav Petkov Date: Thu Sep 2 18:33:24 2010 +0200 EDAC, MCE: Rework MCE injection Add sysfs injection facilities for testing of the MCE decoding code. Remove large parts of amd64_edac_dbg.c, as a result, which did only NB MCE injection anyway and the new injection code supports that functionality already. Add an injection module so that MCE decoding code in production kernels like those in RHEL and SLES can be tested. Signed-off-by: Borislav Petkov commit 30e1f7a8122145f44f45c95366e27b6bb0b08428 Author: Borislav Petkov Date: Thu Sep 2 17:26:48 2010 +0200 EDAC: Export edac sysfs class to users. Move toplevel sysfs class to the stub and make it available to non-modularized code too. Add proper refcounting of its users and move the registration functionality into the reference counting routines. Signed-off-by: Borislav Petkov commit 7cfd4a87441f5ca3018fdd1f7ad67e8a73a05dc2 Author: Borislav Petkov Date: Wed Sep 1 14:45:20 2010 +0200 EDAC, MCE: Pass complete MCE info to decoders ... instead of the MCi_STATUS info only for improved handling of certain types of errors later. Signed-off-by: Borislav Petkov commit 6337583d7dc0dced36ab98dd63de2389c95c22d9 Author: Borislav Petkov Date: Mon Sep 6 18:13:39 2010 +0200 EDAC, MCE: Sanitize error codes Clean up error codes names, shorten to mnemonics, add RRRR boundary checking. Signed-off-by: Borislav Petkov commit 0ee8efa8f4672ce35ee370291c0f21d7b87b1e3f Author: Borislav Petkov Date: Mon Aug 30 12:34:19 2010 +0200 EDAC, MCE: Remove unused function parameter Remove remains from previous functionality. Signed-off-by: Borislav Petkov commit c9f281fd96b29367363ee232021c030d025c52a8 Author: Borislav Petkov Date: Wed Aug 18 18:21:42 2010 +0200 EDAC, MCE: Add HW_ERR prefix .. so that the user knows what she's looking at there in dmesg. Also, fix a minor cosmetic output inconsistency. Signed-off-by: Borislav Petkov commit ca755e0a49ff1272efff0b3bfdf3f1e0b0fc5d57 Author: Borislav Petkov Date: Wed Sep 1 16:32:20 2010 +0200 EDAC: Fix error return We should return a negative value when we cannot get the toplevel edac sysfs class. Signed-off-by: Borislav Petkov commit 2aeb66d3036dbafc297ac553a257a40283dadb3e Author: H. Peter Anvin Date: Thu Oct 21 00:15:00 2010 -0700 x86-32, percpu: Correct the ordering of the percpu readmostly section Checkin c957ef2c59e952803766ddc22e89981ab534606f had inconsistent ordering of .data..percpu..page_aligned and .data..percpu..readmostly; the still-broken version affected x86-32 at least. The page aligned version really must be page aligned... Signed-off-by: H. Peter Anvin LKML-Reference: <1287544022.4571.7.camel@sli10-conroe.sh.intel.com> Cc: Shaohua Li Cc: Eric Dumazet commit fe5a50a10c7b3bf38e47045eadc6b87a5c157f44 Author: Christoph Hellwig Date: Wed Sep 15 01:27:23 2010 +0200 virtio_blk: remove BKL leftovers Remove the BKL usage added in "block: push down BKL into .locked_ioctl". Virtio-blk doesn't use the BKL for anything, and doesn't implement any ioctl command by itself, but only uses the generic scsi_cmd_ioctl which is fine without the BKL. Signed-off-by: Christoph Hellwig Signed-off-by: Rusty Russell commit 299fb61c08c2fcd1bb6d3a4e87e53dc368475416 Author: Amit Shah Date: Thu Sep 16 14:43:09 2010 +0530 virtio: console: Disable lseek(2) for port file operations The ports are char devices; do not have seeking capabilities. Calling nonseekable_open() from the fops_open() call and setting the llseek fops pointer to no_llseek ensures an lseek() call from userspace returns -ESPIPE. Signed-off-by: Amit Shah CC: Arnd Bergmann Signed-off-by: Rusty Russell commit a461e11e7b8ca2705889bcf9582f6a8f84884bd2 Author: Amit Shah Date: Thu Sep 2 18:47:54 2010 +0530 virtio: console: Send SIGIO in case of port unplug If a port has registered for SIGIO signals, let the application know that the port is getting unplugged. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 55f6bcce3691f68476a530daa6666b66c43420a8 Author: Amit Shah Date: Thu Sep 2 18:47:53 2010 +0530 virtio: console: Send SIGIO on new data arrival on ports Send a SIGIO signal when new data arrives on a port. This is sent only when the process has requested for the signal to be sent using fcntl(). Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 3eae0adea949d8fdd8fa3e5301192901219d2c64 Author: Amit Shah Date: Thu Sep 2 18:47:52 2010 +0530 virtio: console: Send SIGIO to processes that request it for host events A process can request for SIGIO on host connect / disconnect events using the O_ASYNC file flag using fcntl(). If that's requested, and if the guest-side connection for the port is open, any host-side open/close events for that port will raise a SIGIO. The process can then use poll() within the signal handler to find out which port triggered the signal. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit e062013c7d22e40ee634b818d28fd615db36998e Author: Amit Shah Date: Thu Sep 2 18:38:30 2010 +0530 virtio: console: Reference counting portdev structs is not needed Explain in a comment why there's no need to reference-count the portdev struct: when a device is yanked out, we can't do anything more with it anyway so just give up doing anything more with the data or the vqs and exit cleanly. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit b353a6b821627053f82b4e7b907e824cb7a6879c Author: Amit Shah Date: Thu Sep 2 18:38:29 2010 +0530 virtio: console: Add reference counting for port struct When a port got hot-unplugged, when a port was open, any file operation after the unplugging resulted in a crash. This is fixed by ref-counting the port structure, and releasing it only when the file is closed. This splits the unplug operation in two parts: first marks the port as unavailable, removes all the buffers in the vqs and removes the port from the per-device list of ports. The second stage, invoked when all references drop to zero, releases the chardev and frees all other memory. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit d22a69892bd8f29e3096f6f54c2c00d8aec2e796 Author: Amit Shah Date: Thu Sep 2 18:20:59 2010 +0530 virtio: console: Use cdev_alloc() instead of cdev_init() This moves to using cdev on the heap instead of it being embedded in the ports struct. This helps individual refcounting and will allow us to properly remove cdev structs after hot-unplugs and close operations. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 04950cdf071b6e5aa4794c93ad3e3ce8a1c4aa8c Author: Amit Shah Date: Thu Sep 2 18:20:58 2010 +0530 virtio: console: Add a find_port_by_devt() function To convert to using cdev as a pointer to avoid kref troubles, we have to use a different method to get to a port from an inode than the current container_of method. Add find_port_by_devt() that looks up all portdevs and ports with those portdevs to find the right port. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 6bdf2afd02ae12bf8ac93e6d14c4b4dfef7c4c59 Author: Amit Shah Date: Thu Sep 2 18:11:49 2010 +0530 virtio: console: Add a list of portdevs that are active The virtio_console.c driver is capable of handling multiple devices at a time. Maintain a list of devices for future traversal. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 8ad37e83c8dc413f92b10c3d9bdeabe9237f521d Author: Amit Shah Date: Thu Sep 2 18:11:48 2010 +0530 virtio: console: open: Use a common path for error handling Just re-arrange code for future patches. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 7a2853178dfba9553d58f356113f47fd582e9cc6 Author: Amit Shah Date: Thu Sep 2 18:11:47 2010 +0530 virtio: console: remove_port() should return void When a port is removed, we have to assume the port is gone. So a success/failure return value doesn't make sense. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit f4028119714e452f9b49377ec55e0ed1e5d1dfa4 Author: Amit Shah Date: Thu Sep 2 18:11:46 2010 +0530 virtio: console: Make write() return -ENODEV on hot-unplug When a port is hot-unplugged while an app was blocked on a write() call, the call was unblocked but would not get an error returned. Return -ENODEV to ensure the app knows the port has gone away. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit b3dddb9e6ddab74327f5557c1a6640ea0f56ad1c Author: Amit Shah Date: Thu Sep 2 18:11:45 2010 +0530 virtio: console: Make read() return -ENODEV on hot-unplug When a port is hot-unplugged while an app was blocked on a read() call, the call was unblocked but would not get an error returned. Return -ENODEV to ensure the app knows the port has gone away. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 8529a504273d4efa6bb004dcd6ef28fe67b64ae9 Author: Amit Shah Date: Thu Sep 2 18:11:44 2010 +0530 virtio: console: Unblock poll on port hot-unplug When a port is hot-unplugged while an app is blocked on poll(), unblock the poll() and return. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 3709ea7ae7d698b428576c2db0bbb6e08a18cf12 Author: Amit Shah Date: Thu Sep 2 18:11:43 2010 +0530 virtio: console: Un-block reads on chardev close If a chardev is closed, any blocked read / poll calls should just return and not attempt to use other state. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 84ec06c59a14d0941dd58ca6793b24a7e86b3b85 Author: Amit Shah Date: Thu Sep 2 18:11:42 2010 +0530 virtio: console: Check if portdev is valid in send_control_msg() A portdev may have been hot-unplugged while a port was open()ed. Skip sending control messages when the portdev isn't valid. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 96eb872b2a041b1536ccc6ae2fa87eb28f6e2bb2 Author: Amit Shah Date: Thu Sep 2 18:11:41 2010 +0530 virtio: console: Remove control vq data only if using multiport support If a portdev isn't using multiport support, it won't have any control vq data to remove. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit 02238959944ce031f066f21e541a14933aca6575 Author: Amit Shah Date: Thu Sep 2 18:11:40 2010 +0530 virtio: console: Reset vdev before removing device The virtqueues should be disabled before attempting to remove the device. Signed-off-by: Amit Shah Signed-off-by: Rusty Russell commit f0d3d9894e43fc68d47948e2c6f03e32da88b799 Author: Stephen Rothwell Date: Wed Oct 20 16:08:00 2010 +1100 selinux: include vmalloc.h for vmalloc_user Include vmalloc.h for vmalloc_user (fixes ppc build warning). Acked-by: Eric Paris Signed-off-by: James Morris commit ff660c80d00b52287f1f67ee6c115dc0057bcdde Author: Eric Paris Date: Tue Oct 19 18:17:32 2010 -0400 secmark: fix config problem when CONFIG_NF_CONNTRACK_SECMARK is not set When CONFIG_NF_CONNTRACK_SECMARK is not set we accidentally attempt to use the secmark fielf of struct nf_conn. Problem is when that config isn't set the field doesn't exist. whoops. Wrap the incorrect usage in the config. Signed-off-by: Eric Paris Signed-off-by: James Morris commit 845ca30fe9691f1bab7cfbf30b6d11c944eb4abd Author: Eric Paris Date: Wed Oct 13 17:50:31 2010 -0400 selinux: implement mmap on /selinux/policy /selinux/policy allows a user to copy the policy back out of the kernel. This patch allows userspace to actually mmap that file and use it directly. Signed-off-by: Eric Paris Signed-off-by: James Morris commit cee74f47a6baba0ac457e87687fdcf0abd599f0a Author: Eric Paris Date: Wed Oct 13 17:50:25 2010 -0400 SELinux: allow userspace to read policy back out of the kernel There is interest in being able to see what the actual policy is that was loaded into the kernel. The patch creates a new selinuxfs file /selinux/policy which can be read by userspace. The actual policy that is loaded into the kernel will be written back out to userspace. Signed-off-by: Eric Paris Signed-off-by: James Morris commit 00d85c83ac52e2c1a66397f1abc589f80c543425 Author: Eric Paris Date: Wed Oct 13 17:50:19 2010 -0400 SELinux: drop useless (and incorrect) AVTAB_MAX_SIZE AVTAB_MAX_SIZE was a define which was supposed to be used in userspace to define a maximally sized avtab when userspace wasn't sure how big of a table it needed. It doesn't make sense in the kernel since we always know our table sizes. The only place it is used we have a more appropiately named define called AVTAB_MAX_HASH_BUCKETS, use that instead. Signed-off-by: Eric Paris Signed-off-by: James Morris commit 4419aae1f4f380a3fba0f4f12ffbbbdf3f267c51 Author: Eric Paris Date: Wed Oct 13 17:50:14 2010 -0400 SELinux: deterministic ordering of range transition rules Range transition rules are placed in the hash table in an (almost) arbitrary order. This patch inserts them in a fixed order to make policy retrival more predictable. Signed-off-by: Eric Paris Signed-off-by: James Morris commit b28efd54d9d5c8005a29cd8782335beb9daaa32d Author: Eric Paris Date: Wed Oct 13 17:50:08 2010 -0400 kernel: roundup should only reference arguments once Currently the roundup macro references it's arguments more than one time. This patch changes it so it will only use its arguments once. Suggested-by: Andrew Morton Signed-off-by: Eric Paris Signed-off-by: James Morris commit 686a0f3d71203bbfcc186900bbb8ac2cfc3d803c Author: Eric Paris Date: Wed Oct 13 17:50:02 2010 -0400 kernel: rounddown helper function The roundup() helper function will round a given value up to a multiple of another given value. aka roundup(11, 7) would give 14 = 7 * 2. This new function does the opposite. It will round a given number down to the nearest multiple of the second number: rounddown(11, 7) would give 7. I need this in some future SELinux code and can carry the macro myself, but figured I would put it in the core kernel so others might find and use it if need be. Signed-off-by: Eric Paris Signed-off-by: James Morris commit 1ae4de0cdf855305765592647025bde55e85e451 Author: Eric Paris Date: Wed Oct 13 16:25:00 2010 -0400 secmark: export secctx, drop secmark in procfs The current secmark code exports a secmark= field which just indicates if there is special labeling on a packet or not. We drop this field as it isn't particularly useful and instead export a new field secctx= which is the actual human readable text label. Signed-off-by: Eric Paris Acked-by: Patrick McHardy Signed-off-by: James Morris commit 1cc63249adfa957b34ca51effdee90ff8261d63f Author: Eric Paris Date: Wed Oct 13 16:24:54 2010 -0400 conntrack: export lsm context rather than internal secid via netlink The conntrack code can export the internal secid to userspace. These are dynamic, can change on lsm changes, and have no meaning in userspace. We should instead be sending lsm contexts to userspace instead. This patch sends the secctx (rather than secid) to userspace over the netlink socket. We use a new field CTA_SECCTX and stop using the the old CTA_SECMARK field since it did not send particularly useful information. Signed-off-by: Eric Paris Reviewed-by: Paul Moore Acked-by: Patrick McHardy Signed-off-by: James Morris commit d5630b9d276bd389299ffea620b7c340ab19bcf5 Author: Eric Paris Date: Wed Oct 13 16:24:48 2010 -0400 security: secid_to_secctx returns len when data is NULL With the (long ago) interface change to have the secid_to_secctx functions do the string allocation instead of having the caller do the allocation we lost the ability to query the security server for the length of the upcoming string. The SECMARK code would like to allocate a netlink skb with enough length to hold the string but it is just too unclean to do the string allocation twice or to do the allocation the first time and hold onto the string and slen. This patch adds the ability to call security_secid_to_secctx() with a NULL data pointer and it will just set the slen pointer. Signed-off-by: Eric Paris Reviewed-by: Paul Moore Signed-off-by: James Morris commit 2606fd1fa5710205b23ee859563502aa18362447 Author: Eric Paris Date: Wed Oct 13 16:24:41 2010 -0400 secmark: make secmark object handling generic Right now secmark has lots of direct selinux calls. Use all LSM calls and remove all SELinux specific knowledge. The only SELinux specific knowledge we leave is the mode. The only point is to make sure that other LSMs at least test this generic code before they assume it works. (They may also have to make changes if they do not represent labels as strings) Signed-off-by: Eric Paris Acked-by: Paul Moore Acked-by: Patrick McHardy Signed-off-by: James Morris commit 15714f7b58011cf3948cab2988abea560240c74f Author: Eric Paris Date: Tue Oct 12 11:40:08 2010 -0400 secmark: do not return early if there was no error Commit 4a5a5c73 attempted to pass decent error messages back to userspace for netfilter errors. In xt_SECMARK.c however the patch screwed up and returned on 0 (aka no error) early and didn't finish setting up secmark. This results in a kernel BUG if you use SECMARK. Signed-off-by: Eric Paris Acked-by: Paul Moore Signed-off-by: James Morris commit 3ed02ada2a5e695e2fbb5e4a0008cfcb0f50feaa Author: John Johansen Date: Sat Oct 9 00:47:53 2010 -0700 AppArmor: Ensure the size of the copy is < the buffer allocated to hold it Actually I think in this case the appropriate thing to do is to BUG as there is currently a case (remove) where the alloc_size needs to be larger than the copy_size, and if copy_size is ever greater than alloc_size there is a mistake in the caller code. Signed-off-by: John Johansen Acked-by: Kees Cook Signed-off-by: James Morris commit 9f1c1d426b0402b25cd0d7ca719ffc8e20e46d5f Author: Tetsuo Handa Date: Fri Oct 8 14:43:22 2010 +0900 TOMOYO: Print URL information before panic(). Configuration files for TOMOYO 2.3 are not compatible with TOMOYO 2.2. But current panic() message is too unfriendly and is confusing users. Signed-off-by: Tetsuo Handa Reviewed-by: KOSAKI Motohiro Signed-off-by: James Morris commit b0ae19811375031ae3b3fecc65b702a9c6e5cc28 Author: KOSAKI Motohiro Date: Fri Oct 15 04:21:18 2010 +0900 security: remove unused parameter from security_task_setscheduler() All security modules shouldn't change sched_param parameter of security_task_setscheduler(). This is not only meaningless, but also make a harmful result if caller pass a static variable. This patch remove policy and sched_param parameter from security_task_setscheduler() becuase none of security module is using it. Cc: James Morris Signed-off-by: KOSAKI Motohiro Signed-off-by: James Morris commit 9b3056cca09529d34af2d81305b2a9c6b622ca1b Author: Dmitry Torokhov Date: Fri Oct 1 14:16:39 2010 -0700 tpm: change 'tpm_suspend_pcr' to be module parameter Fix the following warning: drivers/char/tpm/tpm.c:1085: warning: `tpm_suspend_setup' defined but not used and make the workaround operable in case when TPM is compiled as a module. As a side-effect the option will be called tpm.suspend_pcr. Signed-off-by: Dmitry Torokhov Cc: Rajiv Andrade Cc: David Safford Cc: James Morris Cc: Debora Velarde Signed-off-by: Andrew Morton Signed-off-by: James Morris commit 36f7f28416c97dbb725154930066d115b4447e17 Author: KaiGai Kohei Date: Thu Sep 30 11:49:55 2010 +0900 selinux: fix up style problem on /selinux/status This patch fixes up coding-style problem at this commit: 4f27a7d49789b04404eca26ccde5f527231d01d5 selinux: fast status update interface (/selinux/status) Signed-off-by: KaiGai Kohei Signed-off-by: James Morris commit 8b0c543e5cb1e47a54d3ea791b8a03b9c8a715db Author: matt mooney Date: Wed Sep 22 23:50:06 2010 -0700 selinux: change to new flag variable Replace EXTRA_CFLAGS with ccflags-y. Signed-off-by: matt mooney Signed-off-by: James Morris commit 60272da0341e9eaa136e1dc072bfef72c995d851 Author: Paul Gortmaker Date: Wed Sep 15 20:14:53 2010 -0400 selinux: really fix dependency causing parallel compile failure. While the previous change to the selinux Makefile reduced the window significantly for this failure, it is still possible to see a compile failure where cpp starts processing selinux files before the auto generated flask.h file is completed. This is easily reproduced by adding the following temporary change to expose the issue everytime: - cmd_flask = scripts/selinux/genheaders/genheaders ... + cmd_flask = sleep 30 ; scripts/selinux/genheaders/genheaders ... This failure happens because the creation of the object files in the ss subdir also depends on flask.h. So simply incorporate them into the parent Makefile, as the ss/Makefile really doesn't do anything unique. With this change, compiling of all selinux files is dependent on completion of the header file generation, and this test case with the "sleep 30" now confirms it is functioning as expected. Signed-off-by: Paul Gortmaker Signed-off-by: James Morris commit ceba72a68d17ee36ef24a71b80dde39ee934ece8 Author: Paul Gortmaker Date: Mon Aug 9 17:34:25 2010 -0400 selinux: fix parallel compile error Selinux has an autogenerated file, "flask.h" which is included by two other selinux files. The current makefile has a single dependency on the first object file in the selinux-y list, assuming that will get flask.h generated before anyone looks for it, but that assumption breaks down in a "make -jN" situation and you get: selinux/selinuxfs.c:35: fatal error: flask.h: No such file or directory compilation terminated. remake[9]: *** [security/selinux/selinuxfs.o] Error 1 Since flask.h is included by security.h which in turn is included nearly everywhere, make the dependency apply to all of the selinux-y list of objs. Signed-off-by: Paul Gortmaker Signed-off-by: James Morris commit 119041672592d1890d89dd8f194bd0919d801dc8 Author: KaiGai Kohei Date: Tue Sep 14 18:28:39 2010 +0900 selinux: fast status update interface (/selinux/status) This patch provides a new /selinux/status entry which allows applications read-only mmap(2). This region reflects selinux_kernel_status structure in kernel space. struct selinux_kernel_status { u32 length; /* length of this structure */ u32 sequence; /* sequence number of seqlock logic */ u32 enforcing; /* current setting of enforcing mode */ u32 policyload; /* times of policy reloaded */ u32 deny_unknown; /* current setting of deny_unknown */ }; When userspace object manager caches access control decisions provided by SELinux, it needs to invalidate the cache on policy reload and setenforce to keep consistency. However, the applications need to check the kernel state for each accesses on userspace avc, or launch a background worker process. In heuristic, frequency of invalidation is much less than frequency of making access control decision, so it is annoying to invoke a system call to check we don't need to invalidate the userspace cache. If we can use a background worker thread, it allows to receive invalidation messages from the kernel. But it requires us an invasive coding toward the base application in some cases; E.g, when we provide a feature performing with SELinux as a plugin module, it is unwelcome manner to launch its own worker thread from the module. If we could map /selinux/status to process memory space, application can know updates of selinux status; policy reload or setenforce. A typical application checks selinux_kernel_status::sequence when it tries to reference userspace avc. If it was changed from the last time when it checked userspace avc, it means something was updated in the kernel space. Then, the application can reset userspace avc or update current enforcing mode, without any system call invocations. This sequence number is updated according to the seqlock logic, so we need to wait for a while if it is odd number. Signed-off-by: KaiGai Kohei Acked-by: Eric Paris -- security/selinux/include/security.h | 21 ++++++ security/selinux/selinuxfs.c | 56 +++++++++++++++ security/selinux/ss/Makefile | 2 +- security/selinux/ss/services.c | 3 + security/selinux/ss/status.c | 129 +++++++++++++++++++++++++++++++++++ 5 files changed, 210 insertions(+), 1 deletions(-) Signed-off-by: James Morris commit 4b04a7cfc5ccb573ca3752429c81d37f8dd2f7c6 Author: Yong Zhang Date: Sat Aug 28 10:25:09 2010 +0800 .gitignore: ignore apparmor/rlim_names.h Signed-off-by: Yong Zhang Signed-off-by: John Johansen Signed-off-by: James Morris commit 065d78a0603cc6f8d288e96dbf761b96984b634f Author: Tetsuo Handa Date: Sat Aug 28 14:58:44 2010 +0900 LSM: Fix security_module_enable() error. We can set default LSM module to DAC (which means "enable no LSM module"). If default LSM module was set to DAC, security_module_enable() must return 0 unless overridden via boot time parameter. Signed-off-by: Tetsuo Handa Acked-by: Serge E. Hallyn Signed-off-by: James Morris commit daa6d83a2863c28197b0c7dabfdf1e0606760b78 Author: Eric Paris Date: Tue Aug 3 15:26:05 2010 -0400 selinux: type_bounds_sanity_check has a meaningless variable declaration type is not used at all, stop declaring and assigning it. Signed-off-by: Eric Paris Acked-by: Stephen Smalley Signed-off-by: James Morris commit 68eda8f59081c74a51d037cc29893bd7c9b3c2d8 Author: Dan Carpenter Date: Sun Aug 8 00:17:51 2010 +0200 tomoyo: cleanup. don't store bogus pointer If domain is NULL then &domain->list is a bogus address. Let's leave head->r.domain NULL instead of saving an unusable pointer. This is just a cleanup. The current code always checks head->r.eof before dereferencing head->r.domain. Signed-off-by: Dan Carpenter Acked-by: Tetsuo Handa commit 66f2b061546974b96b7b238a92ce89a87ecf0754 Author: FUJITA Tomonori Date: Wed Oct 20 15:55:35 2010 -0700 x86, mm: Enable ARCH_DMA_ADDR_T_64BIT with X86_64 || HIGHMEM64G Set CONFIG_ARCH_DMA_ADDR_T_64BIT when we set dma_addr_t to 64 bits in ; this allows Kconfig decisions based on this property. Signed-off-by: FUJITA Tomonori LKML-Reference: <201010202255.o9KMtZXu009370@imap1.linux-foundation.org> Acked-by: "H. Peter Anvin" Signed-off-by: Andrew Morton Signed-off-by: H. Peter Anvin commit efa4c1206eaff047c474af2136748a58eb8cc33b Author: Sage Weil Date: Mon Oct 18 14:04:31 2010 -0700 ceph: do not carry i_lock for readdir from dcache We were taking dcache_lock inside of i_lock, which introduces a dependency not found elsewhere in the kernel, complicationg the vfs locking scalability work. Since we don't actually need it here anyway, remove it. We only need i_lock to test for the I_COMPLETE flag, so be careful to do so without dcache_lock held. Signed-off-by: Sage Weil commit 61413c2f594e6b63db2b14c70c2e7d8cf02f9c00 Author: Julia Lawall Date: Sun Oct 17 21:55:21 2010 +0200 fs/ceph/xattr.c: Use kmemdup Convert a sequence of kmalloc and memcpy to use kmemdup. The semantic patch that performs this transformation is: (http://coccinelle.lip6.fr/) // @@ expression a,flag,len; expression arg,e1,e2; statement S; @@ a = - \(kmalloc\|kzalloc\)(len,flag) + kmemdup(arg,len,flag) <... when != a if (a == NULL || ...) S ...> - memcpy(a,arg,len+1); // Signed-off-by: Julia Lawall Signed-off-by: Sage Weil commit 85b5aaa624aac568b8a3a88dbe4de6628c7cc527 Author: Dan Carpenter Date: Mon Oct 11 21:15:11 2010 +0200 rbd: passing wrong variable to bvec_kunmap_irq() We should be passing "buf" here insead of "bv". This is tricky because it's not the same as kmap() and kunmap(). GCC does warn about it if you compile on i386 with CONFIG_HIGHMEM. Signed-off-by: Dan Carpenter Signed-off-by: Sage Weil commit b8d0638a98aa4a42ff322234b882487cd74e5c52 Author: Dan Carpenter Date: Mon Oct 11 21:14:23 2010 +0200 rbd: null vs ERR_PTR ceph_alloc_page_vector() returns ERR_PTR(-ENOMEM) on errors. Signed-off-by: Dan Carpenter Signed-off-by: Sage Weil commit 240634e9b3a8ae2a9e2b7effeea3b9a5b30d68fb Author: Sage Weil Date: Tue Oct 5 12:03:23 2010 -0700 ceph: fix num_pages_free accounting in pagelist Decrement the free page counter when removing a page from the free_list. Signed-off-by: Sage Weil commit 571dba52a34015a5a7aa5d480a86936878444a6f Author: Greg Farnum Date: Fri Sep 24 14:56:40 2010 -0700 ceph: add CEPH_MDS_OP_SETDIRLAYOUT and associated ioctl. Signed-off-by: Sage Weil commit 010e3b48fca57920557d2b80b83f8b2899fb5d1e Author: Yehuda Sadeh Date: Thu Sep 30 11:58:31 2010 -0700 ceph: don't crash when passed bad mount options This only happened when parse_extra_token was not passed to ceph_parse_option() (hence, only happened in rbd). Signed-off-by: Yehuda Sadeh commit 6f453ed6c07dbed83b368269c9c0fb170866ee71 Author: Randy Dunlap Date: Tue Sep 28 09:53:10 2010 -0700 ceph: fix debugfs warnings Include "super.h" outside of CONFIG_DEBUG_FS to eliminate a compiler warning: fs/ceph/debugfs.c:266: warning: 'struct ceph_fs_client' declared inside parameter list fs/ceph/debugfs.c:266: warning: its scope is only this definition or declaration, which is probably not what you want fs/ceph/debugfs.c:271: warning: 'struct ceph_fs_client' declared inside parameter list Signed-off-by: Randy Dunlap Signed-off-by: Yehuda Sadeh commit f4cf3deef4c474381e8fee2e6099d49edd9105cb Author: Yehuda Sadeh Date: Mon Sep 27 10:51:53 2010 -0700 block: rbd: removing unnecessary test rbd_get_segment() can't return a negative value, we don't need to check the return output. Signed-off-by: Yehuda Sadeh commit 28f259b7cd78eb29d38b7ae6b475d656e08fd348 Author: Vasiliy Kulikov Date: Sun Sep 26 12:59:37 2010 +0400 block: rbd: fixed may leaks rbd_client_create() doesn't free rbdc, this leads to many leaks. seg_len in rbd_do_op() is unsigned, so (seg_len < 0) makes no sense. Also if fixed check fails then seg_name is leaked. Signed-off-by: Vasiliy Kulikov Signed-off-by: Yehuda Sadeh commit 496e59553c51ce18acc836de070106b583926b87 Author: Sage Weil Date: Wed Sep 22 19:57:10 2010 -0700 ceph: switch from BKL to lock_flocks() Switch from using the BKL explicitly to the new lock_flocks() interface. Eventually this will turn into a spinlock. Signed-off-by: Sage Weil commit fca4451acfdcf894154e4809529ca28a09db88ff Author: Greg Farnum Date: Fri Sep 17 10:24:02 2010 -0700 ceph: preallocate flock state without locks held When the lock_kernel() turns into lock_flocks() and a spinlock, we won't be able to do allocations with the lock held. Preallocate space without the lock, and retry if the lock state changes out from underneath us. Signed-off-by: Greg Farnum Signed-off-by: Sage Weil commit ac0b74d8a1ced8ea86147467daf06b15b130dd94 Author: Greg Farnum Date: Fri Sep 17 10:10:55 2010 -0700 ceph: add pagelist_reserve, pagelist_truncate, pagelist_set_cursor These facilitate preallocation of pages so that we can encode into the pagelist in an atomic context. Signed-off-by: Greg Farnum Signed-off-by: Sage Weil commit 18a38193efcaac1fb3c94ad8fa04bb117850a3c2 Author: Sage Weil Date: Fri Sep 17 10:46:44 2010 -0700 ceph: use mapping->nrpages to determine if mapping is empty This is simpler and faster. Signed-off-by: Sage Weil commit 93afd449aa3c0430ef409c13e1cb2b3f0458fc10 Author: Sage Weil Date: Fri Sep 17 08:38:25 2010 -0700 ceph: only invalidate on check_caps if we actually have pages The i_rdcache_gen value only implies we MAY have cached pages; actually check the mapping to see if it's worth bothering with an invalidate. Signed-off-by: Sage Weil commit 4c32f5dda5ffe23687a55da1538b7cc426710d1a Author: Sage Weil Date: Tue Aug 24 16:27:36 2010 -0700 ceph: do not hide .snap in root directory Snaps in the root directory are now supported by the MDS, and harmless on older versions. Signed-off-by: Sage Weil commit 602adf400201636e95c3fed9f31fba54a3d7e844 Author: Yehuda Sadeh Date: Thu Aug 12 16:11:25 2010 -0700 rbd: introduce rados block device (rbd), based on libceph The rados block device (rbd), based on osdblk, creates a block device that is backed by objects stored in the Ceph distributed object storage cluster. Each device consists of a single metadata object and data striped over many data objects. The rbd driver supports read-only snapshots. Signed-off-by: Yehuda Sadeh Signed-off-by: Sage Weil commit 3d14c5d2b6e15c21d8e5467dc62d33127c23a644 Author: Yehuda Sadeh Date: Tue Apr 6 15:14:15 2010 -0700 ceph: factor out libceph from Ceph file system This factors out protocol and low-level storage parts of ceph into a separate libceph module living in net/ceph and include/linux/ceph. This is mostly a matter of moving files around. However, a few key pieces of the interface change as well: - ceph_client becomes ceph_fs_client and ceph_client, where the latter captures the mon and osd clients, and the fs_client gets the mds client and file system specific pieces. - Mount option parsing and debugfs setup is correspondingly broken into two pieces. - The mon client gets a generic handler callback for otherwise unknown messages (mds map, in this case). - The basic supported/required feature bits can be expanded (and are by ceph_fs_client). No functional change, aside from some subtle error handling cases that got cleaned up in the refactoring process. Signed-off-by: Sage Weil commit ae1533b62b3369e6ae32338f4a77d64d0e88f676 Author: Yehuda Sadeh Date: Tue May 18 16:38:08 2010 -0700 ceph-rbd: osdc support for osd call and rollback operations This will be used for rbd snapshots administration. Signed-off-by: Yehuda Sadeh commit 68b4476b0bc13fef18266b4140309a30e86739d2 Author: Yehuda Sadeh Date: Tue Apr 6 15:01:27 2010 -0700 ceph: messenger and osdc changes for rbd Allow the messenger to send/receive data in a bio. This is added so that we wouldn't need to copy the data into pages or some other buffer when doing IO for an rbd block device. We can now have trailing variable sized data for osd ops. Also osd ops encoding is more modular. Signed-off-by: Yehuda Sadeh Signed-off-by: Sage Weil commit 3499e8a5d4dbb083324efd942e2c4fb7eb65f27c Author: Yehuda Sadeh Date: Tue Apr 6 14:51:47 2010 -0700 ceph: refactor osdc requests creation functions The osd requests creation are being decoupled from the vino parameter, allowing clients using the osd to use other arbitrary object names that are not necessarily vino based. Also, calc_raw_layout now takes a snap id. Signed-off-by: Yehuda Sadeh Signed-off-by: Sage Weil commit 7669a2c95e502a77f93f27e5449fc93a00d588b6 Author: Yehuda Sadeh Date: Mon May 17 12:31:35 2010 -0700 ceph: lookup pool in osdmap by name Implement a pool lookup by name. This will be used by rbd. Signed-off-by: Yehuda Sadeh Signed-off-by: Sage Weil commit 932967202182743c01a2eee4bdfa2c42697bc586 Author: Shaohua Li Date: Wed Oct 20 11:07:03 2010 +0800 x86: Spread tlb flush vector between nodes Currently flush tlb vector allocation is based on below equation: sender = smp_processor_id() % 8 This isn't optimal, CPUs from different node can have the same vector, this causes a lot of lock contention. Instead, we can assign the same vectors to CPUs from the same node, while different node has different vectors. This has below advantages: a. if there is lock contention, the lock contention is between CPUs from one node. This should be much cheaper than the contention between nodes. b. completely avoid lock contention between nodes. This especially benefits kswapd, which is the biggest user of tlb flush, since kswapd sets its affinity to specific node. In my test, this could reduce > 20% CPU overhead in extreme case.The test machine has 4 nodes and each node has 16 CPUs. I then bind each node's kswapd to the first CPU of the node. I run a workload with 4 sequential mmap file read thread. The files are empty sparse file. This workload will trigger a lot of page reclaim and tlbflush. The kswapd bind is to easy trigger the extreme tlb flush lock contention because otherwise kswapd keeps migrating between CPUs of a node and I can't get stable result. Sure in real workload, we can't always see so big tlb flush lock contention, but it's possible. [ hpa: folded in fix from Eric Dumazet to use this_cpu_read() ] Signed-off-by: Shaohua Li LKML-Reference: <1287544023.4571.8.camel@sli10-conroe.sh.intel.com> Cc: Eric Dumazet Signed-off-by: H. Peter Anvin commit c957ef2c59e952803766ddc22e89981ab534606f Author: Shaohua Li Date: Wed Oct 20 11:07:02 2010 +0800 percpu: Introduce a read-mostly percpu API Add a new readmostly percpu section and API. This can be used to avoid dirtying data lines which are generally not written to, which is especially important for data which may be accessed by processors other than the one for which the percpu area belongs to. [ hpa: moved it *after* the page-aligned section, for obvious reasons. ] Signed-off-by: Shaohua Li LKML-Reference: <1287544022.4571.7.camel@sli10-conroe.sh.intel.com> Cc: Eric Dumazet Signed-off-by: H. Peter Anvin commit f01f7c56a1425b9749a99af821e1de334fb64d7e Author: Borislav Petkov Date: Tue Oct 19 22:17:37 2010 +0000 x86, mm: Fix incorrect data type in vmalloc_sync_all() arch/x86/mm/fault.c: In function 'vmalloc_sync_all': arch/x86/mm/fault.c:238: warning: assignment makes integer from pointer without a cast introduced by 617d34d9e5d8326ec8f188c616aa06ac59d083fe. Signed-off-by: Borislav Petkov LKML-Reference: <20101020103642.GA3135@kryptos.osrc.amd.com> Signed-off-by: H. Peter Anvin commit 2764c500be0c1f057349ee6c81557239de060f87 Author: Ilkka Koskinen Date: Tue Oct 19 17:07:31 2010 +0300 spi/omap2_mcspi: Verify TX reg is empty after TX only xfer with DMA In case of TX only with DMA, the driver assumes that the data has been transferred once DMA callback in invoked. However, SPI's shift register may still contain data. Thus, the driver is supposed to verify that the register is empty and the end of the SPI transfer has been reached. Signed-off-by: Ilkka Koskinen Tested-by: Tuomas Katila Acked-by: Tony Lindgren Signed-off-by: Grant Likely commit e1993ed6420afd4421336d75e73641f75da87a7f Author: Jason Wang Date: Tue Oct 19 18:03:27 2010 +0800 spi/omap2_mcspi: disable channel after TX_ONLY transfer in PIO mode In the TX_ONLY transfer, the SPI controller also receives data simultaneously and saves them in the rx register. After the TX_ONLY transfer, the rx register will hold the random data received during the last tx transaction. If the direct following transfer is RX_ONLY, this random data has the possibility to affect this transfer like this: When the SPI controller is changed from TX_ONLY to RX_ONLY, the random data makes the rx register full immediately and triggers a dummy write automatically(in SPI RX_ONLY transfers, we need a dummy write to trigger the first transaction). So the first data received in the RX_ONLY transfer will be that random data instead of something meaningful. We can avoid this by inserting a Disable/Re-enable toggle of the channel after the TX_ONLY transfer, since it purges the rx register. Signed-off-by: Jason Wang Tested-by: Grazvydas Ignotas Acked-by: Tony Lindgren Signed-off-by: Grant Likely commit 6451d7783ba5ff24eb1a544eaa6665b890f30466 Author: Nicolas Pitre Date: Thu Oct 14 22:21:46 2010 -0400 arm: remove machine_desc.io_pg_offst and .phys_io Since we're now using addruart to establish the debug mapping, we can remove the io_pg_offst and phys_io members of struct machine_desc. The various declarations were removed using the following script: grep -rl MACHINE_START arch/arm | xargs \ sed -i '/MACHINE_START/,/MACHINE_END/ { /\.\(phys_io\|io_pg_offst\)/d }' [ Initial patch was from Jeremy Kerr, example script from Russell King ] Signed-off-by: Nicolas Pitre Acked-by: Eric Miao commit c293393faa8e11a5a80a9e358718432b8697f451 Author: Jeremy Kerr Date: Wed Jul 7 11:19:48 2010 +0800 arm: use addruart macro to establish debug mappings Since we can get both physical and virtual addresses from the addruart macro, we can use this to establish the debug mappings. In the case of CONFIG_DEBUG_ICEDCC, we don't need any mappings, but may still need to setup r7 correctly. Incorporating ASM changes from Nicolas Pitre . Signed-off-by: Jeremy Kerr Tested-by: Kevin Hilman commit 0ea1293009826da45e1019f45dfde1e557bb30df Author: Jeremy Kerr Date: Tue Jul 6 18:30:06 2010 +0800 arm: return both physical and virtual addresses from addruart Rather than checking the MMU status in every instance of addruart, do it once in kernel/debug.S, and change the existing addruart macros to return both physical and virtual addresses. The main debug code can then select the appropriate address to use. This will also allow us to retreive the address of a uart for the MMU state that we're not current in. Updated with fixes for OMAP from Jason Wang and Tony Lindgren , and fix for versatile express from Lorenzo Pieralisi . Signed-off-by: Jeremy Kerr Signed-off-by: Lorenzo Pieralisi Signed-off-by: Jason Wang Signed-off-by: Tony Lindgren Tested-by: Kevin Hilman commit 1ea64615601229f0dc16dee91dc5b50216411baa Author: Jeremy Kerr Date: Wed Jul 21 10:40:50 2010 +0200 arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC We have the same (empty) macro for all IDEDCC flavours, so consolidate it to one. Signed-off-by: Jeremy Kerr commit d71e3eb5894dbb626dc7e28cfd4f33ebee9a739a Author: Nicolas Pitre Date: Thu Oct 14 22:37:52 2010 -0400 ARM: make struct machine_desc definition coherent with its comment As mentioned in the comment right at the top, the first four fields are directly accessed by assembly code in head.S. Move nr_irqs so the comment is true again. Signed-off-by: Nicolas Pitre commit 27afdf2008da0b8878a73e32e4eb12381b84e224 Author: Robert Richter Date: Wed Oct 6 12:27:54 2010 +0200 apic, x86: Use BIOS settings for IBS and MCE threshold interrupt LVT offsets We want the BIOS to setup the EILVT APIC registers. The offsets were hardcoded and BIOS settings were overwritten by the OS. Now, the subsystems for MCE threshold and IBS determine the LVT offset from the registers the BIOS has setup. If the BIOS setup is buggy on a family 10h system, a workaround enables IBS. If the OS determines an invalid register setup, a "[Firmware Bug]: " error message is reported. We need this change also for upcomming cpu families. Signed-off-by: Robert Richter LKML-Reference: <1286360874-1471-3-git-send-email-robert.richter@amd.com> Signed-off-by: Ingo Molnar commit a68c439b1966c91f0ef474e2bf275d6792312726 Author: Robert Richter Date: Wed Oct 6 12:27:53 2010 +0200 apic, x86: Check if EILVT APIC registers are available (AMD only) This patch implements checks for the availability of LVT entries (APIC500-530) and reserves it if used. The check becomes necessary since we want to let the BIOS provide the LVT offsets. The offsets should be determined by the subsystems using it like those for MCE threshold or IBS. On K8 only offset 0 (APIC500) and MCE interrupts are supported. Beginning with family 10h at least 4 offsets are available. Since offsets must be consistent for all cores, we keep track of the LVT offsets in software and reserve the offset for the same vector also to be used on other cores. An offset is freed by setting the entry to APIC_EILVT_MASKED. If the BIOS is right, there should be no conflicts. Otherwise a "[Firmware Bug]: ..." error message is generated. However, if software does not properly determines the offsets, it is not necessarily a BIOS bug. Signed-off-by: Robert Richter LKML-Reference: <1286360874-1471-2-git-send-email-robert.richter@amd.com> Signed-off-by: Ingo Molnar commit 14d4962dc863ab42e898d66d4837aa6c3afedc3b Merge: 9717967 2b666ca Author: Ingo Molnar Date: Wed Oct 20 04:38:56 2010 +0200 Merge branch 'linus' into irq/core Merge reason: update to almost-final-.36 Signed-off-by: Ingo Molnar commit 9c034392533f3e9f00656d5c58478cff2560ef81 Author: Rafael J. Wysocki Date: Tue Oct 19 23:42:49 2010 +0200 PM / Wakeup: Show wakeup sources statistics in debugfs There may be wakeup sources that aren't associated with any devices and their statistics information won't be available from sysfs. Also, for debugging purposes it is convenient to have all of the wakeup sources statistics available from one place. For these reasons, introduce new file "wakeup_sources" in debugfs containing those statistics. Signed-off-by: Rafael J. Wysocki Acked-by: Greg Kroah-Hartman commit 809b4e00baf006a990a73329ba381d536c6fa277 Merge: a0a5568 79a94c3 Author: Russell King Date: Tue Oct 19 22:06:36 2010 +0100 Merge branch 'devel-stable' into devel commit 79a94c3538bda6869d7bb150b5e02dd3a72314dd Merge: f779b7d f1de161 Author: Russell King Date: Tue Oct 19 22:04:42 2010 +0100 Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6 into devel-stable commit 617d34d9e5d8326ec8f188c616aa06ac59d083fe Author: Jeremy Fitzhardinge Date: Tue Sep 21 12:01:51 2010 -0700 x86, mm: Hold mm->page_table_lock while doing vmalloc_sync Take mm->page_table_lock while syncing the vmalloc region. This prevents a race with the Xen pagetable pin/unpin code, which expects that the page_table_lock is already held. If this race occurs, then Xen can see an inconsistent page type (a page can either be read/write or a pagetable page, and pin/unpin converts it between them), which will cause either the pin or the set_p[gm]d to fail; either will crash the kernel. vmalloc_sync_all() should be called rarely, so this extra use of page_table_lock should not interfere with its normal users. The mm pointer is stashed in the pgd page's index field, as that won't be otherwise used for pgds. Reported-by: Ian Campbell Originally-by: Jan Beulich LKML-Reference: <4CB88A4C.1080305@goop.org> Signed-off-by: Jeremy Fitzhardinge Signed-off-by: H. Peter Anvin commit 44235dcde416104b8e1db7606c283f4c0149c760 Author: Jeremy Fitzhardinge Date: Thu Oct 14 17:04:59 2010 -0700 x86, mm: Fix bogus whitespace in sync_global_pgds() Whitespace cleanup only. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: H. Peter Anvin commit f779b7dd3259ec138c7aba793f0602b20262af83 Merge: 3c00079 fe0cdec Author: Russell King Date: Tue Oct 19 20:12:24 2010 +0100 Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into devel-stable Conflicts: arch/arm/mach-at91/include/mach/system.h arch/arm/mach-imx/mach-cpuimx27.c AT91 conflict resolution: Acked-by: Anders Larsen IMX conflict resolution confirmed by Uwe Kleine-König. commit 3c00079b31f910309b30ed5c2fd2b7a2d86bba60 Merge: 7f9c7e2 88b5227 Author: Russell King Date: Tue Oct 19 19:55:59 2010 +0100 Merge branch 'msm-core' of git://codeaurora.org/quic/kernel/dwalker/linux-msm into devel-stable commit 750ed158bf6c782d2813da1bca2c824365a0b777 Merge: 3f7edb1 7e40798 Author: Ingo Molnar Date: Tue Oct 19 20:41:38 2010 +0200 Merge branch 'tip/perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit f1de1613da54f754d5d2bbf79fcacbd5ed965537 Author: Fabio Estevam Date: Thu Oct 14 08:38:04 2010 -0700 eukrea_mbimxsd-baseboard: Pass the correct GPIO to gpio_free Pass the correct GPIO to gpio_free Signed-off-by: Fabio Estevam Acked-by: Eric Bénard Signed-off-by: Sascha Hauer commit 4e6898a731c7060facc837f2ab2cb27205228c25 Author: Eric Bénard Date: Fri Oct 8 10:37:40 2010 +0200 cpuimx27: fix compile when ULPI is selected without this patch we get : arch/arm/mach-imx/built-in.o: In function `eukrea_cpuimx27_init': eukrea_mbimx27-baseboard.c:(.init.text+0x44c): undefined reference to `mxc_ulpi_access_ops' Signed-off-by: Eric Bénard Signed-off-by: Uwe Kleine-König commit c0f832bca9672831fc5bdab1a0f93f80592dac4c Author: Eric Bénard Date: Fri Oct 15 01:00:01 2010 +0200 mach-pcm037_eet: fix compile errors this patch fix the following errors : arch/arm/mach-mx3/mach-pcm037_eet.c:62: error: implicit declaration of function 'MXC_SPI_CS' arch/arm/mach-mx3/mach-pcm037_eet.c:185: error: implicit declaration of function 'imx35_add_spi_imx0' from the Kconfig pcm037 is i.MX31 based and not i.MX35 so replace imx35_add_spi_imx0 by imx31_add_spi_imx0 Signed-off-by: Eric Bénard [ukl: remove unneeded #include ] Signed-off-by: Uwe Kleine-König commit d24d96e05565c9bd81becba695131b0144c01707 Author: Ian Lartey Date: Thu Oct 14 12:07:33 2010 +0100 Fixing ethernet driver compilation error for i.MX31 ADS board This is only a partial revert of "ARM: mx3/mx31ads: fold board header in its only user" [commit ccfa7c269843001077df02d98918c6c9bde91395)] As some of the the board defines are also used in the cs89x0 ethernet driver by the i.MX31 ADS. Signed-off-by: Ian Lartey Signed-off-by: Sascha Hauer commit a3927416bf7f5cc9a0cfddab1e36035738bc287c Author: Eric Bénard Date: Tue Oct 12 16:29:20 2010 +0200 cpuimx51: update board support add NAND, SDHC Signed-off-by: Eric Bénard commit 70b1726820ba85febfd067471534a19a9902ea60 Author: Eric Bénard Date: Tue Oct 12 16:12:36 2010 +0200 mx5: add cpuimx51sd module and its baseboard Signed-off-by: Eric Bénard commit b545d9ed1b92f169d0326afac091328be5e76620 Author: Eric Bénard Date: Tue Oct 12 14:16:16 2010 +0200 iomux-mx51: fix GPIO_1_xx 's IOMUX configuration this patch really configure the GPIO in GPIO mode. Signed-off-by: Eric Bénard commit c074512905c0a08be2a91670bdd69cd1de4e2823 Author: Eric Bénard Date: Tue Oct 12 13:12:32 2010 +0200 imx-esdhc: update devices registration Tested on i.MX25 and i.MX35 and i.MX51 Signed-off-by: Eric Bénard commit 6a001b886c8c4ff7477a3692a2d87a9dbdd860ee Author: Eric Bénard Date: Mon Oct 11 17:59:47 2010 +0200 mx51: add resources for SD/MMC on i.MX51 the attached patch allows SD to work on i.MX51 with Wolfram's drivers Tested on i.MX51. Based on original patch from: Richard Zhu Signed-off-by: Eric Bénard commit 217f580ba643eff91bac04a474a7db6d40863d5b Author: Eric Bénard Date: Tue Oct 12 12:29:37 2010 +0200 iomux-mx51: fix SD1 and SD2's iomux configuration Based on original patch from: Richard Zhu Signed-off-by: Eric Bénard commit 7e5a747113cabb71ec855411bb7666e8963a75b7 Author: Eric Bénard Date: Tue Oct 12 12:26:32 2010 +0200 clock-mx51: rename CLOCK1 to CLOCK_CCGR for better readability Signed-off-by: Eric Bénard commit 0076232d54b3fb2908c7fcf19bf699c4e8376213 Author: Eric Bénard Date: Mon Oct 11 21:55:24 2010 +0200 clock-mx51: factorize clk_set_parent and clk_get_rate Signed-off-by: Eric Bénard commit c0550c4bf1a6b868ac98b63f88ffd1a7ebdbeaeb Author: Eric Bénard Date: Fri Oct 8 10:56:10 2010 +0200 eukrea_mbimxsd: add support for DVI displays Signed-off-by: Eric Bénard commit 52d084fc90f754a7aed7e7d6e1484be45454aba3 Author: Eric Bénard Date: Tue Oct 5 18:02:30 2010 +0200 cpuimx25 & cpuimx35: fix OTG port registration in host mode the PHY is UTMI so don't create an ULPI viewpoint. Signed-off-by: Eric Bénard commit 4a66b5d980a244c403c3f6cb42c762ef5c112956 Author: Eric Bénard Date: Tue Oct 5 11:20:21 2010 +0200 i.MX31 and i.MX35 : fix errate TLSbo65953 and ENGcm09472 Without this exiting WFI can result in cache corruption. Code taken from Freescale's 2.6.27 BSP and tested on i.MX35 Signed-off-by: Eric Bénard commit ec4aac206b65d9764d601a7ee433e161878623b9 Author: Eric Bénard Date: Tue Oct 12 14:08:42 2010 +0200 mx25: fix compile error in platform-imx-dma.c this patch fix the following errors : arch/arm/plat-mxc/devices/platform-imx-dma.c:44: error: ‘MX25_SDMA_BASE_ADDR’ undeclared here (not in a function) arch/arm/plat-mxc/devices/platform-imx-dma.c:44: error: ‘MX25_INT_SDMA’ undeclared here (not in a function) Signed-off-by: Eric Bénard Acked-by: Uwe Kleine-König commit e482b3bee66d627356904746c217f8f1bf891e60 Author: Eric Bénard Date: Tue Oct 12 19:26:34 2010 +0200 mx25: fix clock's calculation * get_rate_arm : when 400MHz clock is selected (cctl & 1<<14), ARM clock is 400MHz (MPLL * 3 / 4) and not 800MHz * get_rate_per : peripherals's clock is derived from AHB and not from IPG (ref manual : figure 5-1) * can2_clk : use the correct ID * without this patch, peripherals getting their clock from PER clocks work fine because of the 2 errors which fix themselves (ARM clock x 2 and per clock actually based on IPG which is AHB/2) but flexcan can't work as it gets its clock from IPG and thus calculates its bitrate using a reference value which is twice what it really is. Signed-off-by: Eric Bénard commit 6136a6ddc9db50d909344bb7e6f45dbe631f2e29 Author: Marc Kleine-Budde Date: Wed Oct 13 10:00:10 2010 +0200 ARM: imx: add lost 3rd imx-i2c device for mx35 During the reorganisation of the imx-i2c devices (in 64de5ec168d9743903e6ec482c3e9f37af49f9c1) the 3rd imx-i2c device for the mx35 got lost. This patch adds the missing device. Signed-off-by: Marc Kleine-Budde Acked-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 68a2f7301ae3a97bf7b1713d20de7618c9b9a5f5 Author: Dinh Nguyen Date: Tue Oct 12 11:29:01 2010 -0500 ARM: imx: Add iram allocator functions Add IRAM(Internal RAM) allocation functions using GENERIC_ALLOCATOR. The allocation size is 4KB multiples to guarantee alignment. The idea for these functions is for i.MX platforms to use them to dynamically allocate IRAM usage. Applies on 2.6.36-rc7 Signed-off-by: Dinh Nguyen Reviewed-by: Amit Kucheria Acked-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 7e40798f406fe73f9bac496a390daabd8768a8f7 Author: Steven Rostedt Date: Tue Oct 19 10:56:19 2010 -0400 tracing: Fix compile issue for trace_sched_wakeup.c The function start_func_tracer() was incorrectly added in the #ifdef CONFIG_FUNCTION_TRACER condition, but is still used even when function tracing is not enabled. The calls to register_ftrace_function() and register_ftrace_graph() become nops (and their arguments are even ignored), thus there is no reason to hide start_func_tracer() when function tracing is not enabled. Reported-by: Ingo Molnar Signed-off-by: Steven Rostedt commit 3f7edb1656e5beba2b5e617d31e4064e1eed0bc0 Author: Heiko Carstens Date: Tue Oct 12 11:03:44 2010 +0200 [S390] hardirq: remove pointless header file includes Remove a couple of pointless header file includes. Fixes a compile bug caused by header file include dependencies with "irq: Add tracepoint to softirq_raise" within linux-next. Reported-by: Sachin Sant Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky [ cherry-picked from the s390 tree to fix "2bf2160: irq: Add tracepoint to softirq_raise" ] Signed-off-by: Ingo Molnar commit 3c4ea5b4985ecf831e22034d5d5db6e6391f3911 Author: Tony Luck Date: Mon Sep 20 13:15:07 2010 -0700 [IA64] Move local_softirq_pending() definition Ugly #include dependencies. We need to have local_softirq_pending() defined before it gets used in . But provides the definition *after* this #include chain: Signed-off-by: Tony Luck [ cherry-picked from the ia64 tree to fix "2bf2160: irq: Add tracepoint to softirq_raise" ] Signed-off-by: Ingo Molnar commit 7ada876a8703f23befbb20a7465a702ee39b1704 Author: Darren Hart Date: Sun Oct 17 08:35:04 2010 -0700 futex: Fix errors in nested key ref-counting futex_wait() is leaking key references due to futex_wait_setup() acquiring an additional reference via the queue_lock() routine. The nested key ref-counting has been masking bugs and complicating code analysis. queue_lock() is only called with a previously ref-counted key, so remove the additional ref-counting from the queue_(un)lock() functions. Also futex_wait_requeue_pi() drops one key reference too many in unqueue_me_pi(). Remove the key reference handling from unqueue_me_pi(). This was paired with a queue_lock() in futex_lock_pi(), so the count remains unchanged. Document remaining nested key ref-counting sites. Signed-off-by: Darren Hart Reported-and-tested-by: Matthieu Fertré Reported-by: Louis Rilling Cc: Peter Zijlstra Cc: Eric Dumazet Cc: John Kacur Cc: Rusty Russell LKML-Reference: <4CBB17A8.70401@linux.intel.com> Signed-off-by: Thomas Gleixner Cc: stable@kernel.org commit 9717967c4b704ce344c954afb5bb160aa9c01c34 Author: Yinghai Lu Date: Mon Oct 18 13:47:48 2010 -0700 x86: ioapic: Call free_irte only if interrupt remapping enabled On a system that support intr-rempping when booting with "intremap=off" [ 177.895501] BUG: unable to handle kernel NULL pointer dereference at 00000000000000f8 [ 177.913316] IP: [] free_irte+0x47/0xc0 ... [ 178.173326] Call Trace: [ 178.173574] [] destroy_irq+0x3a/0x75 [ 178.192934] [] arch_teardown_msi_irq+0xe/0x10 [ 178.193418] [] arch_teardown_msi_irqs+0x56/0x7f [ 178.213021] [] free_msi_irqs+0x8d/0xeb Call free_irte only when interrupt remapping is enabled. Signed-off-by: Yinghai Lu LKML-Reference: <4CBCB274.7010108@kernel.org> Signed-off-by: Thomas Gleixner commit 57fa7214330be2e292ddb1402834ff0b221ef29a Author: Paul Mackerras Date: Tue Oct 19 16:55:35 2010 +1100 perf, powerpc: Fix power_pmu_event_init to not use event->ctx Commit c3f00c70 ("perf: Separate find_get_context() from event initialization") changed the generic perf_event code to call perf_event_alloc, which calls the arch-specific event_init code, before looking up the context for the new event. Unfortunately, power_pmu_event_init uses event->ctx->task to see whether the new event is a per-task event or a system-wide event, and thus crashes since event->ctx is NULL at the point where power_pmu_event_init gets called. (The reason it needs to know whether it is a per-task event is because there are some hardware events on Power systems which only count when the processor is not idle, and there are some fixed-function counters which count such events. For example, the "run cycles" event counts cycles when the processor is not idle. If the user asks to count cycles, we can use "run cycles" if this is a per-task event, since the processor is running when the task is running, by definition. We can't use "run cycles" if the user asks for "cycles" on a system-wide counter.) Fortunately the information we need is in the event->attach_state field, so we just use that instead. Signed-off-by: Paul Mackerras Cc: Benjamin Herrenschmidt Cc: Peter Zijlstra Cc: Frederic Weisbecker LKML-Reference: <20101019055535.GA10398@drongo> Signed-off-by: Ingo Molnar Reported-by: Alexey Kardashevskiy Signed-off-by: Ingo Molnar commit 1fa41266e9d20f6d66f9d7d067d9825e2c1002b9 Merge: ebf31f5 d7b4d6d Author: Ingo Molnar Date: Tue Oct 19 08:21:10 2010 +0200 Merge branch 'tip/perf/recordmcount-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit fe0cdec8bad919fd91cd344123906a55f3857209 Author: Kukjin Kim Date: Thu Sep 9 21:57:29 2010 +0900 ARM: S5PV310: Fix build error on GPIO map This patch fixes build error about GPIO address due to conflict of commit 4d914705 and 19a2c065. - commit 4d914705: Fix on GPIO base addresses - commit 19a2c065: Moves initial map for merging S5P64X0 Signed-off-by: Kukjin Kim commit a0a55682b83fd5f012afadcf415b030d7424ae68 Merge: 23beab7 865a4fa Author: Russell King Date: Mon Oct 18 22:34:47 2010 +0100 Merge branch 'hotplug' into devel Conflicts: arch/arm/kernel/head-common.S commit 23beab76b490172a9ff3d52843e4d27a35b2a4c6 Merge: 8ed9059 5fb31a9 80be7a7 19852e5 29e29f2 725343f 9e978f0 f3af03d 5333a3d Author: Russell King Date: Mon Oct 18 22:34:25 2010 +0100 Merge branches 'at91', 'dcache', 'ftrace', 'hwbpt', 'misc', 'mmci', 's3c', 'st-ux' and 'unwind' into devel commit d7b4d6de57d414a6384376880f2caf7125a45494 Author: Steven Rostedt Date: Mon Oct 18 14:42:00 2010 -0400 ftrace: Remove recursion between recordmcount and scripts/mod/empty When DYNAMIC_FTRACE is enabled and we use the C version of recordmcount, all objects are run through the recordmcount program to create a separate section that stores all the callers of mcount. The build process has a special file: scripts/mod/empty.o. This is built from empty.c which is literally an empty file (except for a single comment). This file is used to find information about the target elf format, like endianness and word size. The problem comes up when we need to build recordmcount. The build process requires that empty.o is built first. The build rules for empty.o will try to execute recordmcount on the empty.o file. We get an error that recordmcount does not exist. To avoid this recursion, the build file will skip running recordmcount if the file that it is building is script/mod/empty.o. [ extra comment Suggested-by: Sam Ravnborg ] Reported-by: Ingo Molnar Tested-by: Ingo Molnar Cc: Michal Marek Cc: linux-kbuild@vger.kernel.org Signed-off-by: Steven Rostedt commit f3af03de0b1c42225d492d874d9afeed0c02568c Author: Srinidhi Kasagar Date: Thu Oct 14 08:12:40 2010 +0100 ARM: 6441/1: ux500: The platform is not just based on early drop silicon version. Update Kconfig text accordingly. Signed-off-by: srinidhi kasagar Acked-by: Linus Walleij Signed-off-by: Russell King commit b7dadc38797584f6203386da1947ed5edf516646 Author: Ingo Molnar Date: Mon Oct 18 20:00:37 2010 +0200 sched: Export account_system_vtime() KVM uses it for example: ERROR: "account_system_vtime" [arch/x86/kvm/kvm.ko] undefined! Cc: Venkatesh Pallipadi Cc: Peter Zijlstra LKML-Reference: <1286237003-12406-3-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit d267f87fb8179c6dba03d08b91952e81bc3723c7 Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:23 2010 -0700 sched: Call tick_check_idle before __irq_enter When CPU is idle and on first interrupt, irq_enter calls tick_check_idle() to notify interruption from idle. But, there is a problem if this call is done after __irq_enter, as all routines in __irq_enter may find stale time due to yet to be done tick_check_idle. Specifically, trace calls in __irq_enter when they use global clock and also account_system_vtime change in this patch as it wants to use sched_clock_cpu() to do proper irq timing. But, tick_check_idle was moved after __irq_enter intentionally to prevent problem of unneeded ksoftirqd wakeups by the commit ee5f80a: irq: call __irq_enter() before calling the tick_idle_check Impact: avoid spurious ksoftirqd wakeups Moving tick_check_idle() before __irq_enter and wrapping it with local_bh_enable/disable would solve both the problems. Fixed-by: Yong Zhang Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-9-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit aa483808516ca5cacfa0e5849691f64fec25828e Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:22 2010 -0700 sched: Remove irq time from available CPU power The idea was suggested by Peter Zijlstra here: http://marc.info/?l=linux-kernel&m=127476934517534&w=2 irq time is technically not available to the tasks running on the CPU. This patch removes irq time from CPU power piggybacking on sched_rt_avg_update(). Tested this by keeping CPU X busy with a network intensive task having 75% oa a single CPU irq processing (hard+soft) on a 4-way system. And start seven cycle soakers on the system. Without this change, there will be two tasks on each CPU. With this change, there is a single task on irq busy CPU X and remaining 7 tasks are spread around among other 3 CPUs. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-8-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit 305e6835e05513406fa12820e40e4a8ecb63743c Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:21 2010 -0700 sched: Do not account irq time to current task Scheduler accounts both softirq and interrupt processing times to the currently running task. This means, if the interrupt processing was for some other task in the system, then the current task ends up being penalized as it gets shorter runtime than otherwise. Change sched task accounting to acoount only actual task time from currently running task. Now update_curr(), modifies the delta_exec to depend on rq->clock_task. Note that this change only handles CONFIG_IRQ_TIME_ACCOUNTING case. We can extend this to CONFIG_VIRT_CPU_ACCOUNTING with minimal effort. But, thats for later. This change will impact scheduling behavior in interrupt heavy conditions. Tested on a 4-way system with eth0 handled by CPU 2 and a network heavy task (nc) running on CPU 3 (and no RSS/RFS). With that I have CPU 2 spending 75%+ of its time in irq processing. CPU 3 spending around 35% time running nc task. Now, if I run another CPU intensive task on CPU 2, without this change /proc//schedstat shows 100% of time accounted to this task. With this change, it rightly shows less than 25% accounted to this task as remaining time is actually spent on irq processing. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-7-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit e82b8e4ea4f3dffe6e7939f90e78da675fcc450e Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:20 2010 -0700 x86: Add IRQ_TIME_ACCOUNTING This patch adds IRQ_TIME_ACCOUNTING option on x86 and runtime enables it when TSC is enabled. This change just enables fine grained irq time accounting, isn't used yet. Following patches use it for different purposes. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-6-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit b52bfee445d315549d41eacf2fa7c156e7d153d5 Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:19 2010 -0700 sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time s390/powerpc/ia64 have support for CONFIG_VIRT_CPU_ACCOUNTING which does the fine granularity accounting of user, system, hardirq, softirq times. Adding that option on archs like x86 will be challenging however, given the state of TSC reliability on various platforms and also the overhead it will add in syscall entry exit. Instead, add a lighter variant that only does finer accounting of hardirq and softirq times, providing precise irq times (instead of timer tick based samples). This accounting is added with a new config option CONFIG_IRQ_TIME_ACCOUNTING so that there won't be any overhead for users not interested in paying the perf penalty. This accounting is based on sched_clock, with the code being generic. So, other archs may find it useful as well. This patch just adds the core logic and does not enable this logic yet. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-5-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit 6cdd5199daf0cb7b0fcc8dca941af08492612887 Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:18 2010 -0700 sched: Add a PF flag for ksoftirqd identification To account softirq time cleanly in scheduler, we need to identify whether softirq is invoked in ksoftirqd context or softirq at hardirq tail context. Add PF_KSOFTIRQD for that purpose. As all PF flag bits are currently taken, create space by moving one of the infrequently used bits (PF_THREAD_BOUND) down in task_struct to be along with some other state fields. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-4-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit e1e10a265d28273ab8c70be19d43dcbdeead6c5a Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:17 2010 -0700 sched: Consolidate account_system_vtime extern declaration Just a minor cleanup patch that makes things easier to the following patches. No functionality change in this patch. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-3-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit 75e1056f5c57050415b64cb761a3acc35d91f013 Author: Venkatesh Pallipadi Date: Mon Oct 4 17:03:16 2010 -0700 sched: Fix softirq time accounting Peter Zijlstra found a bug in the way softirq time is accounted in VIRT_CPU_ACCOUNTING on this thread: http://lkml.indiana.edu/hypermail//linux/kernel/1009.2/01366.html The problem is, softirq processing uses local_bh_disable internally. There is no way, later in the flow, to differentiate between whether softirq is being processed or is it just that bh has been disabled. So, a hardirq when bh is disabled results in time being wrongly accounted as softirq. Looking at the code a bit more, the problem exists in !VIRT_CPU_ACCOUNTING as well. As account_system_time() in normal tick based accouting also uses softirq_count, which will be set even when not in softirq with bh disabled. Peter also suggested solution of using 2*SOFTIRQ_OFFSET as irq count for local_bh_{disable,enable} and using just SOFTIRQ_OFFSET while softirq processing. The patch below does that and adds API in_serving_softirq() which returns whether we are currently processing softirq or not. Also changes one of the usages of softirq_count in net/sched/cls_cgroup.c to in_serving_softirq. Looks like many usages of in_softirq really want in_serving_softirq. Those changes can be made individually on a case by case basis. Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1286237003-12406-2-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit 75dd321d79d495a0ee579e6249ebc38ddbb2667f Author: Nikhil Rao Date: Fri Oct 15 13:12:30 2010 -0700 sched: Drop group_capacity to 1 only if local group has extra capacity When SD_PREFER_SIBLING is set on a sched domain, drop group_capacity to 1 only if the local group has extra capacity. The extra check prevents the case where you always pull from the heaviest group when it is already under-utilized (possible with a large weight task outweighs the tasks on the system). For example, consider a 16-cpu quad-core quad-socket machine with MC and NUMA scheduling domains. Let's say we spawn 15 nice0 tasks and one nice-15 task, and each task is running on one core. In this case, we observe the following events when balancing at the NUMA domain: - find_busiest_group() will always pick the sched group containing the niced task to be the busiest group. - find_busiest_queue() will then always pick one of the cpus running the nice0 task (never picks the cpu with the nice -15 task since weighted_cpuload > imbalance). - The load balancer fails to migrate the task since it is the running task and increments sd->nr_balance_failed. - It repeats the above steps a few more times until sd->nr_balance_failed > 5, at which point it kicks off the active load balancer, wakes up the migration thread and kicks the nice 0 task off the cpu. The load balancer doesn't stop until we kick out all nice 0 tasks from the sched group, leaving you with 3 idle cpus and one cpu running the nice -15 task. When balancing at the NUMA domain, we drop sgs.group_capacity to 1 if the child domain (in this case MC) has SD_PREFER_SIBLING set. Subsequent load checks are not relevant because the niced task has a very large weight. In this patch, we add an extra condition to the "if(prefer_sibling)" check in update_sd_lb_stats(). We drop the capacity of a group only if the local group has extra capacity, ie. nr_running < group_capacity. This patch preserves the original intent of the prefer_siblings check (to spread tasks across the system in low utilization scenarios) and fixes the case above. It helps in the following ways: - In low utilization cases (where nr_tasks << nr_cpus), we still drop group_capacity down to 1 if we prefer siblings. - On very busy systems (where nr_tasks >> nr_cpus), sgs.nr_running will most likely be > sgs.group_capacity. - When balancing large weight tasks, if the local group does not have extra capacity, we do not pick the group with the niced task as the busiest group. This prevents failed balances, active migration and the under-utilization described above. Signed-off-by: Nikhil Rao Signed-off-by: Peter Zijlstra LKML-Reference: <1287173550-30365-5-git-send-email-ncrao@google.com> Signed-off-by: Ingo Molnar commit fab476228ba37907ad75216d0fd9732ada9c119e Author: Nikhil Rao Date: Fri Oct 15 13:12:29 2010 -0700 sched: Force balancing on newidle balance if local group has capacity This patch forces a load balance on a newly idle cpu when the local group has extra capacity and the busiest group does not have any. It improves system utilization when balancing tasks with a large weight differential. Under certain situations, such as a niced down task (i.e. nice = -15) in the presence of nr_cpus NICE0 tasks, the niced task lands on a sched group and kicks away other tasks because of its large weight. This leads to sub-optimal utilization of the machine. Even though the sched group has capacity, it does not pull tasks because sds.this_load >> sds.max_load, and f_b_g() returns NULL. With this patch, if the local group has extra capacity, we shortcut the checks in f_b_g() and try to pull a task over. A sched group has extra capacity if the group capacity is greater than the number of running tasks in that group. Thanks to Mike Galbraith for discussions leading to this patch and for the insight to reuse SD_NEWIDLE_BALANCE. Signed-off-by: Nikhil Rao Signed-off-by: Peter Zijlstra LKML-Reference: <1287173550-30365-4-git-send-email-ncrao@google.com> Signed-off-by: Ingo Molnar commit 2582f0eba54066b5e98ff2b27ef0cfa833b59f54 Author: Nikhil Rao Date: Wed Oct 13 12:09:36 2010 -0700 sched: Set group_imb only a task can be pulled from the busiest cpu When cycling through sched groups to determine the busiest group, set group_imb only if the busiest cpu has more than 1 runnable task. This patch fixes the case where two cpus in a group have one runnable task each, but there is a large weight differential between these two tasks. The load balancer is unable to migrate any task from this group, and hence do not consider this group to be imbalanced. Signed-off-by: Nikhil Rao Signed-off-by: Peter Zijlstra LKML-Reference: <1286996978-7007-3-git-send-email-ncrao@google.com> [ small code readability edits ] Signed-off-by: Ingo Molnar commit ef8002f6848236de5adc613063ebeabddea8a6fb Author: Nikhil Rao Date: Wed Oct 13 12:09:35 2010 -0700 sched: Do not consider SCHED_IDLE tasks to be cache hot This patch adds a check in task_hot to return if the task has SCHED_IDLE policy. SCHED_IDLE tasks have very low weight, and when run with regular workloads, are typically scheduled many milliseconds apart. There is no need to consider these tasks hot for load balancing. Signed-off-by: Nikhil Rao Signed-off-by: Peter Zijlstra LKML-Reference: <1287173550-30365-2-git-send-email-ncrao@google.com> Signed-off-by: Ingo Molnar commit ebf31f502492527e2b6b5e5cf85a4ebc7fc8a52e Author: Peter Zijlstra Date: Sun Oct 17 12:15:00 2010 +0200 jump_label: Add COND_STMT(), reducer wrappery The use of the JUMP_LABEL() construct ends up creating endless silly wrappers, create a higher level construct to reduce this clutter. Signed-off-by: Peter Zijlstra Cc: Jason Baron Cc: Steven Rostedt Cc: Arnaldo Carvalho de Melo Cc: Frederic Weisbecker Cc: Paul Mackerras LKML-Reference: Signed-off-by: Ingo Molnar commit 7e54a5a0b655734326dc78c2b5efc1eb35497bb6 Author: Peter Zijlstra Date: Thu Oct 14 22:32:45 2010 +0200 perf: Optimize sw events Acked-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit 82cd6def9806dcb6a325fb6abbc1d61388a15f6a Author: Peter Zijlstra Date: Thu Oct 14 17:57:23 2010 +0200 perf: Use jump_labels to optimize the scheduler hooks Trades a call + conditional + ret for an unconditional jmp. Acked-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra LKML-Reference: <20101014203625.501657727@chello.nl> Signed-off-by: Ingo Molnar commit 8b92538d84e50062560ba33adbaed7887b6e4a42 Author: Peter Zijlstra Date: Thu Oct 14 21:39:02 2010 +0200 jump_label: Add atomic_t interface Add an interface to allow usage of jump_labels with atomic counters. Signed-off-by: Peter Zijlstra Acked-by: Frederic Weisbecker LKML-Reference: <20101014203625.501657727@chello.nl> Signed-off-by: Ingo Molnar commit 3b6e901f839f42afb40f614418df82c08b01320a Author: Peter Zijlstra Date: Thu Oct 14 21:10:38 2010 +0200 jump_label: Use more consistent naming Now that there's still only a few users around, rename things to make them more consistent. Signed-off-by: Peter Zijlstra LKML-Reference: <20101014203625.448565169@chello.nl> Signed-off-by: Ingo Molnar commit d580ff8699e8811a9af37e9de4dea375401bdeec Author: Peter Zijlstra Date: Thu Oct 14 17:43:23 2010 +0200 perf, hw_breakpoint: Fix crash in hw_breakpoint creation hw_breakpoint creation needs to account stuff per-task to ensure there is always sufficient hardware resources to back these things due to ptrace. With the perf per pmu context changes the event initialization no longer has access to the event context, for the simple reason that we need to first find the pmu (result of initialization) before we can find the context. This makes hw_breakpoints unhappy, because it can no longer do per task accounting, cure this by frobbing a task pointer in the event::hw bits for now... Signed-off-by: Peter Zijlstra Cc: Frederic Weisbecker LKML-Reference: <20101014203625.391543667@chello.nl> Signed-off-by: Ingo Molnar commit c6be5a5cb62592d9d661899a2aa78236eb00ffa5 Author: Peter Zijlstra Date: Thu Oct 14 16:59:46 2010 +0200 perf: Find task before event alloc So that we can pass the task pointer to the event allocation, so that we can use task associated data during event initialization. Signed-off-by: Peter Zijlstra LKML-Reference: <20101014203625.340789919@chello.nl> Signed-off-by: Ingo Molnar commit e7d0bc047548d76feee6b23f7d3d9da927189a50 Author: Peter Zijlstra Date: Thu Oct 14 16:54:51 2010 +0200 perf: Fix task refcount bugs Currently it looks like find_lively_task_by_vpid() takes a task ref and relies on find_get_context() to drop it. The problem is that perf_event_create_kernel_counter() shouldn't be dropping task refs. Signed-off-by: Peter Zijlstra Acked-by: Frederic Weisbecker Acked-by: Matt Helsley LKML-Reference: <20101014203625.278436085@chello.nl> Signed-off-by: Ingo Molnar commit 74c3337c2fc6389d3a57a622a936036b6db6b2e8 Author: Peter Zijlstra Date: Fri Oct 15 11:40:29 2010 +0200 perf: Fix group moving Matt found we trigger the WARN_ON_ONCE() in perf_group_attach() when we take the move_group path in perf_event_open(). Since we cannot de-construct the group (we rely on it to move the events), we have to simply ignore the double attach. The group state is context invariant and doesn't need changing. Reported-by: Matt Fleming Signed-off-by: Peter Zijlstra LKML-Reference: <1287135757.29097.1368.camel@twins> Signed-off-by: Ingo Molnar commit e360adbe29241a0194e10e20595360dd7b98a2b3 Author: Peter Zijlstra Date: Thu Oct 14 14:01:34 2010 +0800 irq_work: Add generic hardirq context callbacks Provide a mechanism that allows running code in IRQ context. It is most useful for NMI code that needs to interact with the rest of the system -- like wakeup a task to drain buffers. Perf currently has such a mechanism, so extract that and provide it as a generic feature, independent of perf so that others may also benefit. The IRQ context callback is generated through self-IPIs where possible, or on architectures like powerpc the decrementer (the built-in timer facility) is set to generate an interrupt immediately. Architectures that don't have anything like this get to do with a callback from the timer tick. These architectures can call irq_work_run() at the tail of any IRQ handlers that might enqueue such work (like the perf IRQ handler) to avoid undue latencies in processing the work. Signed-off-by: Peter Zijlstra Acked-by: Kyle McMartin Acked-by: Martin Schwidefsky [ various fixes ] Signed-off-by: Huang Ying LKML-Reference: <1287036094.7768.291.camel@yhuang-dev> Signed-off-by: Ingo Molnar commit 8e5fc1a7320baf6076391607515dceb61319b36a Author: Stephane Eranian Date: Fri Oct 15 16:54:01 2010 +0200 perf_events: Fix transaction recovery in group_sched_in() The group_sched_in() function uses a transactional approach to schedule a group of events. In a group, either all events can be scheduled or none are. To schedule each event in, the function calls event_sched_in(). In case of error, event_sched_out() is called on each event in the group. The problem is that event_sched_out() does not completely cancel the effects of event_sched_in(). Furthermore event_sched_out() changes the state of the event as if it had run which is not true is this particular case. Those inconsistencies impact time tracking fields and may lead to events in a group not all reporting the same time_enabled and time_running values. This is demonstrated with the example below: $ task -eunhalted_core_cycles,baclears,baclears -e unhalted_core_cycles,baclears,baclears sleep 5 1946101 unhalted_core_cycles (32.85% scaling, ena=829181, run=556827) 11423 baclears (32.85% scaling, ena=829181, run=556827) 7671 baclears (0.00% scaling, ena=556827, run=556827) 2250443 unhalted_core_cycles (57.83% scaling, ena=962822, run=405995) 11705 baclears (57.83% scaling, ena=962822, run=405995) 11705 baclears (57.83% scaling, ena=962822, run=405995) Notice that in the first group, the last baclears event does not report the same timings as its siblings. This issue comes from the fact that tstamp_stopped is updated by event_sched_out() as if the event had actually run. To solve the issue, we must ensure that, in case of error, there is no change in the event state whatsoever. That means timings must remain as they were when entering group_sched_in(). To do this we defer updating tstamp_running until we know the transaction succeeded. Therefore, we have split event_sched_in() in two parts separating the update to tstamp_running. Similarly, in case of error, we do not want to update tstamp_stopped. Therefore, we have split event_sched_out() in two parts separating the update to tstamp_stopped. With this patch, we now get the following output: $ task -eunhalted_core_cycles,baclears,baclears -e unhalted_core_cycles,baclears,baclears sleep 5 2492050 unhalted_core_cycles (71.75% scaling, ena=1093330, run=308841) 11243 baclears (71.75% scaling, ena=1093330, run=308841) 11243 baclears (71.75% scaling, ena=1093330, run=308841) 1852746 unhalted_core_cycles (0.00% scaling, ena=784489, run=784489) 9253 baclears (0.00% scaling, ena=784489, run=784489) 9253 baclears (0.00% scaling, ena=784489, run=784489) Note that the uneven timing between groups is a side effect of the process spending most of its time sleeping, i.e., not enough event rotations (but that's a separate issue). Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra LKML-Reference: <4cb86b4c.41e9d80a.44e9.3e19@mx.google.com> Signed-off-by: Ingo Molnar commit ba0cef3d149ce4db293c572bf36ed352b11ce7b9 Author: Stephane Eranian Date: Fri Oct 15 15:15:01 2010 +0200 perf_events: Fix bogus AMD64 generic TLB events PERF_COUNT_HW_CACHE_DTLB:READ:MISS had a bogus umask value of 0 which counts nothing. Needed to be 0x7 (to count all possibilities). PERF_COUNT_HW_CACHE_ITLB:READ:MISS had a bogus umask value of 0 which counts nothing. Needed to be 0x3 (to count all possibilities). Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra Cc: Robert Richter Cc: # as far back as it applies LKML-Reference: <4cb85478.41e9d80a.44e2.3f00@mx.google.com> Signed-off-by: Ingo Molnar commit c530ccd9a1864a44a7ff35826681229ce9f2357a Author: Stephane Eranian Date: Fri Oct 15 15:26:01 2010 +0200 perf_events: Fix bogus context time tracking You can only call update_context_time() when the context is active, i.e., the thread it is attached to is still running. However, perf_event_read() can be called even when the context is inactive, e.g., user read() the counters. The call to update_context_time() must be conditioned on the status of the context, otherwise, bogus time_enabled, time_running may be returned. Here is an example on AMD64. The task program is an example from libpfm4. The -p prints deltas every 1s. $ task -p -e cpu_clk_unhalted sleep 5 2,266,610 cpu_clk_unhalted (0.00% scaling, ena=2,158,982, run=2,158,982) 0 cpu_clk_unhalted (0.00% scaling, ena=2,158,982, run=2,158,982) 0 cpu_clk_unhalted (0.00% scaling, ena=2,158,982, run=2,158,982) 0 cpu_clk_unhalted (0.00% scaling, ena=2,158,982, run=2,158,982) 0 cpu_clk_unhalted (0.00% scaling, ena=2,158,982, run=2,158,982) 5,242,358,071 cpu_clk_unhalted (99.95% scaling, ena=5,000,359,984, run=2,319,270) Whereas if you don't read deltas, e.g., no call to perf_event_read() until the process terminates: $ task -e cpu_clk_unhalted sleep 5 2,497,783 cpu_clk_unhalted (0.00% scaling, ena=2,376,899, run=2,376,899) Notice that time_enable, time_running are bogus in the first example causing bogus scaling. This patch fixes the problem, by conditionally calling update_context_time() in perf_event_read(). Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra Cc: stable@kernel.org LKML-Reference: <4cb856dc.51edd80a.5ae0.38fb@mx.google.com> Signed-off-by: Ingo Molnar commit 4ba053c04aece1f4734056f21b751eee47ea3fb1 Author: Hitoshi Mitake Date: Wed Oct 13 17:30:26 2010 +0900 lockdep: Check the depth of subclass Current look_up_lock_class() doesn't check the parameter "subclass". This rarely rises problems because the main caller of this function, register_lock_class(), checks it. But register_lock_class() is not the only function which calls look_up_lock_class(). lock_set_class() and its callees also call it. And lock_set_class() doesn't check this parameter. This will rise problems when the the value of subclass is larger than MAX_LOCKDEP_SUBCLASSES. Because the address (used as the key of class) caliculated with too large subclass has a probability to point another key in different lock_class_key. Of course this problem depends on the memory layout and occurs with really low probability. Signed-off-by: Hitoshi Mitake Cc: Dmitry Torokhov Cc: Vojtech Pavlik Cc: Frederic Weisbecker Signed-off-by: Peter Zijlstra LKML-Reference: <1286958626-986-1-git-send-email-mitake@dcl.info.waseda.ac.jp> Signed-off-by: Ingo Molnar commit 620162505e5d46bc4494b1761743e4b0b3bf8e16 Author: Hitoshi Mitake Date: Tue Oct 5 18:01:51 2010 +0900 lockdep: Add improved subclass caching Current lockdep_map only caches one class with subclass == 0, and looks up hash table of classes when subclass != 0. It seems that this has no problem because the case of subclass != 0 is rare. But locks of struct rq are acquired with subclass == 1 when task migration is executed. Task migration is high frequent event, so I modified lockdep to cache subclasses. I measured the score of perf bench sched messaging. This patch has slightly but certain (order of milli seconds or 10 milli seconds) effect when lots of tasks are running. I'll show the result in the tail of this description. NR_LOCKDEP_CACHING_CLASSES specifies how many classes can be cached in the instances of lockdep_map. I discussed with Peter Zijlstra in LinuxCon Japan about this approach and he taught me that caching every subclasses(8) is cleary waste of memory. So number of cached classes should be configurable. === Score comparison of benchmarks === # "min" means best score, and "max" means worst score for i in `seq 1 10`; do ./perf bench -f simple sched messaging; done before: min: 0.565000, max: 0.583000, avg: 0.572500 after: min: 0.559000, max: 0.568000, avg: 0.563300 # with more processes for i in `seq 1 10`; do ./perf bench -f simple sched messaging -g 40; done before: min: 2.274000, max: 2.298000, avg: 2.286300 after: min: 2.242000, max: 2.270000, avg: 2.259700 Signed-off-by: Hitoshi Mitake Cc: Frederic Weisbecker Signed-off-by: Peter Zijlstra LKML-Reference: <1286269311-28336-2-git-send-email-mitake@dcl.info.waseda.ac.jp> Signed-off-by: Ingo Molnar commit f2f108eb4511f22a6f7568090cfcf4e7b2dc0f62 Merge: 756b032 2b666ca Author: Ingo Molnar Date: Mon Oct 18 18:43:43 2010 +0200 Merge branch 'linus' into core/locking Merge reason: Update to almost-final-.36 Signed-off-by: Ingo Molnar commit 17bdcf949d03306b308c5fb694849cd35f119807 Author: Linus Walleij Date: Mon Oct 11 16:36:51 2010 +0200 sched: Drop all load weight manipulation for RT tasks Load weights are for the CFS, they do not belong in the RT task. This makes all RT scheduling classes leave the CFS weights alone. This fixes a real bug as well: I noticed the following phonomena: a process elevated to SCHED_RR forks with SCHED_RESET_ON_FORK set, and the child is indeed SCHED_OTHER, and the niceval is indeed reset to 0. However the weight inserted by set_load_weight() remains at 0, giving the task insignificat priority. With this fix, the weight is reset to what the task had before being elevated to SCHED_RR/SCHED_FIFO. Cc: Lennart Poettering Cc: stable@kernel.org Signed-off-by: Linus Walleij Signed-off-by: Peter Zijlstra LKML-Reference: <1286807811-10568-1-git-send-email-linus.walleij@stericsson.com> Signed-off-by: Ingo Molnar commit 34f971f6f7988be4d014eec3e3526bee6d007ffa Author: Peter Zijlstra Date: Wed Sep 22 13:53:15 2010 +0200 sched: Create special class for stop/migrate work In order to separate the stop/migrate work thread from the SCHED_FIFO implementation, create a special class for it that is of higher priority than SCHED_FIFO itself. This currently solves a problem where cpu-hotplug consumes so much cpu-time that the SCHED_FIFO class gets throttled, but has the bandwidth replenishment timer pending on the now dead cpu. It is also required for when we add the planned deadline scheduling class above SCHED_FIFO, as the stop/migrate thread still needs to transcent those tasks. Tested-by: Heiko Carstens Signed-off-by: Peter Zijlstra LKML-Reference: <1285165776.2275.1022.camel@laptop> Signed-off-by: Ingo Molnar commit 4924627423d5e286136ad2520f5be536345ae590 Author: Peter Zijlstra Date: Sun Oct 17 21:46:10 2010 +0200 sched: Unindent labels Labels should be on column 0. Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit db181a8ee158fd0ccea2e2670c4f2d36af2814a0 Merge: ee2007d 9c0a788 Author: Grant Likely Date: Mon Oct 18 09:25:09 2010 -0600 Merge branch 'for-spi' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin into spi/next commit 78c89ba121221d9224a5747803d7fffe51cd6e44 Author: Steven Rostedt Date: Tue Oct 5 23:22:19 2010 -0400 tracing: Remove parent recording in latency tracer graph options Even though the parent is recorded with the normal function tracing of the latency tracers (irqsoff and wakeup), the function graph recording is bogus. This is due to the function graph messing with the return stack. The latency tracers pass in as the parent CALLER_ADDR0, which works fine for plain function tracing. But this causes bogus output with the graph tracer: 3) -0 | d.s3. 0.000 us | return_to_handler(); 3) -0 | d.s3. 0.000 us | _raw_spin_unlock_irqrestore(); 3) -0 | d.s3. 0.000 us | return_to_handler(); 3) -0 | d.s3. 0.000 us | trace_hardirqs_on(); The "return_to_handle()" call is the trampoline of the function graph tracer, and is meaningless in this context. Cc: Jiri Olsa Signed-off-by: Steven Rostedt commit 5e6d2b9cfa3a6e7fe62fc0135bc1bd778f5db564 Author: Steven Rostedt Date: Tue Oct 5 19:41:43 2010 -0400 tracing: Use one prologue for the preempt irqs off tracer function tracers The preempt and irqsoff tracers have three types of function tracers. Normal function tracer, function graph entry, and function graph return. Each of these use a complex dance to prevent recursion and whether to trace the data or not (depending if interrupts are enabled or not). This patch moves the duplicate code into a single routine, to prevent future mistakes with modifying duplicate complex code. Cc: Jiri Olsa Signed-off-by: Steven Rostedt commit 542181d3769d001c59cd17573dd4381e87d215f2 Author: Steven Rostedt Date: Tue Oct 5 16:38:49 2010 -0400 tracing: Use one prologue for the wakeup tracer function tracers The wakeup tracer has three types of function tracers. Normal function tracer, function graph entry, and function graph return. Each of these use a complex dance to prevent recursion and whether to trace the data or not (depending on the wake_task variable). This patch moves the duplicate code into a single routine, to prevent future mistakes with modifying duplicate complex code. Cc: Jiri Olsa Signed-off-by: Steven Rostedt commit 7495a5beaa22f190f4888aa8cbe4827c16575d0a Author: Jiri Olsa Date: Thu Sep 23 14:00:53 2010 +0200 tracing: Graph support for wakeup tracer Add function graph support for wakeup latency tracer. The graph output is enabled by setting the 'display-graph' trace option. Signed-off-by: Jiri Olsa LKML-Reference: <1285243253-7372-4-git-send-email-jolsa@redhat.com> Signed-off-by: Steven Rostedt commit 0a772620a2e21fb55a02f70fe38d4b5c3a5fbbbf Author: Jiri Olsa Date: Thu Sep 23 14:00:52 2010 +0200 tracing: Make graph related irqs/preemptsoff functions global Move trace_graph_function() and print_graph_headers_flags() functions to the trace_function_graph.c to be globaly available. Signed-off-by: Jiri Olsa LKML-Reference: <1285243253-7372-3-git-send-email-jolsa@redhat.com> Signed-off-by: Steven Rostedt commit a9d61173dc1cb63e660ae89e874e51ba4fd2f991 Author: Jiri Olsa Date: Fri Sep 24 17:41:02 2010 +0200 tracing: Add proper check for irq_depth routines The check_irq_entry and check_irq_return could be called from graph event context. In such case there's no graph private data allocated. Adding checks to handle this case. Signed-off-by: Jiri Olsa LKML-Reference: <20100924154102.GB1818@jolsa.brq.redhat.com> [ Fixed some grammar in the comments ] Signed-off-by: Steven Rostedt commit 907f27840985fe6a0c62e43cd4702c6e04b4bcc7 Author: matt mooney Date: Mon Sep 27 19:04:53 2010 -0700 tracing/trivial: Remove cast from void* Unnecessary cast from void* in assignment. Signed-off-by: matt mooney Signed-off-by: Steven Rostedt commit 7f9c7e28119cf21ae1a035240da3705647d0d06a Merge: 4af8f24 b476ef0 Author: Russell King Date: Mon Oct 18 15:20:21 2010 +0100 Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into devel-stable commit 33027af637da3f69bd17488cc3e68493c9052a7d Author: Andrea Gelmini Date: Sat Oct 16 15:19:22 2010 +0200 GFS2: fixed typo Signed-off-by: Andrea Gelmini Signed-off-by: Steven Whitehouse commit 138a6c7f4ff56b9886cbb46656ac7f26f990cdb4 Author: SeungChull Suh Date: Sat Oct 2 12:48:12 2010 +0900 ARM: S5P64X0: Bug fix on errors of build with CONFIG_PREEMPT_NONE This patch adds header into the below files for build with CONFIG_PREEMPT_NONE. arch/arm/mach-s5p64x0/cpu.c Signed-off-by: Seung-Chull Suh [kgene.kim@samsung.com: edited title and message] Signed-off-by: Kukjin Kim commit 3d4af5cac77f8d4f7422b1d00cb9e67000f94301 Author: Atul Dahiya Date: Fri Oct 8 21:00:02 2010 +0900 ARM: S5P64X0: Fix GPIO rbank support The patch removes s3c_gpio_lock/unlock to avoid acquiring the lock recursively as lock is already acquired by calling function. Signed-off-by: Atul Dahiya Signed-off-by: Sangbeom Kim [kgene.kim@samsung.com: removed useless variable due to this] Signed-off-by: Kukjin Kim commit d7297612ae53dfaf88b702f89a153d3da52bcd31 Author: Abhilash Kesavan Date: Fri Oct 8 20:55:02 2010 +0900 ARM: S5P64X0: Replace the 6440 system device class definition with 64x0 The s5p64x0_sysclass should be used in place of the obselete s5p6440_sysclass. Signed-off-by: Abhilash Kesavan Signed-off-by: Sangbeom Kim Signed-off-by: Kukjin Kim commit 6c6ad435cae29575ff632d97afedbcc2ce2e3840 Author: Naveen Krishna Ch Date: Fri Oct 8 20:53:08 2010 +0900 ARM: S5P64X0: FIX typo in the ADC device name Fix the touch screen device name from s3c64x0-adc to s3c64xx-adc. Signed-off-by: Naveen Krishna Ch Signed-off-by: Kukjin Kim commit b7df2a7beb9cbdd1acfd52200e2de76ec18c90a1 Author: Kukjin Kim Date: Wed Sep 1 12:40:16 2010 +0900 ARM: s5p64x0_defconfig: Update for support S5P6440 and S5P6450 This patch updates s5p64x0_defconfig and changes the name from s5p6440_defconfig so that can support S5P6440 and S5P6450 with one kernel. Tested on SMDK6440(S5P6440) and SMDK6450(S5P6450). Signed-off-by: Kukjin Kim commit 2555e663b367b8d555e76023f4de3f6338c28d6c Author: Kukjin Kim Date: Wed Sep 1 15:13:44 2010 +0900 ARM: S5P64X0: Add UART serial support for S5P6450 This patch adds UART serial port support for S5P6450 SoC. The S5P6450 has 6 UARTs, so adds resource of UART4 and UART5. And to fix membase which is in serial/samsung.c is from Ben Dooks. Signed-off-by: Kukjin Kim Cc: Ben Dooks commit 6f315cb5620c1810e59e93fffb1a7f9c793c7213 Author: Kukjin Kim Date: Wed Sep 1 13:03:39 2010 +0900 ARM: S5P64X0: Move SMDK6440 board file and Add SMDK6450 board file This patch moves smdk6440 board file from mach-s5p6440 into the new mach-s5p64x0 directory and adds smdk6450 board file. Signed-off-by: Kukjin Kim commit 5dd33d89f4700990e00731a971754ecb08ab7022 Author: Kukjin Kim Date: Wed Sep 8 16:23:05 2010 +0900 ARM: S5P64X0: Move GPIO support files for merge S5P64X0 This patch moves S5P6440 GPIO support files from mach-s5p6440 into the new mach-s5p64x0 for merge S5P6440 and S5P6450 SocS. NOTE: Not supported S5P6450 GPIO yet. Will be supported soon. Signed-off-by: Kukjin Kim commit 2853a0efc3031dec88b47bbc50b8a6b3fe9e3cac Author: Kukjin Kim Date: Wed Sep 1 13:36:59 2010 +0900 ARM: S5P64X0: Add S5P6450 I2C support This patch adds S5P6450 I2C support in the ARCH_S5P64X0. And moves S5P6440 I2C support files into the mach-s5p64x0 together. Signed-off-by: Kukjin Kim commit f1fee5824cc2f145c2d926939ff88250245a7ac9 Author: Kukjin Kim Date: Wed Sep 8 19:25:44 2010 +0900 ARM: S5P64X0: Move DMA support for S5P64X0 This patch moves DMA support files in the mach-s5p64x0 for S5P6440 and S5P6450 SoCs. Signed-off-by: Kukjin Kim Cc: Jassi Brar commit e661faa488450786e295ac9b40e89abce8141e92 Author: Kukjin Kim Date: Wed Sep 8 19:21:23 2010 +0900 ARM: S5P64X0: Update Audio support This patch updates Audio and SPI for S5P6440 and S5P6450 SoCs. Signed-off-by: Kukjin Kim Cc: Jassi Brar commit 8c14482b8a64755322484bea6fc66e8b1fd91fe0 Author: Kukjin Kim Date: Wed Sep 1 13:23:31 2010 +0900 ARM: S5P64X0: Update Timer support This patch updates timer support for S5P6440 and S5P6450 SoCs. Signed-off-by: Kukjin Kim commit 96f2c00799f9e3c94ac5879d0289376da69bc4a5 Author: Kukjin Kim Date: Wed Sep 1 13:22:17 2010 +0900 ARM: S5P64X0: Update IRQ support This patch updates IRQ support for S5P6440 and S5P6450 SoCs. Signed-off-by: Kukjin Kim commit 3109e55099cb013f9e1b63d39606dc5d7ecf25bd Author: Kukjin Kim Date: Wed Sep 1 15:35:30 2010 +0900 ARM: S5P64X0: Update Clock for S5P6440 and S5P6450 This patch updates regarding clock files for supporting S5P6440 and S5P6450 with one kernel image. The mach-s5p64x0/clock.c is for common of them and there are specific clock files for each SoCs. Signed-off-by: Kukjin Kim commit a2e0d6249fa866ce7f5a8fe08a4d75511e4701c6 Author: Kukjin Kim Date: Mon Oct 18 18:29:51 2010 +0900 ARM: S5P64X0: Add S5P64X0(S5P6440 and S5P6450) initialization support This patch adds ARCH_S5P64X0 which can support S5P6440 and S5P6450 with one kernel image. So moved some files of mach-s5p6440 into the new ARCH directory mach-s5p64x0. Signed-off-by: Kukjin Kim commit 9c0a788b4315b83f6138ffa15c56ccf541106e58 Author: Mike Frysinger Date: Mon Oct 18 02:45:22 2010 -0400 spi/bfin_spi: namespace local structs Signed-off-by: Mike Frysinger commit 6f7c17f4f91513247dfec52d6968cd70d5251b38 Author: Michael Hennerich Date: Thu Jul 1 14:34:10 2010 +0000 spi/bfin_spi: init early Some systems using this bus sometimes have very basic devices on them such as regulators. So we need to be loaded even earlier in case the devices are used by things such as early board init code. Therefore register in subsys_initcall(). Signed-off-by: Michael Hennerich Signed-off-by: Mike Frysinger commit 2e768659df35ea337cb57ea3573c918d31e07894 Author: Bob Liu Date: Fri Sep 17 03:46:22 2010 +0000 spi/bfin_spi: check per-transfer bits_per_word Currently, if the bits_per_word when doing a transfer is not 8bits, we always treat it as 16bits when we should actually be returning an error. Signed-off-by: Bob Liu Signed-off-by: Mike Frysinger commit 4190f6a51f3f9c7c8298202d31b3ead9381c33f1 Author: Barry Song Date: Tue Apr 6 03:36:24 2010 +0000 spi/bfin_spi: warn when CS is driven by hardware (CPHA=0) When the hardware is controlling the CS, there are some SPI options we are unable to support. So issue a warning in the hopes that the user will change to a SPI mode where we can support things sanely. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit e72dcde72c712708e2145ab0ecff539ff4a4c7fb Author: Rob Maris Date: Tue Apr 6 04:17:08 2010 +0000 spi/bfin_spi: cs should be always low when a new transfer begins Signed-off-by: Rob Maris Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit e35954053c1a2ede37f6ed1b28d626dba43dc79d Author: Rob Maris Date: Tue Apr 6 04:12:00 2010 +0000 spi/bfin_spi: fix typo in comment Signed-off-by: Rob Maris Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit 7715aad4ef5cccb318942a0c47aef8a39d6130d7 Author: Mike Frysinger Date: Thu Feb 25 10:00:55 2010 +0000 spi/bfin_spi: reject unsupported SPI modes Who knows what people will try! Signed-off-by: Mike Frysinger commit a75bd65b2189d711938d0fa7d9a79df47ddd66fa Author: Barry Song Date: Fri Jan 22 10:07:30 2010 +0000 spi/bfin_spi: use dma_disable_irq_nosync() in irq handler Using disable_irq() on the IRQ whose handler we are currently executing in can easily lead to a hang. So use the nosync variant here. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit 5e8592dca303fb429d1641c205fe509f4b781ca2 Author: Mike Frysinger Date: Fri Dec 18 18:00:10 2009 +0000 spi/bfin_spi: combine duplicate SPI_CTL read/write logic While combining things, also switch to the proper SPI bit define names. This lets us punt the rarely used SPI defines. Signed-off-by: Mike Frysinger commit 5b47bcd48b3bd53c86040321de0d348aadebed87 Author: Mike Frysinger Date: Fri Dec 18 17:43:31 2009 +0000 spi/bfin_spi: reset ctl_reg bits when setup is run again on a device During runtime, the spi setup function may be called multiple times on the same device in order to reconfigure some settings on the fly. When this happens, we need to reset the ctl_reg bits so that changing the mode works as expected. Reported-by: Andy Getzendanner Signed-off-by: Mike Frysinger commit 033f44bd0ebca1809e8274237a64263d909f01a7 Author: Mike Frysinger Date: Fri Dec 18 17:38:04 2009 +0000 spi/bfin_spi: push all size checks into the transfer function This reduces duplication between the setup/transfer functions and keeps values cached during setup from overriding values changed on a transfer basis (like bits_per_word). Signed-off-by: Mike Frysinger commit 7370ed6b91c37d7022a89a820b0fcd3156fa87fc Author: Yi Li Date: Mon Dec 7 08:07:01 2009 +0000 spi/bfin_spi: use nosync when disabling the IRQ from the IRQ handler Using disable_irq() on the IRQ whose handler we are currently executing in can easily lead to a hang. So use the nosync variant here. Signed-off-by: Yi Li Signed-off-by: Mike Frysinger commit 9677b0de10433d31e05864dfb4bf33d0c27f752a Author: Barry Song Date: Mon Nov 30 03:49:41 2009 +0000 spi/bfin_spi: sync hardware state before reprogramming everything Sometimes under load, the Blackfin core is able to send SPI register updates out before the controller is actually disabled. So when we go to reprogram the entire state (to switch to a different slave), make sure we sync after disabling the controller. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit b052fd0a44354c655eb98fd715ef52857631dfef Author: Barry Song Date: Wed Nov 18 09:43:21 2009 +0000 spi/bfin_spi: save/restore state when suspending/resuming We can't rely on the SPI_CTL/SPI_FLG registers retaining their state when suspending, so save/restore their entire values. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit d3cc71f71ae13596cb988e16bfa2b15f09fb7347 Author: Barry Song Date: Tue Nov 17 09:45:59 2009 +0000 spi/bfin_spi: redo GPIO CS handling The common SPI layers take care of detecting CS conflicts and preventing two devices from claiming the same CS. This causes problems for the GPIO CS support we currently have as we are using CS0 to mean "GPIO CS". But if we have multiple devices using a GPIO CS, the common SPI layers see multiple devices using the virtual "CS0" and reject any such attempts. To make both work, we introduce an offset define. This represents the max number of hardware CS values that the SPI peripheral supports. If the CS is below this limit, we know we can use the hardware CS. If it's above, we treat it as a GPIO CS. This keeps the CS unique as seen by the common code and prevents conflicts. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit 0d2c6de2255cb299fdd77d4543738adee45f4f3f Author: Mike Frysinger Date: Thu Oct 15 04:13:29 2009 +0000 Blackfin: SPI: expand SPI bitmasks Expand the BIT_CTL defines to use the naming convention of the hardware, and expand the masks to cover all documented bits. Signed-off-by: Mike Frysinger commit 90008a641dd832cc2e2c4d21b7da94de91e9d0a4 Author: Mike Frysinger Date: Thu Oct 15 04:13:29 2009 +0000 spi/bfin_spi: use the SPI namespaced bit names This lets us push the short SPI MMR bit names out of the global namespace. Signed-off-by: Mike Frysinger commit 2a045131db69c207b9e3f9614b2c9b0f2e82bcb7 Author: Mike Frysinger Date: Thu Sep 24 01:28:54 2009 +0000 spi/bfin_spi: drop extra memory we don't need The driver that we based ours on uses a little extra memory behind the normal driver state, but we don't. So drop this useless bit of memory. Reported-by: David Brownell Signed-off-by: Mike Frysinger commit b9f139a7a6a8b24e61ad94c3334eb26f34a4cb63 Author: Mike Frysinger Date: Thu Sep 24 01:27:47 2009 +0000 spi/bfin_spi: convert struct names to something more logical The current structure names are a bit confusing as to what they represent, so use better names. Reported-by: David Brownell Signed-off-by: Mike Frysinger commit 9c4542c7a3082bf74f00145355ef407ac82c0b3f Author: Mike Frysinger Date: Thu Sep 24 01:04:04 2009 +0000 spi/bfin_spi: convert read/write/duplex funcs to a dedicated ops structure Rather than having to look up the same 3 sets of functions at the same time, just use an ops structure so we only need to set one pointer. Reported-by: David Brownell Signed-off-by: Mike Frysinger commit f4f50c3ff7815d83dcbb19341f35db2f408ac4f8 Author: Mike Frysinger Date: Thu Sep 24 00:41:49 2009 +0000 spi/bfin_spi: convert queue run state to true/false No point in creating our own version of true/false defines when there is already a standard stdbool available to us. Reported-by: David Brownell Signed-off-by: Mike Frysinger commit ab09e0406ffd42d26fc9a6dcbb626f9eb1da9160 Author: Mike Frysinger Date: Wed Sep 23 23:32:34 2009 +0000 spi/bfin_spi: fix up some unused/misleading comments Reported-by: David Brownell Signed-off-by: Mike Frysinger commit 5cc0159a5779f297d1b987d5f6d0feb6dc36a27a Author: Mike Frysinger Date: Wed Sep 23 23:24:59 2009 +0000 spi/bfin_spi: punt useless null read/write funcs The chip ops should always be initialized, so having null fallback functions are useless. Reported-by: David Brownell Signed-off-by: Mike Frysinger commit 201bbc6fd84c67b4021f454d3e4c30d5cd77f702 Author: Mike Frysinger Date: Wed Sep 23 20:56:10 2009 +0000 spi/bfin_spi: drop custom cs_change_per_word support As David points out, the cs_change_per_word option isn't standard, nor is anyone actually using it. So punt all of the dead code considering it makes up ~10% of the code size. Reported-by: David Brownell Signed-off-by: Mike Frysinger commit 8221610e9990e7ee542a4e508d278302af8a9e75 Author: Barry Song Date: Wed Jun 17 10:10:53 2009 +0000 spi/bfin_spi: fix CS handling The CS helper functions were toggling both the Flag Enable and the Flag Value bits, but the Flag Value bit is ignored if the corresponding Flag Enable bit is cleared. So under high speed transactions, the CS sometimes would not toggle properly. Since it makes no sense to toggle the Flag Enable bit dynamically when we actually want to control the Flag Value, do this when setting up the device and then only handle toggling of the CS value during runtime. Signed-off-by: Barry Song Signed-off-by: Mike Frysinger commit f6a6d96685be6e784849d067b44acb831f595417 Author: Yi Li Date: Wed Jun 3 09:46:22 2009 +0000 spi/bfin_spi: utilize the SPI interrupt in PIO mode The current behavior in PIO mode is to poll the SPI status registers which can obviously lead to higher latencies when doing a lot of SPI traffic. There is a SPI interrupt which can be used instead to signal individual completion of transactions. Signed-off-by: Yi Li Signed-off-by: Mike Frysinger commit bb8beecd98de45f821a3360e0b061fc1f8da947c Author: Wolfgang Muees Date: Fri May 22 01:11:02 2009 +0000 spi/bfin_spi: force sane master-mode state at boot We should make sure the SPI controller is in a sane state in case the boot loader left it in a crappy state. Such as DMA pending which causes interrupts to fire on us. When setting a sane initial state, do not default to slave mode. If we do, then the SPI peripheral may implicitly take over the SPISS pin which other things might be using. For example, the BF533-STAMP uses this pin as a GPIO to control switching between ethernet and flash. If the SPI peripheral controls the output state instead, the ethernet is no longer accessible. URL: http://blackfin.uclinux.org/gf/tracker/5630 Signed-off-by: Wolfgang Muees Signed-off-by: Michael Hennerich Signed-off-by: Mike Frysinger commit 60d0071b609ecb0aebe12aaedf34fe552da12c5b Author: Sonic Zhang Date: Mon May 18 10:01:16 2009 +0000 spi/bfin_spi: work around anomaly 05000119 Anomaly 05000119 states that the DMA_RUN bit with peripherals isn't reliable. However, the way the driver is currently written (DMA IRQ callback), we don't need the polling in the first place, so drop it. Signed-off-by: Sonic Zhang Signed-off-by: Mike Frysinger commit ac01e97d644da8e947ffa1bde5083290fe2e36e7 Author: Daniel Mack Date: Wed Mar 25 00:18:35 2009 +0000 spi/bfin_spi: fix resources leakage Re-order setup() a bit so we don't leak memory/dma/gpio resources upon errors. Also make sure we don't call kfree() twice on the same object. Signed-off-by: Daniel Mack Signed-off-by: Bryan Wu Signed-off-by: Yi Li Signed-off-by: Mike Frysinger commit 49b7a491b797305a0dc373e7f7a5d2a87955c819 Author: Kukjin Kim Date: Tue Sep 7 15:47:18 2010 +0900 ARM: S5P64X0: Update Kconfig and Makefile This patch updates the Kconfig and Makefile for the S5P6440 and S5P6450 machines. It also updates arch/arm/ Kconfig and Makefile to include for support ARCH_S5P64X0 with one kernel image. Signed-off-by: Kukjin Kim commit 19a2c06548db1fa69c40be5bf3ad2095d6119871 Author: Kukjin Kim Date: Tue Aug 31 16:30:51 2010 +0900 ARM: S5P: Moves initial map for merging S5P64X0 This patch moves some initial maps from plat-s5p to machine, so that can merge mach-s5p6440 and mach-s5p6450. Signed-off-by: Kukjin Kim commit 13904fba37aa00867dee0b4fe13df92fed1120f9 Author: Kukjin Kim Date: Fri Aug 27 13:56:54 2010 +0900 ARM: S5P: Move OneNAND device definitions in plat-s5p This patch moves OneNAND device definitions from mach-s5pv210 to plat-s5p so that can support it commonly. Note: S5PC110 and S5PC210 have same OneNAND driver. Signed-off-by: Kukjin Kim Cc: Kyungmin Park commit e1f60b292ffd61151403327aa19ff7a1871820bd Author: Nishanth Menon Date: Wed Oct 13 00:13:10 2010 +0200 PM: Introduce library for device-specific OPPs (v7) SoCs have a standard set of tuples consisting of frequency and voltage pairs that the device will support per voltage domain. These are called Operating Performance Points or OPPs. The actual definitions of OPP varies over silicon versions. For a specific domain, we can have a set of {frequency, voltage} pairs. As the kernel boots and more information is available, a default set of these are activated based on the precise nature of device. Further on operation, based on conditions prevailing in the system (such as temperature), some OPP availability may be temporarily controlled by the SoC frameworks. To implement an OPP, some sort of power management support is necessary hence this library depends on CONFIG_PM. Contributions include: Sanjeev Premi for the initial concept: http://patchwork.kernel.org/patch/50998/ Kevin Hilman for converting original design to device-based. Kevin Hilman and Paul Walmsey for cleaning up many of the function abstractions, improvements and data structure handling. Romit Dasgupta for using enums instead of opp pointers. Thara Gopinath, Eduardo Valentin and Vishwanath BS for fixes and cleanups. Linus Walleij for recommending this layer be made generic for usage in other architectures beyond OMAP and ARM. Mark Brown, Andrew Morton, Rafael J. Wysocki, Paul E. McKenney for valuable improvements. Discussions and comments from: http://marc.info/?l=linux-omap&m=126033945313269&w=2 http://marc.info/?l=linux-omap&m=125482970102327&w=2 http://marc.info/?t=125809247500002&r=1&w=2 http://marc.info/?l=linux-omap&m=126025973426007&w=2 http://marc.info/?t=128152609200064&r=1&w=2 http://marc.info/?t=128468723000002&r=1&w=2 incorporated. v1: http://marc.info/?t=128468723000002&r=1&w=2 Signed-off-by: Nishanth Menon Signed-off-by: Kevin Hilman Signed-off-by: Rafael J. Wysocki commit d33ac60beaf2c7dee5cd90aba7c1eb385dd70937 Author: James Hogan Date: Tue Oct 12 00:00:25 2010 +0200 PM: Add sysfs attr for rechecking dev hash from PM trace If the device which fails to resume is part of a loadable kernel module it won't be checked at startup against the magic number stored in the RTC. Add a read-only sysfs attribute /sys/power/pm_trace_dev_match which contains a list of newline separated devices (usually just the one) which currently match the last magic number. This allows the device which is failing to resume to be found after the modules are loaded again. Signed-off-by: James Hogan Signed-off-by: Rafael J. Wysocki commit 2ac21c6bc4249ee6d922f18dbec7266377592c32 Author: James Hogan Date: Mon Oct 11 23:59:58 2010 +0200 PM: Lock PM device list mutex in show_dev_hash() Lock the PM device list mutex using device_pm_lock() and device_pm_unlock() around the list iteration in show_dev_hash(). show_dev_hash() was reverse iterating dpm_list without first locking the mutex that the functions in drivers/base/power/main.c lock. I assume this was unintentional since there is no comment suggesting why the lock might not be necessary. Signed-off-by: James Hogan Signed-off-by: Rafael J. Wysocki commit f71648d73c1650b8b4aceb3856bebbde6daa3b86 Author: Rafael J. Wysocki Date: Mon Oct 11 01:02:27 2010 +0200 PM / Runtime: Remove idle notification after failing suspend If runtime suspend of a device fails returning -EAGAIN or -EBUSY, which means that it's safe to try to suspend it again, the PM core runs the runtime idle helper function for it. Unfortunately this may lead to problems, for example for PCI devices whose drivers don't implement the ->runtime_idle() callback, because in that case the PCI bus type's ->runtime_idle() always calls pm_runtime_suspend() for the given device. Then, if there's an automatic idle notification after the driver's ->runtime_suspend() returning -EAGAIN or -EBUSY, it will make the suspend happen again possibly causing a busy loop to appear. To avoid that, remove the idle notification after failing runtime suspend of a device altogether and let the callers of pm_runtime_suspend() repeat the operation if need be. Signed-off-by: Rafael J. Wysocki Acked-by: Alan Stern commit 3624eb04c24861ab296842414f9752a393e68372 Author: Rafael J. Wysocki Date: Mon Oct 4 22:08:12 2010 +0200 PM / Hibernate: Modify signature used to mark swap Since we are adding compression to the kernel's hibernate code, change signature used by it to mark swap spaces, so that earlier kernels don't attempt to restore compressed images they cannot handle. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek commit 71c63122c4609a917f14a79c32067a68909fc487 Author: Rafael J. Wysocki Date: Mon Oct 4 22:08:01 2010 +0200 PM / Runtime: Reduce code duplication in core helper functions Reduce code duplication in rpm_idle(), rpm_suspend() and rpm_resume() by using local pointers to store callback addresses and moving some duplicated code into a separate function. Signed-off-by: Rafael J. Wysocki Reviewed-by: Alan Stern commit dbeeec5fe868f2e2e92fe94daa2c5a047240fdc4 Author: Rafael J. Wysocki Date: Mon Oct 4 22:07:32 2010 +0200 PM: Allow wakeup events to abort freezing of tasks If there is a wakeup event during the freezing of tasks, suspend or hibernation will fail anyway. Since try_to_freeze_tasks() can take up to 20 seconds to complete or fail, aborting it as soon as a wakeup event is detected improves the worst case wakeup latency. Based on a patch from Arve Hjønnevåg. Signed-off-by: Rafael J. Wysocki Acked-by: Pavel Machek commit 5fc62aad4e7779c2f04691e48b351d08c050c1f1 Author: Ming Lei Date: Wed Sep 29 00:12:22 2010 +0200 PM: runtime: add missed pm_request_autosuspend The patch "PM / Runtime: Implement autosuspend support" introduces "autosuspend" facility for runtime PM, but misses helper function of pm_request_autosuspend, so add it. Signed-off-by: Ming Lei Signed-off-by: Rafael J. Wysocki commit d0941ead3fdd31aafff992d211bcefdbff1eaedb Author: Rafael J. Wysocki Date: Tue Sep 28 23:31:22 2010 +0200 PM / Hibernate: Make some boot messages look less scary The hibernate resume code checks if there is an image to resume from on every boot and, if the kernel is built with CONFIG_PM_DEBUG set and the image is not present, it prints some scary messages suggesting there was a boot error of some sort. Apparently, some users are confused by them, so make them look less scary and adjust the other hibernate resume debug messages to match them. Signed-off-by: Rafael J. Wysocki commit 15bcb91d7e607d8a2e060f01f7784a7454668da4 Author: Alan Stern Date: Sat Sep 25 23:35:21 2010 +0200 PM / Runtime: Implement autosuspend support This patch (as1427) implements the "autosuspend" facility for runtime PM. A few new fields are added to the dev_pm_info structure and several new PM helper functions are defined, for telling the PM core whether or not a device uses autosuspend, for setting the autosuspend delay, and for marking periods of device activity. Drivers that do not want to use autosuspend can continue using the same helper functions as before; their behavior will not change. In addition, drivers supporting autosuspend can also call the old helper functions to get the old behavior. The details are all explained in Documentation/power/runtime_pm.txt and Documentation/ABI/testing/sysfs-devices-power. Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki commit 7490e44239e60293bca0c2663229050c36c660c2 Author: Alan Stern Date: Sat Sep 25 23:35:15 2010 +0200 PM / Runtime: Add no_callbacks flag Some devices, such as USB interfaces, cannot be power-managed independently of their parents, i.e., they cannot be put in low power while the parent remains at full power. This patch (as1425) creates a new "no_callbacks" flag, which tells the PM core not to invoke the runtime-PM callback routines for the such devices but instead to assume that the callbacks always succeed. In addition, the non-debugging runtime-PM sysfs attributes for the devices are removed, since they are pretty much meaningless. The advantage of this scheme comes not so much from avoiding the callbacks themselves, but rather from the fact that without the need for a process context in which to run the callbacks, more work can be done in interrupt context. Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki commit 140a6c945211ee911dec776fafa52e03a7d7bb9a Author: Alan Stern Date: Sat Sep 25 23:35:07 2010 +0200 PM / Runtime: Combine runtime PM entry points This patch (as1424) combines the various public entry points for the runtime PM routines into three simple functions: one for idle, one for suspend, and one for resume. A new bitflag specifies whether or not to increment or decrement the usage_count field. The new entry points are named __pm_runtime_idle, __pm_runtime_suspend, and __pm_runtime_resume, to reflect that they are trampolines. Simultaneously, the corresponding internal routines are renamed to rpm_idle, rpm_suspend, and rpm_resume. Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki commit 1bfee5bc86fdaecc912e06080583eddab7263df2 Author: Alan Stern Date: Sat Sep 25 23:35:00 2010 +0200 PM / Runtime: Merge synchronous and async runtime routines This patch (as1423) merges the asynchronous routines __pm_request_idle(), __pm_request_suspend(), and __pm_request_resume() with their synchronous counterparts. The RPM_ASYNC bitflag argument serves to indicate what sort of operation to perform. In the course of performing this merger, it became apparent that the various functions don't all behave consistenly with regard to error reporting and cancellation of outstanding requests. A new routine, rpm_check_suspend_allowed(), was written to centralize much of the testing, and the other functions were revised to follow a simple algorithm: If the operation is disallowed because of the device's settings or current state, return an error. Cancel pending or scheduled requests of lower priority. Schedule, queue, or perform the desired operation. A few special cases and exceptions are noted in comments. Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki commit 3f9af0513ae5b1f185302c2d0ba656640926d970 Author: Alan Stern Date: Sat Sep 25 23:34:54 2010 +0200 PM / Runtime: Replace boolean arguments with bitflags The "from_wq" argument in __pm_runtime_suspend() and __pm_runtime_resume() supposedly indicates whether or not the function was called by the PM workqueue thread, but in fact it isn't always used this way. It really indicates whether or not the function should return early if the requested operation is already in progress. Along with this badly-named boolean argument, later patches in this series will add several other boolean arguments to these functions and others. Therefore this patch (as1422) begins the conversion process by replacing from_wq with a bitflag argument. The same bitflags are also used in __pm_runtime_get() and __pm_runtime_put(), where they indicate whether or not the operation should be asynchronous. Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki commit 4769373ca2c8d0b999749a070c48fd8648888831 Author: Alan Stern Date: Sat Sep 25 23:34:46 2010 +0200 PM / Runtime: Move code in drivers/base/power/runtime.c This patch (as1421) moves the PM runtime accounting subroutines up to the beginning of runtime.c, taking them out of the middle of the functions that do the actual work. No operational changes. Signed-off-by: Alan Stern Signed-off-by: Rafael J. Wysocki commit 69d44ffbd772bede8c2a6d182e6e14f94826520b Author: Alan Stern Date: Sat Sep 25 23:34:22 2010 +0200 sysfs: Add sysfs_merge_group() and sysfs_unmerge_group() This patch (as1420) adds sysfs_merge_group() and sysfs_unmerge_group() functions, allowing drivers easily to add and remove sets of attributes to a pre-existing attribute group directory. Signed-off-by: Alan Stern Acked-by: Greg Kroah-Hartman Signed-off-by: Rafael J. Wysocki commit 098dff738abbeaea15fc95c4f4fdaee1e9bbea75 Author: Rafael J. Wysocki Date: Wed Sep 22 22:10:57 2010 +0200 PM: Fix potential issue with failing asynchronous suspend There is a potential issue with the asynchronous suspend code that a device driver suspending asynchronously may not notice that it should back off. There are two failing scenarions, (1) when the driver is waiting for a driver suspending synchronously to complete and that second driver returns error code, in which case async_error won't be set and the waiting driver will continue suspending and (2) after the driver has called device_pm_wait_for_dev() and the waited for driver returns error code, in which case the caller of device_pm_wait_for_dev() will not know that there was an error and will continue suspending. To fix this issue make __device_suspend() set async_error, so async_suspend() doesn't need to set it any more, and make device_pm_wait_for_dev() return async_error, so that its callers can check whether or not they should continue suspending. No more changes are necessary, since device_pm_wait_for_dev() is not used by any drivers' suspend routines. Reported-by: Colin Cross Signed-off-by: Rafael J. Wysocki Acked-by: Greg Kroah-Hartman commit 074037ec79bea73edf1b1ec72fef1010e83e3cc5 Author: Rafael J. Wysocki Date: Wed Sep 22 22:09:10 2010 +0200 PM / Wakeup: Introduce wakeup source objects and event statistics (v3) Introduce struct wakeup_source for representing system wakeup sources within the kernel and for collecting statistics related to them. Make the recently introduced helper functions pm_wakeup_event(), pm_stay_awake() and pm_relax() use struct wakeup_source objects internally, so that wakeup statistics associated with wakeup devices can be collected and reported in a consistent way (the definition of pm_relax() is changed, which is harmless, because this function is not called directly by anyone yet). Introduce new wakeup-related sysfs device attributes in /sys/devices/.../power for reporting the device wakeup statistics. Change the global wakeup events counters event_count and events_in_progress into atomic variables, so that it is not necessary to acquire a global spinlock in pm_wakeup_event(), pm_stay_awake() and pm_relax(), which should allow us to avoid lock contention in these functions on SMP systems with many wakeup devices. Signed-off-by: Rafael J. Wysocki Acked-by: Greg Kroah-Hartman commit 0702d9ee0f1dcb6258789032f03b3208bfafaffc Author: Kevin Cernekee Date: Mon Sep 20 22:32:10 2010 +0200 PM: Fix signed/unsigned warning in dpm_show_time() Seen on MIPS32, gcc 4.4.3, 2.6.36-rc4: drivers/base/power/main.c: In function 'dpm_show_time': drivers/base/power/main.c:415: warning: comparison of distinct pointer types lacks a cast do_div() takes unsigned parameters: uint32_t do_div(uint64_t *n, uint32_t base); Using an unsigned variable for usecs64 should not cause any problems, because calltime >= starttime . Signed-off-by: Kevin Cernekee Signed-off-by: Rafael J. Wysocki commit ac5c24ec1e983313ef0015258fba6f630e54e7cf Author: Rafael J. Wysocki Date: Mon Sep 20 19:44:56 2010 +0200 PM / Hibernate: Make default image size depend on total RAM size The default hibernation image size is currently hard coded and euqal to 500 MB, which is not a reasonable default on many contemporary systems. Make it equal 2/5 of the total RAM size (this is slightly below the maximum, i.e. 1/2 of the total RAM size, and seems to be generally suitable). Signed-off-by: Rafael J. Wysocki Tested-by: M. Vefa Bicakci commit 266f1a25eff5ff98c498d7754a419aacfd88f71c Author: Rafael J. Wysocki Date: Mon Sep 20 19:44:38 2010 +0200 PM / Hibernate: Improve comments in hibernate_preallocate_memory() One comment in hibernate_preallocate_memory() is wrong, so fix it and add one more comment to clarify the meaning of the fixed one. Signed-off-by: Rafael J. Wysocki commit bcb5ba8b4e8a5ae14b27351bdf499dd4c3bcc944 Author: Rafael J. Wysocki Date: Mon Sep 20 19:44:17 2010 +0200 PM / Runtime: Use alloc_workqueue() for creating the PM workqueue Although we need the PM workqueue to be freezable, we don't need it to be singlethread. Also, the number of concurrent work items running on a single CPU need not be constrained. For these reasons use alloc_workqueue() directly, with suitable arguments, instead of create_freezeable_workqueue(), to create the runtime PM workqueue. Signed-off-by: Rafael J. Wysocki Acked-by: Tejun Heo commit ede890c2c069d611ece0e184103a6b9236ce416a Author: Rafael J. Wysocki Date: Sun Sep 12 21:40:01 2010 +0200 PM: Fix unmet dependency warning from kconfig Fix the following build warning: warning: (PM_SLEEP_SMP && SMP && (ARCH_SUSPEND_POSSIBLE || \ ARCH_HIBERNATION_POSSIBLE) && PM_SLEEP) selects HOTPLUG_CPU which \ has unmet direct dependencies (SMP && HOTPLUG) by selecting HOTPLUG along with CPU_HOTPLUG. Signed-off-by: Rafael J. Wysocki Acked-by: Randy Dunlap commit f996fc9671d088bd5f52a70f18c64bfe3d0e418f Author: Bojan Smojver Date: Thu Sep 9 23:06:23 2010 +0200 PM / Hibernate: Compress hibernation image with LZO Compress hibernation image with LZO in order to save on I/O and therefore time to hibernate/thaw. [rjw: Added hibernate=nocompress command line option instead of just nocompress which would be confusing, fixed a couple of compiler warnings, fixed kerneldoc comments, minor cleanups.] Signed-off-by: Bojan Smojver Signed-off-by: Rafael J. Wysocki commit 05aa55dddb9ee4045c320661068bea78dad6a6e5 Author: Ohad Ben-Cohen Date: Thu Sep 9 00:46:16 2010 +0200 PM / Runtime: Lenient generic runtime pm callbacks Allow drivers, that belong to subsystems which use the generic runtime pm callbacks, not to define runtime pm suspend/resume handlers, by implicitly assuming success in such cases. This is needed to eliminate nop handlers that would otherwise be necessary by drivers which enable runtime pm, but don't need to do anything when their devices are runtime-suspended/resumed. Signed-off-by: Ohad Ben-Cohen Acked-by: Kevin Hilman Acked-by: Mark Brown Signed-off-by: Rafael J. Wysocki commit 032fa36091a925f555158f4e80f8a09d951cdb10 Author: Thomas Gleixner Date: Sat Oct 16 21:17:08 2010 +0200 arm: Use ARCH_IRQ_INIT_FLAGS The core code now initializes the requested number of interrupts and sets the flags in irq_desc.status which are requested by the architecture via ARCH_IRQ_INIT_FLAGS. Add ARCH_IRQ_INIT_FLAGS and remove the loop which sets those flags after the irq descriptors are allocated. [ This patch should have been in the original irq rework and got dropped accidentaly ] Signed-off-by: Thomas Gleixner Cc: Russell King Cc: Linus Walleij Cc: Anand Gadiyar commit f92f6e6ee35d2779aa62e70f78ad8e1cd417eb52 Merge: 66af86e cd254f2 Author: Ingo Molnar Date: Sat Oct 16 20:17:25 2010 +0200 Merge branch 'core' of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile into perf/core commit 05d0ca85c91013d5f73c43fb566bde09a9718019 Author: Anand Gadiyar Date: Thu Oct 14 22:59:57 2010 +0530 genirq, ARM: Fix boot on ARM platforms Commit b683de2b3 in linux-next as of 20101014 (genirq: Query arch for number of early descriptors) seems to have broken bootup on several ARM boards - my beagleboard gives the following dump with earlyprintk: NR_IRQS:402 Unable to handle kernel NULL pointer dereference at virtual address 00000028 pgd = c0004000 [00000028] *pgd=00000000 Internal error: Oops: 5 [#1] last sysfs file: Modules linked in: CPU: 0 Not tainted (2.6.36-rc7-next-20101014-linux-next-20101012+ #40) PC is at init_IRQ+0x14/0x48 LR is at start_kernel+0x150/0x2c0 [...] We seem to be using desc->status without assigning desc to anything. Fix this by adding back the code that was originally there. Signed-off-by: Anand Gadiyar Tested-by: Linus Walleij Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org LKML-Reference: <1287077397-21781-1-git-send-email-gadiyar@ti.com> Signed-off-by: Ingo Molnar commit 66af86e2c630908b21cec018cb612576cf5f516e Merge: 0fdf136 85caa99 Author: Ingo Molnar Date: Sat Oct 16 14:48:58 2010 +0200 Merge branch 'tip/perf/recordmcount' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit 97299c726881603f44c30be8718c24015e7a4676 Author: Tejun Heo Date: Fri Oct 15 16:58:21 2010 +0200 pcmcia: don't call flush_scheduled_work() spuriously au100_generic and soc_common call flush_scheduled_work() spuriously. Remove them. This is to prepare for the deprecation and removal of flush_scheduled_work(). Signed-off-by: Tejun Heo Signed-off-by: Dominik Brodowski commit 0f64f70e9c029450e38fcc496148ffc9256bf8c1 Author: Tejun Heo Date: Fri Oct 15 17:04:45 2010 +0200 serial_cs: drop spurious flush_scheduled_work() call serial_cs doesn't use the system workqueue. Drop spurious flush_scheduled_work() call. This is to prepare for the deprecation and removal of flush_scheduled_work(). Signed-off-by: Tejun Heo Signed-off-by: Dominik Brodowski commit ee2007d299ad4020115b193858817e6c57e95db5 Author: Matthias Brugger Date: Sat Oct 16 01:39:49 2010 +0200 spi/atmel: typo in debug message This patches a typo in the debug message. Signed-off-by: Matthias Brugger Signed-off-by: Grant Likely commit 2decd65a2630633cee04d0b83fdcee46ad2989a1 Author: Jeff Liu Date: Tue Oct 12 11:18:18 2010 +0800 ocfs2: Avoid to evaluate xattr block flags again. It was evaludated to indexed before, check it is ok i think. Signed-off-by: Jeff Liu Signed-off-by: Joel Becker commit fc3718918f13ad72827d62d36ea0f5fb55090644 Merge: 7bdb0d1 d4396ea Author: Joel Becker Date: Fri Oct 15 13:03:09 2010 -0700 Merge branch 'globalheartbeat-2' of git://oss.oracle.com/git/smushran/linux-2.6 into ocfs2-merge-window Conflicts: fs/ocfs2/ocfs2.h commit 40ffa93791985ab300fd488072e9f37ccf72e88c Author: Thomas Gleixner Date: Fri Oct 15 21:08:14 2010 +0200 x86: Remove stale pmtimer_64.c This file is unused since the apic unification in 2.6.29, but nobody noticed. Signed-off-by: Thomas Gleixner commit d4396eafe402b710a8535137b3bf2abe6c059a15 Author: Sunil Mushran Date: Fri Oct 15 11:57:21 2010 -0700 ocfs2/cluster: Release debugfs file elapsed_time_in_ms An earlier commit forgot to remove a debugfs file, elapsed_time_in_ms. Signed-off-by: Sunil Mushran commit 940b3c7b193ec54141976a8642c00582f423690c Author: Thomas Gleixner Date: Fri Oct 15 19:36:26 2010 +0200 x86: sfi: Make local functions static Signed-off-by: Thomas Gleixner Cc: Len Brown commit 85caa993d7f218b7c2abcfcb28e212396b6a3313 Author: Steven Rostedt Date: Fri Oct 15 12:09:25 2010 -0400 ftrace: Use objtree for C version of recordmcount The C version of recordmcount is compiled to a binary, which will end up located in the objtree. If the kernel is built with O=path, the srctree will not include the binary recordmcount caller. Cc: Michal Marek Cc: linux-kbuild@vger.kernel.org Signed-off-by: Steven Rostedt commit 444758636439810f110f86a3042c2dfd3626a9e2 Author: Steven Rostedt Date: Fri Oct 15 11:49:47 2010 -0400 ftrace: Do not process kernel/trace/ftrace.o with C recordmcount program The file kernel/trace/ftrace.c references the mcount() call to convert the mcount() callers to nops. But because it references mcount(), the mcount() address is placed in the relocation table. The C version of recordmcount reads the relocation table of all object files, and it will add all references to mcount to the __mcount_loc table that is used to find the places that call mcount() and change the call to a nop. When recordmcount finds the mcount reference in kernel/trace/ftrace.o, it saves that location even though the code is not a call, but references mcount as data. On boot up, when all calls are converted to nops, the code has a safety check to determine what op code it is actually replacing before it replaces it. If that op code at the address does not match, then a warning is printed and the function tracer is disabled. The reference to mcount in ftrace.c, causes this warning to trigger, since the reference is not a call to mcount(). The ftrace.c file is not compiled with the -pg flag, so no calls to mcount() should be expected. This patch simply makes recordmcount.c skip the kernel/trace/ftrace.c file. This was the same solution used by the perl version of recordmcount. Reported-by: Ingo Molnar Cc: John Reiser Signed-off-by: Steven Rostedt commit 46bf36ecec79bbe5373ef68f0ed36cbf62e03482 Author: Christoph Hellwig Date: Fri Oct 15 05:45:00 2010 -0700 hfsplus: fix getxattr return value We need to support -EOPNOTSUPP for attributes that are not supported to match other filesystems and allow userspace to detect if Posix ACLs are supported or not. setxattr already gets this right. Signed-off-by: Christoph Hellwig commit a5360df9413987ed56ce8cffad678e557eff92e1 Author: Wolfram Sang Date: Fri Oct 15 14:18:21 2010 +0200 pcmcia/yenta: guide users in case of problems with O2-bridges Some cards need the speedups on, some need them off. As we can't detect this reliably, at least give the users a hint how to tweak the system. Reported-by: David Bluecame Signed-off-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit cd254f295248c98b62ea824f361e10d80a081fe7 Author: Robert Richter Date: Fri Oct 15 11:28:07 2010 +0200 oprofile: make !CONFIG_PM function stubs static inline Make !CONFIG_PM function stubs static inline and remove section attribute. Signed-off-by: Robert Richter commit b3b3a9b63f2deacfd59137e3781211d21a568ca9 Author: Anand Gadiyar Date: Thu Oct 14 11:31:42 2010 -0400 oprofile: fix linker errors Commit e9677b3ce (oprofile, ARM: Use oprofile_arch_exit() to cleanup on failure) caused oprofile_perf_exit to be called in the cleanup path of oprofile_perf_init. The __exit tag for oprofile_perf_exit should therefore be dropped. The same has to be done for exit_driverfs as well, as this function is called from oprofile_perf_exit. Else, we get the following two linker errors. LD .tmp_vmlinux1 `oprofile_perf_exit' referenced in section `.init.text' of arch/arm/oprofile/built-in.o: defined in discarded section `.exit.text' of arch/arm/oprofile/built-in.o make: *** [.tmp_vmlinux1] Error 1 LD .tmp_vmlinux1 `exit_driverfs' referenced in section `.text' of arch/arm/oprofile/built-in.o: defined in discarded section `.exit.text' of arch/arm/oprofile/built-in.o make: *** [.tmp_vmlinux1] Error 1 Signed-off-by: Anand Gadiyar Cc: Will Deacon Signed-off-by: Robert Richter commit 277dd984172b063497d2ff6cfa7f2355f13a292d Author: Anand Gadiyar Date: Thu Oct 14 11:31:43 2010 -0400 oprofile: include platform_device.h to fix build break oprofile_perf.c needs to include platform_device.h Otherwise we get the following build break. CC arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.o arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:192: warning: 'struct platform_device' declared inside parameter list arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:192: warning: its scope is only this definition or declaration, which is probably not what you want arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:201: warning: 'struct platform_device' declared inside parameter list arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:210: error: variable 'oprofile_driver' has initializer but incomplete type arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: unknown field 'driver' specified in initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: extra brace group at end of initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: (near initialization for 'oprofile_driver') arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:213: warning: excess elements in struct initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:213: warning: (near initialization for 'oprofile_driver') arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: error: unknown field 'resume' specified in initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: warning: excess elements in struct initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: warning: (near initialization for 'oprofile_driver') arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: error: unknown field 'suspend' specified in initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: warning: excess elements in struct initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: warning: (near initialization for 'oprofile_driver') arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c: In function 'init_driverfs': Signed-off-by: Anand Gadiyar Cc: Matt Fleming Cc: Will Deacon Signed-off-by: Robert Richter commit 6268464b370e234e0255330190f9bd5d19386ad7 Merge: 7df01d9 0fdf136 Author: Robert Richter Date: Fri Oct 15 12:45:00 2010 +0200 Merge remote branch 'tip/perf/core' into oprofile/core Conflicts: arch/arm/oprofile/common.c kernel/perf_event.c commit 9e9006e9090dc1f88d5127cb69f416013e7ecd60 Author: Randy Dunlap Date: Thu Oct 14 10:13:13 2010 -0700 x86, olpc: XO-1 uses/depends on PCI olpc-xo1 uses pci_*() interfaces so it should depend on PCI. Otherwise we get build failure like: arch/x86/kernel/olpc-xo1.c:65: error: implicit declaration of function 'pci_enable_device_io' arch/x86/kernel/olpc-xo1.c:71: error: implicit declaration of function 'pci_request_region' arch/x86/kernel/olpc-xo1.c:80: error: implicit declaration of function 'pci_release_region' Signed-off-by: Randy Dunlap Acked-by: Daniel Drake Cc: Stephen Rothwell LKML-Reference: <20101014101313.adf7eb2a.randy.dunlap@oracle.com> Signed-off-by: Ingo Molnar commit 0fdf13606b67f830559abdaad15980c7f4f05ec4 Merge: d9d572a cf4db25 Author: Ingo Molnar Date: Fri Oct 15 06:12:28 2010 +0200 Merge branch 'tip/perf/recordmcount-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit cf4db2597ae93b60efc0a7a4ec08690b75d629b1 Author: Steven Rostedt Date: Thu Oct 14 23:32:44 2010 -0400 ftrace: Rename config option HAVE_C_MCOUNT_RECORD to HAVE_C_RECORDMCOUNT The config option used by archs to let the build system know that the C version of the recordmcount works for said arch is currently called HAVE_C_MCOUNT_RECORD which enables BUILD_C_RECORDMCOUNT. To be more consistent with the name that all archs may use, it has been renamed to HAVE_C_RECORDMCOUNT. This will be less confusing since we are building a C recordmcount and not a mcount_record. Suggested-by: Ingo Molnar Cc: Cc: Michal Marek Cc: linux-kbuild@vger.kernel.org Cc: John Reiser Signed-off-by: Steven Rostedt commit d9d572a9c0195486e3baf0d8d6a710196a707335 Merge: 3cba11d ebc8827 Author: Ingo Molnar Date: Fri Oct 15 05:12:45 2010 +0200 Merge branch 'perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core commit 6a1c9dfe4186f18fed38421b35b40fb9260cbfe1 Merge: e0dc09f 2989b72 Author: Benjamin Herrenschmidt Date: Fri Oct 15 10:45:03 2010 +1100 Merge remote branch 'jwb/next' into next commit c28d5077f8d79bfce1e3f88db2e261cf2b6473dc Author: Steven Rostedt Date: Wed Oct 13 19:06:14 2010 -0400 ftrace: Remove duplicate code for 64 and 32 bit in recordmcount.c The elf reader for recordmcount.c had duplicate functions for both 32 bit and 64 bit elf handling. This was due to the need of using the 32 and 64 bit elf structures. This patch consolidates the two by using macros to define the 32 and 64 bit names in a recordmcount.h file, and then by just defining a RECORD_MCOUNT_64 macro and including recordmcount.h twice we create the funtions for both the 32 bit version as well as the 64 bit version using one code source. Cc: John Reiser Signed-off-by: Steven Rostedt commit 72441cb1fd77d092f09ddfac748955703884c9a7 Author: Steven Rostedt Date: Wed Oct 13 17:12:30 2010 -0400 ftrace/x86: Add support for C version of recordmcount This patch adds the support for the C version of recordmcount and compile times show ~ 12% improvement. After verifying this works, other archs can add: HAVE_C_MCOUNT_RECORD in its Kconfig and it will use the C version of recordmcount instead of the perl version. Cc: Cc: Michal Marek Cc: linux-kbuild@vger.kernel.org Cc: John Reiser Signed-off-by: Steven Rostedt commit 81d3858d3131a589cade0d8b57f95cc1fc699b89 Author: John Reiser Date: Wed Oct 13 15:12:54 2010 -0400 ftrace: Add C version of recordmcount compile time code Currently, the mcount callers are found with a perl script that does an objdump on every file in the kernel. This is a C version of that same code which should increase the performance time of compiling the kernel with dynamic ftrace enabled. Signed-off-by: John Reiser [ Updated the code to include .text.unlikely section as well as changing the format to follow Linux coding style. ] Signed-off-by: Steven Rostedt commit ebc8827f75954fe315492883eee5cb3f355d547d Author: Frederic Weisbecker Date: Mon Sep 27 18:50:51 2010 +0200 x86: Barf when vmalloc and kmemcheck faults happen in NMI In x86, faults exit by executing the iret instruction, which then reenables NMIs if we faulted in NMI context. Then if a fault happens in NMI, another NMI can nest after the fault exits. But we don't yet support nested NMIs because we have only one NMI stack. To prevent from that, check that vmalloc and kmemcheck faults don't happen in this context. Most of the other kernel faults in NMIs can be more easily spotted by finding explicit copy_from,to_user() calls on review. Signed-off-by: Frederic Weisbecker Cc: Ingo Molnar Cc: Thomas Gleixner Cc: H. Peter Anvin Cc: Mathieu Desnoyers Cc: Peter Zijlstra commit 3e0f686e6bf347eea4a41d7d415f003c2f42b1a0 Author: Randy Dunlap Date: Wed Oct 13 18:07:16 2010 -0700 ibft: fix kconfig dependencies Fix kconfig dependency warning to satisfy dependencies: warning: (BE2ISCSI && SCSI_LOWLEVEL && PCI && SCSI && NET || ISCSI_IBFT && ISCSI_IBFT_FIND && SCSI) selects ISCSI_BOOT_SYSFS which has unmet direct dependencies (SCSI_LOWLEVEL && SCSI) Signed-off-by: Randy Dunlap Signed-off-by: Peter Jones Signed-off-by: Konrad Rzeszutek Wilk commit ef6510babf047d394aa6eb8c93baa0dd6b838c28 Author: Kumar Gala Date: Thu Oct 14 08:55:47 2010 -0500 spi/fsl_spi: Fix compile errors when building on ppc64 We get the following when building on ppc64 due to lack of include of : In file included from drivers/spi/spi_fsl_espi.c:25:0: drivers/spi/spi_fsl_lib.h: In function 'mpc8xxx_spi_write_reg': drivers/spi/spi_fsl_lib.h:88:2: error: implicit declaration of function 'out_be32' drivers/spi/spi_fsl_lib.h: In function 'mpc8xxx_spi_read_reg': drivers/spi/spi_fsl_lib.h:93:2: error: implicit declaration of function 'in_be32' drivers/spi/spi_fsl_espi.c: In function 'fsl_espi_remove': drivers/spi/spi_fsl_espi.c:571:2: error: implicit declaration of function 'iounmap' drivers/spi/spi_fsl_espi.c: In function 'fsl_espi_probe': drivers/spi/spi_fsl_espi.c:602:2: error: implicit declaration of function 'ioremap' drivers/spi/spi_fsl_espi.c:602:24: warning: assignment makes pointer from integer without a cast Signed-off-by: Kumar Gala Signed-off-by: Grant Likely commit 32e39e19ccb0f25c9c1b7ff246e17e795366bbbd Author: Christoph Hellwig Date: Thu Oct 14 09:54:43 2010 -0400 hfsplus: remove the unused hfsplus_kmap/hfsplus_kunmap helpers Signed-off-by: Christoph Hellwig commit 90e616905a423126805186cb5754e10a704b30c8 Author: Christoph Hellwig Date: Thu Oct 14 09:54:39 2010 -0400 hfsplus: create correct initial catalog entries for device files Make sure the initial insertation of the catalog entry already contains the device number by calling init_special_inode early and setting writing out the dev field of the on-disk permission structure. The latter is facilitated by sharing the almost identical hfsplus_set_perms helpers between initial catalog entry creating and ->write_inode. Unless we crashed just after mknod this bug was harmless as the inode is marked dirty at the end of hfsplus_mknod, and hfsplus_write_inode will update the catalog entry to contain the correct value. Signed-off-by: Christoph Hellwig commit 722c55d13e7296cc62ed8a38f926a915ff32e4ea Author: Christoph Hellwig Date: Thu Oct 14 09:54:33 2010 -0400 hfsplus: remove superflous rootflags field in hfsplus_inode_info The rootflags field in hfsplus_inode_info only caches the immutable and append-only flags in the VFS inode, so we can easily get rid of it. Signed-off-by: Christoph Hellwig commit f6089ff87d309a8ddb7b0d4dd92a570f1b0f689b Author: Christoph Hellwig Date: Thu Oct 14 09:54:28 2010 -0400 hfsplus: fix link corruption HFS implements hardlink by using indirect catalog entries that refer to a hidden directly. The link target is cached in the dev field in the HFS+ specific inode, which is also used for the device number for device files, and inside for passing the nlink value of the indirect node from hfsplus_cat_write_inode to a helper function. Now if we happen to write out the indirect node while hfsplus_link is creating the catalog entry we'll get a link pointing to the linkid of the current nlink value. This can easily be reproduced by a large enough loop of local git-clone operations. Stop abusing the dev field in the HFS+ inode for short term storage by refactoring the way the permission structure in the catalog entry is set up, and rename the dev field to linkid to avoid any confusion. While we're at it also prevent creating hard links to special files, as the HFS+ dev and linkid share the same space in the on-disk structure. Signed-off-by: Christoph Hellwig commit 13571a6977f821fab7d9c3cc5f75da52b7732e40 Author: Christoph Hellwig Date: Thu Oct 14 09:54:23 2010 -0400 hfsplus: validate btree flags Signed-off-by: Christoph Hellwig commit 9250f925972d03ccc0c0a4dd4e9b794d2ef6d52b Author: Eric Sandeen Date: Thu Oct 14 09:53:48 2010 -0400 hfsplus: handle more on-disk corruptions without oopsing hfs seems prone to bad things when it encounters on disk corruption. Many values are read from disk, and used as lengths to memcpy, as an example. This patch fixes up several of these problematic cases. o sanity check the on-disk maximum key lengths on mount (these are set to a defined value at mkfs time and shouldn't differ) o check on-disk node keylens against the maximum key length for each tree o fix hfs_btree_open so that going out via free_tree: doesn't wind up in hfs_releasepage, which wants to follow the very pointer we were trying to set up: HFS_SB(sb)->cat_tree = hfs_btree_open() . failure gets to hfs_releasepage and tries to follow HFS_SB(sb)->cat_tree Tested with the fsfuzzer; it survives more than it used to. [hch: ported of commit cf0594625083111ae522496dc1c256f7476939c2 from hfs] [hch: added the fixes from 5581d018ed3493d226e7a4d645d9c8a5af6c36b] Signed-off-by: Eric Sandeen Signed-off-by: Christoph Hellwig commit b6b41424f0ec28e9a167fa29b003327860b4b71b Author: Al Viro Date: Thu Oct 14 09:53:42 2010 -0400 hfsplus: hfs_bnode_find() can fail, resulting in hfs_bnode_split() breakage oops and fs corruption; the latter can happen even on valid fs in case of oom. [hch: port of commit 3d10a15d6919488204bdb264050d156ced20d9aa from hfs] Signed-off-by: Al Viro Signed-off-by: Christoph Hellwig commit ee52716245877b821f5ddbb3ace85b73084fb450 Author: Jeff Mahoney Date: Thu Oct 14 09:53:37 2010 -0400 hfsplus: fix oops on mount with corrupted btree extent records A particular fsfuzzer run caused an hfs file system to crash on mount. This is due to a corrupted MDB extent record causing a miscalculation of HFSPLUS_I(inode)->first_blocks for the extent tree. If the extent records are zereod out, then it won't trigger the first_blocks special case and instead falls through to the extent code, which we're in the middle of initializing. This patch catches the 0 size extent records, reports the corruption, and fails the mount. [hch: ported of commit 47f365eb575735c6b2edf5d08e0d16d26a9c23bd from hfs] Reported-by: Ramon de Carvalho Valle Signed-off-by: Jeff Mahoney Signed-off-by: Christoph Hellwig commit 2989b722c9c4694cf6c5aa378f9c8a14e106d320 Author: Josh Boyer Date: Tue Sep 28 09:03:49 2010 -0400 powerpc/44x: Update ppc44x_defconfig Make sure the new bluestone board is selected for the multiplatform defconfig. Also build logfs and squashfs as modules. Signed-off-by: Josh Boyer commit 3c7d2b765df974ae29a9f1d5a62e15b243a36763 Author: Maciej Żenczykowski Date: Wed Oct 13 21:47:14 2010 -0700 pcmcia: fix unused function compile warning pcmcia_socket_dev_resume() is only referenced from macro SET_SYSTEM_SLEEP_PM_OPS(NULL, pcmcia_socket_dev_resume) which based on CONFIG_PM_SLEEP may or may not actually use its second parameter. Signed-off-by: Maciej Żenczykowski Signed-off-by: Dominik Brodowski commit 864616ee6785d9fac7a2cd80c01a2da89579f2e4 Author: Takuya Yoshikawa Date: Thu Oct 14 16:09:13 2010 +0900 sched: Comment updates: fix default latency and granularity numbers Targeted preemption latency and minimal preemption granularity for CPU-bound tasks have been changed. This patch updates the comments about these values. Signed-off-by: Takuya Yoshikawa Cc: Peter Zijlstra Cc: Mike Galbraith LKML-Reference: <20101014160913.eb24fef4.yoshikawa.takuya@oss.ntt.co.jp> Signed-off-by: Ingo Molnar commit ed859ed3b0f9893c6bce3708e8928341c15699b9 Merge: a802707 53eeb64 Author: Ingo Molnar Date: Thu Oct 14 09:11:43 2010 +0200 Merge branch 'linus' into sched/core Merge reason: update from -rc5 to -almost-final Signed-off-by: Ingo Molnar commit 67e87f0a1c5cbc750f81ebf6a128e8ff6f4376cc Author: Jeremy Fitzhardinge Date: Wed Oct 13 16:34:15 2010 -0700 x86-64: Only set max_pfn_mapped to 512 MiB if we enter via head_64.S head_64.S maps up to 512 MiB, but that is not necessarity true for other entry paths, such as Xen. Thus, co-locate the setting of max_pfn_mapped with the code to actually set up the page tables in head_64.S. The 32-bit code is already so co-located. (The Xen code already sets max_pfn_mapped correctly for its own use case.) -v2: Yinghai fixed the following bug in this patch: | | max_pfn_mapped is in .bss section, so we need to set that | after bss get cleared. Without that we crash on bootup. | | That is safe because Xen does not call x86_64_start_kernel(). | Signed-off-by: Jeremy Fitzhardinge Fixed-by: Yinghai Lu Signed-off-by: H. Peter Anvin LKML-Reference: <4CB6AB24.9020504@kernel.org> Signed-off-by: Ingo Molnar commit fb62db2ba943b1683f1d7181bb2988fce4c60870 Author: Randy Dunlap Date: Wed Oct 13 11:02:34 2010 -0700 futex: Fix kernel-doc notation & typos Convert futex_requeue() function parameters to use @name kernel-doc notation and add @fshared & @cmpval to prevent kernel-doc warnings. Add @list to struct futex_q. Fix a few typos. Signed-off-by: Randy Dunlap Acked-by: Rusty Russell LKML-Reference: <20101013110234.89b06043.randy.dunlap@oracle.com> Signed-off-by: Ingo Molnar commit 3cba11d32bb4b24c3ba257043595772df4b9c7b5 Author: Masami Hiramatsu Date: Thu Oct 14 12:10:42 2010 +0900 kconfig/x86: Add HAVE_TEXT_POKE_SMP config for stop_machine dependency Since the text_poke_smp() definately depends on actual stop_machine() on smp, add that dependency to Kconfig. Signed-off-by: Masami Hiramatsu Cc: Rusty Russell Cc: Ananth N Mavinakayanahalli Cc: 2nddept-manager@sdl.hitachi.co.jp Cc: Mathieu Desnoyers LKML-Reference: <20101014031042.4100.90877.stgit@ltc236.sdl.hitachi.co.jp> Signed-off-by: Ingo Molnar commit 3caa37519ccbb200c7fbbf6ff4fb306a30f29425 Author: Masami Hiramatsu Date: Thu Oct 14 12:10:36 2010 +0900 x86: Use __stop_machine() in text_poke_smp() Use __stop_machine() in text_poke_smp() because the caller must get online_cpus before calling text_poke_smp(), but stop_machine() do it again. We don't need it. Signed-off-by: Masami Hiramatsu Cc: Rusty Russell Cc: Ananth N Mavinakayanahalli Cc: 2nddept-manager@sdl.hitachi.co.jp Cc: Mathieu Desnoyers LKML-Reference: <20101014031036.4100.83989.stgit@ltc236.sdl.hitachi.co.jp> Signed-off-by: Ingo Molnar commit 087a4eb55971dfcc8df18312faf9393d0a479f3a Author: Masami Hiramatsu Date: Thu Oct 14 12:10:30 2010 +0900 stopmachine: Define __stop_machine when CONFIG_STOP_MACHINE=n Define dummy __stop_machine() function even when CONFIG_STOP_MACHINE=n. This getcpu-required version of stop_machine() will be used from poke_text_smp(). Signed-off-by: Masami Hiramatsu Acked-by: Tejun Heo Cc: Rusty Russell Cc: Ananth N Mavinakayanahalli Cc: 2nddept-manager@sdl.hitachi.co.jp Cc: Peter Zijlstra LKML-Reference: <20101014031030.4100.34156.stgit@ltc236.sdl.hitachi.co.jp> Signed-off-by: Ingo Molnar commit fd02e6f7ae085840d43d780149fcf95a614eca5e Author: Masami Hiramatsu Date: Thu Oct 14 12:10:24 2010 +0900 kprobes: Fix selftest to clear flags field for reusing probes Fix selftest to clear flags field for reusing probes because the flags field can be modified by Kprobes. This also set NULL to kprobe.addr instead of 0. Signed-off-by: Masami Hiramatsu Cc: Rusty Russell Cc: Ananth N Mavinakayanahalli Cc: 2nddept-manager@sdl.hitachi.co.jp LKML-Reference: <20101014031024.4100.50107.stgit@ltc236.sdl.hitachi.co.jp> Signed-off-by: Ingo Molnar commit 0f55a2f3d496133dd22f1e4e49fb7301da87c7bb Author: Masami Hiramatsu Date: Thu Oct 14 12:10:18 2010 +0900 kprobes: Update document about irq disabled state in kprobe handler Update kprobes.txt about interrupts disabled state inside kprobes handlers, because optimized probe/boosted kretprobe run without disabling interrrupts on x86. Signed-off-by: Masami Hiramatsu Cc: Rusty Russell Cc: Ananth N Mavinakayanahalli Cc: 2nddept-manager@sdl.hitachi.co.jp LKML-Reference: <20101014031018.4100.64883.stgit@ltc236.sdl.hitachi.co.jp> Signed-off-by: Ingo Molnar commit 1efeb08d7dd32c0fbd4b784ea9303b53d345bfd0 Author: Ingo Molnar Date: Thu Oct 14 08:09:42 2010 +0200 perf, ARM: Fix sysfs bits removal build failure Fix this linux-next build failure that Stephen reported: arch/arm/kernel/perf_event.c: In function 'armpmu_event_init': arch/arm/kernel/perf_event.c:543: error: request for member 'num_events' in something not a structure or union Reported-by: Stephen Rothwell Cc: Peter Zijlstra Cc: paulus LKML-Reference: <20101014164925.4fa16b75.sfr@canb.auug.org.au> Signed-off-by: Ingo Molnar commit e0dc09ff9a28f37441c5e92a14de6abda8db49d6 Author: Timur Tabi Date: Wed Oct 13 14:19:36 2010 -0500 powerpc/watchdog: Make default timeout for Book-E watchdog a Kconfig option The PowerPC Book-E watchdog driver (booke_wdt.c) defines a default timeout value in the code based on whether it's a Freescale Book-E part of not. Instead of having hard-coded values in the driver, make it a Kconfig option. As newer chips gets faster, the current default values become less appropriate, since the timeout sometimes occurs before the kernel finishes booting. Making the value a Kconfig option allows BSPs to configure a new value without requiring the wdt_period command-line parameter to be set. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit abd12fe4d1249f6c2c4b34d5ced82f179e6b5d30 Author: Shaohui Xie Date: Thu Oct 14 10:04:02 2010 +0800 fsl_rio: Add comments for sRIO registers. Add some comments to make sRIO registers map better readable. Signed-off-by: Shaohui Xie Signed-off-by: Kumar Gala commit 6249a26a4cfe945c0840f222e3669deb9bd41425 Author: Kumar Gala Date: Thu Jun 3 03:23:21 2010 -0500 powerpc/fsl-booke: Add e55xx (64-bit) smp defconfig The p5020 SoC from Freescale is the first 64-bit Book-E processor and utilizes the two e5500 cores. Adding a defconfig that enables basic kernel for e5500 based processors. Also added the p5020 / e5500 support to the ppc64e defconfig. Signed-off-by: Kumar Gala commit 95400415c7b3f3dd43034c6c860897ac397ebe1b Author: Kumar Gala Date: Thu Oct 7 14:05:47 2010 -0500 powerpc/fsl-booke: Add p5020 DS board support The P5020DS is in the same family of boards as the P4080 DS and thus shares the corenet_ds code. Signed-off-by: Kumar Gala commit 55fd766b5fad8240b7a6e994b5779a46d28f73d4 Author: Kumar Gala Date: Fri Oct 16 18:48:40 2009 -0500 powerpc/fsl-booke64: Use TLB CAMs to cover linear mapping on FSL 64-bit chips On Freescale parts typically have TLB array for large mappings that we can bolt the linear mapping into. We utilize the code that already exists on PPC32 on the 64-bit side to setup the linear mapping to be cover by bolted TLB entries. We utilize a quarter of the variable size TLB array for this purpose. Additionally, we limit the amount of memory to what we can cover via bolted entries so we don't get secondary faults in the TLB miss handlers. We should fix this limitation in the future. Signed-off-by: Kumar Gala commit 988cf86d4f0da4150e808300c145ba87c0aad02f Author: Kumar Gala Date: Fri Oct 8 02:13:25 2010 -0500 powerpc/fsl-booke: Add support for FSL Arch v1.0 MMU in setup_page_sizes Update setup_page_sizes() to support for a MMU v1.0 FSL style MMU implementation. In such a processor, we don't have TLB0PS or EPTCFG registers (and access to these registers may cause exceptions). We need to parse the older format of TLBnCFG for page size support. Additionaly, assume since we are an FSL implementation that we have 2 TLB arrays and the second array contains the variable size pages. Signed-off-by: Kumar Gala commit 4490c06b581ad7d6392bb398960ef86dfd203a91 Author: Kumar Gala Date: Fri Oct 8 08:32:11 2010 -0500 powerpc/fsl-booke: Add support for FSL 64-bit e5500 core The new e5500 core is similar to the e500mc core but adds 64-bit support. We support running it in 32-bit mode as it is identical to the e500mc. Signed-off-by: Kumar Gala commit 6db92cc9d07db9f713da8554b4bcdfc8e54ad386 Author: Harninder Rai Date: Wed Oct 13 17:30:56 2010 +0530 powerpc/85xx: add cache-sram support It adds cache-sram support in P1/P2 QorIQ platforms as under: * A small abstraction over powerpc's remote heap allocator * Exports mpc85xx_cache_sram_alloc()/free() APIs * Supports only one contiguous SRAM window * Drivers can do the following in Kconfig to use these APIs "select FSL_85XX_CACHE_SRAM if MPC85xx" * Required SRAM size and the offset where SRAM should be mapped must be provided at kernel command line as : cache-sram-size= cache-sram-offset= Signed-off-by: Harninder Rai Signed-off-by: Vivek Mahajan Signed-off-by: Kumar Gala commit 6341efe4b9bd1e1f9c0d0d6ec57fa77949c88bb1 Author: Timur Tabi Date: Thu Oct 7 14:36:42 2010 -0500 powerpc/85xx: add ngPIXIS FPGA device tree node to the P1022DS board The device tree for Freescale's P1022DS reference board is missing the node for the ngPIXIS FPGA. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit 3c4b76449b4efc1a1cbd0cade09486bbc8b56401 Author: Kumar Gala Date: Thu Oct 7 17:05:08 2010 -0500 powerpc: Fix compile error with paca code on ppc64e arch/powerpc/kernel/paca.c: In function 'allocate_lppacas': arch/powerpc/kernel/paca.c:111:1: error: parameter name omitted arch/powerpc/kernel/paca.c:111:1: error: parameter name omitted Signed-off-by: Kumar Gala commit b6f9e595d27371c4f2157a294da3caa7aed5fe53 Author: Kumar Gala Date: Thu Oct 7 14:47:10 2010 -0500 powerpc/fsl-booke: Add p3041 DS board support The P3041DS is in the same family of boards as the P4080DS and thus shares the corenet_ds code. Signed-off-by: Kumar Gala commit 4267ea72bb09dc58f006df26c8d3e897489fabca Author: Scott Wood Date: Wed May 19 15:32:21 2010 -0500 oprofile/fsl emb: Don't set MSR[PMM] until after clearing the interrupt. On an arch 2.06 hypervisor, a pending perfmon interrupt will be delivered to the hypervisor at any point the guest is running, regardless of MSR[EE]. In order to reflect this interrupt, the hypervisor has to mask the interrupt in PMGC0 -- and set MSRP[PMMP] to intercept futher guest accesses to the PMRs to detect when to unmask (and prevent the guest from unmasking early, or seeing inconsistent state). This has the side effect of ignoring any changes the guest makes to MSR[PMM], so wait until after the interrupt is clear, and thus the hypervisor should have cleared MSRP[PMMP], before setting MSR[PMM]. The counters wil not actually run until PMGC0[FAC] is cleared in pmc_start_ctrs(), so this will not reduce the effectiveness of PMM. Signed-off-by: Scott Wood Signed-off-by: Kumar Gala commit 4f0e332239e2b5f79757cb8f8f3db16c66f5d220 Author: Kumar Gala Date: Fri Sep 24 13:34:42 2010 -0500 powerpc/fsl-booke: Add PCI device ids for P2040/P3041/P5010/P5020 QoirQ chips Signed-off-by: Kumar Gala commit da3ed89e7ce272ebcc918487e2a28736ca0dd6bb Author: Kumar Gala Date: Tue May 18 07:52:36 2010 -0500 powerpc/mpc8xxx_gpio: Add support for 'qoriq-gpio' controllers Add 'fsl,qoriq-gpio' compatiable to the list we search for to bind against for mpc8xxx_gpio. This compatiable will be used on P1-P5xxx QorIQ devices like P4080. Signed-off-by: Kumar Gala commit 2ed38b23597284cc96a97e295cb145a6202dfcd4 Author: Matthew McClintock Date: Tue Aug 31 18:24:45 2010 -0500 powerpc/fsl_booke: Add support to boot from core other than 0 First we check to see if we are the first core booting up. This is accomplished by comparing the boot_cpuid with -1, if it is we assume this is the first core coming up. Secondly, we need to update the initial thread info structure to reflect the actual cpu we are running on otherwise smp_processor_id() and related functions will return the default initialization value of the struct or 0. Signed-off-by: Matthew McClintock Signed-off-by: Kumar Gala commit f7a07fd9617140c6111de82400ba1bad3162fb85 Author: Timur Tabi Date: Thu Aug 19 16:28:12 2010 -0500 powerpc/p1022: Add probing for individual DMA channels Like the MPC8610 HPCD, the P1022DS ASoC DMA driver probes on individual DMA channel nodes, so the DMA controller nodes' compatible string must be listed in p1022_ds_ids[] to work. Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit 4ea7c88bec9221031fa57fc7c290fdb5d279748c Author: Matthew McClintock Date: Tue Aug 31 17:44:51 2010 -0500 powerpc/fsl_soc: Search all global-utilities nodes for rstccr The first global-utilities node might not contain the rstcr property, so we should search all the nodes Signed-off-by: Matthew McClintock Acked-by: Timur Tabi Signed-off-by: Kumar Gala commit 92437d41374bf59b1914b53bd10ca69d31b1b581 Author: Paul Gortmaker Date: Fri Sep 24 12:44:52 2010 -0400 powerpc: Fix invalid page flags in create TLB CAM path for PTE_64BIT There exists a four line chunk of code, which when configured for 64 bit address space, can incorrectly set certain page flags during the TLB creation. It turns out that this is code which isn't used, but might still serve a purpose. Since it isn't obvious why it exists or why it causes problems, the below description covers both in detail. For powerpc bootstrap, the physical memory (at most 768M), is mapped into the kernel space via the following path: MMU_init() | + adjust_total_lowmem() | + map_mem_in_cams() | + settlbcam(i, virt, phys, cam_sz, PAGE_KERNEL_X, 0); On settlbcam(), the kernel will create TLB entries according to the flag, PAGE_KERNEL_X. settlbcam() { ... TLBCAM[index].MAS1 = MAS1_VALID | MAS1_IPROT | MAS1_TSIZE(tsize) | MAS1_TID(pid); ^ These entries cannot be invalidated by the kernel since MAS1_IPROT is set on TLB property. ... if (flags & _PAGE_USER) { TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR; TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0); } For classic BookE (flags & _PAGE_USER) is 'zero' so it's fine. But on boards like the the Freescale P4080, we want to support 36-bit physical address on it. So the following options may be set: CONFIG_FSL_BOOKE=y CONFIG_PTE_64BIT=y CONFIG_PHYS_64BIT=y As a result, boards like the P4080 will introduce PTE format as Book3E. As per the file: arch/powerpc/include/asm/pgtable-ppc32.h * #elif defined(CONFIG_FSL_BOOKE) && defined(CONFIG_PTE_64BIT) * #include So PAGE_KERNEL_X is __pgprot(_PAGE_BASE | _PAGE_KERNEL_RWX) and the book3E version of _PAGE_KERNEL_RWX is defined with: (_PAGE_BAP_SW | _PAGE_BAP_SR | _PAGE_DIRTY | _PAGE_BAP_SX) Note the _PAGE_BAP_SR, which is also defined in the book3E _PAGE_USER: #define _PAGE_USER (_PAGE_BAP_UR | _PAGE_BAP_SR) /* Can be read */ So the possibility exists to wrongly assign the user MAS3_U bits to kernel (PAGE_KERNEL_X) address space via the following code fragment: if (flags & _PAGE_USER) { TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR; TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0); } Here is a dump of the TLB info from Simics with the above code present: ------ L2 TLB1 GT SSS UUU V I Row Logical Physical SS TLPID TID WIMGE XWR XWR F P V ----- ----------------- ------------------- -- ----- ----- ----- --- --- - - - 0 c0000000-cfffffff 000000000-00fffffff 00 0 0 M XWR XWR 0 1 1 1 d0000000-dfffffff 010000000-01fffffff 00 0 0 M XWR XWR 0 1 1 2 e0000000-efffffff 020000000-02fffffff 00 0 0 M XWR XWR 0 1 1 Actually this conditional code was used for two legacy functions: 1: support KGDB to set break point. KGDB already dropped this; now uses its core write to set break point. 2: io_block_mapping() to create TLB in segmentation size (not PAGE_SIZE) for device IO space. This use case is also removed from the latest PowerPC kernel. However, there may still be a use case for it in the future, like large user pages, so we can't remove it entirely. As an alternative, we match on all bits of _PAGE_USER instead of just any bits, so the case where just _PAGE_BAP_SR is set can't sneak through. With this done, the TLB appears without U having XWR as below: ------- L2 TLB1 GT SSS UUU V I Row Logical Physical SS TLPID TID WIMGE XWR XWR F P V ----- ----------------- ------------------- -- ----- ----- ----- --- --- - - - 0 c0000000-cfffffff 000000000-00fffffff 00 0 0 M XWR 0 1 1 1 d0000000-dfffffff 010000000-01fffffff 00 0 0 M XWR 0 1 1 2 e0000000-efffffff 020000000-02fffffff 00 0 0 M XWR 0 1 1 Signed-off-by: Tiejun Chen Signed-off-by: Paul Gortmaker Signed-off-by: Kumar Gala commit cd2bd44ea8a2e8be8fff583fa5759e8f3758e67a Author: Ilya Yanok Date: Thu Sep 9 01:55:16 2010 +0200 powerpc/mpc83xx: Support for MPC8308 P1M board This patch adds support for MPC8308 P1M board. Supported devices: DUART Dual Ethernet NOR flash Both I2C controllers USB in peripheral mode PCI Express Signed-off-by: Ilya Yanok Signed-off-by: Kumar Gala commit 677de425583b43bf1af3aea0fa8d433120f0f13c Author: Matthew McClintock Date: Thu Sep 16 17:58:26 2010 -0500 powerpc/85xx: flush dcache before resetting cores When we do an mpic_reset_core we need to make sure the dcache is flushed. Signed-off-by: Matthew McClintock Signed-off-by: Kumar Gala commit 5d692961633d4ecd1ca07313b75ddf35520a4c28 Author: Matthew McClintock Date: Thu Sep 16 17:58:25 2010 -0500 powerpc/85xx: Minor fixups for kexec on 85xx Make kexec_down_cpus atmoic since it will be incremented by all cores as they are coming down. Remove duplicate calls to mpc85xx_smp_kexec_down, now it's called by the crash and normal kexec pathway only once. Increase the timeout to wait for other cores to shutdown. Signed-off-by: Matthew McClintock Signed-off-by: Kumar Gala commit edb85800101c354a395ecc5ed3b52a9499bd4cfc Author: Matthew McClintock Date: Thu Sep 16 17:58:24 2010 -0500 powerpc/85xx: Remove call to mpic_teardown_this_cpu in kexec We no longer need to call this explicitly as a generic version is called by default. Signed-off-by: Matthew McClintock Signed-off-by: Kumar Gala commit c71635d288ffd3bcdfb30308f681f9af34f0fc81 Author: Matthew McClintock Date: Thu Sep 16 17:58:23 2010 -0500 powerpc/kexec: make masking/disabling interrupts generic Right now just the kexec crash pathway turns turns off the interrupts. Pull that out and make a generic version for use elsewhere Signed-off-by: Matthew McClintock Signed-off-by: Kumar Gala commit fbdd7144ceadd578bc2a875af1dabd67e80ba0d0 Author: Timur Tabi Date: Mon Sep 20 11:23:42 2010 -0500 powerpc/watchdog: Allow the Book-E driver to be compiled as a module Register the __init and __exit functions in the PowerPC Book-E Watchdog driver as module entry/exit functions, and modify the Kconfig entry. Add a .release method for the PowerPC Book-E Watchdog driver, so that the watchdog is disabled when the driver is closed. Loosely based on original code from Jiang Yutang . Signed-off-by: Timur Tabi Signed-off-by: Kumar Gala commit 55ec2fca3e99f83b5c674e9aba713d848392f6cc Author: Timur Tabi Date: Mon Sep 20 11:23:41 2010 -0500 powerpc: export ppc_proc_freq and ppc_tb_freq as GPL symbols Export the global variable 'ppc_tb_freq', so that modules (like the Book-E watchdog driver) can use it. To maintain consistency, ppc_proc_freq is changed to a GPL-only export. This is okay, because any module that needs this symbol should be an actual Linux driver, which must be GPL-licensed. Signed-off-by: Timur Tabi Acked-by: Josh Boyer Signed-off-by: Kumar Gala commit b8f44ec2c05f9cfe1647173ac60c0cccb1118c91 Author: Kumar Gala Date: Thu Aug 5 02:45:08 2010 -0500 powerpc/fsl-pci: Fix MSI support on 83xx platforms The following commit broke 83xx because it assumed the 83xx platforms exposed the "IMMR" address in BAR0 like the 85xx/86xx/QoriQ devices do: commit 3da34aae03d498ee62f75aa7467de93cce3030fd Author: Kumar Gala Date: Tue May 12 15:51:56 2009 -0500 powerpc/fsl: Support unique MSI addresses per PCIe Root Complex However that is not true, so we have to search through the inbound window settings on 83xx to find which one matches the IMMR address to determine its PCI address. Reported-by: Ilya Yanok Signed-off-by: Kumar Gala commit b9d228f9e896df1af787b2f3467889ab0832370a Author: Matthias Brugger Date: Wed Oct 13 17:51:02 2010 +0200 spi/atmel: let transfers through if not changing bits_per_word bits_per_word option in spi_transfer are allowed if it does not change the csr register. This is necessary for the driver in drivers/staging/iio/adis16260_core.c, as it uses this option. Signed-off-by: Matthias Brugger Signed-off-by: Grant Likely commit 8e41b527ff2c1d7d8c9a9e8b9f53877af2892cef Author: Grant Likely Date: Wed Oct 13 23:03:15 2010 -0600 spi/topcliff: Fix uninitialized variable defect This patch fixes the following build error introduced by commit 65308c46, "spi/topcliff: cleanup for style and conciseness". drivers/spi/spi_topcliff_pch.c: In function 'pch_spi_process_messages': drivers/spi/spi_topcliff_pch.c:752: warning: 'data' is used uninitialized in +this function Signed-off-by: Grant Likely commit fef5ba797991f9335bcfc295942b684f9bf613a1 Author: Jeremy Fitzhardinge Date: Wed Oct 13 16:02:24 2010 -0700 xen: Cope with unmapped pages when initializing kernel pagetable Xen requires that all pages containing pagetable entries to be mapped read-only. If pages used for the initial pagetable are already mapped then we can change the mapping to RO. However, if they are initially unmapped, we need to make sure that when they are later mapped, they are also mapped RO. We do this by knowing that the kernel pagetable memory is pre-allocated in the range e820_table_start - e820_table_end, so any pfn within this range should be mapped read-only. However, the pagetable setup code early_ioremaps the pages to write their entries, so we must make sure that mappings created in the early_ioremap fixmap area are mapped RW. (Those mappings are removed before the pages are presented to Xen as pagetable pages.) Signed-off-by: Jeremy Fitzhardinge LKML-Reference: <4CB63A80.8060702@goop.org> Cc: Yinghai Lu Signed-off-by: H. Peter Anvin commit d7acb92fea932ad2e7846480aeacddc2c03c8485 Author: H. Peter Anvin Date: Wed Oct 13 16:00:29 2010 -0700 x86-64, asm: If the assembler supports fxsave64, use it Kbuild allows for us to probe for the existence of specific constructs in the assembler, use them to find out if we can use fxsave64 and permit the compiler to generate better code. Signed-off-by: H. Peter Anvin commit 447b1d43ded08c11f4f3d344b4e07e6dcddbef95 Author: Daniel Drake Date: Wed Oct 13 19:10:42 2010 +0100 x86, olpc: Register XO-1 platform devices The upcoming XO-1 rfkill driver (for drivers/platform/x86) will register itself with the name "xo1-rfkill", and the already-merged XO-1 poweroff code uses name "olpc-xo1" Add the necessary mechanics so that these devices are properly initialized on XO-1 laptops. Signed-off-by: Daniel Drake LKML-Reference: <20101013181042.90C8F9D401B@zog.reactivated.net> Cc: Matthew Garrett Signed-off-by: H. Peter Anvin commit 14cae9bd2faf6d0d75702c2e107e75207bcdfec1 Author: Borislav Petkov Date: Wed Sep 29 10:08:23 2010 +0200 tracing: Fix function-graph build warning on 32-bit Fix kernel/trace/trace_functions_graph.c: In function ‘trace_print_graph_duration’: kernel/trace/trace_functions_graph.c:652: warning: comparison of distinct pointer types lacks a cast when building 36-rc6 on a 32-bit due to the strict type check failing in the min() macro. Signed-off-by: Borislav Petkov Cc: Chase Douglas Cc: Steven Rostedt Cc: Ingo Molnar LKML-Reference: <20100929080823.GA13595@liondog.tnic> Signed-off-by: Frederic Weisbecker commit 3d8a1a6a8af910cc2da566080d111e062a124ba6 Merge: 1b13fe6 5d0d715 Author: Ingo Molnar Date: Wed Oct 13 15:44:24 2010 +0200 Merge branch 'amd-iommu/2.6.37' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu into core/iommu commit 6edc323db720c65b9e6a770b4bed98f251dd49f0 Author: Tirumala Marri Date: Mon Sep 13 13:26:11 2010 +0000 powerpc/44x: Add support for the AMCC APM821xx SoC This patch adds CPU, device tree, defconfig and bluestone board support for APM821xx SoC. Signed-off-by: Tirumala R Marri Signed-off-by: Josh Boyer commit 5d0d71569e671239ae0d905ced9b65cd843f99ee Author: Joerg Roedel Date: Wed Oct 13 11:13:21 2010 +0200 x86/amd-iommu: Update copyright headers This patch updates the copyright headers in all source files of the AMD IOMMU driver. Signed-off-by: Joerg Roedel commit 5bcd757f93cc713cf61bbeefceda7539d9afca55 Author: Matthew Garrett Date: Mon Oct 4 14:59:31 2010 -0400 x86/amd-iommu: Reenable AMD IOMMU if it's mysteriously vanished over suspend AMD's reference BIOS code had a bug that could result in the firmware failing to reenable the iommu on resume. It transpires that this causes certain less than desirable behaviour when it comes to PCI accesses, to whit them ending up somewhere near Bristol when the more desirable outcome was Edinburgh. Sadness ensues, perhaps along with filesystem corruption. Let's make sure that it gets turned back on, and that we restore its configuration so decisions it makes bear some resemblance to those made by reasonable people rather than crack-addled lemurs who spent all your DMA on Thunderbird. Signed-off-by: Matthew Garrett Signed-off-by: Joerg Roedel commit 4108d9ba9091c55cfb968d42dd7dcae9a098b876 Author: matt mooney Date: Wed Sep 22 20:51:09 2010 +0000 powerpc/Makefiles: Change to new flag variables Replace EXTRA_CFLAGS with ccflags-y and EXTRA_AFLAGS with asflags-y. Signed-off-by: matt mooney Signed-off-by: Benjamin Herrenschmidt commit fc15351d9d63a35fd00c15850fa93a27940f16a0 Author: Arnd Bergmann Date: Tue Sep 14 10:22:33 2010 +0000 powerpc/spufs: Use llseek in all file operations The default for llseek is changing, so we need explicit operations everywhere. Signed-off-by: Arnd Bergmann Cc: Jeremy Kerr Cc: linuxppc-dev@ozlabs.org Signed-off-by: Benjamin Herrenschmidt commit f56029b5eafda6175be4e5c91ca69c04ccda3661 Author: Nishanth Aravamudan Date: Fri Oct 1 11:26:18 2010 +0000 powerpc/pseries/xics: Use cpu_possible_mask rather than cpu_all_mask Current firmware only allows us to send IRQs to the first processor or all processors. We currently check to see if the passed in mask is equal to the all_mask, but the firmware is only considering whether the request is for the equivalent of the possible_mask. Thus, we think the request is for some subset of CPUs and only assign IRQs to the first CPU (on systems without irqbalance running) as evidenced by /proc/interrupts. By using possible_mask instead, we account for this and proper interleaving of interrupts occurs. Signed-off-by: Nishanth Aravamudan Signed-off-by: Benjamin Herrenschmidt commit bc0df9ec4c014dac85c0358f56be4223bf0f3334 Author: Nishanth Aravamudan Date: Wed Sep 15 08:05:50 2010 +0000 powerpc/pci: Cleanup device dma setup code Use set_dma_ops and remove unused oddly-named temp pointer sd. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Acked-by: Grant Likely Signed-off-by: Benjamin Herrenschmidt commit e72ed6b509a62605fe9aca195c6037abdda6c1ac Author: Nishanth Aravamudan Date: Wed Sep 15 08:05:49 2010 +0000 powerpc/pseries: Use kmemdup While looking at some code paths I came across this code that zeros memory then copies over the entire length. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Signed-off-by: Benjamin Herrenschmidt commit 45848e0fc1fce399651b3f480bdeb82cc6d3d15a Author: Nishanth Aravamudan Date: Wed Sep 15 08:05:48 2010 +0000 powerpc/viobus: Free TCE table on device release Release the TCE table as the XXX suggests, except on FW_FEATURE_ISERIES, where the tables are allocated globally and reused. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Signed-off-by: Benjamin Herrenschmidt commit edea8f6f48416d9a6fd1babb76c19cf05c802325 Author: Nishanth Aravamudan Date: Wed Sep 15 08:05:47 2010 +0000 powerpc/vio: Use put_device() on device_register failure The kernel doc for device_register (and device_initialize) very clearly state to call put_device not kfree after calling, even on error. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Acked-by: Grant Likely Signed-off-by: Benjamin Herrenschmidt commit ffa56e555a6e4c205e879636e6cd6104ce03421f Author: Nishanth Aravamudan Date: Wed Sep 15 08:05:46 2010 +0000 powerpc/dma: Fix check for direct DMA support The current check is wrong because it does not take the DMA offset intot account, and in the case of a driver which doesn't actually support 64bits would falsely report that device as working. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Signed-off-by: Benjamin Herrenschmidt commit 1cb8e85a9d9da4192acfb5f70a80b0c5ce8c3e8f Author: Nishanth Aravamudan Date: Wed Sep 15 08:05:45 2010 +0000 powerpc/dma: Fix dma_iommu_dma_supported compare The table offset is in entries, each of which imply a dma address of an IOMMU page. Also, we should check the device can reach the whole IOMMU table. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Signed-off-by: Benjamin Herrenschmidt commit dda804ad4023cc202466c46fcfcc163131953838 Author: Nishanth Aravamudan Date: Wed Sep 15 08:13:19 2010 +0000 powerpc/pci: Fix return type of BUID_{HI,LO} macros BUID_HI and BUID_LO are used to pass data to call_rtas, which expects ints or u32s. But the macro doesn't cast the return, so the result is still u64. Use the upper_32_bits and lower_32_bits macros that have been added to kernel.h. Found by getting printf format errors trying to debug print the args, no actual code change for 64 bit kernels where the macros are actually used. Signed-off-by: Milton Miller Signed-off-by: Nishanth Aravamudan Acked-by: Linas Vepstas Signed-off-by: Benjamin Herrenschmidt commit 8032214346c0c892e859cf6eee6c8ba305cbfe78 Author: Julia Lawall Date: Sun Sep 5 09:00:22 2010 +0000 i2c/i2c-pasemi.c: Fix unsigned return type The function has an unsigned return type, but returns a negative constant to indicate an error condition. The result of calling the function is always stored in a variable of type (signed) int, and thus unsigned can be dropped from the return type. A sematic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @exists@ identifier f; constant C; @@ unsigned f(...) { <+... * return -C; ...+> } // Signed-off-by: Julia Lawall Acked-by: Olof Johansson Signed-off-by: Benjamin Herrenschmidt commit a655237fa2f9e4afe9949abe2c511432ab9537dd Author: Julia Lawall Date: Sat Sep 4 00:12:44 2010 +0000 powerpc/irq.c: Add of_node_put to avoid memory leak In this case, a device_node structure is stored in another structure that is then freed without first decrementing the reference count of the device_node structure. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ expression x; identifier f; position p1,p2; @@ x@p1->f = \(of_find_node_by_path\|of_find_node_by_name\|of_find_node_by_phandle\|of_get_parent\|of_get_next_parent\|of_get_next_child\|of_find_compatible_node\|of_match_node\|of_find_node_by_type\|of_find_node_with_property\|of_find_matching_node\|of_parse_phandle\|of_node_get\)(...); ... when != of_node_put(x) kfree@p2(x) @script:python@ p1 << r.p1; p2 << r.p2; @@ cocci.print_main("call",p1) cocci.print_secs("free",p2) // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit 689fd14ae9b2af5c6862ddc11d4791ec9a938cb3 Author: Joe Perches Date: Sat Sep 11 19:10:53 2010 +0000 powerpc: Remove pr_ uses of KERN_ Signed-off-by: Joe Perches Signed-off-by: Benjamin Herrenschmidt commit 4e74fd7d0a6eda70f9356c113450182a844abcf1 Author: Joe Perches Date: Mon Sep 13 09:47:40 2010 +0000 powerpc: Use static const char arrays Signed-off-by: Joe Perches Reviewed-by: Stephen Rothwell Signed-off-by: Benjamin Herrenschmidt commit 410bccf978819394669dede571de878f4576fd3e Author: Nathan Fontenot Date: Fri Sep 10 09:42:36 2010 +0000 powerpc/pseries: Partition migration in the kernel Enable partition migration in the kernel. To do this a new sysfs file, /sys/kernel/mobility/migration, is created. In order to initiate a migration the stream id (generated by the HMC managing the system) is written to this file. After a migration occurs, and what is the majority of this code, the device tree needs to be updated for the new system the partition is running on. This is done via the ibm,update-nodes and ibm,update-properties rtas calls which return information regarding which nodes and properties of the device tree are to be added/removed/updated. Signed-off-by: Nathan Fontenot Signed-off-by: Benjamin Herrenschmidt commit d8862be1229534aac1768b8ac663e8fb2bb6ddf6 Author: Nathan Fontenot Date: Fri Sep 10 09:41:35 2010 +0000 powerpc/pseries: Export rtas_ibm_suspend_me() Export the rtas_ibm_suspend_me() routine. This is needed to perform partition migration in the kernel. Signed-off-by: Nathan Fontenot Signed-off-by: Benjamin Herrenschmidt commit 206489748b64510d655e5c99193426667463dd15 Author: Nathan Fontenot Date: Fri Sep 10 09:40:32 2010 +0000 powerpc/pseries: Export device tree updating routines Export routines associated with adding and removing device tree nodes on pseries needed for device tree updating. Signed-off-by: Nathan Fontenot Signed-off-by: Benjamin Herrenschmidt commit 4783f393de3077211c14675a0e57c8a02e9190b0 Merge: 9f5f9ff 5b8544c Author: Benjamin Herrenschmidt Date: Wed Oct 13 16:18:36 2010 +1100 Merge remote branch 'kumar/merge' into next commit f3016fa591c788d6d545ef7907e24c8b5d788759 Author: Mingkai Hu Date: Tue Oct 12 18:18:33 2010 +0800 powerpc/of: add eSPI controller dts bindings and DTS modification Also modifiy the document of cell-index in SPI controller. Add the SPI flash(s25fl128p01) support on p4080ds and mpc8536ds board. Signed-off-by: Mingkai Hu Signed-off-by: Grant Likely commit 8b60d6c25b2a2d3525d5322de856c3ca408e5783 Author: Mingkai Hu Date: Tue Oct 12 18:18:32 2010 +0800 spi/fsl_spi: add eSPI controller support Add eSPI controller support based on the library code spi_fsl_lib.c. The eSPI controller is newer controller 85xx/Pxxx devices supported. There're some differences comparing to the SPI controller: 1. Has different register map and different bit definition So leave the code operated the register to the driver code, not the common code. 2. Support 4 dedicated chip selects The software can't controll the chip selects directly, The SPCOM[CS] field is used to select which chip selects is used, and the SPCOM[TRANLEN] field is set to tell the controller how long the CS signal need to be asserted. So the driver doesn't need the chipselect related function when transfering data, just set corresponding register fields to controll the chipseclect. 3. Different Transmit/Receive FIFO access register behavior For SPI controller, the Tx/Rx FIFO access register can hold only one character regardless of the character length, but for eSPI controller, the register can hold 4 or 2 characters according to the character lengths. Access the Tx/Rx FIFO access register of the eSPI controller will shift out/in 4/2 characters one time. For SPI subsystem, the command and data are put into different transfers, so we need to combine all the transfers to one transfer in order to pass the transfer to eSPI controller. 4. The max transaction length limitation The max transaction length one time is limitted by the SPCOM[TRANSLEN] field which is 0xFFFF. When used mkfs.ext2 command to create ext2 filesystem on the flash, the read length will exceed the max value of the SPCOM[TRANSLEN] field. Signed-off-by: Mingkai Hu Signed-off-by: Grant Likely commit b36ece832512c1a0afa54ff0a56d63492a1caf08 Author: Mingkai Hu Date: Tue Oct 12 18:18:31 2010 +0800 spi/mpc8xxx: refactor the common code for SPI/eSPI controller Refactor the common code in file spi_fsl_spi.c to spi_fsl_lib.c used by SPI/eSPI controller driver as a library, and leave the QE/CPM SPI controller code in the SPI controller driver spi_fsl_spi.c. Because the register map of the SPI controller and eSPI controller is so different, also leave the code operated the register to the driver code, not the common code. Signed-off-by: Mingkai Hu Signed-off-by: Grant Likely commit 3272029fb33a88873b9b02224ebeb23bf3a4668e Author: Mingkai Hu Date: Tue Oct 12 18:18:30 2010 +0800 spi/mpc8xxx: rename spi_mpc8xxx.c to spi_fsl_spi.c This will pave the way to refactor out the common code which can be used by the eSPI controller driver, and rename the SPI controller dirver to the file spi_fsl_spi.c. Signed-off-by: Mingkai Hu Signed-off-by: Grant Likely commit 492c032beccd53f807811b6c14909630d409dd8c Merge: f9d629c cb655d0 Author: Grant Likely Date: Tue Oct 12 21:38:02 2010 -0600 Merge commit 'v2.6.36-rc7' into spi/next commit f9d629c737cb6687216a0c540b5466a4bd8b070a Author: Linus Walleij Date: Fri Oct 1 13:33:13 2010 +0200 spi/pl022: fix dubious allocation staticize platform data This removes some dubious allocation of a local chipinfo struct in favor of a constant preset, tagging that one const revealed further problems with platform data being modified so fixed up these too. Reported-by: Virupax Sadashivpetimath Signed-off-by: Linus Walleij Signed-off-by: Grant Likely commit 5a1c98be1de165c8ad1bd5343a5d779230669489 Author: Linus Walleij Date: Fri Oct 1 11:47:32 2010 +0200 spi/pl022: get rid of chipinfo dev pointer What is the dev pointer doing inside the platform data anyway. We have another pointer to the actual device at hand, use that. Signed-off-by: Linus Walleij Signed-off-by: Grant Likely commit bde435a9ca376d0b7809768ca803dbf14416b9c1 Author: Kevin Wells Date: Thu Sep 16 06:18:50 2010 -0700 spi/pl022: Add spi->mode support to AMBA SPI driver This patch adds spi->mode support for the AMBA pl022 driver and allows spidev to correctly alter SPI modes. Unused fields used in the pl022 header file for the pl022_config_chip have been removed. The ab8500 client driver selects the data transfer size instead of the platform data. For platforms that use the amba pl022 driver, the unused fields in the controller data structure have been removed and the .mode field in the SPI board info structure is used instead. Signed-off-by: Kevin Wells Tested-by: Linus Walleij Acked-by: Linus Walleij Signed-off-by: Grant Likely commit fadcf49b9bd7ec5fb69befbf477e747d5b6a0328 Author: matt mooney Date: Fri Sep 24 12:17:32 2010 -0700 spi: change to new flag variable Replace EXTRA_CFLAGS with ccflags-y. Signed-off-by: matt mooney Signed-off-by: Grant Likely commit b1b6b9aa6fd32db97469e65d301ebc32dcd67992 Author: Linus Walleij Date: Wed Sep 29 17:31:35 2010 +0900 spi/pl022: add PrimeCell generic DMA support This extends the PL022 SSP/SPI driver with generic DMA engine support using the PrimeCell DMA engine interface. Also fix up the test code for the U300 platform. Signed-off-by: Linus Walleij Signed-off-by: Grant Likely commit cdbc8f042f4f2568bb58ba8bd50d0692f3059417 Author: Grant Likely Date: Fri Oct 8 12:56:13 2010 -0600 spi/topcliff: Tidy up Kconfig help text The original didn't specify Topcliff in the config prompt text. Signed-off-by: Grant Likely commit 65308c46b760bb2ccb043b47bb5f053dbb8d11b5 Author: Grant Likely Date: Wed Sep 29 17:31:34 2010 +0900 spi/topcliff: cleanups for style and conciseness This patch makes multiple cleanups to the new topcliff pch spi driver including, but not limited to, - removing superfluous brackets around variables - open coding functions that are only used once - removing unnecessary line breaks - removing unused functions - simplifying the interrupt enable/disable code - remove unnecessary (void *) casts. - remove b_mem_fail from pch_spi_set_tx to code it more cleanly - shorten dev_dbg() messages for conciseness and readability More cleanups are still needed in this driver. In particular, - the driver filename should be changed to spi_topcliff_pch.c - many of the dev_dbg() lines should be trimmed (particularly the ones on unconditional code paths). - I suspect that the locking model not correct. I'd like to know what drivers' critical regions are, and how they are protected. - get_resources and release_resources probably should be open coded in .probe and .release respectively. Signed-off-by: Grant Likely commit bf1ebf007911d70a89de9a4a1b36d403e8eb064b Author: Daniel Drake Date: Sun Oct 10 10:40:32 2010 +0100 x86, olpc: Add XO-1 poweroff support Add a pm_power_off handler for the OLPC XO-1 laptop. The driver can be built modular and follows the behaviour of the APM driver, setting pm_power_off to NULL on unload. However, the ability to unload the module will probably be removed (with a simple __module_get(THIS_MODULE)) if/when XO-1 suspend/resume support is added to this file at a later date. Signed-off-by: Daniel Drake LKML-Reference: <20101010094032.9AE669D401B@zog.reactivated.net> Signed-off-by: H. Peter Anvin commit c7fc2de0c83dbd2eaf759c5cd0e2b9cf1eb4df3a Author: Yinghai Lu Date: Tue Oct 12 14:07:09 2010 -0700 memblock, bootmem: Round pfn properly for memory and reserved regions We need to round memory regions correctly -- specifically, we need to round reserved region in the more expansive direction (lower limit down, upper limit up) whereas usable memory regions need to be rounded in the more restrictive direction (lower limit up, upper limit down). This introduces two set of inlines: memblock_region_memory_base_pfn() memblock_region_memory_end_pfn() memblock_region_reserved_base_pfn() memblock_region_reserved_end_pfn() Although they are antisymmetric (and therefore are technically duplicates) the use of the different inlines explicitly documents the programmer's intention. The lack of proper rounding caused a bug on ARM, which was then found to also affect other architectures. Reported-by: Russell King Signed-off-by: Yinghai Lu LKML-Reference: <4CB4CDFD.4020105@kernel.org> Cc: Jeremy Fitzhardinge Signed-off-by: H. Peter Anvin commit c0f37d2ac34520e992b57115b81294734688b58d Merge: 5d4bff9 c75f2aa e33621a 9f081ce 04a3440 48a4b30 85718fa Author: Tony Luck Date: Tue Oct 12 15:06:59 2010 -0700 Merge branches 'release', 'drop_do_IRQ', 'fix_early_irq', 'misc-2.6.37', 'next-fixes', 'optimize-unwind', 'remove-compat-h' and 'stack_trace' into release commit c0a19ebc018222ffd1dd93af5b53d9efd779c19b Author: Thomas Gleixner Date: Tue Oct 12 21:58:27 2010 +0200 genirq: Fix CONFIG_GENIRQ_NO_DEPRECATED=y build This option can be set to verify the full conversion to the new chip functions. Fix the fallout of the patch rework, so the core code compiles and works with it. Signed-off-by: Thomas Gleixner commit 4af8f24d99d119ed68b27d1b0bd6f2ab2b23ed1b Merge: c9ee46a af9a2d0 Author: Russell King Date: Tue Oct 12 20:11:18 2010 +0100 Merge git://git.kernel.org/pub/scm/linux/kernel/git/nico/orion into devel-stable commit 756b0322e50aebc4b9afb4488a2d3f6c802b4e64 Author: Thomas Gleixner Date: Tue Sep 7 14:33:11 2010 +0000 affs: Use sema_init instead of init_MUTEX Get rid of init_MUTE() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Cc: Al Viro LKML-Reference: <20100907125056.511395595@linutronix.de> commit 4a9410355406c31695eab9daeba694d7d9714e9b Author: Thomas Gleixner Date: Tue Sep 7 14:33:08 2010 +0000 hfs: Convert tree_lock to mutex tree_lock is used as mutex so make it a mutex. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Acked-by: Christoph Hellwig Cc: Al Viro LKML-Reference: <20100907125056.416332114@linutronix.de> commit 5356d94872502e77317f82e8fcae2a0b162af07c Author: Thomas Gleixner Date: Tue Sep 7 14:33:52 2010 +0000 arm: Bcmring: semaphore cleanup Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Cc: Leo Chen LKML-Reference: <20100907125057.371771121@linutronix.de> commit 5b8c4f23c54edda640a4850bc9b81dee70acb525 Author: Thomas Gleixner Date: Tue Sep 7 14:33:43 2010 +0000 printk: Make console_sem a semaphore not a pseudo mutex It needs to be investigated whether it can be replaced by a real mutex, but that needs more thought. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig LKML-Reference: <20100907125057.179587334@linutronix.de> commit 8192b1f6b1a46b33213b993471356495a93ffc70 Author: Thomas Gleixner Date: Tue Sep 7 14:33:40 2010 +0000 drivers/macintosh/adb: Do not claim that the semaphore is a mutex User DEFINE_SEMAPHORE() instead of DECLARE_MUTEX() Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Cc: Benjamin Herrenschmidt LKML-Reference: <20100907125057.086367802@linutronix.de> commit a529f1505b6facfd0078dcb18a444976c1985962 Author: Thomas Gleixner Date: Tue Sep 7 14:32:34 2010 +0000 parport: Semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Alan Cox Cc: Christoph Hellwig LKML-Reference: <20100907125055.743613774@linutronix.de> commit db7f859ec53c0bfaf3520afe2feafd18a27e48fb Author: Thomas Gleixner Date: Tue Sep 7 14:32:30 2010 +0000 irda: Semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: "David S. Miller" LKML-Reference: <20100907125055.651362456@linutronix.de> commit d1985508320ad40a68375bdbafa8a5d6c56d2114 Author: Thomas Gleixner Date: Tue Sep 7 14:32:25 2010 +0000 net: Wan/cosa.c: Convert "mutex" to semaphore Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: "David S. Miller" LKML-Reference: <20100907125055.557578360@linutronix.de> commit 0bce198b7688911e072bd65032ab9278b577ee93 Author: Thomas Gleixner Date: Tue Sep 7 14:32:22 2010 +0000 net: Ppp_async: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: David Miller LKML-Reference: <20100907125055.460765783@linutronix.de> commit 495e64bddeb9349395ed346177057fff7d52857e Author: Thomas Gleixner Date: Tue Sep 7 14:32:18 2010 +0000 hamradio: Mkiss: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: David Miller LKML-Reference: <20100907125055.368389976@linutronix.de> commit 89d9f10d0b21268d3dba33db984ab03092861700 Author: Thomas Gleixner Date: Tue Sep 7 14:32:14 2010 +0000 hamradio: 6pack: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: David Miller LKML-Reference: <20100907125055.269142443@linutronix.de> commit 50948ee8124c2125d833e8889002aa12a948b4e9 Author: Thomas Gleixner Date: Tue Sep 7 14:32:10 2010 +0000 net: 3c527: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: David Miller LKML-Reference: <20100907125055.175750769@linutronix.de> commit 4a4a506f81eebe63fb1b8e9e99f4bcd1fd9aac66 Author: Thomas Gleixner Date: Tue Sep 7 14:32:06 2010 +0000 input: Serio/hp_sdc: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: Dmitry Torokhov LKML-Reference: <20100907125055.079737758@linutronix.de> commit 45e8492f594dcb17e8cbb26edb2dd3018a68dada Author: Thomas Gleixner Date: Tue Sep 7 14:32:01 2010 +0000 input: Serio/hil_mlc: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: Dmitry Torokhov LKML-Reference: <20100907125054.985090435@linutronix.de> commit 10d0ff83078d5ef99aaf94a2aaceb740f5ced923 Author: Thomas Gleixner Date: Tue Sep 7 14:31:58 2010 +0000 input: Misc/hp_sdc_rtc: semaphore cleanup Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Christoph Hellwig Acked-by: Dmitry Torokhov LKML-Reference: <20100907125054.888438853@linutronix.de> commit 37eca0d64a2dbeece25969ec0698e1ff72bdcf39 Merge: 277b199 3c06806 Author: Thomas Gleixner Date: Tue Oct 12 17:27:20 2010 +0200 Merge branch 'linus' into core/locking Reason: Pull in the semaphore related changes Signed-off-by: Thomas Gleixner commit 7df01d96b295e400167e78061b81d4c91630b12d Author: Robert Richter Date: Mon Oct 4 21:09:36 2010 +0200 oprofile: disable write access to oprofilefs while profiler is running Oprofile counters are setup when profiling is disabled. Thus, writing to oprofilefs has no immediate effect. Changes are updated only after oprofile is reenabled. To keep userland and kernel states synchronized, we now allow configuration of oprofile only if profiling is disabled. In this case it checks if the profiler is running and then disables write access to oprofilefs by returning -EBUSY. The change should be backward compatible with current oprofile userland daemon. Acked-by: Maynard Johnson Cc: William Cohen Cc: Suravee Suthikulpanit Signed-off-by: Robert Richter commit 2ee39065988d632b403f8470942b0b5edee3632b Author: Thomas Gleixner Date: Wed Oct 6 16:28:51 2010 +0200 x86: Switch sparse_irq allocations to GFP_KERNEL No callers from atomic context (except boot) anymore. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit baa0d233afe765daa6dc01ff233aea8c5944f534 Author: Thomas Gleixner Date: Tue Oct 5 15:14:35 2010 +0200 genirq: Switch sparse_irq allocator to GFP_KERNEL The allocator functions are now called outside of preempt disabled regions. Switch to GFP_KERNEL. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit a05a900a51c7622ebd8ddb41f14f8bf9db599d8d Author: Thomas Gleixner Date: Fri Oct 8 12:47:53 2010 +0200 genirq: Make sparse_lock a mutex No callers from atomic regions. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit c2f31c37b7303150ffcce53f6c6ed4ac62952b34 Author: Thomas Gleixner Date: Thu Sep 30 12:19:03 2010 +0200 x86: lguest: Use new irq allocator Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Rusty Russell commit 78f90d91f395cd0dc1ef3f21e0c5cd6fd50d202c Author: Thomas Gleixner Date: Wed Sep 29 17:18:47 2010 +0200 genirq: Remove the now unused sparse irq leftovers The move_irq_desc() function was only used due to the problem that the allocator did not free the old descriptors. So the descriptors had to be moved in create_irq_nr(). That's history. The code would have never been able to move active interrupt descriptors on affinity settings. That can be done in a completely different way w/o all this horror. Remove all of it. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit b7b29338dc7111ed8bd4d6555d84afae13ebe752 Author: Thomas Gleixner Date: Wed Sep 29 18:46:55 2010 +0200 genirq: Sanitize dynamic irq handling Use the cleanup functions of the dynamic allocator. No need to have separate implementations. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit b7d0d8258a9f71949b810e0f82a3d75088f4d364 Author: Thomas Gleixner Date: Wed Sep 29 18:44:23 2010 +0200 genirq: Remove arch_init_chip_data() This function should have not been there in the first place. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 77dff1c755c3218691e95e7e38ee14323b35dbdb Author: Thomas Gleixner Date: Wed Sep 29 17:37:10 2010 +0200 x86: xen: Sanitise sparse_irq handling There seems to be more cleanups possible, but that's left to the xen experts :) Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Jeremy Fitzhardinge commit ad9f43340f48c5f7a0a5ef7656986e23d06bf996 Author: Thomas Gleixner Date: Thu Sep 30 11:26:43 2010 +0200 x86: Use sane enumeration Instead of looping through all interrupts, use the bitmap lookup to find the next. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 48b2650196364e4ef124efb841b63c2326e4ccb2 Author: Thomas Gleixner Date: Thu Sep 30 11:43:08 2010 +0200 x86: uv: Clean up the direct access to irq_desc Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 1a8ce7ff68d777195da2d340561bda610e533a64 Author: Thomas Gleixner Date: Mon Oct 4 21:08:56 2010 +0200 x86: Make io_apic.c local functions static No users outside of io_apic.c Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 10ba1e0eeef6a3c9453d96364e28cb4d911e1ac3 Author: Thomas Gleixner Date: Mon Oct 11 12:21:18 2010 +0200 genirq: Remove irq_2_iommu irq_2_iommu is now in the x86 code where it belongs. Remove all leftovers. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit 1a0730d6649113c820217387a011a17dd4aff3ad Author: Thomas Gleixner Date: Mon Oct 11 11:55:37 2010 +0200 x86: Speed up the irq_remapped check in hot pathes irq_2_iommu is in struct irq_cfg, so we can do the irq_remapped check based on irq_cfg instead of going through a lookup function. That's especially interesting in the eoi_ioapic_irq() hotpath. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit d585d060b42bd36f6f0b23ff327d3b91f80c7139 Author: Thomas Gleixner Date: Sun Oct 10 12:34:27 2010 +0200 intr_remap: Simplify the code further Having irq_2_iommu in struct irq_cfg allows further simplifications. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit 349d67673c08cbc299a69086b0f5447cf1094e9b Author: Thomas Gleixner Date: Sun Oct 10 12:29:27 2010 +0200 intr_remap: Use irq_2_iommu in struct irq_cfg Switch the intr_remapping code to use the irq_2_iommu struct in irg_cfg. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit 423f085952fd7253407cb92984cc2d495a564481 Author: Thomas Gleixner Date: Sun Oct 10 11:39:09 2010 +0200 x86: Embedd irq_2_iommu into irq_cfg That interrupt remapping code is x86 specific and tied to the io_apic code. No need for separate allocator functions in the interrupt remapping code. This allows to simplify the code and irq_2_iommu is small (13 bytes on 64bit) so it's not a real problem even if interrupt remapping is runtime disabled. If it's compile time disabled the impact is zero. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit d0ad63927c6d4d511e172c78ba4a623539ef6901 Author: Thomas Gleixner Date: Mon Oct 4 18:41:37 2010 +0200 pci: intr_remap: Remove unused functions No users. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit a8ef54aeb4308d3730ff31807c495390b98de16a Author: Thomas Gleixner Date: Mon Oct 4 16:51:27 2010 +0200 pci: intr_remap: Use irq_data No need to dereference irq_desc. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit 0e1e367aab873becf3e21d9b0cf46d11154ebc3f Author: Thomas Gleixner Date: Mon Oct 4 16:20:16 2010 +0200 pci: intr-remap: Free irte memory if SPARSE_IRQ=y With SPARSE_IRQ=y the irte descriptors are dynamically allocated, but not freed in free_irte(). That was ok as long as the sparse irq core was not freeing irq descriptors on destroy_irq(). Now we leak the irte descriptor. Free it in free_irte(). Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Suresh Siddha Cc: David Woodhouse Cc: Jesse Barnes commit bc5fdf9f3aad37406b3c8d635a7940cd65de0c12 Author: Thomas Gleixner Date: Fri Oct 8 10:40:53 2010 +0200 x86: io_apic: Remove the now unused sparse_irq arch_* functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit fbc6bff04a095e049be290ff6f6ac68839166bd6 Author: Thomas Gleixner Date: Tue Sep 28 20:34:53 2010 +0200 x86: ioapic: Cleanup sparse irq code Switch over to the new allocator and remove all the magic which was caused by the unability to destroy irq descriptors. Get rid of the create_irq_nr() loop for sparse and non sparse irq. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit fe6dab4e79e82ec35879bfe1a8968b7d15ac0d91 Author: Yinghai Lu Date: Fri Oct 8 22:44:02 2010 -0700 x86: Don't setup ioapic irq for sci twice The sparseirq rework triggered a warning in the iommu code, which was caused by setting up ioapic for ACPI irq 9 twice. This function is solely to handle interrupts which are on a secondary ioapic and outside the legacy irq range. Replace the sparse irq_to_desc check with a non ifdeffed version. [ tglx: Moved it before the ioapic sparse conversion and simplified the inverse logic ] Signed-off-by: Yinghai Lu LKML-Reference: <4CB00122.3030301@kernel.org> Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit f981a3dc1941035a108da1276c448de6b10ddac9 Author: Thomas Gleixner Date: Fri Oct 8 10:44:21 2010 +0200 x86: io_apic: Prepare alloc/free_irq_cfg() Rename the grossly misnamed get_one_free_irq_cfg() to alloc_irq_cfg(). Add a (not yet used) irq number argument to free_irq_cfg() Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 08c33db6d044d9dc74ddf8d9ee3cb1fa3eca262b Author: Thomas Gleixner Date: Wed Oct 6 22:14:21 2010 +0200 x86: Implement new allocator functions Implement new allocator functions which make use of the core changes. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 6e2fff50a5bd72a3f9e6f3ef6e9137efddb2d580 Author: Thomas Gleixner Date: Wed Oct 6 22:07:03 2010 +0200 x86: ioapic: Cleanup get_one_free_irq_cfg() Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 7e495529b62cf462eb2d8875fe15ca446b8e1f94 Author: Thomas Gleixner Date: Tue Sep 28 23:31:50 2010 +0200 x86: ioapic: Cleanup some more Cleanup after the irq_chip conversion a bit. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit be5b7bf73802a9391158d9fcc0bc6b07670c73a5 Author: Thomas Gleixner Date: Fri Oct 8 22:31:46 2010 +0200 x86: Convert ht set_affinity to new chip function Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Jesse Barnes commit 0e09ddf2d71aeff92ff8055ac7600b85c255ee85 Author: Thomas Gleixner Date: Fri Oct 8 22:21:26 2010 +0200 x86: Cleanup hpet affinity setting Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit fe52b2d25919eaa01c51651a664f4f2ba6bd2a11 Author: Thomas Gleixner Date: Fri Oct 8 22:19:29 2010 +0200 x86: Convert dmar affinity setting to new chip function Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: David Woodhouse commit b5d1c465794f521c352d9c1a33159750c9c3fa84 Author: Thomas Gleixner Date: Fri Oct 8 22:15:49 2010 +0200 x86: Convert remapped msi to new chip.irq_set_affinity function Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Suresh Siddha Cc: Jesse Barnes commit f19f5ecc920215decfea54f26e3eb14064506675 Author: Thomas Gleixner Date: Fri Oct 8 21:50:22 2010 +0200 x86: Convert remapped ioapic affinity setting to new irq chip function Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Suresh Siddha commit 5346b2a78fa3b900da672928978475acdd4632dc Author: Thomas Gleixner Date: Fri Oct 8 21:49:03 2010 +0200 x86: Convert msi affinity setting to new chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Jesse Barnes commit f7e909eae444ff733ecc5628af76d89c363ab480 Author: Thomas Gleixner Date: Fri Oct 8 21:40:23 2010 +0200 x86: Prepare the affinity common functions for taking struct irq_data * While at it rename it to sensible function names and fix the return value from unsigned to int for __ioapic_set_affinity (set_desc_affinity). Returning -1 in a function returning unsigned int is somewhat strange. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 60c69948e5b6357ac0d5ef2a2d0ce31c173c3c64 Author: Thomas Gleixner Date: Tue Sep 28 17:28:38 2010 +0200 x86: ioapic: Clean up the direct access to irq_desc Most of it is useless pseudo optimization. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit e9f7ac664bfc36685a8eb3315ec21c067d0cee36 Author: Thomas Gleixner Date: Tue Sep 28 17:22:09 2010 +0200 ht: Convert to new irq_chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Jesse Barnes commit 5c2837fbaa609e615ef9a1c58a4cd26ce90be35b Author: Thomas Gleixner Date: Tue Sep 28 17:15:11 2010 +0200 dmar: Convert to new irq chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: David Woodhouse commit d0fbca8f9304d1760fdc906b35b06e89fbdbb51f Author: Thomas Gleixner Date: Tue Sep 28 16:18:39 2010 +0200 x86: ioapic/hpet: Convert to new chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 90297c5fe71d32a2a0ead38bd8f6b1112a2e5ac0 Author: Thomas Gleixner Date: Tue Sep 28 16:03:54 2010 +0200 x86: ioapic: Convert mask to new irq_chip function Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 61a38ce3f59cdb4654e9444329195bd57c3baf74 Author: Thomas Gleixner Date: Tue Sep 28 16:00:34 2010 +0200 x86: io_apic: Convert startup to new irq_chip function Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit dd5f15e5cf104c9170b76ae3274f35b42a3e4161 Author: Thomas Gleixner Date: Tue Sep 28 15:18:35 2010 +0200 x86: Cleanup io_apic Sanitize functions. Remove irq_desc pointer magic. Preparatory patch for further cleanups. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit d4eba29770244e7cc5e60c0977d73d84148a3d6d Author: Thomas Gleixner Date: Fri Sep 24 12:26:18 2010 +0200 x86: Cleanup access to irq_data Fixup the open coded access to irq_desc->[handler_data|chip_data|msi-desc] Use the macros and inline functions for it. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 4305df947ca1fd52867c8d56837a4e6b1e33167c Author: Thomas Gleixner Date: Tue Sep 28 15:01:33 2010 +0200 x86: i8259: Convert to new irq_chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 020dd984d7c0792e8234f2e4b4fb0534fe750f9d Author: Thomas Gleixner Date: Tue Sep 28 14:59:58 2010 +0200 x86: Cleanup visws interrupt handling Remove the open coded access to irq_desc and convert to the new irq chip functions. Change the mask function of piix4_virtual_irq_type so we can use the generic irq handling function for the virtual interrupt instead of open coding it. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit fe25c7fc2e036e1569faac8715a8aa5496cda78d Author: Thomas Gleixner Date: Tue Sep 28 14:57:24 2010 +0200 x86: lguest: Convert to new irq chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Rusty Russell commit a5ef2e70405c8a9ee380b5ff33a008c75454791f Author: Thomas Gleixner Date: Tue Sep 28 11:11:10 2010 +0200 x86: Sanitize apb timer interrupt handling Disable the interrupt in CPU_DEAD where it belongs. Remove the open coded irq_desc manipulation. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Cc: Jacob Pan commit a3c08e5d80c54e32423efbba113b02942c91f726 Author: Thomas Gleixner Date: Fri Oct 8 20:24:58 2010 +0200 x86: Convert irq_chip access to new functions Before moving the irq chips to the new functions, fixup direct callers. The cpu offline irq fixup code needs to become generic and archs need to honour the "force" flag as an indicator, but that's for later. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 011d578fdadb64bcc1deedbb02216bfee6a9b4dc Author: Thomas Gleixner Date: Tue Sep 28 00:15:31 2010 +0200 x86: Remove useless reinitialization of irq descriptors The descriptors are already initialized in exactly this way. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 39431acb1a4c464e62471cb3058b8ffffb9244db Author: Thomas Gleixner Date: Tue Sep 28 19:09:51 2010 +0200 pci: Cleanup the irq_desc mess in msi Handing down irq_desc to msi just so that msi can access irq_desc.irq_data.msi_desc is a pretty stupid idea. The calling code can hand down a pointer to msi_desc so msi code does not need to know about the irq descriptor at all. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Jesse Barnes commit 1c9db52534a2c0e9776788cd34ccc193289fc18c Author: Thomas Gleixner Date: Tue Sep 28 16:46:51 2010 +0200 pci: Convert msi to new irq_chip functions Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar Acked-by: Jesse Barnes Cc: Benjamin Herrenschmidt Cc: "David S. Miller" Cc: Tony Luck Cc: Russell King commit 7c5f13519a67aa7ba3a99155f128d4bdef87d087 Merge: 5e62fea 0219896 Author: Thomas Gleixner Date: Tue Oct 12 16:41:22 2010 +0200 Merge branch 'x86/urgent' of into irq/sparseirq Reason: Pull in the latest io_apic bugfixes Signed-off-by: Thomas Gleixner commit 5e62feabcc3e4127a084701ec54ffe891985b7e8 Merge: 8ffcfa4 234bb54 Author: Thomas Gleixner Date: Tue Oct 12 16:40:34 2010 +0200 Merge branch 'x86/cleanups' into irq/sparseirq Reason: Avoid conflicts with removal of boot_cpu_id Signed-off-by: Thomas Gleixner commit 8ffcfa4e2d96342180e02dfe1230b97778c52d72 Merge: b683de2 fa47f7e Author: Thomas Gleixner Date: Tue Oct 12 16:39:44 2010 +0200 Merge branch 'x86/x2apic' into irq/sparseirq Reason: Avoid conflicts with the x2apic modifications Signed-off-by: Thomas Gleixner commit b683de2b3cb17bb10fa6fd4af614dc75b5749fe0 Author: Thomas Gleixner Date: Mon Sep 27 20:55:03 2010 +0200 genirq: Query arch for number of early descriptors sparse irq sets up NR_IRQS_LEGACY irq descriptors and archs then go ahead and allocate more. Use the unused return value of arch_probe_nr_irqs() to let the architecture return the number of early allocations. Fix up all users. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit aa99ec0f3f26bf2bcd0fa5176de93598427f1e5e Author: Thomas Gleixner Date: Mon Sep 27 20:02:56 2010 +0200 genirq: Use sane sparse allocator Make irq_to_desc_alloc_node() a wrapper around the new allocator. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 25ade601a0f97453c6f511ebfae9339e06a28d75 Author: Thomas Gleixner Date: Thu Sep 30 20:33:11 2010 +0200 genirq-update-kerneldoc.patch Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 06f6c3399e9f9ff6eafc200e80f9226c3cee0eaf Author: Thomas Gleixner Date: Tue Oct 12 12:31:46 2010 +0200 genirq: Implement irq reservation Mark a range of interrupts as allocated. In the SPARSE_IRQ=n case we need this to update the bitmap for the legacy irqs so the enumerator via irq_get_next_irq() works. Signed-off-by: Thomas Gleixner commit a98d24b71b6e229965f18dc00d28dc71cb8fe324 Author: Thomas Gleixner Date: Thu Sep 30 10:45:07 2010 +0200 genirq: Implement sane enumeration Use the allocator bitmap to lookup active interrupts. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 13bfe99e09123ef5edb6acb81ba337d2db600b53 Author: Thomas Gleixner Date: Thu Sep 30 02:46:07 2010 +0200 genirq: Prepare proc for real sparse irq support /proc/irq never removes any entries, but when irq descriptors can be freed for real this is necessary. Otherwise we'd reference a freed descriptor in /proc/irq/N Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 1f5a5b87f78fade3ae48dfd55e8765d1d622ea4e Author: Thomas Gleixner Date: Mon Sep 27 17:48:26 2010 +0200 genirq: Implement a sane sparse_irq allocator The current sparse_irq allocator has several short comings due to failures in the design or the lack of it: - Requires iteration over the number of active irqs to find a free slot (Some architectures have grown their own workarounds for this) - Removal of entries is not possible - Racy between create_irq_nr and destroy_irq (plugged by horrible callbacks) - Migration of active irq descriptors is not possible - No bulk allocation of irq ranges - Sprinkeled irq_desc references all over the place outside of kernel/irq/ (The previous chip functions series is addressing this issue) Implement a sane allocator which fixes the above short comings (though migration of active descriptors needs a full tree wide cleanup of the direct and mostly unlocked access to irq_desc). The new allocator still uses a radix_tree, but uses a bitmap for keeping track of allocated irq numbers. That allows: - Fast lookup of a free slot - Allows the removal of descriptors - Prevents the create/destroy race - Bulk allocation of consecutive irq ranges - Basic design is ready for migration of life descriptors after further cleanups The bitmap is also used in the SPARSE_IRQ=n case for lookup and raceless (de)allocation of irq numbers. So it removes the requirement for looping through the descriptor array to find slots. Right now it uses sparse_irq_lock to protect the bitmap and the radix tree, but after cleaning up all users we should be able convert that to a mutex and to switch the radix_tree and decriptor allocations to GFP_KERNEL. [ Folded in a bugfix from Yinghai Lu ] Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 1318a481fc37c503a901b96ae06b692ca2b21af5 Author: Thomas Gleixner Date: Mon Sep 27 21:01:37 2010 +0200 genirq: Provide default irq init flags Arch code sets it's own irq_desc.status flags right after boot and for dynamically allocated interrupts. That might involve iterating over a huge array. Allow ARCH_IRQ_INIT_FLAGS to set separate flags aside of IRQ_DISABLED which is the default. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit d895f51ebb54cefe367bda135fcf2cd734d51d03 Author: Thomas Gleixner Date: Mon Sep 27 17:45:49 2010 +0200 genirq: Remove export of kstat_irqs_cpu The statistics accessor is only used by proc/stats and show_interrupts(). Both are compiled in. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 40f08a724fcc21285cf3a75aec957aef908605c6 Author: Thomas Gleixner Date: Wed Sep 29 22:16:36 2010 +0200 isdn: hisax: Replace the bogus access to irq stats Abusing irq stats in a driver for counting interrupts is a horrible idea and not safe with shared interrupts. Replace it by a local interrupt counter. Noticed by the attempt to remove the irq stats export. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 154cd387cdf0e5566ce523cbddf92dd2a062dfd6 Author: Thomas Gleixner Date: Wed Sep 22 15:58:45 2010 +0200 genirq: Remove early_init_irq_lock_class() early_init_irq_lock_class() is called way before anything touches the irq descriptors. In case of SPARSE_IRQ=y this is a NOP operation because the radix tree is empty at this point. For the SPARSE_IRQ=n case it's sufficient to set the lock class in early_init_irq(). Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 3795de236d67a05994a1a12759db9d4dd9ffc42c Author: Thomas Gleixner Date: Wed Sep 22 17:09:43 2010 +0200 genirq: Distangle kernel/irq/handle.c kernel/irq/handle.c has become a dumpground for random code in random order. Split out the irq descriptor management and the dummy irq_chip implementation into separate files. Cleanup the include maze while at it. No code change. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit f303a6dd127b5ec6de90d1cd79ed19820c7e9658 Author: Thomas Gleixner Date: Tue Sep 28 17:34:01 2010 +0200 genirq: Sanitize irq_data accessors Get the data structure from the core and provide inline wrappers to access the irq_data members. Provide accessor inlines for irq_data as well. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 442471848f5abb55b99cba1229301655f67492b4 Author: Thomas Gleixner Date: Tue Sep 28 10:40:18 2010 +0200 genirq: Provide status modifier Provide a irq_desc.status modifier function to cleanup the direct access to irq_desc in arch and driver code. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 3a3856d00c74560a7b8d9f8a13c1ca94ee786b78 Author: Thomas Gleixner Date: Mon Oct 4 13:47:12 2010 +0200 genirq: Remove unsused inline move_irq() has no users. Remove it and simplify the ifdef forrest while at it. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit e144710b302525de5b90b9c3ba43562458d8957f Author: Thomas Gleixner Date: Fri Oct 1 16:03:45 2010 +0200 genirq: Distangle irq.h Move irq_desc and internal functions out of irq.h Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 8e4029ee3517084ae00fbfbcb51cc365d8857061 Merge: cd79481 73cf624 Author: H. Peter Anvin Date: Mon Oct 11 17:05:11 2010 -0700 Merge branch 'x86/urgent' into core/memblock Reason for merge: Forward-port urgent change to arch/x86/mm/srat_64.c to the memblock tree. Resolved Conflicts: arch/x86/mm/srat_64.c Originally-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit cd79481d27b9f90aad80c9b972292c42c25bbf8e Author: Yinghai Lu Date: Mon Oct 11 12:34:09 2010 -0700 memblock: Annotate memblock functions with __init_memblock Stephen found WARNING: mm/built-in.o(.text+0x25ab8): Section mismatch in reference from the function memblock_find_base() to the function .init.text:memblock_find_region() The function memblock_find_base() references the function __init memblock_find_region(). This is often because memblock_find_base lacks a __init annotation or the annotation of memblock_find_region is wrong. So let memblock_find_region() to use __init_memblock instead of __init directly. Also fix one function that did not have __init* to be __init_memblock. Reported-by: Stephen Rothwell Signed-off-by: Yinghai Lu LKML-Reference: <4CB366B1.40405@kernel.org> Signed-off-by: H. Peter Anvin commit 236260b90dd94516982ad67aa6f5449c4c37db7b Author: Jeremy Fitzhardinge Date: Wed Oct 6 15:52:29 2010 -0700 memblock: Allow memblock_init to be called early The Xen setup code needs to call memblock_x86_reserve_range() very early, so allow it to initialize the memblock subsystem before doing so. The second memblock_init() is ignored. Signed-off-by: Jeremy Fitzhardinge Cc: Yinghai Lu Cc: Benjamin Herrenschmidt LKML-Reference: <4CACFDAD.3090900@goop.org> Signed-off-by: H. Peter Anvin commit 88b522771079d7ab5f2334c8271bc13e1d309a5c Author: Niranjana Vishwanathapura Date: Wed Oct 6 13:52:11 2010 -0700 msm: smd: enable smd on qsd8x50 target Add msm_smd device in the qsd8x50 board file. Signed-off-by: Niranjana Vishwanathapura Signed-off-by: Daniel Walker commit a8855e9c093fdb35b40a707d580c75d523fed16e Author: Niranjana Vishwanathapura Date: Wed Oct 6 13:52:10 2010 -0700 msm: smd: enable smd on msm7x30 target Add msm_smd device in the msm7x30 board file. Signed-off-by: Niranjana Vishwanathapura Signed-off-by: Daniel Walker commit 29e29f27486ed7074df259b3eda8656bb014e9b5 Author: Linus Walleij Date: Fri Oct 1 09:15:41 2010 +0100 ARM: 6421/1: amba-pl011: add missing ST specific registers The ST Micro derivates have several extra interesting registers that we may soon use for something interesting so may just as well define them in the header. Signed-off-by: Jonas Aaberg Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 8b1f5d91e23300ea2f65007047d26799157dc4b8 Author: Jassi Brar Date: Tue Sep 7 04:02:16 2010 +0100 ARM: 6367/1: PL330: Accept different revision The driver can handle different revisions of the core which vary only minorly. Signed-off-by: Jassi Brar Signed-off-by: Russell King commit 725343fa748fc9b7c883d198e9cec391425aa478 Author: Linus Walleij Date: Sat Oct 9 13:43:21 2010 +0100 ARM: 6437/2: mmci: add some register defines for ST Micro variants This adds a few registers to the MMCI/PL180 derivates that is used for some odd control stuff like SDIO. Signed-off-by: Marcin Mielczarczyk Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 7bdb0d18bfd381cc5491eb95973ec5604b356c7e Author: Tristan Ye Date: Mon Oct 11 16:46:39 2010 +0800 ocfs2: Add a mount option "coherency=*" to handle cluster coherency for O_DIRECT writes. Currently, the default behavior of O_DIRECT writes was allowing concurrent writing among nodes to the same file, with no cluster coherency guaranteed (no EX lock held). This can leave stale data in the cache for buffered reads on other nodes. The new mount option introduce a chance to choose two different behaviors for O_DIRECT writes: * coherency=full, as the default value, will disallow concurrent O_DIRECT writes by taking EX locks. * coherency=buffered, allow concurrent O_DIRECT writes without EX lock among nodes, which gains high performance at risk of getting stale data on other nodes. Signed-off-by: Tristan Ye Signed-off-by: Joel Becker commit e79f86b2ef9c0a8c47225217c1018b7d3d90101c Author: Yinghai Lu Date: Mon Oct 11 10:40:25 2010 -0700 swiotlb: Use page alignment for early buffer allocation We could call free_bootmem_late() if swiotlb is not used, and it will shrink to page alignment. So alloc them with page alignment at first, to avoid lose two pages before patch: [ 0.000000] memblock_x86_reserve_range: [00d3600000, 00d7600000] swiotlb buffer [ 0.000000] memblock_x86_reserve_range: [00d7e7ef40, 00d7e9ef40] swiotlb list [ 0.000000] memblock_x86_reserve_range: [00d7e3ef40, 00d7e7ef40] swiotlb orig_ad [ 0.000000] memblock_x86_reserve_range: [000008a000, 0000092000] swiotlb overflo after patch will get [ 0.000000] memblock_x86_reserve_range: [00d3600000, 00d7600000] swiotlb buffer [ 0.000000] memblock_x86_reserve_range: [00d7e7e000, 00d7e9e000] swiotlb list [ 0.000000] memblock_x86_reserve_range: [00d7e3e000, 00d7e7e000] swiotlb orig_ad [ 0.000000] memblock_x86_reserve_range: [000008a000, 0000092000] swiotlb overflo Signed-off-by: Yinghai Lu Acked-by: FUJITA Tomonori Cc: Becky Bruce Signed-off-by: Konrad Rzeszutek Wilk commit 75d9bbc73804285020aa4d99bd2a9600edea8945 Author: Goldwyn Rodrigues Date: Mon Oct 11 12:57:09 2010 -0500 Initialize max_slots early Functions such as ocfs2_recovery_init() make use of osb->max_slots. Initialize osb->max_slots early so the functions may use the correct value. Signed-off-by: Goldwyn Rodrigues Signed-off-by: Joel Becker commit f30d44f3e54a94e037da7a71d714b585dab28d9e Author: Poyo VL Date: Mon Oct 11 13:45:52 2010 -0700 When I tried to compile I got the following warning: fs/ocfs2/slot_map.c: In function ‘ocfs2_init_slot_info’: fs/ocfs2/slot_map.c:360: warning: ‘bytes’ may be used uninitialized in this function fs/ocfs2/slot_map.c:360: note: ‘bytes’ was declared here Compiler: gcc version 4.4.3 (GCC) on Mandriva I'm not sure why this warning occurs, I think compiler don't know that variable "bytes" is initialized when it is sent by reference to ocfs2_slot_map_physical_size and it throws that ugly warning. However, a simple initialization of "bytes" variable with 0 will fix it. Signed-off-by: Ionut Gabriel Popescu Signed-off-by: Joel Becker commit 9b5cd10e4c14a1a642076ace6a73be3d33c91fb6 Author: Srinivas Eeda Date: Tue Oct 5 15:53:06 2010 -0700 ocfs2: validate bg_free_bits_count after update This patch adds a safe check to ensure bg_free_bits_count doesn't exceed bg_bits in a group descriptor. This is to avoid on disk corruption that was seen recently. debugfs: group <52803072> Group Chain: 179 Parent Inode: 11 Generation: 2959379682 CRC32: 00000000 ECC: 0000 ## Block# Total Used Free Contig Size 0 52803072 32256 4294965350 34202 18207 4032 ...... Signed-off-by: Srinivas Eeda Signed-off-by: Joel Becker commit 03620b2d7545fee29ecd3bb270f206b9cff75e58 Author: FUJITA Tomonori Date: Mon Aug 2 23:48:06 2010 +0900 swiotlb: make io_tlb_overflow static We don't need to export io_tlb_overflow_buffer. I'll remove io_tlb_overflow_buffer completely in the long term though. Signed-off-by: FUJITA Tomonori Signed-off-by: Konrad Rzeszutek Wilk commit 0361e02342f60b64a7075755d5851ed4e6f98c7d Merge: 4fdaa7b e9677b3 Author: Robert Richter Date: Mon Oct 11 19:38:39 2010 +0200 Merge branch 'oprofile/perf' into oprofile/core Conflicts: arch/arm/oprofile/common.c Signed-off-by: Robert Richter commit e9677b3ce207a07fad5746b6f7ddc70cae79de0a Author: Robert Richter Date: Wed Sep 29 15:42:30 2010 +0200 oprofile, ARM: Use oprofile_arch_exit() to cleanup on failure There is duplicate cleanup code in the init and exit functions. Now, oprofile_arch_exit() is also used if oprofile_arch_init() fails. Acked-by: Will Deacon Signed-off-by: Robert Richter commit 2bcb2b641a8f1524f7a9801eb9e52a00b8f18c6e Author: Robert Richter Date: Wed Sep 29 14:43:29 2010 +0200 oprofile, ARM: Rework op_create_counter() This patch simplifies op_create_counter(). Removing if/else if paths and return code variable by direct returning from function. Acked-by: Will Deacon Signed-off-by: Robert Richter commit 9c91283a19c2d998a83f50f113f8585709c15caf Author: Robert Richter Date: Fri Aug 27 14:32:41 2010 +0200 oprofile, ARM: Remove some goto statements This patch removes some unnecessary goto statements. Acked-by: Will Deacon Signed-off-by: Robert Richter commit 652953b72eea8b9d1bd6b9f67b796c6722bada3a Merge: 8177197 5140434 Author: Robert Richter Date: Mon Oct 11 19:33:42 2010 +0200 Merge branch 'oprofile/core' (early part) into oprofile/perf Conflicts: arch/arm/oprofile/common.c Signed-off-by: Robert Richter commit 81771974ae49bf79aab60c42eac7a6d730a9ef2b Author: Robert Richter Date: Wed Sep 29 16:52:25 2010 +0200 oprofile, ARM: Release resources on failure This patch fixes a resource leak on failure, where the oprofilefs and some counters may not released properly. Signed-off-by: Robert Richter Acked-by: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Cc: # .35.x LKML-Reference: <20100929145225.GJ13563@erda.amd.com> Signed-off-by: Ingo Molnar commit ad0f7cfaa85fc033523a09ab1f3dd6b8ded3dff5 Merge: 86c8c04 c7a27aa Author: Robert Richter Date: Mon Oct 11 19:26:50 2010 +0200 Merge branch 'oprofile/urgent' (early part) into oprofile/perf commit c9ee46a910f6edb40ddb7fb9aeac0030057c6fdb Merge: 4fa0466 81490fc Author: Russell King Date: Mon Oct 11 17:30:44 2010 +0100 Merge branch 'for-rmk-next' of git://git.pengutronix.de/git/imx/linux-2.6 into devel-stable commit 86c8c04792f152c5469023885510140dd34817bc Author: Matt Fleming Date: Fri Sep 10 20:36:23 2010 +0100 sh: oprofile: Use perf-events oprofile backend Now that we've got a generic perf-events based oprofile backend we might as well make use of it seeing as SH doesn't do anything special with its oprofile backend. Also introduce a new CONFIG_HW_PERF_EVENTS symbol so that we can fallback to using the timer interrupt for oprofile if the CPU doesn't support perf events. Also, to avoid a section mismatch warning we need to annotate oprofile_arch_exit() with an __exit marker. Signed-off-by: Matt Fleming Acked-by: Paul Mundt Signed-off-by: Robert Richter commit 3d90a00763b51e1db344a7430c966be723b67a29 Author: Matt Fleming Date: Mon Sep 27 20:45:08 2010 +0100 oprofile: Abstract the perf-events backend Move the perf-events backend from arch/arm/oprofile into drivers/oprofile so that the code can be shared between architectures. This allows each architecture to maintain only a single copy of the PMU accessor functions instead of one for both perf and OProfile. It also becomes possible for other architectures to delete much of their OProfile code in favour of the common code now available in drivers/oprofile/oprofile_perf.c. Signed-off-by: Matt Fleming Tested-by: Will Deacon Signed-off-by: Robert Richter commit 58850e210cd207399cf6461326e322541b2ec81c Author: Matt Fleming Date: Mon Sep 27 20:35:29 2010 +0100 ARM: oprofile: Move non-ARM code into separate init/exit In preparation for moving the majority of this oprofile code into an architecture-neutral place separate the architecture-independent code into oprofile_perf_init() and oprofile_perf_exit(). Signed-off-by: Matt Fleming Tested-by: Will Deacon Signed-off-by: Robert Richter commit 80e96b11f6cd261e1e569f3931604d656388af33 Author: Matt Fleming Date: Mon Sep 27 20:29:58 2010 +0100 ARM: oprofile: Rename op_arm to oprofile_perf In preparation for moving the generic functions out of this file, give the functions more general names (e.g. remove "arm" from the names). Signed-off-by: Matt Fleming Tested-by: Will Deacon Signed-off-by: Robert Richter commit 56946331b28d53232115a155ba662ab3dc598952 Author: Matt Fleming Date: Fri Oct 8 21:42:17 2010 +0100 oprofile: Make op_name_from_perf_id() global Make op_name_from_perf_id() global so that we have a way for each architecture to construct an oprofile name for op->cpu_type. We need to remove the argument from the function prototype so that we can hide all implementation details inside the function. Signed-off-by: Matt Fleming Signed-off-by: Robert Richter commit 84c7991059c9c4530cc911137c5bf508a41ed129 Author: Matt Fleming Date: Sun Oct 3 21:41:13 2010 +0100 perf: New helper function for pmu name Introduce perf_pmu_name() helper function that returns the name of the pmu. This gives us a generic way to get the name of a pmu regardless of how an architecture identifies it internally. Signed-off-by: Matt Fleming Acked-by: Peter Zijlstra Acked-by: Paul Mundt Signed-off-by: Robert Richter commit 81490fcdf406f42fff9d9f57d541788f90242885 Author: Amit Kucheria Date: Thu Oct 7 03:58:25 2010 +0300 mx51: efikamx: add otg support Ethernet hangs off OTG Signed-off-by: Amit Kucheria Signed-off-by: Sascha Hauer commit 088d01b00e335230bc51be6ae396babb9767e9ea Author: Amit Kucheria Date: Thu Oct 7 03:58:12 2010 +0300 mx51: add support for genesi efikamx nettop Get serial port working for now Signed-off-by: Amit Kucheria Signed-off-by: Sascha Hauer commit 6ff554e06869e970e6ef2c4d44ea43315917d22c Author: David Jander Date: Fri Oct 8 11:24:01 2010 +0200 spi/imx: Support different fifo sizes The i.MX51 ECSPI has a fifo size of 64 entries instead of 8 entries as found on the other cspi bus devices. Cc: Jason Wang Signed-off-by: David Jander Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König Acked-by: Grant Likely Signed-off-by: Sascha Hauer commit 4b5ee7a7689e3551f304b9154ecadbb0c3ae292f Author: Sascha Hauer Date: Sat Oct 9 23:09:45 2010 +0200 ARM: iomux-mx51: Add AUD5 pinmux definitions Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 0d0e9cbf815a78d62889554826f7d06b323c2d06 Author: Wolfram Sang Date: Mon Oct 11 15:04:53 2010 +0200 mx25/clocks: match esdhc-clocks to platform device So the correct clock will be taken for each of the two independent controllers. Signed-off-by: Wolfram Sang Cc: Eric Bénard Signed-off-by: Sascha Hauer commit 886ab3dae2ba26bde5bab096c931365db9f49830 Author: Peter Korsgaard Date: Mon Oct 11 15:02:06 2010 +0200 mxc/gpio: make _set_value work with values != 0/1 Documentation/gpio.txt specifies that the value argument to gpio_set_value() should be handled as a boolean (E.G. != 0 is high), so use the same logic as in _set_direction(). Signed-off-by: Peter Korsgaard Signed-off-by: Sascha Hauer commit 9524705c867dc8d5b558f4793b7464eab967a530 Author: Juergen Beisert Date: Wed Sep 22 09:42:15 2010 +0200 MX35: Fix bogus L2 cache settings i.MX35 CPUs marked with "MCIMX357CJQ5C M99V CTHA0943B" are coming with bogus L2 cache settings. If these settings are kept unmodified prior enabling the L2 cache the CPU runs amok immediately when its enabled. This fix should not hurt already working CPUs, as they are using the written register value already. Its currently unknown if its possible to detect the production lot from the software to fix only affected CPUs. While at it, make sure that mxc_init_l2x0 is only executed on i.MX31/35 Signed-off-by: Juergen Beisert Signed-off-by: Michael Grzeschik Signed-off-by: Sascha Hauer commit 55fd2ef6d9e9f40f30d891e01f2f565552e688fa Author: Uwe Kleine-König Date: Wed Oct 6 12:00:19 2010 +0200 ARM: mx3/cpuimx35: mark otg_pdata and usbh1_pdata as maybe unused This fixes arch/arm/mach-mx3/mach-cpuimx35.c:143: warning: 'otg_pdata' defined but not used arch/arm/mach-mx3/mach-cpuimx35.c:148: warning: 'usbh1_pdata' defined but not used when USB_ULPI is not selected. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 6bd96f3c332d422c0dda302f1b32c8e21dd75ee3 Author: Uwe Kleine-König Date: Wed Oct 6 12:00:18 2010 +0200 ARM: imx: dynamically register fec devices Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 8a8d20600dce01553c8505b7c576f8d4307e4ba8 Author: Uwe Kleine-König Date: Fri Oct 8 16:00:11 2010 +0200 ARM: imx: fix/define clocks and create devices for imx dma Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 67520f3a896acb1635894fd25626f7fa7c91e61c Author: Eric Bénard Date: Fri Oct 8 16:00:10 2010 +0200 ARM: mx35: Add mx35_revision function to query the silicon revision Based on work done earlier by Sascha Hauer Signed-off-by: Sascha Hauer Signed-off-by: Eric Bénard [ukl: actually squash the two approaches together] Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit fdb03870a9714ba2695daa0c2b3e6b6be4318e9d Author: Sascha Hauer Date: Fri Oct 8 16:00:09 2010 +0200 ARM: mx3: use MX3x_ prefixed version of CHIP_REV_x Also, remove the deprecated symbols from arch/arm/mach-mx3/cpu.c Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 6f8460eb823c37f6ba236cd261a6edceea4805e5 Author: Eric Bénard Date: Sat Oct 2 17:15:29 2010 +0200 eukrea_mbimxsd for cpuimx25: add CAN & SDCard support Signed-off-by: Eric Bénard Signed-off-by: Sascha Hauer commit f5e40c28b63939ee63f1f9d865eece0a28444fd0 Author: Eric Bénard Date: Sat Oct 2 17:15:28 2010 +0200 i.mx25: add esdhc support Signed-off-by: Eric Bénard Signed-off-by: Sascha Hauer commit 438a4d66a561fe3d6dceeb9c7f30d23f52cb371b Author: Eric Bénard Date: Sat Oct 2 17:15:27 2010 +0200 eukrea_mbimxsd for cpuimx35: add CAN & SDCard support Signed-off-by: Eric Bénard Signed-off-by: Sascha Hauer commit 9a545943a378ec1b3a9819de4b189ce5e822a6af Author: Wolfram Sang Date: Mon Oct 11 12:55:23 2010 +0200 arm: pcm043: add esdhc-device to boardconfig Signed-off-by: Wolfram Sang Signed-off-by: Sascha Hauer commit 774305d0ee105f75d44699e2c94ef3bf9c5e2d90 Author: Wolfram Sang Date: Mon Oct 11 12:55:22 2010 +0200 arm: imx35: add esdhc-device to MX35-platform Signed-off-by: Wolfram Sang Signed-off-by: Sascha Hauer commit 203a0734709779fa40552cd9bb7c4dd325b5131f Author: Wolfram Sang Date: Mon Oct 11 12:55:21 2010 +0200 arm: imx: add generic esdhc device Signed-off-by: Wolfram Sang Signed-off-by: Sascha Hauer commit 3bf101ba42a1c89b5afbc7492e7647dae5e18735 Author: Matt Fleming Date: Mon Sep 27 20:22:24 2010 +0100 perf: Add helper function to return number of counters The number of counters for the registered pmu is needed in a few places so provide a helper function that returns this number. Signed-off-by: Matt Fleming Tested-by: Will Deacon Acked-by: Paul Mundt Acked-by: Peter Zijlstra Signed-off-by: Robert Richter commit 4d94aa1b1d437f9513ddc89974d8bd214b8304f6 Author: Sunil Mushran Date: Sat Oct 9 10:27:04 2010 -0700 ocfs2/cluster: Bump up dlm protocol to version 1.1 dlm protocol 1.1. activates messages DLM_QUERY_REGION and DLM_QUERY_NODEINFO that are a must for global heartbeat. It also activates o2hb_global_heartbeat_active(). Signed-off-by: Sunil Mushran commit b476ef059ec9e49d4f2a4280b862b446ef3866e8 Author: Marek Vasut Date: Mon Aug 9 06:23:28 2010 +0200 ARM: pxa/balloon3: Disperse MFP config Move pin config to appropriate places and use it only if needed. Signed-off-by: Marek Vasut Acked-By: Jonathan McDowell Signed-off-by: Eric Miao commit f090c74b23de6d8f362684e4a8c4b2bf8a32b6eb Author: Haojian Zhuang Date: Tue Sep 21 16:43:57 2010 +0800 ARM: mmp: update cpuid of pxa168 and pxa910 Correct the cpuid of pxa168 and pxa910. Signed-off-by: Haojian Zhuang Signed-off-by: Eric Miao commit 799929d7048b3ec0086ed525ed7ccf6f2b8ecda6 Author: Haojian Zhuang Date: Sun Sep 19 20:10:13 2010 -0400 ARM: pxa: reduce the scope of get_memclk_frequency_10khz() Up to now, only pxa2xx pcmcia driver is using the API. No other device driver is using this API in PXA3xx or any other PXA silicons. Restrict the scope only on pxa2xx and remove the implementation of pxa3xx. So we can avoid oo much checking on cpuid after more pxa chips supported. Signed-off-by: Haojian Zhuang Cc: Eric Miao Signed-off-by: Eric Miao commit ecf89b8a9189462480086f72791eb41f8aa09bfd Author: Haojian Zhuang Date: Sun Sep 19 20:09:10 2010 -0400 ARM: pxa: reduce the scope of get_clk_frequency_khz() get_clk_frequency_khz() is used in private cpufreq driver. In order to meet the change of different pxa silicons, checking cpuid is introduced in get_clk_frequency_khz(). While more pxa silicons are supported, the workload of checking cpuid is higher. So restrict the scope of get_clk_frequency_khz() on pxa2xx. Different pxa silcions use different private cpufreq driver to avoid too much checking on cpuid. Signed-off-by: Haojian Zhuang Cc: Eric Miao Signed-off-by: Eric Miao commit 759305c62f294d4f5fb1d8dde5ece98d2f71cfcb Author: Mark F. Brown Date: Sun Sep 12 23:51:36 2010 -0400 ARM: pxa168/teton bga: add board support for i2c and rtc-ds1337 Defined I2C/ALARM pin definitions DS1337 RTC alarm support is tied to RTC_INT_GPIO Signed-off-by: Mark F. Brown Acked-by: Haojian Zhuang Acked-by: Marek Vasut Signed-off-by: Eric Miao commit d2ce697309ba5215cc5b2d5a11c8599d9eb1c75c Author: Mark F. Brown Date: Sun Sep 12 23:51:35 2010 -0400 ARM: pxa168/teton bga: added keypad support Support for Matrix keypad ESC, ENTER, LEFT, and RIGHT Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 1bbd7089f2effc40c35ffbbc62ad54aefd741633 Author: Mark F. Brown Date: Sun Sep 12 23:51:34 2010 -0400 ARM: pxa168: added support for Teton BGA platform Added board defintion, header, and debug UART support. Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 0bd8696119904b5868c7315b644128b16ab06f59 Author: Haojian Zhuang Date: Wed Sep 8 09:42:42 2010 -0400 ARM: mmp: support sparse irq Add sparse IRQ support in ARCH_MMP. Signed-off-by: Haojian Zhuang Signed-off-by: Eric Miao commit 20266df55db7dcb70b3f527a55f4eb5a4d7092e2 Author: Haojian Zhuang Date: Wed Sep 8 09:42:40 2010 -0400 ARM: pxa: append tavorevb3 support Bringup tavorevb3 development platform. UART and PMIC are enabled. Signed-off-by: Haojian Zhuang Signed-off-by: Eric Miao commit ba1aa3248e484e5cc39a74ae418232bd5c877a90 Author: Haojian Zhuang Date: Sun Aug 29 20:32:16 2010 -0400 ARM: pxa168fb: add .remove function The pxa168fb driver is missing .remove function so the framebuffer isn't correctly shut down when the module is removed. Signed-off-by: Marek Vasut Signed-off-by: Haojian Zhuang Signed-off-by: Eric Miao commit 6aafc5f394fce437bf005b59034d7e5917778a99 Author: Mark F. Brown Date: Fri Sep 3 18:28:11 2010 -0400 ARM: pxa168/aspenite: add board support for keypad Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit ab5739a17953b22480dc7caf6603380d563c53fc Author: Mark F. Brown Date: Fri Sep 3 18:28:10 2010 -0400 ARM: pxa168: added keypad wake clear event support for platform Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 3587c258078479824342f33dc513ca7c66d729bc Author: Mark F. Brown Date: Fri Sep 3 18:28:09 2010 -0400 ARM: pxa27x_keypad: added wakeup event handler for keypad interrupts mach-mmp needs to clear wake event in order to clear the keypad interrupt Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 2ce4389068129fb4a8756b5ba126da1260f5dbef Author: Mark F. Brown Date: Fri Sep 3 18:28:08 2010 -0400 ARM: pxa168: added wake clear register support for APMU Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 6d109465fb751fe4376c080e5fb10838d3414c28 Author: Mark F. Brown Date: Fri Sep 3 18:28:07 2010 -0400 ARM: pxa168: added keypad support Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 4a2490eac897e3648c4800b1068b56b7e1ad91b3 Author: Mark F. Brown Date: Fri Sep 3 18:28:06 2010 -0400 ARM: pxa: moved pxa27x_keypad.h to platform pxa directory mach-mmp utilizes pxa27x_keypad code so we need to move header to platform pxa directory. Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit d9c8279b326e18bcb25ee9d12fe7513d24f8bbb1 Author: Stepan Moskovchenko Date: Tue Aug 24 19:51:15 2010 -0700 msm: Platform data for msm8x60 IOMMUs Add the platform data for the IOMMUs found on the Qualcomm msm8x60 SoC. Signed-off-by: Stepan Moskovchenko Signed-off-by: Daniel Walker commit c6a5951ee53db0f275dd85a702325c981c8d8c4c Author: Stepan Moskovchenko Date: Tue Aug 24 18:32:38 2010 -0700 msm: Platform initialization for the IOMMU driver Register a driver for the MSM IOMMU devices and a driver for the translation context devices. Set up the global IOMMU registers and initialize the context banks. Signed-off-by: Stepan Moskovchenko Signed-off-by: Daniel Walker commit 0720d1f052dc1576396a39b327da6e60082c4efa Author: Stepan Moskovchenko Date: Tue Aug 24 18:31:10 2010 -0700 msm: Add MSM IOMMU support Add support for the IOMMUs found on the upcoming Qualcomm MSM8x60 chips. These IOMMUs allow virtualization of the address space used by most of the multimedia cores on these chips. Signed-off-by: Stepan Moskovchenko Signed-off-by: Daniel Walker commit 69b7f6ff855e32ec353475ce7b7246d293816078 Author: Gregory Bean Date: Sun Apr 4 22:29:02 2010 -0700 msm: add MSM8x60 FFA support The MSM8X60 FFA contains different components than the MSM8X60 SURF, and therefore requires a different ARCH type and machine ID. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 57bbf1cc8c265f9d4c6831d9e3f07a72cf16ee27 Author: Steve Muckle Date: Thu Jan 7 12:51:10 2010 -0800 msm: MSM8X60 simulator board support Board configuration for MSM8X60 simulation. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit 49b76f718d634599693e18efe169adfa2d5b75e8 Author: Steve Muckle Date: Fri Mar 19 17:00:08 2010 -0700 msm: add msm8x60_surf machine Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit 998ba079fee7d9639003d77521d2117db17b4a04 Author: Jeff Ohlstein Date: Thu May 6 14:18:06 2010 -0700 msm: physical offset for MSM8X60 The MSM8x60 has a different physical memory offset than other targets. Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit e4fbb68f4594388367e4e4595abf9330d9875704 Author: Abhijeet Dharmapurikar Date: Mon Feb 1 12:30:28 2010 -0800 msm: 8x60: setup correct handlers for private interrupts Private Peripheral interrupts could be edge triggered or level triggered depending on the platform. Initialize handlers for these in board file. Signed-off-by: Abhijeet Dharmapurikar Signed-off-by: Daniel Walker commit 569fb6e3e60eef77941c319562271daf759e634d Author: Jeff Ohlstein Date: Thu Aug 12 13:02:56 2010 -0700 msm: add build support for msm8x60 target Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit 46fe5f29e3062f681cc3cf07a604d82396faea89 Author: Daniel Walker Date: Wed Aug 18 11:00:25 2010 -0700 msm: allow uart to be conditionally disabled Some MSM targets don't select the debug UART in this way. For those we need to disable this selection mechanism. Signed-off-by: Daniel Walker Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit 4ca06de368ddfaee47983d3d1f9eec9e2a6c23d4 Author: Daniel Walker Date: Wed Aug 18 10:53:05 2010 -0700 msm: dma: add stub functions for dma features not yet present on 8x60 Signed-off-by: Daniel Walker Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit 871c94a8612f6b13193752c765617cfe68a038d3 Author: Jeff Ohlstein Date: Tue Aug 17 20:04:19 2010 -0700 msm: clock: add dummy clock driver Need to add this until real clock support for 8x60 goes in, or else some drivers won't compile. Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit 9161d303af547653c66dab4e235b6fd0c3ac6148 Author: Steve Muckle Date: Thu Feb 11 11:50:40 2010 -0800 msm: 8x60: gic initialization fixup for RUMI On RUMI platform STIs are not enabled by default, contrary to the GIC spec. The bits for STIs in the enable/enable clear registers are also RW instead of RO. STIs need to be enabled at initialization time. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit f880c5649ec7a831a45cd254e9ecf9bd25b17dba Author: Steve Muckle Date: Wed Dec 9 14:03:13 2009 -0800 msm: irq: rename existing entry-macro to entry-macro-vic The existing MSM irq entry macro is specific to a VIC implementation. Renaming this makes room for irq support based on other interrupt controllers. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit a55df6edcfc42354ae5f828c31d9236b8a7bbea7 Author: Steve Muckle Date: Thu Jan 7 12:43:24 2010 -0800 msm: MSM8X60 RUMI3 board support Board configuration for MSM8X60 emulation on RUMI3. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit 672039f0351f324bb498c5ff5d468103d321d56c Author: Jeff Ohlstein Date: Tue Oct 5 15:23:57 2010 -0700 msm: timer: support 8x60 timers Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit 01eb4f5c77f3717d8f295610f0dbb705950beadc Author: Abhijeet Dharmapurikar Date: Thu Jan 21 18:10:29 2010 -0800 msm: irqs-8x60: interrupt map Define the interrupt map in irq-8x60.h Signed-off-by: Abhijeet Dharmapurikar Signed-off-by: Daniel Walker commit ed1f31b4b742647e2ec18c885e65fbef484eaf58 Author: Steve Muckle Date: Sat Nov 28 13:00:13 2009 -0800 msm: initial irq definitions for MSM8X60 IRQ assignments are different for MSM8X60 than other existing MSMs. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit 6cf6dfefe1f07f309998df8734fdc0961dbae38c Author: Steve Muckle Date: Wed Jan 6 14:55:24 2010 -0800 msm: io: MSM8X60 io support MSM8X60 has different IO mappings than previous MSMs. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit c8aabaeb52ef6a0aeb6e8e209431b9bb01dcd287 Author: Steve Muckle Date: Wed Apr 21 16:20:27 2010 -0700 msm: create config option for proc-comm Some builds may not support the proc-comm interface with the baseband processor. Signed-off-by: Steve Muckle Signed-off-by: Daniel Walker commit 6e9636693373d938aa3b13427be3d212f172ac06 Author: Konrad Rzeszutek Wilk Date: Fri Oct 8 14:53:48 2010 -0400 x86, iommu: Update header comments with appropriate naming The header comments diverged a bit from the implementation. Lets re-sync them. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1286564028-2352-3-git-send-email-konrad.wilk@oracle.com> Signed-off-by: H. Peter Anvin commit fc6a2f37d084173de57fe75f73cbe4bb296b9e8a Author: Konrad Rzeszutek Wilk Date: Fri Oct 8 14:53:47 2010 -0400 ia64, iommu: Add a dummy iommu_table.h file in IA64. We don't need a complex IOMMU dependency list on IA64 so we just define the IOMMU_* macro which is used the DMAR driver, as a dummy. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1286564028-2352-2-git-send-email-konrad.wilk@oracle.com> Reported-by: Tony Luck Tested-by: Tony Luck Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: H. Peter Anvin commit e8b17b5b3f30252b5470dbbf54bc251ddc7fac17 Author: Masayuki Ohtake Date: Fri Oct 8 12:44:49 2010 -0600 spi/topcliff: Add topcliff platform controller hub (PCH) spi bus driver Topcliff PCH is the platform controller hub that is going to be used in Intel's upcoming general embedded platform. All IO peripherals in Topcliff PCH are actually devices sitting on AMBA bus. This patch adds a driver for the SPI bus integrated into the Topcliff device. Signed-off-by: Masayuki Ohtake Signed-off-by: Grant Likely commit 5b8544c38e6fde6968645afd46ff681492192b86 Author: Kumar Gala Date: Fri Oct 8 10:37:31 2010 -0500 powerpc/ppc64e: Fix link problem when building ppc64e_defconfig arch/powerpc/platforms/built-in.o:(.toc1+0x18): undefined reference to `__early_start' This is due to the 85xx/smp.c not handling the 64-bit side properly. We need to set the entry point for secondary cores on ppc64e to generic_secondary_smp_init instead of __early_start that we due on ppc32. Signed-off-by: Kumar Gala commit fe21221386e46b8e0f2cbd83559a29680c28473b Author: Thomas Gleixner Date: Fri Oct 8 15:33:01 2010 +0200 mfd: twl4030: Fix dummy irq chip usage The twl irqchip uses the dummy irq chip ack functions, which is NULL now. Switch it over to use irq_ack. Reported-and-tested-by: Grazvydas Ignotas Signed-off-by: Thomas Gleixner commit 865a4fae7793b80e2b8bca76e279d6dfecbeac17 Author: Russell King Date: Mon Oct 4 18:02:59 2010 +0100 ARM: add register documentation for __enable_mmu Add some additional documentation on register usage in __enable_mmu to help complete the overall picture. Signed-off-by: Russell King commit 00945010c063b95e813b966f44bf58ffa1955a38 Author: Russell King Date: Mon Oct 4 17:56:13 2010 +0100 ARM: hotplug cpu: move secondary_startup, __enable_mmu to cpuinit Move these two functions, both of which are required for secondary CPU booting, into the cpuinit section. Ensure bad processors call __error_p for better diagnostics, rather than just __error. Signed-off-by: Russell King commit 786f1b73f7d5cad5c88dc75a96d53a74160aa7d7 Author: Russell King Date: Mon Oct 4 17:51:54 2010 +0100 ARM: hotplug cpu: ensure that __enable_mmu is identity mapped __enable_mmu is required to be executed in an identity mapped region to ensure that variances in CPUs do not cause a crash. We currently achieve this by assuming that it will be co-located with __create_page_tables. With hotplug CPU support, this assumption becomes invalid. Implement a better solution which ensures that it will be appropriately mapped no matter where it is placed. Signed-off-by: Russell King commit 80924ac595f3ca32ec0a80cc1217c7019d3519ff Author: Russell King Date: Mon Oct 4 17:45:25 2010 +0100 ARM: cleanup lookup_machine_type data and ensure these are placed in __HEAD Signed-off-by: Russell King commit c083c6609b290a650894f846270a9233401adc22 Author: Russell King Date: Mon Oct 4 17:39:20 2010 +0100 ARM: hotplug cpu: move __error and __error_p to cpuinit section __error and __error_p may be used by secondary CPUs, so these need to be in the cpuinit section. Signed-off-by: Russell King commit 17bb5e2c1706c7296eec96e97be0d760e59f282c Author: Russell King Date: Mon Oct 4 16:29:35 2010 +0100 ARM: move __mmap_switched, C-API functions to init section Move these functions, which are only ever used during boot CPU initialization, to the init section. Signed-off-by: Russell King commit a4ae41341fd39af6e25ec9861a6a4dc0c5c58b16 Author: Russell King Date: Mon Oct 4 16:22:34 2010 +0100 ARM: cleanup boot cpu calling __mmap_switched This allows us to relocate __mmap_switched and associated data away from the head section. Signed-off-by: Russell King commit 5085f3ff458521045f7e43da62b8c30ea7df2e82 Author: Russell King Date: Fri Oct 1 15:37:05 2010 +0100 ARM: hotplug cpu: Keep processor information, startup code & __lookup_processor_type When hotplug CPU is enabled, we need to keep the list of supported CPUs, their setup functions, and __lookup_processor_type in place so that we can find and initialize secondary CPUs. Move these into the __CPUINIT section. Signed-off-by: Russell King commit 37b05b63754e995b8cb76f4fbe7ed7219b3ca896 Author: Russell King Date: Fri Oct 1 15:38:24 2010 +0100 ARM: hotplug cpu: setup 1:1 map for entire kernel image for secondary CPUs Make the entire kernel image available for secondary CPUs rather than just the first MB of memory. This allows the startup code to appear in the cpuinit sections. Signed-off-by: Russell King commit f131a0800e286a13839784e554383c0ddfa78bce Author: Russell King Date: Fri Oct 1 15:42:02 2010 +0100 ARM: no need for nommu to jump through the hoops that mmu does nommu can jump directly to __mmap_switched without the absolute address branching which the mmuful kernel does. Acked-by: Greg Ungerer Signed-off-by: Russell King commit 4fa046655b80e9bb361a95da5c86ce778f5018b9 Merge: 552dc34 846afbd1 Author: Russell King Date: Fri Oct 8 10:06:58 2010 +0100 Merge branch 'for-russell' of git://codeaurora.org/quic/kernel/dwalker/linux-msm into devel-stable commit e4eab08d6050ad04d960738f589724204fd1064c Author: Nicolas Pitre Date: Fri Aug 20 21:14:46 2010 +0100 ARM: 6342/1: fix ASLR of PIE executables Since commits 990cb8acf2 and cc92c28b2d, it is possible to have full address space layout randomization (ASLR) on ARM. Except that one small change was missing for ASLR of PIE executables. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit 01723a9566f9e9ce4c75e5c4c9f6dc20600871a7 Author: Linus Walleij Date: Tue Sep 7 22:43:19 2010 +0100 ARM: 6368/1: move the PrimeCell IDs to use macros This make four macros for the PrimeCell ID register available to drivers that use them witout using the PrimeCell/AMBA bus abstraction and struct amba_device. It also moves the magic PrimeCell CID "B105F00D" to the bus.h header file. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 2da6d64a638eb982bebf34e2999f0b67cfb90f33 Author: Linus Walleij Date: Sat Sep 11 12:47:25 2010 +0100 ARM: 6369/1: Update RealView SMP defconfig This patches the condensed RealView SMP defconfig activating the same 2.6.36 features mentioned in the vanilla RealView defconfig patch submitted earlier. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 6a7d520fc141ad8f72efab3a5a2a73b3655fee24 Author: Linus Walleij Date: Mon Sep 6 09:16:04 2010 +0100 ARM: 6365/1: Update RealView defconfig This patches the condensed RealView defconfig activating some stuff that has been missing from this config for some time and some stuff that was merged in the 2.6.36 merge window: - The new character LCD driver is enabled - The Versatile I2C is enabled - The PL022 SPI driver is enabled - gpiolib is enabled (and makes MMC detection work properly) - The new LEDs code is enabled with a heartbeat trigger - The RTC class is enabled, and the PL031 RTC (onchip) and the offchip DS1307 on I2C is enabled Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 74b0ec0708e7c8c530079b737f32c55597d062cc Author: Russell King Date: Fri Oct 1 14:26:56 2010 +0100 ARM: vmlinux.lds: Move unwind tables into _stext.._etext Signed-off-by: Russell King commit 842eab40b6920819fff5caeefdb709f07d3f8e23 Author: Russell King Date: Fri Oct 1 14:12:22 2010 +0100 ARM: vmlinux.lds: Refer to start of .data using _sdata rather than _data Use _sdata as the start of the data section, rather than _data. Signed-off-by: Russell King commit c7b0aff44a0740eedd31b759fd08d9e25672fa76 Author: Kevin Hilman Date: Fri Oct 1 22:13:47 2010 +0100 ARM: 6428/1: add cpu_idle_wait() to support CPUidle on SMP systems. In order for CPUidle to work on SMP systems, an implementation of cpu_idle_wait() is needed. This patch duplicates the x86 implementation of cpu_idle_wait() for ARM. Tested-by: Colin Cross Signed-off-by: Kevin Hilman Signed-off-by: Russell King commit 7511db9d25080d53e5427bf4b8849278c07019bc Author: Tony Lindgren Date: Tue Oct 5 16:40:13 2010 +0100 ARM: 6429/1: Check for is_smp for tlb_ops and cache_ops broadcast Broadcast should not be needed when running SMP kernel on UP systems. Also, this fixes an undefined instruction for SMP_ON_UP on earlier ARM cores without the extended CPUID_EXT_MMFR3 register. Signed-off-by: Tony Lindgren Signed-off-by: Russell King commit 5fb31a96e1e0078f1e82736ccd72a61ecabe6a4f Author: Linus Walleij Date: Wed Oct 6 11:07:28 2010 +0100 ARM: 6431/1: fix isb regression on CPU < v7 The kernel does not compile for my ARM926EJ-S system U300 due to the isb instruction inserted in generic assember statement from commit 8925ec4c530094b878e7e28a1fd78e7122afd973, "ARM: 6385/1: setup: detect aliasing I-cache when D-cache is non-aliasing" hey the isb is only available when assembling for v7 so let's use the generic isb() macro from setup.h instead. Acked-by: Will Deacon Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 552dc340bce3b28f4af33c9134adafa5efacf1c9 Merge: a9fda02 ee621dd Author: Russell King Date: Fri Oct 8 09:58:55 2010 +0100 Merge branch 'for_rmk' of git://github.com/at91linux/linux-2.6-at91 into devel-stable commit 7cd2541cf2395962daf98ec32a141aba3398a9b2 Merge: c62f981 cb655d0 Author: Ingo Molnar Date: Fri Oct 8 10:46:27 2010 +0200 Merge commit 'v2.6.36-rc7' into perf/core Conflicts: arch/x86/kernel/module.c Merge reason: Resolve the conflict, pick up fixes. Signed-off-by: Ingo Molnar commit a754aea25e804d0635d1871558bee5024605ff92 Author: Marek Vasut Date: Fri Sep 3 22:35:46 2010 +0200 ARM: pxa: fix pxa3xx-u2d crash when ULPI not used In case the pxa3xx-u2d driver isn't used, probing of ohci-pxa27x will cause an ugly kernel crash (NULL pointer dereference in pxa3xx_u2d_start_hc(), because struct u2d is NULL and clk_enable() call will crash the kernel, trying to access it). Signed-off-by: Marek Vasut Signed-off-by: Eric Miao commit 884646a5721e547d302390d8a483e9b75a31b017 Author: Mark F. Brown Date: Wed Aug 25 23:51:55 2010 -0400 ARM: pxa168/aspenite: added initial support for TPO TD043MTEA1 LCD Signed-off-by: Mark F. Brown Cc: Haojian Zhuang Cc: Marek Vasut Signed-off-by: Eric Miao commit 58cf68b88ce3fc48e345e756c07770e1d6e4cbe9 Author: Mark F. Brown Date: Wed Aug 25 23:51:54 2010 -0400 ARM: pxa168: added framebuffer support code Signed-off-by: Mark F. Brown Signed-off-by: Eric Miao commit 6ac6b817f3f4c23c5febd960d8deb343e13af5f3 Author: Haojian Zhuang Date: Fri Aug 20 15:23:59 2010 +0800 ARM: pxa: encode IRQ number into .nr_irqs Signed-off-by: Haojian Zhuang Acked-by: Antonio Ospite Signed-off-by: Eric Miao commit 1b43d8eda71bc953c9005afd63952e0666169553 Author: Igor Grinberg Date: Tue Jul 27 15:07:00 2010 +0300 ARM: pxa/cm-x300: enable USB host port2 Signed-off-by: Igor Grinberg Signed-off-by: Mike Rapoport Signed-off-by: Eric Miao commit 6dc3ae845c56157098f8af2d793aaefac2b31840 Author: Igor Grinberg Date: Tue Jul 27 15:06:59 2010 +0300 ARM: ohci-pxa27x: enable OHCI over U2DC for pxa3xx U2D Controller of pxa3xx is able to work in host mode. Make pxa specific ohci implementation aware of it. Signed-off-by: Igor Grinberg Signed-off-by: Mike Rapoport Signed-off-by: Eric Miao commit 69f22be7b10684ade3808de22db87c536ed135f3 Author: Igor Grinberg Date: Tue Jul 27 15:06:58 2010 +0300 ARM: pxa: add U2D controller and ULPI driver for pxa3xx USB2.0 Device Controller (U2DC) which is found in Marvell PXA3xx. U2DC supports both High and Full speed modes. PXA320 and PXA300 U2DC supports only UTMI interface. PXA310 U2DC supports only ULPI interface and has the OTG capability. U2D Controller ULPI driver introduced in this patch supports only the PXA310 USB Host via the ULPI. Signed-off-by: Igor Grinberg Signed-off-by: Mike Rapoport Signed-off-by: Eric Miao commit 286e5b97eb22baab9d9a41ca76c6b933a484252c Author: Paul Fox Date: Fri Oct 1 18:17:19 2010 +0100 x86, olpc: Don't retry EC commands forever Avoids a potential infinite loop. It was observed once, during an EC hacking/debugging session - not in regular operation. Signed-off-by: Daniel Drake Cc: dilinger@queued.net Cc: Signed-off-by: Ingo Molnar commit 4d033556f1bfaa7604b951bfadd17aaf1b74e4c5 Author: Feng Tang Date: Mon Sep 13 15:08:56 2010 +0800 x86, earlyprintk: Add hsu early console for Intel Medfield platform Intel Medfield platform has a high speed UART device, which could act as a early console. To enable early printk of HSU console, simply add "earlyprintk=hsu" in kernel command line. Currently we put the code in the early_printk_mrst.c as it is also for Intel MID platforms like the mrst early console Signed-off-by: Feng Tang Acked-by: Alan Cox Cc: greg@kroah.com LKML-Reference: <1284361736-23011-5-git-send-email-feng.tang@intel.com> Signed-off-by: Ingo Molnar commit c20b5c3318fe45e4f33f01a91ccead645dfdf619 Author: Feng Tang Date: Mon Sep 13 15:08:55 2010 +0800 x86, earlyprintk: Add earlyprintk for Intel Moorestown platform Intel Moorestown platform has a spi-uart device(Maxim3110), which connects to a Designware spi core controller. This patch will add early console function based on it. As it will be used long before Linux spi subsystem get initialised, we simply directly manipulate the spi controller's register to acheive the early console func. This is safe as it will be disabled when devices subsytem get initialised. To use it, user need enable CONFIG_X86_MRST_EARLY_PRINTK in kenrel config and add "earlyprintk=mrst" in kernel command line. Signed-off-by: Feng Tang Acked-by: Alan Cox Cc: greg@kroah.com LKML-Reference: <1284361736-23011-4-git-send-email-feng.tang@intel.com> Signed-off-by: Ingo Molnar commit 5a47c7dae861c3ca3edf178546641909851bf715 Author: Feng Tang Date: Mon Sep 13 15:08:54 2010 +0800 x86: Add two helper macros for fixed address mapping Sometimes fixmap will be used to map an physical address which is not PAGE align, so to use it we need first map it and then add the address offset to the mapped fixed address. These 2 new helpers are suggested by Ingo Molnar to make the process simpler. For a physicall address like "phys", a directly usable virtual address can be get by virt = (void *)set_fixmap_offset(fixed_idx, phys); or virt = (void *)set_fixmap_offset_nocache(fixed_idx, phys); (depends on whether the physical address is cachable or not). Signed-off-by: Feng Tang Cc: alan@linux.intel.com Cc: greg@kroah.com Cc: x86@kernel.org LKML-Reference: <1284361736-23011-3-git-send-email-feng.tang@intel.com> Signed-off-by: Ingo Molnar commit 153db80f8cf74e8700cac96305b6c0b92918f17c Merge: 5fd03dd cb655d0 Author: Ingo Molnar Date: Fri Oct 8 09:14:51 2010 +0200 Merge commit 'v2.6.36-rc7' into core/memblock Merge reason: Update from -rc3 to -rc7. Signed-off-by: Ingo Molnar commit 5fd03ddab7fdbc44bfb2d183a4531c26a8dbca5a Author: Yinghai Lu Date: Tue Oct 5 21:28:10 2010 -0700 memblock/arm: Fix memblock_region_is_memory() typo Fix typo in commit dbe3039 ("memblock/arm: Use memblock_region_is_memory() for omap fb") - it should be memblock_is_region_memory(). Reported-by: Tomi Valkeinen Signed-off-by: Yinghai Lu Cc: Benjamin Herrenschmidt Cc: Felipe Balbi Cc: Kevin Hilman Cc: ext Grazvydas Ignotas LKML-Reference: <4CABFADA.9020305@kernel.org> Signed-off-by: Ingo Molnar commit 55572b293b3a5929e8c54bc91d14ae6264186bf6 Author: H. Peter Anvin Date: Thu Oct 7 16:42:54 2010 -0700 x86, mrst: A function in a header file needs to be marked "inline" A function in a header file needs to be explicitly marked "inline", or gcc will complain if it is not used. Signed-off-by: H. Peter Anvin Cc: Jacob Pan Cc: v2.6.36 LKML-Reference: <1274295685-6774-3-git-send-email-jacob.jun.pan@linux.intel.com> commit a416e9e1dde0fbcf20cda59df284cc0dcf2aadc4 Author: Namhyung Kim Date: Wed Sep 29 23:29:48 2010 +0900 x86-32: Fix sparse warning for the __PHYSICAL_MASK calculation On 32-bit non-PAE system, cast to 'phys_addr_t' truncates value before subtraction. Subtracting before cast produce same result but remove following warnings from sparse: arch/x86/include/asm/pgtable_types.h:255:38: warning: cast truncates bits from constant value (100000000 becomes 0) arch/x86/include/asm/pgtable_types.h:270:38: warning: cast truncates bits from constant value (100000000 becomes 0) arch/x86/include/asm/pgtable.h:127:32: warning: cast truncates bits from constant value (100000000 becomes 0) arch/x86/include/asm/pgtable.h:132:32: warning: cast truncates bits from constant value (100000000 becomes 0) arch/x86/include/asm/pgtable.h:344:31: warning: cast truncates bits from constant value (100000000 becomes 0) 64-bit or PAE machines will not be affected by this change. Signed-off-by: Namhyung Kim LKML-Reference: <1285770588-14065-1-git-send-email-namhyung@gmail.com> Signed-off-by: H. Peter Anvin commit c75f2aa13f5b268aba369b5dc566088b5194377c Author: Tony Luck Date: Thu Oct 7 16:23:34 2010 -0700 [IA64] Cannot use register_percpu_irq() from ia64_mca_init() This is called before early_irq_init() which will clobber any registrations made too early. Move the calls to ia64_mca_late_init(). Signed-off-by: Tony Luck commit af9a2d006611124eb1de9d7fee160b25b252ad98 Author: Simon Guinot Date: Thu Oct 7 16:38:50 2010 +0200 [ARM] Kirkwood: add LED support for netxbig_v2 boards Signed-off-by: Simon Guinot Signed-off-by: Nicolas Pitre commit 2446783250fc12ba9bc39771e04988692742ed90 Author: Simon Guinot Date: Thu Oct 7 16:38:49 2010 +0200 leds: add LED driver for Big Network series LEDs This patch add a LED class driver for LEDs found on the LaCie 2Big and 5Big Network v2 boards. The LEDs are wired to a CPLD and are controlled through a GPIO extension bus. Signed-off-by: Simon Guinot Signed-off-by: Nicolas Pitre commit e5971bbc1caf0ccbab3fea74fe37abb649d1c7cf Author: Simon Guinot Date: Thu Oct 7 16:35:40 2010 +0200 leds: leds-ns2: fix private driver data storage dev_set_drvdata() can't be used to set the driver private data pointer. This would overwrite the led classdev object previously registered by led_classdev_register(). Note that despite this mistake, the driver work fine because led_dat and led_dat->cdev are at the same memory address. Signed-off-by: Simon Guinot Signed-off-by: Nicolas Pitre commit ee621dd619b9a85eced150fc06e352fef54cfda0 Author: Jean-Christophe PLAGNIOL-VILLARD Date: Sun Aug 8 06:21:33 2010 +0200 net: atmel_macb Kconfig: remove long dependency line Many Atmel SOC are embedding a MACB controller. This patch removes the long dependency line for this Atmel MACB ethernet driver configuration entry. The HAVE_NET_MACB configuration option is located in the net Kconfig file as it may be setup by ARM/AT91 and AVR32 chips. Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Cc: David Miller Cc: Haavard Skinnemoen Acked-by: Nicolas Ferre Acked-by: Andrew Victor commit cb809b1a5ebffca8cf0314b788919989e8e4ab5f Author: Greg Ungerer Date: Tue Sep 21 20:39:40 2010 +1000 AT91: fix use of clock disable on idle for AT91x40 devices The simpler AT91x40 processors do not have the same power management controller as the new AT91 devices. They do have a simpler power controller module that we can use to disable the CPU clock at idle time. Add code to support that. Signed-off-by: Greg Ungerer Acked-by: Jean-Christophe PLAGNIOL-VILLARD Acked-by: Nicolas Ferre commit a6e016f19d393fbe4e040bee8155b03b840fa689 Author: Jean-Christophe PLAGNIOL-VILLARD Date: Tue Sep 21 18:01:37 2010 +0200 AT91: at91sam9g20ek: merge 2mmc version in one board The board-sam9g20ek-2slot-mmc.c was a revision of the at91sam9g20ek since board revision C. It contains 2 sd/mmc slots. This merge keep the support of the old machine ID MACH_AT91SAM9G20EK_2MMC for backward compatibility. Now we use the ATAG to pass the hardware functionality to kernel with this board revision encoding bit 0: 0 => 1 sd/mmc slot 1 => 2 sd/mmc slots connectors (board from revision C) system_rev tested on Barebox commit d8f3ee103a9f4bd Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Signed-off-by: Nicolas Ferre commit 9a400da84ffe7205b9921c87ac24069217442c84 Author: Nicolas Ferre Date: Thu Jul 1 10:55:45 2010 +0200 AT91: Correct configuration define value The MTD nand driver for Atmel chips is atmel_nand and not at91_nand anymore. Change wrong configuration variables that were remaining. Reported-by: Christoph Egger Signed-off-by: Nicolas Ferre commit 67dd8995fd60bab890b9c3c4cd3e9f00d5811c25 Author: Jean-Christophe PLAGNIOL-VILLARD Date: Wed Sep 22 07:55:59 2010 +0200 AT91: at91sam9m10g45ek: use the right machine id Today the board use 2 machines id AT91SAM9G45EKES and AT91SAM9M10G45EK now will use only AT91SAM9M10G45EK. The other boards revision will be specified via system_rev. for 9g45ekes, m10g45ekes and m10g45ek boards and revisions Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD Cc: Patrice Vilchez Acked-by: Nicolas Ferre commit 6506cf6ce68d78a5470a8360c965dafe8e4b78e3 Author: Peter Zijlstra Date: Thu Sep 16 17:50:31 2010 +0200 sched: fix RCU lockdep splat from task_group() This addresses the following RCU lockdep splat: [0.051203] CPU0: AMD QEMU Virtual CPU version 0.12.4 stepping 03 [0.052999] lockdep: fixing up alternatives. [0.054105] [0.054106] =================================================== [0.054999] [ INFO: suspicious rcu_dereference_check() usage. ] [0.054999] --------------------------------------------------- [0.054999] kernel/sched.c:616 invoked rcu_dereference_check() without protection! [0.054999] [0.054999] other info that might help us debug this: [0.054999] [0.054999] [0.054999] rcu_scheduler_active = 1, debug_locks = 1 [0.054999] 3 locks held by swapper/1: [0.054999] #0: (cpu_add_remove_lock){+.+.+.}, at: [] cpu_up+0x42/0x6a [0.054999] #1: (cpu_hotplug.lock){+.+.+.}, at: [] cpu_hotplug_begin+0x2a/0x51 [0.054999] #2: (&rq->lock){-.-...}, at: [] init_idle+0x2f/0x113 [0.054999] [0.054999] stack backtrace: [0.054999] Pid: 1, comm: swapper Not tainted 2.6.35 #1 [0.054999] Call Trace: [0.054999] [] lockdep_rcu_dereference+0x9b/0xa3 [0.054999] [] task_group+0x7b/0x8a [0.054999] [] set_task_rq+0x13/0x40 [0.054999] [] init_idle+0xd2/0x113 [0.054999] [] fork_idle+0xb8/0xc7 [0.054999] [] ? mark_held_locks+0x4d/0x6b [0.054999] [] do_fork_idle+0x17/0x2b [0.054999] [] native_cpu_up+0x1c1/0x724 [0.054999] [] ? do_fork_idle+0x0/0x2b [0.054999] [] _cpu_up+0xac/0x127 [0.054999] [] cpu_up+0x55/0x6a [0.054999] [] kernel_init+0xe1/0x1ff [0.054999] [] kernel_thread_helper+0x4/0x10 [0.054999] [] ? restore_args+0x0/0x30 [0.054999] [] ? kernel_init+0x0/0x1ff [0.054999] [] ? kernel_thread_helper+0x0/0x10 [0.056074] Booting Node 0, Processors #1lockdep: fixing up alternatives. [0.130045] #2lockdep: fixing up alternatives. [0.203089] #3 Ok. [0.275286] Brought up 4 CPUs [0.276005] Total of 4 processors activated (16017.17 BogoMIPS). The cgroup_subsys_state structures referenced by idle tasks are never freed, because the idle tasks should be part of the root cgroup, which is not removable. The problem is that while we do in-fact hold rq->lock, the newly spawned idle thread's cpu is not yet set to the correct cpu so the lockdep check in task_group(): lockdep_is_held(&task_rq(p)->lock) will fail. But this is a chicken and egg problem. Setting the CPU's runqueue requires that the CPU's runqueue already be set. ;-) So insert an RCU read-side critical section to avoid the complaint. Signed-off-by: Peter Zijlstra Signed-off-by: Paul E. McKenney commit 4ee0a603926cad973e4d384f48c5e279a0fd4118 Author: Dongdong Deng Date: Tue Sep 28 16:32:43 2010 +0800 rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp->qsmask value Using ACCESS_ONCE() to observe the jiffies_stall/rnp->qsmask value due to the caller didn't hold the root_rcu/rnp node's lock. Although use without ACCESS_ONCE() is safe due to the value loaded being used but once, the ACCESS_ONCE() is a good documentation aid -- the variables are being loaded without the services of a lock. Signed-off-by: Dongdong Deng CC: Dipankar Sarma CC: Paul E. McKenney Signed-off-by: Paul E. McKenney commit b0a0f667a349247bd7f05f806b662a25653822bc Author: Paul E. McKenney Date: Wed Oct 6 17:32:51 2010 -0700 sched: suppress RCU lockdep splat in task_fork_fair > =================================================== > [ INFO: suspicious rcu_dereference_check() usage. ] > --------------------------------------------------- > /home/greearb/git/linux.wireless-testing/kernel/sched.c:618 invoked rcu_dereference_check() without protection! > > other info that might help us debug this: > > rcu_scheduler_active = 1, debug_locks = 1 > 1 lock held by ifup/23517: > #0: (&rq->lock){-.-.-.}, at: [] task_fork_fair+0x3b/0x108 > > stack backtrace: > Pid: 23517, comm: ifup Not tainted 2.6.36-rc6-wl+ #5 > Call Trace: > [] ? printk+0xf/0x16 > [] lockdep_rcu_dereference+0x74/0x7d > [] task_group+0x6d/0x79 > [] set_task_rq+0xe/0x57 > [] task_fork_fair+0x57/0x108 > [] sched_fork+0x82/0xf9 > [] copy_process+0x569/0xe8e > [] do_fork+0x118/0x262 > [] ? do_page_fault+0x16a/0x2cf > [] ? up_read+0x16/0x2a > [] sys_clone+0x1b/0x20 > [] ptregs_clone+0x15/0x30 > [] ? sysenter_do_call+0x12/0x38 Here a newly created task is having its runqueue assigned. The new task is not yet on the tasklist, so cannot go away. This is therefore a false positive, suppress with an RCU read-side critical section. Reported-by: Ben Greear Tested-by: Ben Greear Date: Wed Oct 6 17:15:35 2010 -0700 net: suppress RCU lockdep false positive in sock_update_classid > =================================================== > [ INFO: suspicious rcu_dereference_check() usage. ] > --------------------------------------------------- > include/linux/cgroup.h:542 invoked rcu_dereference_check() without protection! > > other info that might help us debug this: > > > rcu_scheduler_active = 1, debug_locks = 0 > 1 lock held by swapper/1: > #0: (net_mutex){+.+.+.}, at: [] > register_pernet_subsys+0x1f/0x47 > > stack backtrace: > Pid: 1, comm: swapper Not tainted 2.6.35.4-28.fc14.x86_64 #1 > Call Trace: > [] lockdep_rcu_dereference+0xaa/0xb3 > [] sock_update_classid+0x7c/0xa2 > [] sk_alloc+0x6b/0x77 > [] __netlink_create+0x37/0xab > [] ? rtnetlink_rcv+0x0/0x2d > [] netlink_kernel_create+0x74/0x19d > [] ? __mutex_lock_common+0x339/0x35b > [] rtnetlink_net_init+0x2e/0x48 > [] ops_init+0xe9/0xff > [] register_pernet_operations+0xab/0x130 > [] register_pernet_subsys+0x2e/0x47 > [] rtnetlink_init+0x53/0x102 > [] netlink_proto_init+0x126/0x143 > [] ? netlink_proto_init+0x0/0x143 > [] do_one_initcall+0x72/0x186 > [] kernel_init+0x23b/0x2c9 > [] kernel_thread_helper+0x4/0x10 > [] ? restore_args+0x0/0x30 > [] ? kernel_init+0x0/0x2c9 > [] ? kernel_thread_helper+0x0/0x10 The sock_update_classid() function calls task_cls_classid(current), but the calling task cannot go away, so there is no danger of the associated structures disappearing. Insert an RCU read-side critical section to suppress the false positive. Reported-by: Subrata Modak Signed-off-by: Paul E. McKenney commit df9ee29270c11dba7d0fe0b83ce47a4d8e8d2101 Author: David Howells Date: Thu Oct 7 14:08:55 2010 +0100 Fix IRQ flag handling naming Fix the IRQ flag handling naming. In linux/irqflags.h under one configuration, it maps: local_irq_enable() -> raw_local_irq_enable() local_irq_disable() -> raw_local_irq_disable() local_irq_save() -> raw_local_irq_save() ... and under the other configuration, it maps: raw_local_irq_enable() -> local_irq_enable() raw_local_irq_disable() -> local_irq_disable() raw_local_irq_save() -> local_irq_save() ... This is quite confusing. There should be one set of names expected of the arch, and this should be wrapped to give another set of names that are expected by users of this facility. Change this to have the arch provide: flags = arch_local_save_flags() flags = arch_local_irq_save() arch_local_irq_restore(flags) arch_local_irq_disable() arch_local_irq_enable() arch_irqs_disabled_flags(flags) arch_irqs_disabled() arch_safe_halt() Then linux/irqflags.h wraps these to provide: raw_local_save_flags(flags) raw_local_irq_save(flags) raw_local_irq_restore(flags) raw_local_irq_disable() raw_local_irq_enable() raw_irqs_disabled_flags(flags) raw_irqs_disabled() raw_safe_halt() with type checking on the flags 'arguments', and then wraps those to provide: local_save_flags(flags) local_irq_save(flags) local_irq_restore(flags) local_irq_disable() local_irq_enable() irqs_disabled_flags(flags) irqs_disabled() safe_halt() with tracing included if enabled. The arch functions can now all be inline functions rather than some of them having to be macros. Signed-off-by: David Howells [X86, FRV, MN10300] Signed-off-by: Chris Metcalf [Tile] Signed-off-by: Michal Simek [Microblaze] Tested-by: Catalin Marinas [ARM] Acked-by: Thomas Gleixner Acked-by: Haavard Skinnemoen [AVR] Acked-by: Tony Luck [IA-64] Acked-by: Hirokazu Takata [M32R] Acked-by: Greg Ungerer [M68K/M68KNOMMU] Acked-by: Ralf Baechle [MIPS] Acked-by: Kyle McMartin [PA-RISC] Acked-by: Paul Mackerras [PowerPC] Acked-by: Martin Schwidefsky [S390] Acked-by: Chen Liqin [Score] Acked-by: Matt Fleming [SH] Acked-by: David S. Miller [Sparc] Acked-by: Chris Zankel [Xtensa] Reviewed-by: Richard Henderson [Alpha] Reviewed-by: Yoshinori Sato [H8300] Cc: starvik@axis.com [CRIS] Cc: jesper.nilsson@axis.com [CRIS] Cc: linux-cris-kernel@axis.com commit ca4d3e6746bdcfccb517349bce2d2c5b5614fb6f Author: David Howells Date: Thu Oct 7 14:08:54 2010 +0100 MIPS: Add missing #inclusions of Add missing #inclusions of to a whole bunch of files that should really include it. Note that this can replace #inclusions of . This is required for the patch to sort out irqflags handling function naming to compile on MIPS. The problem is that these files require access to things like setup_irq() - which isn't available by #including Signed-off-by: David Howells Acked-by: Ralf Baechle commit 476c32c47a84fcf8033b93c588761405fefb3980 Author: David Howells Date: Thu Oct 7 14:08:54 2010 +0100 smc91x: Add missing #inclusion of Add missing #inclusion of . Without it, the following error can occur with the irqflags fixup patches applied: drivers/net/smc91x.c: In function 'smc_probe': drivers/net/smc91x.c:1987:2: error: implicit declaration of function 'irq_canonicalize' Signed-off-by: David Howells Acked-by: Nicolas Pitre commit bcdb714c8856c76383ca455294f0074168705eab Author: David Howells Date: Thu Oct 7 14:08:53 2010 +0100 Drop a couple of unnecessary asm/system.h inclusions Drop inclusions of asm/system.h from linux/hardirq.h and linux/list.h as they're no longer required and prevent the M68K arch's IRQ flag handling macros from being made into inlined functions due to circular dependencies. Signed-off-by: David Howells Acked-by: Greg Ungerer Acked-by: Geert Uytterhoeven commit d8b5fc01683c66060edc202d6bb5635365822181 Author: David Howells Date: Thu Oct 7 14:08:52 2010 +0100 SH: Add missing consts to sys_execve() declaration Add missing consts to the sys_execve() declaration which result in the following error: arch/sh/kernel/process_32.c:303: error: conflicting types for 'sys_execve' /warthog/nfs/linux-2.6-fscache/arch/sh/include/asm/syscalls_32.h:24: error: previous declaration of 'sys_execve' was here Signed-off-by: David Howells commit 3b139cdb373282dfa72316aa56887371e97cafe8 Author: David Howells Date: Thu Oct 7 14:08:52 2010 +0100 Blackfin: Rename IRQ flags handling functions Rename h/w IRQ flags handling functions to be in line with what is expected for the irq renaming patch. This renames local_*_hw() to hard_local_*() using the following perl command: perl -pi -e 's/local_irq_(restore|enable|disable)_hw/hard_local_irq_\1/ or s/local_irq_save_hw([_a-z]*)[(]flags[)]/flags = hard_local_irq_save\1()/' `find arch/blackfin/ -name "*.[ch]"` and then fixing up asm/irqflags.h manually. Additionally, arch/hard_local_save_flags() and arch/hard_local_irq_save() both return the flags rather than passing it through the argument list. Signed-off-by: David Howells commit 5c74874bc9a838b185fe463153e63f7d895ebb77 Author: David Howells Date: Thu Oct 7 14:08:51 2010 +0100 Blackfin: Add missing dep to asm/irqflags.h Add a missing dependency (mach/blackfin.h) to asm/irqflags.h so that bfin_read_IMASK() can be used by inline functions. Signed-off-by: David Howells commit db36b906fefa5b95039bd418bc354ffc9b141020 Author: David Howells Date: Thu Oct 7 14:08:50 2010 +0100 Blackfin: Rename DES PC2() symbol to avoid collision Rename the PC2() symbol in the generic DES crypto module to be prefixed with DES_ to avoid collision with arch code (Blackfin in this case). Signed-off-by: David Howells Signed-off-by: Mike Frysinger commit f3441945da3a93ee4bef923628f280ad114cf49f Author: David Howells Date: Thu Oct 7 14:08:50 2010 +0100 Blackfin: Split the BF532 BFIN_*_FIO_FLAG() functions to their own header Split the BF532 machine type BFIN_*_FIO_FLAG() functions to their own header file to avoid circular #include problems as these functions require IRQ flag handling, which requires asm/blackfin.h, which otherwise requires the header file that defines these functions. For good measure, also get rid of the inclusion of asm/blackfin.h from mach/cdefBF532.h (which is circular) and defBF532.h (which is included by asm/blackfin.h before including this header). Signed-off-by: David Howells commit 3dcc1e7f9fd48f20beefd41a684cd471a96565c5 Author: David Howells Date: Thu Oct 7 14:08:49 2010 +0100 Blackfin: Split PLL code from mach-specific cdef headers Split the PLL control code from the Blackfin machine-specific cdef headers so that the irqflags functions can be renamed without incurring a header loop. Signed-off-by: David Howells commit 556ef63255f1a6f82910a637c4164dbf7d3d1af2 Merge: d4f8f21 cb655d0 Author: Ingo Molnar Date: Thu Oct 7 09:43:38 2010 +0200 Merge commit 'v2.6.36-rc7' into core/rcu Merge reason: Update from -rc3 to -rc7. Signed-off-by: Ingo Molnar commit d4f8f217b8a5d5bd02af979650418dca4caec472 Merge: 2dfbf4d 773e3f9 Author: Ingo Molnar Date: Thu Oct 7 09:43:11 2010 +0200 Merge branch 'rcu/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/rcu commit 43695d095dfaf266a8a940d9b07eed7f46076b49 Author: Sunil Mushran Date: Wed Oct 6 17:55:09 2010 -0700 ocfs2/cluster: Show per region heartbeat elapsed time This patch adds a per region debugfs file that shows the elapsed time since the time the o2hb timer was last armed. Signed-off-by: Sunil Mushran commit d6aa1c7c9e4b48081c2302e14b0f857017461efd Author: Sunil Mushran Date: Wed Oct 6 18:50:50 2010 -0700 ocfs2/cluster: Add mlogs for heartbeat up/down events This patch adds mlogs for o2hb up and down events. Signed-off-by: Sunil Mushran commit 1f28530537f106f83e5cf7ef0193075667b6d520 Author: Sunil Mushran Date: Wed Oct 6 17:55:12 2010 -0700 ocfs2/cluster: Create debugfs dir/files for each region This patch creates debugfs directory for each o2hb region and creates files to expose the region number and the per region live node bitmap. This information will be useful in debugging cluster issues. Signed-off-by: Sunil Mushran commit a6de013654b4839c8609e26241ebd9eb1ecc52e6 Author: Sunil Mushran Date: Wed Oct 6 17:55:13 2010 -0700 ocfs2/cluster: Create debugfs files for live, quorum and failed region bitmaps This patch prints the bitmaps of live, quorum and failed regions. This information will be useful in debugging cluster issues. Signed-off-by: Sunil Mushran commit b1c5ebfbe398b3360614a4788c02061cd153e60a Author: Sunil Mushran Date: Thu Oct 7 17:05:52 2010 -0700 ocfs2/cluster: Maintain bitmap of failed regions In global heartbeat mode, we track the bitmap of regions that have seen heartbeat timeouts. We fence if the number of such regions is greater than or equal to half the number of quorum regions. Signed-off-by: Sunil Mushran commit 43182d2a799865872041b6e4d8387131e9462f56 Author: Sunil Mushran Date: Wed Oct 6 17:55:16 2010 -0700 ocfs2/cluster: Maintain bitmap of quorum regions o2hb allows online adding of regions. However, a newly added region is not used in quorum calculations unless it has been added on all nodes. This patch tracks a bitmap of such quorum regions. Signed-off-by: Sunil Mushran commit e7d656baf6607a0775f4ca85464a4ead306741e5 Author: Sunil Mushran Date: Wed Oct 6 17:55:18 2010 -0700 ocfs2/cluster: Track bitmap of live heartbeat regions A heartbeat region becomes live (or active) after a fixed number of (steady) iterations. Signed-off-by: Sunil Mushran commit 536f0741f324f116d8b059295999945a2dac56bc Author: Sunil Mushran Date: Thu Oct 7 17:03:07 2010 -0700 ocfs2/cluster: Track number of global heartbeat regions In global heartbeat mode, we have a upper limit for the number of active regions. This patch adds the facility to track the number of active global heartbeat regions and fails to start heartbeat if the number exceeds the maximum. Signed-off-by: Sunil Mushran commit 823a637ae933fde8fdb280612dd3ff9912e301e3 Author: Sunil Mushran Date: Wed Oct 6 17:55:21 2010 -0700 ocfs2/cluster: Maintain live node bitmap per heartbeat region Currently we track a global livenode bitmap that keeps track of all nodes that are heartbeating in all regions. This patch adds the ability to track the livenode bitmap on a per region basis. We will use this facility in a later patch to allow us to withstand the loss of a minority number of regions. Signed-off-by: Sunil Mushran commit 8ca8b0bbd841b6bcd8ac05e51b0143aa61cfeff3 Author: Sunil Mushran Date: Thu Oct 7 17:01:27 2010 -0700 ocfs2/cluster: Reorganize o2hb debugfs init o2hb debugfs handling is reorganized to allow for easy expansion. Signed-off-by: Sunil Mushran commit 0e105d37c2adb19cb777aa6701a866f211764a30 Author: Sunil Mushran Date: Thu Oct 7 17:00:16 2010 -0700 ocfs2/cluster: Check slots for unconfigured live nodes o2hb currently checks slots for configured nodes only. This patch makes it check the slots for the live nodes too to take care of a race in which a node is removed from the configuration but not from the live map. Signed-off-by: Sunil Mushran commit 39a298563e0619b1b6e2e0974e58801de780621c Author: Sunil Mushran Date: Thu Oct 7 17:30:17 2010 -0700 ocfs2/cluster: Print messages when adding/removing nodes Prints messages when the user adds or removes nodes. Signed-off-by: Sunil Mushran commit 18c50cb0d3c293eabd6c2ef89c43f2a968e709ed Author: Sunil Mushran Date: Wed Oct 6 18:26:59 2010 -0700 ocfs2/cluster: Print messages when adding/removing heartbeat regions Prints messages when the user adds or removes heartbeat regions in global heartbeat mode. These messages are useful when debugging cluster related issues. Signed-off-by: Sunil Mushran commit 18cfdf1b1a8e83b09e4185c02396257ce7e7bee3 Author: Sunil Mushran Date: Thu Oct 7 16:47:03 2010 -0700 ocfs2/dlm: Add message DLM_QUERY_NODEINFO Adds new dlm message DLM_QUERY_NODEINFO that sends the attributes of all registered nodes. This message is sent if the negotiated dlm protocol is 1.1 or higher. If the information of the joining node does not match that of any existing nodes, the join domain request is rejected. Signed-off-by: Sunil Mushran commit 5f3c6d9c615770708df464c170316f83cf437242 Author: Sunil Mushran Date: Wed Oct 6 17:55:29 2010 -0700 ocfs2: Print message if user mounts without starting global heartbeat In global heartbeat mode, the heartbeat is started by the user. This patch prints an error if the user attempts to mount a volume without starting the heartbeat. Signed-off-by: Sunil Mushran commit ea2034416b54700e30371f2ad6517cbb94674083 Author: Sunil Mushran Date: Sat Oct 9 10:26:23 2010 -0700 ocfs2/dlm: Add message DLM_QUERY_REGION Adds new dlm message DLM_QUERY_REGION that sends the names of all active heartbeat regions. This message is only sent in the global heartbeat mode. If the regions in the joining node do not fully match the ones in the active nodes, the join domain request is rejected. Signed-off-by: Sunil Mushran commit b3c85c4cdf77154acc940dd0f14d1fb99cbbaf75 Author: Sunil Mushran Date: Thu Oct 7 14:31:06 2010 -0700 ocfs2/cluster: Get all heartbeat regions Export function in o2hb to get a list of heartbeat regions. It also adds an upper limit to the length of the heartbeat region name. o2hb_global_heartbeat_active() currently disables global heartbeat. It will be enabled in a later patch after all the code is added. Signed-off-by: Sunil Mushran commit b1365d0bd14b912cceb424cbeed9fe939a9038e3 Author: Sunil Mushran Date: Wed Oct 6 17:55:34 2010 -0700 ocfs2/dlm: Expose dlm_protocol in dlm_state Add dlm_protocol to the list of info shown by the debugfs file, dlm_state. Signed-off-by: Sunil Mushran commit 2c442719e90a44a6982c033d69df4aae4b167cfa Author: Sunil Mushran Date: Thu Oct 7 15:23:50 2010 -0700 ocfs2: Add support for heartbeat=global mount option Adds support for heartbeat=global mount option. It ensures that the heartbeat mode passed matches the one enabled on disk. Signed-off-by: Sunil Mushran commit 98f486f23bc5b6a6fa90e1a0707b7e9fe0e7f3e4 Author: Sunil Mushran Date: Sat Oct 9 10:24:46 2010 -0700 ocfs2: Add an incompat feature flag OCFS2_FEATURE_INCOMPAT_CLUSTERINFO OCFS2_FEATURE_INCOMPAT_CLUSTERINFO allows us to use sb->s_cluster_info for both userspace and o2cb cluster stacks. It also allows us to extend cluster info to include stack flags. This patch also adds stackflags to sb->s_clusterinfo. It also introduces a clusterinfo flag OCFS2_CLUSTER_O2CB_GLOBAL_HEARTBEAT to denote the enabled global heartbeat mode. This incompat flag can be set/cleared using tunefs.ocfs2 --fs-features. The clusterinfo flag is set/cleared using tunefs.ocfs2 --update-cluster-stack. Signed-off-by: Sunil Mushran commit 54b5187b5a1ad6573ade8b18e065dda92501fc52 Author: Sunil Mushran Date: Thu Oct 7 15:26:08 2010 -0700 ocfs2/cluster: Add heartbeat mode configfs parameter Add heartbeat mode parameter to the configfs tree. This will be used to set/show the heartbeat mode. The user is free to toggle the mode between local and global as long as there is no active heartbeat region. Signed-off-by: Sunil Mushran commit 5d73c53b786665f991f70be01a51a23233aeb44f Author: Gregory Bean Date: Wed Sep 29 13:46:45 2010 -0700 msm: qsd8x50: enable ethernet. Configure the smc91x ethernet chip on the qsd8x50 SURF. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 26cc66607189ac544edad04927f506599d990f0f Author: Gregory Bean Date: Fri Sep 10 15:03:37 2010 -0700 msm: gpio: Add gpiomux calls to request and free. Add gpiomux get and put calls to msmgpio request and free, in order to allow gpio lines to be properly reference-counted and power-managed. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 2783cc265cc57c4bbf788b75fa8c3f06259dffd1 Author: Gregory Bean Date: Fri Sep 10 15:03:36 2010 -0700 msm: add gpio driver for single-core SoCs. Install a gpiolib driver supporting the on-chip gpios for single-core MSMs in the 7x00 family, including 7x00A, 7x25, 7x27, 7x30, 8x50, and 8x50a. As part of the ongoing effort to converge on a common code base, this driver is based on the Google-Android msmgpio driver, whose authors include Brian Swetland and Arve Hjønnevåg. Cc: Arve Hjønnevåg Cc: H Hartley Sweeten Cc: Ryan Mallon Cc: Ben Dooks Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit ab78cde589e89afa039a13bc75d23d249f1c1200 Author: Gregory Bean Date: Wed Sep 1 16:26:12 2010 -0700 msm: Featurize gpiomux. Featurize gpiomux so that systems like 7x00 which do not wish to use it do not have to be saddled with the configuration tables. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 10c4580e798838fd63eafec5ed304b7ace6db020 Author: Gregory Bean Date: Sat Aug 28 10:05:48 2010 -0700 msm: gpio: Remove tlmm routines obsoleted by gpiomux. Now that all supported gpio_tlmm_config-using boards are using gpiomux, remove the deprecated code. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 224f6de46ab05677f1fbfa7e384938639ff3f691 Author: Gregory Bean Date: Sat Aug 28 10:05:47 2010 -0700 msm: convert 7x30 to gpiomux. Change deprecated gpio_tlmm_config calls to gpiomux calls. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit dd22b8f703d7a9aa5e40a7741b7e84fb0bb025d6 Author: Gregory Bean Date: Sat Aug 28 10:05:46 2010 -0700 msm: convert 8x50 to gpiomux. Change the gpio-init code from deprecated gpio_tlmm_config to the new gpiomux api. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 70816e2ca526cfe21ce884ecae057a9c1725ad27 Author: Gregory Bean Date: Sat Aug 28 10:05:45 2010 -0700 msm: documentation: add gpiomux documentation. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 1963a2afc81afe6d85e7a12538b74a9919d958ae Author: Gregory Bean Date: Sat Aug 28 10:05:44 2010 -0700 msm: add gpiomux api for gpio multiplex & configuration. Add the 'gpiomux' api, which addresses the following shortcomings of existing tlmm api: - gpio power-collapse, which is managed by a peripheral processor on other targets, must be managed by the application processor on the 8x60. - The enable/disable flag of the legacy gpio_tlmm_config api is not applicable on the 8x60, and causes confusion. - The gpio 'direction' bits are meaningless for all func_sel configurations except for generic-gpio mode (func_sel 0), in which case the gpio_direction_* functions should be used. Having these bits in the tlmm api leads to confusion and misuse of the gpiolib api, and they have been removed in gpiomux. - The functional api of the legacy system ran contrary to the typical use-case, which is a single massive configuration at boot. Rather than forcing hundreds of 'config' function calls, the new api allows data to be configured with a single table. gpiomux_get and gpiomux_put are meant to be called automatically when gpio_request and gpio_free are called, giving automatic gpiomux/tlmm control to those drivers/lines with simple power profiles - in the simplest cases, an entry in the gpiomux table and the correct usage of gpiolib is all that is required to get proper gpio power control. Signed-off-by: Gregory Bean Signed-off-by: Daniel Walker commit 846afbd1fe015e082c89d56dd42c484d896ef58e Author: Abhijeet Dharmapurikar Date: Tue Aug 24 21:57:33 2010 -0700 GIC: Dont disable INT in ack callback Masking in the ack callback fails to work with handle_percpu_irq and handle_edge_irq. The interrupt stays disabled after the first invocation since percpu and edge irq do not unmask an interrupt after handling it. For handle_level_irq masking in the ack is redundant because ack is always called after mask in the mask_ack function. Masking in the ack function is required only when __do_IRQ was used instead of flow handlers, but using __do_IRQ has been deprecated. Remove the masking of interrupt from the ack callback. Signed-off-by: Abhijeet Dharmapurikar Signed-off-by: Jeff Ohlstein Signed-off-by: Daniel Walker commit 134669854e3a680d8aad9a4047891c653715f4c0 Author: Steven Whitehouse Date: Wed Oct 6 09:58:44 2010 +0100 GFS2: Fix type mapping for demote_rq interface Mostly the glock operations follow the type of the glock. The one exception is the transaction glock, so we need to check for that directly. Reported-by: Dr. David Alan Gilbert Signed-off-by: Steven Whitehouse commit 161b0275e2311b8bd9609d5f32e2b703cf5d70a8 Author: Jeremy Fitzhardinge Date: Thu Sep 2 19:35:22 2010 -0700 x86, mm: Add RESERVE_BRK_ARRAY() helper This is useful when converting static arrays into boot-time brk allocated objects. Signed-off-by: Jeremy Fitzhardinge LKML-Reference: <4C805EEA.1080205@goop.org> Signed-off-by: H. Peter Anvin commit 16c36f743bf8481d0ba40a6de0af11736095d7cf Author: Yinghai Lu Date: Mon Oct 4 14:58:04 2010 -0700 x86, memblock: Remove __memblock_x86_find_in_range_size() Fold it into memblock_x86_find_in_range(), and change bad_addr_size() to check_reserve_memblock(). So whole memblock_x86_find_in_range_size() code is more readable. Signed-off-by: Yinghai Lu LKML-Reference: <4CAA4DEC.4000401@kernel.org> Signed-off-by: H. Peter Anvin commit f1af98c7629a1b76fd7336decbc776acdeed2120 Author: Yinghai Lu Date: Mon Oct 4 14:57:39 2010 -0700 memblock: Fix wraparound in find_region() When trying to find huge range for crashkernel, get [ 0.000000] ------------[ cut here ]------------ [ 0.000000] WARNING: at arch/x86/mm/memblock.c:248 memblock_x86_reserve_range+0x40/0x7a() [ 0.000000] Hardware name: Sun Fire x4800 [ 0.000000] memblock_x86_reserve_range: wrong range [0xffffffff37000000, 0x137000000) [ 0.000000] Modules linked in: [ 0.000000] Pid: 0, comm: swapper Not tainted 2.6.36-rc5-tip-yh-01876-g1cac214-dirty #59 [ 0.000000] Call Trace: [ 0.000000] [] ? memblock_x86_reserve_range+0x40/0x7a [ 0.000000] [] warn_slowpath_common+0x85/0x9e [ 0.000000] [] warn_slowpath_fmt+0x6e/0x70 [ 0.000000] [] ? memblock_find_region+0x40/0x78 [ 0.000000] [] ? memblock_find_base+0x9a/0xb9 [ 0.000000] [] memblock_x86_reserve_range+0x40/0x7a [ 0.000000] [] setup_arch+0x99d/0xb2a [ 0.000000] [] ? trace_hardirqs_off+0xd/0xf [ 0.000000] [] ? _raw_spin_unlock_irqrestore+0x3d/0x4c [ 0.000000] [] start_kernel+0xde/0x3f1 [ 0.000000] [] x86_64_start_reservations+0xa0/0xa4 [ 0.000000] [] x86_64_start_kernel+0x106/0x10d [ 0.000000] ---[ end trace a7919e7f17c0a725 ]--- [ 0.000000] Reserving 8192MB of memory at 17592186041200MB for crashkernel (System RAM: 526336MB) This is caused by a wraparound in the test due to size > end; explicitly check for this condition and fail. Signed-off-by: Yinghai Lu LKML-Reference: <4CAA4DD3.1080401@kernel.org> Signed-off-by: H. Peter Anvin commit 1d931264af0f10649b35afa8fbd2e169da51ac08 Author: Yinghai Lu Date: Tue Oct 5 16:15:15 2010 -0700 x86-32, memblock: Make add_highpages honor early reserved ranges Originally the only early reserved range that is overlapped with high pages is "KVA RAM", but we already do remove that from the active ranges. However, It turns out Xen could have that kind of overlapping to support memory ballooning.x So we need to make add_highpage_with_active_regions() to subtract memblock reserved just like low ram; this is the proper design anyway. In this patch, refactering get_freel_all_memory_range() to make it can be used by add_highpage_with_active_regions(). Also we don't need to remove "KVA RAM" from active ranges. Signed-off-by: Yinghai Lu LKML-Reference: <4CABB183.1040607@kernel.org> Signed-off-by: H. Peter Anvin commit 9f4c13964b58608fbce05540743281ea3146c0e8 Author: Yinghai Lu Date: Tue Oct 5 16:05:14 2010 -0700 x86, memblock: Fix crashkernel allocation Cai Qian found crashkernel is broken with the x86 memblock changes. 1. crashkernel=128M@32M always reported that range is used, even if the first kernel is small and does not usethat range 2. we always got following report when using "kexec -p" Could not find a free area of memory of a000 bytes... locate_hole failed The root cause is that generic memblock_find_in_range() will try to allocate from the top of the range, whereas the kexec code was written assuming that allocation was always near the bottom and that it could blindly extend memory upward. Unfortunately the kexec code doesn't have a system for requesting the range that it really needs, so this is subject to probabilistic failures. This patch hacks around the problem by limiting the target range heuristically to below the traditional bzImage max range. This number is arbitrary and not always correct, and a much better result would be obtained by having kexec communicate this number based on the kernel header information and any appropriate command line options. Reported-and-Bisected-by: CAI Qian Signed-off-by: Yinghai Lu LKML-Reference: <4CABAF2A.5090501@kernel.org> Cc: Vivek Goyal Signed-off-by: H. Peter Anvin commit 4de0a7594823d04361281e34e59f2c1108899f3e Author: Tony Luck Date: Tue Oct 5 15:41:25 2010 -0700 [IA64] Initialize interrupts later (from init_IRQ()) Thomas Gleixner is cleaning up the generic irq code, and ia64 ran into problems because it calls register_intr() before early_irq_init() is called. Move the call to acpi_boot_init() from setup_arch() to init_IRQ(). As a bonus - moving the call later means we no longer need the hacks in iosapic.c to switch between the bootmem and regular allocator - we can just used kzalloc() for allocation. Signed-off-by: Tony Luck commit 773e3f93577ffb493fb7c39b1a6ecf39b5748e87 Author: Paul E. McKenney Date: Tue Oct 5 14:03:02 2010 -0700 rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held As suggested by Linus, push the irqs_disabled() down to the rcu_read_lock_bh_held() level so that all callers get the benefit of the correct check. Signed-off-by: Paul E. McKenney commit 1ab488de544b7f94b4f8e5aed2b178cac685802f Author: Rahul Ruikar Date: Sun Sep 26 22:20:30 2010 +0530 pcmcia: vrc4173_cardu: Fix error path for pci_release_regions and pci_disable_device - pci_release_regions called during return error path. - pci_disable_device called for cases where earlier it was enabled. - code duplication avoided/reduced by adding resource release at goto statements. Signed-off-by: Rahul Ruikar Signed-off-by: Dominik Brodowski commit c62f981f9309486ba5546edbb5925f71e441fa65 Author: Andi Kleen Date: Fri Oct 1 14:18:47 2010 -0700 perf, gcc-4.6: Fix set but unused variable Just dead code I believe. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Cc: andi@firstfloor.org Cc: Peter Zijlstra Signed-off-by: Ingo Molnar commit 00e8976200665eec2fa9264d61885b4d1384d4f0 Merge: 540804b 0f940cb Author: Ingo Molnar Date: Tue Oct 5 09:47:14 2010 +0200 Merge branch 'perf/urgent' into perf/core Conflicts: tools/perf/util/ui/browsers/hists.c Merge reason: fix the conflict and merge in changes for dependent patch. Signed-off-by: Ingo Molnar commit a9fda02bfc91a281cd812ae15dabe6bfb9574f90 Merge: aa30900 ec706da Author: Russell King Date: Mon Oct 4 22:23:26 2010 +0100 Merge branch 'for_rmk' of git://git.linaro.org/kernel/linux-linaro-next into devel-stable commit c4e259c859538e94007d1f04a488540375189551 Author: Will Deacon Date: Mon Sep 13 16:19:41 2010 +0100 ARM: 6386/1: flush_ptrace_access: invalidate correct I-cache alias copy_to_user_page can be used by access_process_vm to write to an executable page of a process using a mapping acquired by kmap. For systems with I-cache aliasing, flushing the I-cache using the Kernel mapping may leave stale data in the I-cache if the user mapping is of a different colour. This patch introduces a flush_icache_alias function to flush.c, which calls flush_icache_range with a mapping of the specified colour. flush_ptrace_access is then modified to call this new function instead of coherent_kern_range in the case of an aliasing I-cache and a non-aliasing D-cache. Signed-off-by: Will Deacon Signed-off-by: Russell King commit 8925ec4c530094b878e7e28a1fd78e7122afd973 Author: Will Deacon Date: Mon Sep 13 16:18:30 2010 +0100 ARM: 6385/1: setup: detect aliasing I-cache when D-cache is non-aliasing Currently, the Kernel assumes that if a CPU has a non-aliasing D-cache then the I-cache is also non-aliasing. This may not be true on ARM cores from v6 onwards, which may have aliasing I-caches but non-aliasing D-caches. This patch adds a cpu_has_aliasing_icache function, which is called from cacheid_init and adds CACHEID_VIPT_I_ALIASING to the cacheid when appropriate. A utility macro, icache_is_vipt_aliasing(), is also provided. Signed-off-by: Will Deacon Signed-off-by: Russell King commit 100642c7b6971fb4ab69a662f4f60970e3a16dfd Author: Linus Walleij Date: Mon Sep 6 09:16:44 2010 +0100 ARM: 6366/1: Update U300 defconfig This mainly removes a lot of unused subsystems (as for the mainline drivers) in the U300 defconfig, switch of MMC debugging by default and enables debugfs on the builds. Once we merge the drivers we'll configure it on again. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 8ed9059533eb89b4372d7fc31b6565c053e5253b Author: Maxim Osipov Date: Wed Sep 15 11:54:49 2010 +0100 ARM: 6393/1: AT91: Add flexibity board support This patch adds support for Flexibity Connect platform from http://www.flexibity.com/ (AT91SAM9260 based). Signed-off-by: Maxim Osipov Acked-by: Jean-Christophe PLAGNIOL-VILLARD Acked-by: Andrew Victor Signed-off-by: Russell King commit 81d11955bf0b5ae25e3adbec930cd84840385dae Author: Tony Lindgren Date: Tue Sep 21 17:16:40 2010 +0100 ARM: 6405/1: Handle __flush_icache_all for CONFIG_SMP_ON_UP Do this by adding flush_icache_all to cache_fns for ARMv6 and 7. As flush_icache_all may neeed to be called from flush_kern_cache_all, add it as the first entry in the cache_fns. Note that now we can remove the ARM_ERRATA_411920 dependency to !SMP so it can be selected on UP ARMv6 processors, such as omap2. Signed-off-by: Tony Lindgren Signed-off-by: Anand Gadiyar Signed-off-by: Russell King commit f9e417e901e891d139f4d5fd750959e4a862d9f7 Author: Tony Lindgren Date: Tue Sep 21 00:43:19 2010 +0100 ARM: 6402/1: Don't send IPI in smp_send_stop if there's only one CPU No need to send IPI if there's one CPU, especially when booting systems with CONFIG_SMP_ON_UP that may not even support IPI. Signed-off-by: Tony Lindgren Signed-off-by: Russell King commit f00ec48fadf5e37e7889f14cff900aa70d18b644 Author: Russell King Date: Sat Sep 4 10:47:48 2010 +0100 ARM: Allow SMP kernels to boot on UP systems UP systems do not implement all the instructions that SMP systems have, so in order to boot a SMP kernel on a UP system, we need to rewrite parts of the kernel. Do this using an 'alternatives' scheme, where the kernel code and data is modified prior to initialization to replace the SMP instructions, thereby rendering the problematical code ineffectual. We use the linker to generate a list of 32-bit word locations and their replacement values, and run through these replacements when we detect a UP system. Signed-off-by: Russell King commit 067173526c3bbc2eaeefcf6b7b2a9d998b9e8042 Author: Russell King Date: Sat Sep 4 16:14:20 2010 +0100 ARM: Provide common header for hard_smp_processor_id() Provide a common header to read the SMP CPU number from the MPIDR. Signed-off-by: Russell King commit 971acb9b420ea1662dd3c48184c4315f87643be5 Author: Russell King Date: Sat Sep 4 08:16:30 2010 +0100 ARM: Simplify SMP/SCU/TWD dependencies All platforms which currently support SMP also support the ARM SCU and ARM TWD blocks, so it's pointless to make these config symbols conditional on the platform symbols which SMP is already conditional on. Signed-off-by: Russell King commit 055d1965161bde96207371e7d31eb776c0f7790d Author: Uwe Kleine-König Date: Thu Sep 2 09:14:21 2010 +0100 ARM: 6349/1: sa1111: move __sa1111_probe() to .devinit.text __sa1111_probe is only called by sa1111_probe that lives in .devinit.text. So it's save to move the former to .devinit.text, too. Acked-by: Kristoffer Ericson Signed-off-by: Uwe Kleine-König Signed-off-by: Russell King commit 9f5336915bc47947230290a1a384de95803f815a Author: Alexander Shishkin Date: Wed Aug 4 11:26:27 2010 +0100 ARM: 6293/1: coresight: cosmetic fixes Use BIT() macro whenever it is sensible to do so. Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Alexander Shishkin Signed-off-by: Russell King commit 8234eaef8002cb8ba30920949b338d692508137a Author: Alexander Shishkin Date: Wed Aug 4 11:22:43 2010 +0100 ARM: 6291/1: coresight: move struct tracectx inside etm driver This is done so as to be able to make use of the coresight components' registers in assembler code (like omap sleep code). Also, there shouldn't be any users of this structure outside the etm driver. Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Alexander Shishkin Signed-off-by: Russell King commit 1d7e3565946bf23fef5b3219be7df63b314478a2 Author: Rabin Vincent Date: Wed Sep 29 16:01:08 2010 +0100 ARM: 6418/1: ux500: rename DB8500 DMA event line macros Change the DMA event line macros to have the name of the SoC. Also, have the event line number encoded in the macro since on DB5500 several event lines are present at multiple alternate numbers. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit e81fcc97350755e021c85b816877ae292b8f28d0 Author: Linus Walleij Date: Tue Sep 28 15:45:41 2010 +0100 ARM: 6417/1: ux500: build configuration for DB5500 mbox and modem irq handler This rounds of the DB5500 mailbox patches by adding the Kconfig options to enable the modem IRQs and mailboxes. Signed-off-by: Stefan Nilsson XK Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 38cdfe06630a109a7a38b70c3cd208defd9f5711 Author: Linus Walleij Date: Mon Sep 27 22:11:57 2010 +0100 ARM: 6415/1: ux500: DB5500 mailbox driver This is a driver for the mailboxes used to communicate with the DB5500 modem portions. Signed-off-by: Stefan Nilsson XK Signed-off-by: Linus Walleij Signed-off-by: Russell King commit b84ccd776fedee8b28f736662cd045bf893ed633 Author: Linus Walleij Date: Mon Sep 27 22:10:55 2010 +0100 ARM: 6414/1: ux500: DB5500 generic modem IRQ handler This is a (threaded) IRQ handler for the modems that appear from the modem part of the DB5500 ASIC. Signed-off-by: Stefan Nilsson XK Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 4d4a4b037c5d3620b8c55504a8c9e0cbf949f7fa Author: Linus Walleij Date: Mon Sep 27 22:09:52 2010 +0100 ARM: 6413/1: ux500: resources for DB5500 mbox driver and modem irq handler Platform resources found in the DB5500 for mailboxes and the modem IRQ controller. Signed-off-by: Stefan Nilsson XK Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 366d4a43b1a7a861c356a0e407c4f03f454d42ea Author: Borislav Petkov Date: Mon Oct 4 09:31:27 2010 +0200 x86, cpu: Fix X86_FEATURE_NOPL ba0593bf553c450a03dbc5f8c1f0ff58b778a0c8 cleared the aforementioned cpuid bit only on 32-bit due to various problems with Virtual PC. This somehow got lost during the 32- + 64-bit merge so restore the feature bit on 64-bit. For that, set it explicitly for non-constant arguments of cpu_has(). Update comment for future reference. Signed-off-by: Borislav Petkov LKML-Reference: <20101004073127.GA20305@liondog.tnic> Cc: Ryan O'Neill Cc: Linus Torvalds Signed-off-by: H. Peter Anvin commit bd151412263a67b5321e9dd1d5b4bf6d96fdebf3 Author: Thomas Gleixner Date: Fri Oct 1 15:17:14 2010 +0200 genirq: Provide config option to disable deprecated code This option covers now the old chip functions and the irq_desc data fields which are moving to struct irq_data. More stuff will follow. Pretty handy for testing a conversion, whether something broke or not. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 540804b5c52065a87d826f7714b18a3ec0b269f9 Author: Stephane Eranian Date: Mon Oct 4 12:00:02 2010 +0200 perf_events: Fix invalid pointer when pid is invalid This patch fixes an error in perf_event_open() when the pid provided by the user is invalid. find_lively_task_by_vpid() does not return NULL on error but an error code. Without the fix the error code was silently passed to find_get_context() which would eventually cause a invalid pointer dereference. Signed-off-by: Stephane Eranian Cc: peterz@infradead.org Cc: paulus@samba.org Cc: davem@davemloft.net Cc: fweisbec@gmail.com Cc: perfmon2-devel@lists.sf.net Cc: eranian@gmail.com Cc: robert.richter@amd.com LKML-Reference: <4ca9a5d1.e8e9d80a.3dbb.ffff8f2e@mx.google.com> Signed-off-by: Ingo Molnar commit 21e2b8c62cca8f7dbec0c8c131ca1637e4a5670f Author: Thomas Gleixner Date: Mon Sep 27 12:45:53 2010 +0000 genirq: Provide compat handling for chip->retrigger() Wrap the old chip function retrigger() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121843.025801092@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 2f7e99bb9be6a2d8d7b808dc86037710cc8b7bf1 Author: Thomas Gleixner Date: Mon Sep 27 12:45:50 2010 +0000 genirq: Provide compat handling for chip->set_wake() Wrap the old chip function set_wake() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.927527393@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit b2ba2c30033c10cca2454f8b44bf98f5249e61c6 Author: Thomas Gleixner Date: Mon Sep 27 12:45:47 2010 +0000 genirq: Provide compat handling for chip->set_type() Wrap the old chip function set_type() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.832261548@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit c96b3b3c448592a0b87ef20306deb8b1fb4878c7 Author: Thomas Gleixner Date: Mon Sep 27 12:45:41 2010 +0000 genirq: Provide compat handling for chip->set_affinity() Wrap the old chip function set_affinity() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.732894108@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 37e12df709f09eac17314d79a52190ac46746e33 Author: Thomas Gleixner Date: Mon Sep 27 12:45:38 2010 +0000 genirq: Provide compat handling for chip->startup() Wrap the old chip function startup() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.635152961@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit bc310dda41be6439364c8f3b9fe7c9d743d22b1c Author: Thomas Gleixner Date: Mon Sep 27 12:45:02 2010 +0000 genirq: Provide compat handling for chip->disable()/shutdown() Wrap the old chip functions disable() and shutdown() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.532070631@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit c5f756344c390f629243b4a28c2bd198fdfd7ee9 Author: Thomas Gleixner Date: Mon Sep 27 12:44:56 2010 +0000 genirq: Provide compat handling for chip->enable() Wrap the old chip function enable() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.437159182@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 0c5c15572ac096001f52d37b416f2a4be9aebb80 Author: Thomas Gleixner Date: Mon Sep 27 12:44:53 2010 +0000 genirq: Provide compat handling for chip->eoi() Wrap the old chip function eoi() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.339657617@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 9205e31d1af0f725e71bbae10d199c6b9e8d6dd8 Author: Thomas Gleixner Date: Mon Sep 27 12:44:50 2010 +0000 genirq: Provide compat handling for chip->mask_ack() Wrap the old chip function mask_ack() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.240806983@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 22a49163e90dd7088f801dd54e25b04e1f337e9b Author: Thomas Gleixner Date: Mon Sep 27 12:44:47 2010 +0000 genirq: Provide compat handling for chip->ack() Wrap the old chip function ack() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.142624725@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 0eda58b7f3a30c9a13d83db1cfaab00e1c452055 Author: Thomas Gleixner Date: Mon Sep 27 12:44:44 2010 +0000 genirq: Provide compat handling for chip->unmask() Wrap the old chip function unmask() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121842.043608928@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit e2c0f8ff0fc26959952fbfa89f732fef928df77f Author: Thomas Gleixner Date: Mon Sep 27 12:44:42 2010 +0000 genirq: Provide compat handling for chip->mask() Wrap the old chip function mask() until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121841.940355859@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 3876ec9ef3775d062345b3760d3271ecb8cd3fea Author: Thomas Gleixner Date: Mon Sep 27 12:44:35 2010 +0000 genirq: Provide compat handling for bus_lock/bus_sync_unlock Wrap the old chip functions for bus_lock/bus_sync_unlock until the migration is complete and the old chip functions are removed. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121841.842536121@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit a77c4635915021c646cc017f22239e66d1aab4d5 Author: Thomas Gleixner Date: Fri Oct 1 14:44:58 2010 +0200 genirq: Add new functions to dummy chips The compat functions go away when the core code is converted. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit f8822657e799b02c55556c99a601261e207a299d Author: Thomas Gleixner Date: Mon Sep 27 12:44:32 2010 +0000 genirq: Provide advanced irq chip functions The low level irq chip functions want access to irq_desc->irq_data. Provide new functions which hand down irq_data instead of the irq number so these functions avoid to call irq_to_desc() which is a radix tree lookup in case of sparse irq. This provides all the old functions except one: end(). end() is a relict of __do_IRQ() and will just go away with the __do_IRQ() code. The replacement for set_affinity() has an extra argument "bool force". The reason for this is to notify the low level code, that the move has to be done right away and cannot be delayed until the next interrupt happens. That's necessary to handle the irq fixup on cpu unplug in the generic code. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121841.742126604@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 6b8ff3120c758340505dddf08ad685ebb841d5d5 Author: Thomas Gleixner Date: Fri Oct 1 12:58:38 2010 +0200 genirq: Convert core code to irq_data Convert all references in the core code to orq, chip, handler_data, chip_data, msi_desc, affinity to irq_data.* Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit ff7dcd44dd446db2c3e13bdedf2d52b8e0127f16 Author: Thomas Gleixner Date: Mon Sep 27 12:44:25 2010 +0000 genirq: Create irq_data Low level chip functions need access to irq_desc->handler_data, irq_desc->chip_data and irq_desc->msi_desc. We hand down the irq number to the low level functions, so they need to lookup irq_desc. With sparse irq this means a radix tree lookup. We could hand down irq_desc itself, but low level chip functions have no need to fiddle with it directly and we want to restrict access to irq_desc further. Preparatory patch for new chip functions. Note, that the ugly anon union/struct is there to avoid a full tree wide clean up for now. This is not going to last 3 years like __do_IRQ() Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121841.645542300@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit 3bb9808e99bcc36eecb8e082bf70efb2a0bcdcb7 Author: Thomas Gleixner Date: Mon Sep 27 12:46:02 2010 +0000 x86: Use genirq Kconfig Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121843.314600915@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit d9817ebeeef16e01487549312c68540ca8f1561b Author: Thomas Gleixner Date: Mon Sep 27 12:45:59 2010 +0000 genirq: Provide Kconfig The generic irq Kconfig options are copied around all archs. Provide a generic Kconfig file which can be included. Signed-off-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <20100927121843.217333624@linutronix.de> Reviewed-by: H. Peter Anvin Reviewed-by: Ingo Molnar commit e7ffec1eb178db349c7fbfd647725e9d06619962 Author: Thomas Gleixner Date: Sun Oct 3 20:08:13 2010 +0200 isdn: Free irq_data namespace The irq_data namespace is the preference for the generic irq layer. Rename the union typedef in drivers/isdn/act2000/act2000.h Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 35a27e8e6565910e5202f1af83ea85305fbf5ceb Author: Thomas Gleixner Date: Fri Oct 1 16:35:59 2010 +0200 mfd: Rename struct irq_data to struct sih_irq_data struct irq_data is the preferred name for the data associated to an interrupt in the core code. Signed-off-by: Thomas Gleixner Reviewed-by: Ingo Molnar commit 4fdaa7b682b413dfb7ca9fa74ff45b1e0cb3dade Author: Robert Richter Date: Thu Aug 19 10:50:26 2010 +0200 oprofile: Remove duplicate code around __oprofilefs_create_file() Removing duplicate code by assigning the inodes private data pointer in __oprofilefs_create_file(). Extending the function interface to pass the pointer. Signed-off-by: Robert Richter commit dc0c22b878a60373762495b8e5628a32c1b80ac4 Author: Robert Richter Date: Fri Aug 27 14:32:41 2010 +0200 oprofile, ARM: Remove some goto statements This patch removes some unnecessary goto statements. Acked-by: Will Deacon Signed-off-by: Robert Richter commit f6be4b428197766521aca664a935c63888d096d9 Author: Robert Richter Date: Wed Sep 29 14:43:29 2010 +0200 oprofile, ARM: Rework op_create_counter() This patch simplifies op_create_counter(). Removing if/else if paths and return code variable by direct returning from function. Acked-by: Will Deacon Signed-off-by: Robert Richter commit 4d1814f48edec31f12737609cd1c871864c8298b Author: Robert Richter Date: Wed Sep 29 15:42:30 2010 +0200 oprofile, ARM: Use oprofile_arch_exit() to cleanup on failure There is duplicate cleanup code in the init and exit functions. Now, oprofile_arch_exit() is also used if oprofile_arch_init() fails. Acked-by: Will Deacon Signed-off-by: Robert Richter commit 54dc3f4674fbaf362d6e969904bfcece3cfebef1 Author: Eric Bénard Date: Sat Oct 2 17:15:26 2010 +0200 mach-cpuimx35: remove unecessary tsc2007 functions + style cleanup - remove functions which are no more necessary for tsc2007 - indent platform_data for better readability Signed-off-by: Eric Bénard Signed-off-by: Sascha Hauer commit ec706dab290c486837d4a825870ab052bf200279 Author: Nicolas Pitre Date: Thu Aug 26 23:10:50 2010 -0400 ARM: add a vma entry for the user accessible vector page The kernel makes the high vector page visible to user space. This page contains (amongst others) small code segments that can be executed in user space. Make this page visible through ptrace and /proc//mem in order to let gdb perform code parsing needed for proper unwinding. For example, the ERESTART_RESTARTBLOCK handler actually has a stack frame -- it returns to a PC value stored on the user's stack. To unwind after a "sleep" system call was interrupted twice, GDB would have to recognize this situation and understand that stack frame layout -- which it currently cannot do. We could fix this by hard-coding addresses in the vector page range into GDB, but that isn't really portable as not all of those addresses are guaranteed to remain stable across kernel releases. And having the gdb process make an exception for this page and get content from its own address space for it looks strange, and it is not future proof either. Being located above PAGE_OFFSET, this vma cannot be deleted by user space code. Signed-off-by: Nicolas Pitre commit 70c70d97809c3cdb8ff04f38ee3718c5385a2a4d Author: Nicolas Pitre Date: Thu Aug 26 15:08:35 2010 -0700 ARM: SECCOMP support Signed-off-by: Nicolas Pitre commit 087aaffcdf9c91667c93923fbc05fa8fb6bc7d3a Author: Nicolas Pitre Date: Wed Sep 22 18:34:36 2010 -0400 ARM: implement CONFIG_STRICT_DEVMEM by disabling access to RAM via /dev/mem There are very few legitimate use cases, if any, for directly accessing system RAM through /dev/mem. So let's mimic what they do on x86 and forbid it when CONFIG_STRICT_DEVMEM is turned on. Signed-off-by: Nicolas Pitre commit 7c63984b86f96c71c541132c74c4b56fe2a13e1a Author: Nicolas Pitre Date: Thu Sep 23 16:52:40 2010 -0400 ARM: do not define VMALLOC_END relative to PAGE_OFFSET VMALLOC_END is supposed to be an absolute value, while PAGE_OFFSET may vary depending on the selected user:kernel memory split mode through CONFIG_VMSPLIT_*. In fact, the goal of moving PAGE_OFFSET down is to accommodate more directly addressed RAM by the kernel below the vmalloc area, and having VMALLOC_END move along PAGE_OFFSET is rather against the very reason why PAGE_OFFSET can be moved in the first place. Signed-off-by: Nicolas Pitre commit 33d7c5c1c808ea47d85630ac2dd98490d7df0ff4 Author: Amit Kucheria Date: Wed Sep 1 22:49:13 2010 +0300 ARM: mxc: turn off HWCAP_NEON for older versions of imx51 silicon Versions of silicon older than TO3 have broken NEON implementation. Turn off NEON in such cases. Signed-off-by: Amit Kucheria Tested-by: Dave Martin Tested-by: Jason Hui Signed-off-by: Nicolas Pitre commit c62d0f2ac18d38265ccf0e821e6afee60a0c89b5 Author: Nicolas Pitre Date: Wed Sep 1 09:37:05 2010 -0400 ARM: link board specific files after core files This allows for board specific issues to override decisions made in generic code that might not be suitable due to some errata or the like, by making the initcall hooks from those board specific files run after the core ones, therefore avoiding ugly #ifdef's in core code. Signed-off-by: Nicolas Pitre Tested-by: Dave Martin Tested-by: Jason Hui commit 5c80cc78de46aef6cd5e714208da05c3f7f548f8 Author: Andreas Herrmann Date: Thu Sep 30 14:43:16 2010 +0200 x86, amd_nb: Enable GART support for AMD family 0x15 CPUs AMD CPU family 0x15 still supports GART for compatibility reasons. Signed-off-by: Andreas Herrmann LKML-Reference: <20100930124316.GG20545@loge.amd.com> Signed-off-by: H. Peter Anvin commit d4fbe4f03557e1fd4d9bbb3a1957aad560f39e96 Author: Andreas Herrmann Date: Thu Sep 30 14:41:56 2010 +0200 x86, amd: Use compute unit information to determine thread siblings This information is vital for different load balancing policies. Signed-off-by: Andreas Herrmann LKML-Reference: <20100930124156.GF20545@loge.amd.com> Signed-off-by: H. Peter Anvin commit 6057b4d331f19a3ea51aec463ea7839c128b3227 Author: Andreas Herrmann Date: Thu Sep 30 14:38:57 2010 +0200 x86, amd: Extract compute unit information for AMD CPUs Get compute unit information from CPUID Fn8000_001E_EBX. (See AMD CPUID Specification - publication # 25481, revision 2.34, September 2010.) Note that each core on a compute unit still has a core_id of its own. Signed-off-by: Andreas Herrmann LKML-Reference: <20100930123857.GE20545@loge.amd.com> Signed-off-by: H. Peter Anvin commit 23588c38a84c9175c6668789b64ffba4651e5c6a Author: Andreas Herrmann Date: Thu Sep 30 14:36:28 2010 +0200 x86, amd: Add support for CPUID topology extension of AMD CPUs Node information (ID, number of internal nodes) is provided via CPUID Fn8000_001e_ECX. See AMD CPUID Specification (Publication # 25481, Revision 2.34, September 2010). Signed-off-by: Andreas Herrmann LKML-Reference: <20100930123628.GD20545@loge.amd.com> Signed-off-by: H. Peter Anvin commit 420b13b60a3e5c5dcc6ec290e131cf5fbc603d94 Author: Andreas Herrmann Date: Thu Sep 30 14:33:58 2010 +0200 x86, nmi: Support NMI watchdog on newer AMD CPU families CPU families 0x12, 0x14 and 0x15 support this functionality. Signed-off-by: Andreas Herrmann LKML-Reference: <20100930123357.GC20545@loge.amd.com> Signed-off-by: H. Peter Anvin commit 3fdbf004c1706480a7c7fac3c9d836fa6df20d7d Author: Andreas Herrmann Date: Thu Sep 30 14:32:35 2010 +0200 x86, mtrr: Assume SYS_CFG[Tom2ForceMemTypeWB] exists on all future AMD CPUs Instead of adapting the CPU family check in amd_special_default_mtrr() for each new CPU family assume that all new AMD CPUs support the necessary bits in SYS_CFG MSR. Tom2Enabled is architectural (defined in APM Vol.2). Tom2ForceMemTypeWB is defined in all BKDGs starting with K8 NPT. In pre K8-NPT BKDG this bit is reserved (read as zero). W/o this adaption Linux would unnecessarily complain about bad MTRR settings on every new AMD CPU family, e.g. [ 0.000000] WARNING: BIOS bug: CPU MTRRs don't cover all of memory, losing 4863MB of RAM. Cc: stable@kernel.org # .32.x, .35.x Signed-off-by: Andreas Herrmann LKML-Reference: <20100930123235.GB20545@loge.amd.com> Signed-off-by: H. Peter Anvin commit 86ffb08519d6fe1e9c4fe5a110ffa5fcb868cb1c Merge: 23ac4ae aeb9c7d Author: H. Peter Anvin Date: Fri Oct 1 16:18:11 2010 -0700 Merge remote branch 'origin/x86/cpu' into x86/amd-nb commit e33621a2e3f2b7b73259f6740776b3983ec5bab9 Author: FUJITA Tomonori Date: Fri Oct 1 14:15:27 2010 -0700 [IA64] enable ARCH_DMA_ADDR_T_64BIT Signed-off-by: FUJITA Tomonori Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit 35ed16740c564ff092fe45804dfbbb1449f2bd7e Author: Rahul Ruikar Date: Fri Oct 1 13:32:45 2010 -0700 [IA64] ioc3_serial: release resources in error return path In ioc3uart_probe() resources were not released during error return path - ports[phys_port] Signed-off-by: Rahul Ruikar Signed-off-by: Tony Luck commit 5140434d5f82f2e2119926272ada2e9731ec04f1 Author: Robert Richter Date: Thu Sep 30 18:55:47 2010 +0200 oprofile, x86: Simplify init/exit functions Now, that we only call the exit function if init succeeds with commit: 979048e oprofile: don't call arch exit code from init code on failure we can simplify the x86 init/exit functions too. Variable using_nmi becomes obsolete. Signed-off-by: Robert Richter commit f6dedecc37164a58bb80ae2ed9d204669ffc4850 Author: Jiri Olsa Date: Wed Sep 29 10:46:47 2010 -0400 oprofile, x86: Adding backtrace dump for 32bit process in compat mode This patch implements the oprofile backtrace generation for 32 bit applications running in the 64bit environment (compat mode). With this change it's possible to get backtrace for 32bits applications under the 64bits environment using oprofile's callgraph options. opcontrol --setup -c ... opreport -l -cg ... Signed-off-by: Jiri Olsa Signed-off-by: Robert Richter commit 40c6b3cb64cd1d02322df5f729cca25084580f40 Author: Jiri Olsa Date: Wed Sep 29 10:46:46 2010 -0400 oprofile, x86: Using struct stack_frame for 64bit processes dump Removing unnecessary struct frame_head and replacing it with struct stack_frame. The struct stack_frame is already defined and used in other places in kernel, so there's no reason to define new structure. Signed-off-by: Jiri Olsa Signed-off-by: Robert Richter commit bd9e310dca15c9987256f67af19f9f42426e7493 Author: Uwe Kleine-König Date: Tue Sep 28 22:04:01 2010 +0200 ARM: imx/pca100: only specify i2c device type once The first argument to I2C_BOARD_INFO is used to assign .type, so it should not be specified a second time. For the rtc-pcf8563/pcf8563 entry gcc preferred pcf8563, so did I. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 214b43100fd59e55fcd265329aafd14ab01ec30d Author: Uwe Kleine-König Date: Tue Sep 28 21:55:22 2010 +0200 ARM: imx/pcm970: make platform_data static This fixes the following sparse warning: arch/arm/mach-imx/pcm970-baseboard.c:224:13: warning: symbol 'pcm970_baseboard_init' was not declared. Should it be static? Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 6c80ee51707ec9fcf137bc7b511d2853b772eae6 Author: Uwe Kleine-König Date: Tue Sep 28 21:53:31 2010 +0200 ARM: imx: make all pin lists const and signed, move to .init where possible Making the lists signed fixes sparse warnings like: arch/arm/mach-imx/mach-mx27_3ds.c:94:31: warning: incorrect type in argument 1 (different signedness) arch/arm/mach-imx/mach-mx27_3ds.c:94:31: expected int const *pin_list arch/arm/mach-imx/mach-mx27_3ds.c:94:31: got unsigned int static [toplevel] * Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 7ad211e35b41166ccf8448345726f324f26260f7 Author: Uwe Kleine-König Date: Tue Sep 28 21:39:49 2010 +0200 ARM: imx/pcm038: make regulator platform data static This fixes the following sparse warning: arch/arm/mach-imx/pcm970-baseboard.c:203:30: warning: symbol 'pcm970_sja1000_platform_data' was not declared. Should it be static? Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 13040066e28688b635801cdd5c6587fddae0e232 Author: Uwe Kleine-König Date: Tue Sep 28 21:37:20 2010 +0200 ARM: imx/clock-imx27: Pass NULL as function callback, not 0 This fixes many sparse warnings like: arch/arm/mach-imx/clock-imx27.c:597:1: warning: Using plain integer as NULL pointer Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 8f6e900a661881f9585d9b3a7173a44020c3c0b2 Author: Sascha Hauer Date: Wed Aug 25 11:56:26 2010 +0200 ARM: mx5: clock-imx51: make *ipg clocks secondary clocks of their corresponding peripheral clocks Currently the uarts and timer only work because they are turned on by reset default. Make them secondary clocks of their corresponding peripheral clocks to make sure they are turned on when necessary. Also, register some clocks to get rid of compiler warnings Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 63a7c6d7507ed6f4ea24a8ed008efa1bb22a2a97 Author: Sascha Hauer Date: Tue Aug 3 11:59:46 2010 +0200 ARM: mx5: dynamically register mxc-nand device Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 00b57bf9786ca701508333112c8917d1e0860129 Author: Uwe Kleine-König Date: Mon Aug 23 11:25:52 2010 +0200 ARM: imx: reorganize nand registration to use a struct Addiontionally make the interrupt #defines match the base address defines MX.._NFC_BASE_ADDR. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 40e2eda92178f58fd7da2866d3f346dcd2baafed Author: Sascha Hauer Date: Fri Aug 20 16:44:34 2010 +0200 ARM: mx51: Add audmux support Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit b86186610f639344a7db54da89267f645afc30ec Author: Sascha Hauer Date: Fri Aug 20 16:43:54 2010 +0200 ARM: mx51: add imx-ssi devices Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 04b73b1571c26d491c62c42cb06b96bf482fa7a2 Author: Uwe Kleine-König Date: Wed Aug 11 22:23:06 2010 +0200 ARM: mx51: dynamically register imx-uart devices Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 2b82e64d787f9d1a5d304da137c2b1bdbe3b2d9d Author: Sascha Hauer Date: Tue Aug 3 11:59:07 2010 +0200 ARM: mx5: Add Nand clock support Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit f781bc8aa44c8676ad84b69fc4553e8f035c6e89 Author: Sascha Hauer Date: Tue Aug 24 14:49:09 2010 +0200 ARM: mx5/iomux-mx51: Fix input path of some pins in gpio mode Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 2e35bab5fd8b19a8eabbb4c57b3ddd305057eed4 Author: Sascha Hauer Date: Fri Aug 20 18:35:51 2010 +0200 ARM: mx5/iomux-mx51: Add aud3 primary function defines Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 8efd9271fae0a735db5660330e14022031c88e77 Author: Sascha Hauer Date: Fri Aug 20 10:45:11 2010 +0200 ARM: mx5/iomux-mx51: Add SPI controller pads Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 8005cf2eb39786a0a3592fe178603ee1caccc5eb Author: Jason Wang Date: Thu Sep 2 15:52:04 2010 +0800 ARM: mx5/mx51_3ds: add SPI NOR flash in the board init stage A 2M bytes SPI NOR flash(sst25vf016b) is soldered on the mx51_3ds board. So add the corresponding device for it. Signed-off-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 988916e1a9af1994d510138e7201acf7b425fb46 Author: Jason Wang Date: Thu Sep 2 15:52:03 2010 +0800 ARM: mx5/mx51_3ds: add eCSPI2 support on the imx51_3ds board Signed-off-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit eaa4fd0b4022bd4d2ff0c38b3cc936ee5a441711 Author: Jason Wang Date: Thu Sep 2 15:52:02 2010 +0800 ARM: mx5/iomux-mx51: add iomux definitions for eCSPI2 on the imx51_3ds board On the imx51_3ds board, eCSPI2 is connected to a SPI NOR flash, now add iomux definitions for those used pins. Signed-off-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 8d83db81affd71af0fb6f054ab552d16a7cb805b Author: Jason Wang Date: Thu Sep 2 15:52:00 2010 +0800 ARM: mx5/clock-mx51: add spi clocks Signed-off-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 74d99f395901502747a44a1379f3b4fdb638dafa Author: Uwe Kleine-König Date: Fri Sep 10 17:01:26 2010 +0200 ARM: mx5/clock-mx51: new macro that defines a clk with all members Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 79901478e0a2854c4becbb2e77f176bd7fa37caa Author: Uwe Kleine-König Date: Fri Sep 10 16:58:42 2010 +0200 ARM: mx5/clock-mx51: refactor ccgr callbacks to use common code Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 9f0c11ee67d9a5ab76c27d2f9dbdd9ee85fbce10 Author: Uwe Kleine-König Date: Fri Sep 10 16:57:07 2010 +0200 ARM: mx5: add spi_imx device registration Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit ab5605037c119f1bde0f01786ede16d0ea5dcd8a Author: Uwe Kleine-König Date: Thu Sep 9 21:02:02 2010 +0200 ARM: imx: use platform ids for spi_imx devices The driver recently learned to handle platform ids. Make use of this new feature. The up side is that the driver needs less knowledge about the spi interfaces used on different SoCs. Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 0b599603d8534bc3946a0f07e461c76d7947dfcf Author: Uwe Kleine-König Date: Thu Sep 9 21:02:48 2010 +0200 spi/imx: add support for imx51's eCSPI and CSPI i.MX51 comes with two eCSPI interfaces (that are quite different from what was known before---the tried and tested Freescale way) and a CSPI interface that is identical to the devices found on i.MX25 and i.MX35. This patch is a merge of two very similar patches (by Jason Wang and Sascha Hauer resp.) plus a (now hopefully correct) reimplementation of the clock calculation. Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 3b2aa89eb381d2f445aa3c60d8f070a3f55efa63 Author: Uwe Kleine-König Date: Fri Sep 10 09:42:29 2010 +0200 spi/imx: save the spi chip select in config struct, not the gpio to use This prepares adding support for imx51's eCSPI. This IP has seperate control and config bits for all four supported chip selects, so the config routine needs to know which chip select is being used even if the chipselect is realized by a gpio. Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 1723e66b03c3d131d16f7646752c9782c66ea1ae Author: Uwe Kleine-König Date: Fri Sep 10 09:19:18 2010 +0200 spi/imx: get rid of more ifs depending on the used cpu Nearly everything that is needed is provided by the version of the SPI IP. Now the only checks left using cpu_is_... are clk divider tuning on mx21/mx27 and autodetection (which will die soon). Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit f4ba6315cb77a5dcff6664ce1d66ebfe31bcc6b1 Author: Uwe Kleine-König Date: Thu Sep 9 15:29:01 2010 +0200 spi/imx: convert driver to use platform ids This has the advantage not to need to much cpu_is_... macros. Still more when imx51 support is added which has two different spi interfaces which would introduce additional checks on the device id. With this setup it's not possible for the compiler anymore to detect the unused functions, so four additional kconfig symbols are introduced to ifdef out the unneeded functions in the callback array and all these functions are marked with __maybe_unused to suppress the corresponding gcc warnings. Comparing the driver footprint with and without the patch for a mx27 kernel yields: add/remove: 2/0 grow/shrink: 2/0 up/down: 280/0 (280) function old new delta spi_imx_devtype - 192 +192 spi_imx_probe 980 1032 +52 spi_imx_devtype_data - 32 +32 spi_imx_setupxfer 276 280 +4 Later when the platform code is updated to use the platform ids, the autodetection can be removed which will make the driver a bit smaller again. (~60 Bytes in my test.) Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit e89524d33deb55de28b4ab171e4b0f89d46b2d4e Author: Uwe Kleine-König Date: Thu Sep 9 11:12:12 2010 +0200 spi/imx: default to m on platforms that have such devices Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 77a406da5a5b76445a816d5f043fc9aef4026ff1 Author: Uwe Kleine-König Date: Wed Aug 25 12:19:50 2010 +0200 ARM: imx: fix name of macros to add imx-i2c devices This is a follow up to c698715 (ARM: imx: dynamically register imx-i2c devices (imx27)) 2b92084 (ARM: imx: dynamically register imx-i2c devices (imx21)) 6348e6b (ARM: imx: dynamically register imx-i2c devices (imx1)) Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 44505c0768971f4aa94ca09c8155448a46a7ff8a Author: Uwe Kleine-König Date: Thu Sep 30 16:44:53 2010 +0200 ARM: mx5: dynamically register imx-i2c devices Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer commit 40de9a7cebc4e0b23cd6863c84c2279f0ccadebb Author: Christoph Hellwig Date: Fri Oct 1 09:12:08 2010 +0200 hfsplus: fix rename over directories When renaming over a directory we need to use hfsplus_rmdir instead of hfsplus_unlink to evict the victim. This makes sure we properly error out on non-empty directory as required by Posix (BZ #16571), and it also makes sure we do the right thing in case i_nlink will every be set correctly for directories on hfsplus. Reported-by: Vlado Plaga Signed-off-by: Christoph Hellwig commit ef70fcc0cd5d98f5e2df82c9e598b47f351d4f66 Merge: 4cbe75b 98d943b Author: Robert Richter Date: Fri Oct 1 08:54:17 2010 +0200 Merge branch 'oprofile/urgent' into oprofile/core Conflicts: arch/arm/oprofile/common.c Signed-off-by: Robert Richter commit 467c3d9cd541eef284ff8118069b088e015b8d6a Author: Thomas Gleixner Date: Fri Oct 1 05:46:52 2010 +0200 hfsplus: convert tree_lock to mutex tree_lock is used as mutex so make it a mutex. Signed-off-by: Thomas Gleixner Signed-off-by: Christoph Hellwig commit 7fcc99f4f2ddb1c39abc05fbb9b32f05b03c7f8f Author: Christoph Hellwig Date: Fri Oct 1 05:46:31 2010 +0200 hfsplus: add missing extent locking in hfsplus_write_inode Most of the extent handling code already does proper SMP locking, but hfsplus_write_inode was calling into hfsplus_ext_write_extent without taking the extents_lock. Fix this by splitting hfsplus_ext_write_extent into an internal helper that expects the lock, and a public interface that first acquires it. Also add a few locking asserts and document the locking rules in hfsplus_fs.h. Signed-off-by: Christoph Hellwig commit 89755dcace09b44b3aa024bf302d9b19b4c24cad Author: Christoph Hellwig Date: Fri Oct 1 05:45:25 2010 +0200 hfsplus: protect readdir against removals from open_dir_list We already have i_mutex for readdir and the namespace operations that add entries to open_dir_list, the only thing that was missing was the removal in hfsplus_dir_release. Signed-off-by: Christoph Hellwig commit 84adede31267af37141da2b2b04293c5ea8af7ae Author: Christoph Hellwig Date: Fri Oct 1 05:45:20 2010 +0200 hfsplus: use atomic bitops for the superblock flags The flags in the HFS+-specific superlock do get modified during runtime, use atomic bitops to make the modifications SMP safe. Signed-off-by: Christoph Hellwig commit 7ac9fb9c2a50963b699b3548e6f00698c1554dc6 Author: Christoph Hellwig Date: Fri Oct 1 05:45:08 2010 +0200 hfsplus: add per-superblock lock for volume header updates Lock updates to the mutal fields in the volume header, and document the locing in the hfsplus_sb_info structure. Signed-off-by: Christoph Hellwig commit 58a818f532e83f337689358c102ba2048d1b37f5 Author: Christoph Hellwig Date: Fri Oct 1 05:44:02 2010 +0200 hfsplus: remove the rsrc_inodes list We never walk the list - the only reason for it is to make the resource fork inodes appear hashed to the writeback code. Borrow a trick from JFS to do that without needing a list head. Signed-off-by: Christoph Hellwig commit 66e5db05bb6670f314d90aba5998e6a033e4d563 Author: Christoph Hellwig Date: Fri Oct 1 05:43:58 2010 +0200 hfsplus: do not cache and write next_alloc We never look at it, nor change the next_alloc field in the superblock. So don't bother caching it or writing it out in hfsplus_sync_fs. Signed-off-by: Christoph Hellwig commit f17c89bfcc9cccd405098eac3ec1ebfddf03279e Author: Christoph Hellwig Date: Fri Oct 1 05:43:54 2010 +0200 hfsplus: fix error handling in hfsplus_symlink We need to free the inode again on a hfsplus_create_cat failure. Signed-off-by: Christoph Hellwig commit 30d3abbec730a5a9c954a6342271f7a7db155b08 Author: Christoph Hellwig Date: Fri Oct 1 05:43:50 2010 +0200 hfsplus: merge mknod/mkdir/creat Make hfsplus_mkdir and hfsplus_create call hfsplus_mknod instead of duplicating the code. Signed-off-by: Christoph Hellwig commit b5080f77ed2de3c8ac67a63044f8a781c75207d9 Author: Christoph Hellwig Date: Fri Oct 1 05:43:43 2010 +0200 hfsplus: clean up hfsplus_write_inode Add a new hfsplus_system_write_inode for writing the special system inodes and streamline the fastpath write_inode code. Signed-off-by: Christoph Hellwig commit fc4fff82104fa096eada73943fe5249500acd5fa Author: Christoph Hellwig Date: Fri Oct 1 05:43:41 2010 +0200 hfsplus: clean up hfsplus_iget Add a new hfsplus_system_read_inode for reading the special system inodes and streamline the fastpath iget code. Signed-off-by: Christoph Hellwig commit 6af502de224c3742936d54eee7e3690c09822934 Author: Christoph Hellwig Date: Fri Oct 1 05:43:31 2010 +0200 hfsplus: fix HFSPLUS_I calling convention HFSPLUS_I doesn't return a pointer to the hfsplus-specific inode information like all other FOO_I macros, but dereference the pointer in a way that made it look like a direct struct derefence. This only works as long as the HFSPLUS_I macro is used directly and prevents us from keepig a local hfsplus_inode_info pointer. Fix the calling convention and introduce a local hip variable in all functions that use it constantly. Signed-off-by: Christoph Hellwig commit dd73a01a30d729e8fa6f829c4582650e258e36f9 Author: Christoph Hellwig Date: Fri Oct 1 05:42:59 2010 +0200 hfsplus: fix HFSPLUS_SB calling convention HFSPLUS_SB doesn't return a pointer to the hfsplus-specific superblock information like all other FOO_SB macros, but dereference the pointer in a way that made it look like a direct struct derefence. This only works as long as the HFSPLUS_SB macro is used directly and prevents us from keepig a local hfsplus_sb_info pointer. Fix the calling convention and introduce a local sbi variable in all functions that use it constantly. Signed-off-by: Christoph Hellwig commit e753a62156e952fd5a3c64f98454d9aeee3a2546 Author: Christoph Hellwig Date: Fri Oct 1 05:41:53 2010 +0200 hfsplus: remove BKL from hfsplus_put_super Except for ->put_super the BKL is now gone from HFS, which means it's superflous there too as ->put_super is serialized by the VFS. Signed-off-by: Christoph Hellwig commit a9fdbf8c6070d49c482e209df7ee93d9ec41ea27 Author: Christoph Hellwig Date: Fri Oct 1 05:41:50 2010 +0200 hfsplus: use alloc_mutex in hfsplus_sync_fs Use alloc_mutex to protect hfsplus_sync_fs against itself and concurrent allocations, which allows to get rid of lock_super in hfsplus. Note that most fields in the superblock still aren't protected against concurrent allocations, that will follow later. Signed-off-by: Christoph Hellwig commit 40bf48afe92fcea61e7e164f0b2599fba8b88124 Author: Christoph Hellwig Date: Fri Oct 1 05:41:39 2010 +0200 hfsplus: introduce alloc_mutex Use a new per-sb alloc_mutex instead of abusing i_mutex of the alloc_file to protect block allocations. This gets rid of lockdep nesting warnings and prepares for extending the scope of alloc_mutex. Signed-off-by: Christoph Hellwig commit 6333816ade7e04a96ec0a34a8378c455e4f7c4dd Author: Christoph Hellwig Date: Fri Oct 1 05:41:35 2010 +0200 hfsplus: protect setflags using i_mutex Use i_mutex for protecting against concurrent setflags ioctls like in other filesystems and get rid of the BKL in hfsplus_ioctl. Signed-off-by: Christoph Hellwig commit 94744567fef9602c3d8218a1d8f58c04cce354f6 Author: Christoph Hellwig Date: Fri Oct 1 05:41:31 2010 +0200 hfsplus: split hfsplus_ioctl Give each ioctl command a function of it's own. Signed-off-by: Christoph Hellwig commit 249e6353001e407edf5c9a74482ecfca90c8ff33 Author: Christoph Hellwig Date: Fri Oct 1 05:41:27 2010 +0200 hfsplus: fix BKL leak in hfsplus_ioctl Currenly the HFSPLUS_IOC_EXT2_GETFLAGS case never unlocks the BKL, which can lead to easily reproduced lockups when doing multiple GETFLAGS ioctls. Fix this by only taking the BKL for the HFSPLUS_IOC_EXT2_SETFLAGS case as neither HFSPLUS_IOC_EXT2_GETFLAGS not the default error case needs it. Signed-off-by: Christoph Hellwig commit 46290341cd649c2bfb69e5067c1804c0395c83a1 Author: Bob Peterson Date: Thu Sep 30 10:34:00 2010 -0400 GFS2 fatal: filesystem consistency error on rename This patch fixes a GFS2 problem whereby the first rename after a mount can result in a file system consistency error being flagged improperly and cause the file system to withdraw. The problem is that the rename code tries to run the rgrp list with function gfs2_blk2rgrpd before the rgrp list is guaranteed to be read in from disk. The patch makes the rename function hold the rindex glock (as the gfs2_unlink code does today) which reads in the rgrp list if need be. There were a total of three places in the rename code that improperly referenced the rgrp list without the rindex glock and this patch fixes all three. Signed-off-by: Bob Peterson Signed-off-by: Steven Whitehouse commit 1c4a77bf54a61dde135740a563b6ec03382604e8 Author: Dominik Brodowski Date: Sat Sep 18 23:21:09 2010 +0200 pcmcia: add a few debug statements Signed-off-by: Dominik Brodowski commit 2262054e74b4b26ed56a8535c1259f6c6c2862a4 Author: Dominik Brodowski Date: Sun Aug 15 08:38:38 2010 +0200 pcmcia: remove obsolete and wrong comments What's worse than no comment? A wrong comment. Several PCMCIA device drivers contained the same comments, which were based on how the PCMCIA subsystem worked in the old days of 2.4., and which were originally part of a "dummy_cs" driver. These comments no longer matched at all what is happening now, and therefore should be removed. Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 06b3a1d12f41b592972643f8b84015d6c03dc576 Author: Dominik Brodowski Date: Sun Aug 8 12:27:40 2010 +0200 pcmcia: avoid messages on module (un)loading printk() statements on module load or unload are frowned upon. Also, add a few __init or __exit declarations. Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 2e9b981a7c63ee8278df6823f8389d69dad1a499 Author: Dominik Brodowski Date: Sun Aug 8 11:36:26 2010 +0200 pcmcia: move driver name to struct pcmcia_driver Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 1cc745d1cdca8086b472a06671f0830fc0e98861 Author: Dominik Brodowski Date: Sun Aug 1 11:21:14 2010 +0200 pcmcia: remove the "Finally, report what we've done" message Remove this unnecessary message -- this info is either available in sysfs or by enabling dynamic debug from the PCMCIA core. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-scsi@vger.kernel.org CC: linux-usb@vger.kernel.org Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 00990e7ce0b0e596fe41d9c64d6933ea70084003 Author: Dominik Brodowski Date: Fri Jul 30 13:13:46 2010 +0200 pcmcia: use autoconfiguration feature for ioports and iomem When CONF_AUTO_SET_IO or CONF_AUTO_SET_IOMEM are set, the corresponding fields in struct pcmcia_device *p_dev->resource[0,1,2] are set accordinly. Drivers wishing to override certain settings may do so in the callback function, but they no longer need to parse the CIS entries stored in cistpl_cftable_entry_t themselves. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-ide@vger.kernel.org CC: linux-usb@vger.kernel.org CC: laforge@gnumonks.org CC: linux-mtd@lists.infradead.org CC: linux-bluetooth@vger.kernel.org CC: alsa-devel@alsa-project.org CC: linux-serial@vger.kernel.org CC: Jiri Kosina CC: linux-scsi@vger.kernel.org Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 440eed43e2a95bb842488755683716814da10f2b Author: Dominik Brodowski Date: Fri Jul 30 09:51:52 2010 +0200 pcmcia: introduce autoconfiguration feature Introduce an autoconfiguration feature to set certain values in pcmcia_loop_config(), instead of copying the same code over and over in each PCMCIA driver. At first, introduce the following options: CONF_AUTO_CHECK_VCC check or matching Vcc entry CONF_AUTO_SET_VPP set Vpp CONF_AUTO_AUDIO enable the speaker line CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-ide@vger.kernel.org CC: linux-usb@vger.kernel.org CC: laforge@gnumonks.org CC: linux-mtd@lists.infradead.org CC: alsa-devel@alsa-project.org CC: linux-serial@vger.kernel.org CC: Jiri Kosina CC: linux-scsi@vger.kernel.org Acked-by: Gustavo F. Padovan (for drivers/bluetooth) Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 9485ee14e143c7076e88deea1e87ca3eb0b2f94e Author: Dominik Brodowski Date: Sat Jul 31 07:09:32 2010 +0200 pcmcia: Documentation update Fill in missing descriptions and update some others for functions in pcmcia_resource.c. Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 1ac71e5a35eebee60cdcf15b3980bd94498f037b Author: Dominik Brodowski Date: Thu Jul 29 19:27:09 2010 +0200 pcmcia: convert pcmcia_request_configuration to pcmcia_enable_device pcmcia_enable_device() now replaces pcmcia_request_configuration(). Instead of config_req_t, all necessary flags are either passed as a parameter to pcmcia_enable_device(), or (in rare circumstances) set in struct pcmcia_device -> flags. With the last remaining user of include/pcmcia/cs.h gone, remove all references. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-ide@vger.kernel.org CC: linux-usb@vger.kernel.org CC: laforge@gnumonks.org CC: linux-mtd@lists.infradead.org CC: alsa-devel@alsa-project.org CC: linux-serial@vger.kernel.org CC: Jiri Kosina CC: linux-scsi@vger.kernel.org Acked-by: Gustavo F. Padovan (for drivers/bluetooth) Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 7feabb6412ea23edd298c0fa90e5aa6733eb4a42 Author: Dominik Brodowski Date: Thu Jul 29 18:35:47 2010 +0200 pcmcia: move config_{base,index,regs} to struct pcmcia_device Several drivers prefer to explicitly set config_{base,index,regs}, formerly known as ConfigBase, ConfigIndex and Present. Instead of passing these values inside config_req_t, store it in struct pcmcia_device. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-ide@vger.kernel.org CC: linux-usb@vger.kernel.org CC: laforge@gnumonks.org CC: linux-mtd@lists.infradead.org CC: alsa-devel@alsa-project.org CC: linux-serial@vger.kernel.org CC: Jiri Kosina CC: linux-scsi@vger.kernel.org Acked-by: Gustavo F. Padovan (for drivers/bluetooth) Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 37979e1546a790c44adbc7f27a85569944480ebc Author: Dominik Brodowski Date: Thu Jul 29 16:33:23 2010 +0200 pcmcia: simplify IntType IntType was only set to INT_MEMORY (driver pcmciamtd) or INT_MEMORY_AND_IO (all other drivers). As this flags seems to relate to ioport access, make it conditional to the driver having requested IO port access. There are two drivers which do not request IO ports, but did set INT_MEMORY_AND_IO: ray_cs and b43. For those, we consistently only set INT_MEMORY in future. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-ide@vger.kernel.org CC: linux-usb@vger.kernel.org CC: laforge@gnumonks.org CC: linux-mtd@lists.infradead.org CC: alsa-devel@alsa-project.org CC: linux-serial@vger.kernel.org CC: Jiri Kosina CC: linux-scsi@vger.kernel.org Acked-by: Gustavo F. Padovan (for drivers/bluetooth) Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit fc301101034c06bf56a7f71bf682c48909e401a4 Author: Dominik Brodowski Date: Thu Jul 29 16:19:39 2010 +0200 pcmcia: simplify Status, ExtStatus register access The Status (CISREG_CCSR) and ExtStatus (CISREG_ESR) registers were only accessed to enable audio output for some drivers and IRQ for serial_cs.c. The former also required setting config_req_t.Attributes to CONF_ENABLE_SPKR; the latter can be simplified to setting this field to CONF_ENABLE_ESR. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-serial@vger.kernel.org CC: linux-scsi@vger.kernel.org Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit 1a4a046030ade0f57b8f3b476d61c7c35d894b66 Author: Dominik Brodowski Date: Thu Jul 29 15:54:54 2010 +0200 pcmcia: remove Pin, Copy configuration register access The "Pin" and "Copy" configuration registers (CISREG_SCR, CISREG_PPR) do not seem to be utilized anywhere. If a device would request a write to these registers, "0" would be written. Continue to do so, but warn of unexpected behavior -- and remove the "Pin" and "Copy" entries from config_req_t. Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit e8405f0f617856de0ceb7d04e65b663051451544 Author: Dominik Brodowski Date: Thu Jul 29 15:50:55 2010 +0200 pcmcia: move Vpp setup to struct pcmcia_device Some drivers prefer to explicitly set Vpp. Instead of passing the voltage inside config_req_t, store it in struct pcmcia_device. CC: linux-ide@vger.kernel.org CC: netdev@vger.kernel.org CC: linux-mtd@lists.infradead.org CC: linux-wireless@vger.kernel.org CC: linux-serial@vger.kernel.org CC: linux-usb@vger.kernel.org CC: linux-scsi@vger.kernel.org Acked-by: Gustavo F. Padovan (for drivers/bluetooth) Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit fb49fa533f9d211994c33efb752ffa5b30033729 Author: Dominik Brodowski Date: Thu Jul 29 14:06:42 2010 +0200 pcmcia: split up modify_configuration() into two fixup functions pcmcia_modify_configuration() was only used by two drivers to fix up one issue each: setting the Vpp to a different value, and reducing the IO width to 8 bit. Introduce two explicitly named functions handling these things, and remove one further typedef. CC: netdev@vger.kernel.org CC: linux-mtd@lists.infradead.org Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit cdb138080b78146d1cdadba9f5dadbeb97445b91 Author: Dominik Brodowski Date: Wed Jul 28 10:59:06 2010 +0200 pcmcia: do not use win_req_t when calling pcmcia_request_window() Instead of win_req_t, drivers are now requested to fill out struct pcmcia_device *p_dev->resource[2,3,4,5] for up to four iomem ranges. After a call to pcmcia_request_window(), the windows found there are reserved and may be used until pcmcia_release_window() is called. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-mtd@lists.infradead.org CC: Jiri Kosina CC: linux-scsi@vger.kernel.org Tested-by: Wolfram Sang Signed-off-by: Dominik Brodowski commit feb47ca9314666d920855b8a235032dea2b2caa4 Author: Steven Whitehouse Date: Wed Sep 29 15:04:18 2010 +0100 GFS2: Improve journal allocation via sysfs Recently a feature was added to GFS2 to allow journal id allocation via sysfs. This patch builds upon that so that a negative journal id will be treated as an error code to be passed back as the return code from mount. This allows termination of the mount process if there is a failure. Also, the process has been updated so that the kernel will wait for a journal id, even in the "spectator" case. This is required in order to avoid mounting a filesystem in case there is an error while joining the cluster. In the spectator case, 0 is written into the file to indicate that all is well, and that mount should continue. Signed-off-by: Steven Whitehouse commit 43f74c199563a4273e528e2166d0650625a1e05f Author: Steven Whitehouse Date: Wed Sep 29 14:24:41 2010 +0100 GFS2: Add "norecovery" mount option as a synonym for "spectator" XFS supports the "norecovery" mount option which is basically the same as the GFS2 spectator mode. This adds support for "norecovery" as a synonym for spectator mode, which is hopefully a more obvious description of what it actually does. Signed-off-by: Steven Whitehouse commit c741c4551237f9c1bdcd3b1b39b0883bd19a3723 Author: Steven Whitehouse Date: Wed Sep 29 14:20:52 2010 +0100 GFS2: Fix spectator umount issue The tests further down the recovery function relating to unlocking the journal need to be updated to match the intial test. Also, a test in the umount code which was surplus to requirements has been removed. Umounting spectator mounts now works correctly, as expected. Signed-off-by: Steven Whitehouse commit 0c92ecf10d9fb80b1798d2a9adfdea17f8f5e6d9 Author: Jassi Brar Date: Wed Sep 29 17:31:33 2010 +0900 spi/s3c64xx: Correction for 16,32 bits bus width We can't do without setting channel and bus width to same size. In order to do that, use loop read/writes in polling mode and appropriate burst size in DMA mode. Signed-off-by: Jassi Brar Signed-off-by: Grant Likely commit b42a81ca0fa7b3b442a0731ffc4e7db44464b5f2 Author: Jassi Brar Date: Wed Sep 29 17:31:33 2010 +0900 spi/s3c64xx: Consider the clk_from_cmu flag Newer SoCs have the SPI clock scaling control in platform's clock management unit. Inorder for such SoCs to work, we need to check the flag clk_from_cmu before making any clock changes. Signed-off-by: Jassi Brar Signed-off-by: Grant Likely commit e02ddd442a532c73e547ae3735c8012e3bd719a5 Author: Jassi Brar Date: Wed Sep 29 17:31:31 2010 +0900 spi/s3c64xx: Prevent unnecessary map-unmap Since we use DMA mode only for xfers bigger than FIFO size, do not map/unmap buffers for polling mode transfers. Signed-off-by: Jassi Brar Signed-off-by: Grant Likely commit 4a4fd47155ac49b62de5177a780c245e967752f3 Author: Julia Lawall Date: Wed Sep 29 17:31:30 2010 +0900 spi/amba-pl022: Fix error case return statement. The return -EINVAL appears to only make sense if the if branch that it is aligned with is taken, and the indentation indicates that this is the authors intent, so move it into that branch. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // Signed-off-by: Julia Lawall Signed-off-by: Grant Likely commit e447d3588e1c5944f607083cb509663f8015d420 Author: Julia Lawall Date: Wed Sep 29 17:31:29 2010 +0900 spi/orion: Drop unnecessary null test list_for_each_entry binds its first argument to a non-null value, and thus any null test on the value of that argument is superfluous. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ iterator I; expression x,E; @@ I(x,...) { <... - (x != NULL) && E ...> } // Signed-off-by: Julia Lawall Signed-off-by: Grant Likely commit 079a176d87a4da4cb18864c54d3932131e11e229 Author: Felipe Balbi Date: Wed Sep 29 17:31:29 2010 +0900 spi: omap2_mcspi: make use of dev_vdbg() dev_vdbg() is only compiled when VERBOSE is defined, so there's no need to wrap dev_dbg() on #ifdef VERBOSE .. #endif as we can use dev_vdbg() directly. Signed-off-by: Felipe Balbi Signed-off-by: Grant Likely commit d594845106f34c079a6b05be01a37e4883c3bf4c Author: Steven Whitehouse Date: Tue Sep 28 10:17:47 2010 +0100 GFS2: Fix compiler warning from previous patch This shouldn't really be required, but gcc can't tell that "al" is only accessed when initialised. Signed-off-by: Steven Whitehouse commit bf97b6734e027cc18abad420ab88f861f65d7816 Author: Benjamin Marzinski Date: Mon Sep 27 16:00:04 2010 -0500 GFS2: reserve more blocks for transactions Some of the functions in GFS2 were not reserving space in the transaction for the resource group header and the resource groups bitblocks that get added when you do allocation. GFS2 now makes sure to reserve space for the resource group header and either all the bitblocks in the resource group, or one for each block that it may allocate, whichever is smaller using the new gfs2_rg_blocks() inline function. Signed-off-by: Benjamin Marzinski Signed-off-by: Steven Whitehouse commit 5d4bff94f9e0877a85b4dc573eb7a3f1d97c13ae Author: Tony Luck Date: Mon Sep 27 13:58:14 2010 -0700 [IA64] Stop using the deprecated __do_IRQ() code path Thomas Gleixner wrote: >__do_IRQ() has been deprecated after a two years migration phase in >commit 0e57aa1. Since then another 18 months have gone by ... Mostly trivial stuff for this. The only tricky part was realizing that the new handler_*_irq() paths do not use desc->chip->end(irq). Not a problem for the edge case as the ia64 iosapic routine for that was nop(). But the "level" case handled interrupt migration there. Just use a slightly modified version of the "end" routine as "unmask" for the level triggered case. Signed-off-by: Tony Luck commit d0795f912318f65b800c6b619d749c3bf7c930fb Author: Steven Whitehouse Date: Mon Sep 27 15:58:11 2010 +0100 GFS2: Fix journal check for spectator mounts When checking journals for spectator mounts, we cannot rely on the journal being locked, whatever its jid might be. This patch ensures that we always get the journal locks when checking journals for a spectator mount. Signed-off-by: Steven Whitehouse commit 64de5ec168d9743903e6ec482c3e9f37af49f9c1 Author: Uwe Kleine-König Date: Tue Sep 21 12:13:34 2010 +0200 ARM: imx: reorganize imx-i2c device registration to use a struct per SoC Signed-off-by: Uwe Kleine-König commit 4697bb926f43b8012ebd111ef43834f42126a0ef Author: Uwe Kleine-König Date: Wed Aug 25 17:37:45 2010 +0200 ARM: imx: dynamically allocate imx-ssi devices Signed-off-by: Uwe Kleine-König commit 5162de08d116fe7bbb912b17d84169983bfa16a8 Author: Uwe Kleine-König Date: Tue Aug 10 22:57:24 2010 +0200 ARM: imx: change the way imx-uarts are registered For mx1_defconfig this yields: add/remove: 1/0 grow/shrink: 1/4 up/down: 49/-108 (-59) function old new delta imx1_imx_uart_data - 48 +48 kernel_config_data 7277 7278 +1 imx_add_imx_uart_1irq 132 128 -4 imx_add_imx_uart_3irq 164 156 -8 scb9328_init 96 64 -32 mx1ads_init 220 156 -64 for mx21_defconfig this yields: add/remove: 1/0 grow/shrink: 0/3 up/down: 64/-52 (12) function old new delta imx21_imx_uart_data - 64 +64 imx_add_imx_uart_3irq 160 156 -4 imx_add_imx_uart_1irq 140 136 -4 mx21ads_board_init 220 176 -44 for a random mx25 config this yields: add/remove: 1/0 grow/shrink: 0/5 up/down: 80/-56 (24) function old new delta imx25_imx_uart_data - 80 +80 imx_add_imx_uart_3irq 160 156 -4 imx_add_imx_uart_1irq 140 136 -4 mx25pdk_init 288 272 -16 eukrea_mbimxsd_baseboard_init 272 256 -16 eukrea_cpuimx25_init 252 236 -16 for mx27_defconfig this yields: add/remove: 1/0 grow/shrink: 0/10 up/down: 96/-280 (-184) function old new delta imx27_imx_uart_data - 96 +96 imx_add_imx_uart_3irq 160 156 -4 imx_add_imx_uart_1irq 140 136 -4 pca100_init 560 544 -16 mx27pdk_init 112 96 -16 mx27lite_init 92 76 -16 eukrea_cpuimx27_init 332 316 -16 pcm038_init 388 348 -40 mxt_td60_board_init 320 280 -40 eukrea_mbimx27_baseboard_init 476 436 -40 mx27ads_board_init 368 280 -88 and finally for mx3_defconfig: add/remove: 2/0 grow/shrink: 0/9 up/down: 128/-344 (-216) function old new delta imx31_imx_uart_data - 80 +80 imx35_imx_uart_data - 48 +48 imx_add_imx_uart_1irq 132 128 -4 imx_add_imx_uart_3irq 164 152 -12 mx31moboard_devboard_init 360 344 -16 mx31lite_db_init 176 160 -16 mx31moboard_smartbot_init 384 360 -24 kzm_board_init 232 208 -24 armadillo5x0_init 392 364 -28 mx31lilly_db_init 248 208 -40 mxc_board_init 3760 3580 -180 Signed-off-by: Uwe Kleine-König commit 35bab0589b9a71533b37280eefa430c21dc102fe Author: Uwe Kleine-König Date: Thu Sep 9 21:02:02 2010 +0200 ARM: imx: change the way spi-imx devices are registered Group soc specific data in a global struct instead of repeating it for each call to imxXX_add_spi_imxX. The structs holding the actual data are placed in .init.constdata and so don't do much harm. Compared to the previous approach this reduces code size to call imx_add_spi_imx. Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König commit a8a05b855291defb1d97a1c3681480e4ca330254 Author: Uwe Kleine-König Date: Tue Aug 3 16:09:35 2010 +0200 ARM: mx51: use IMX_IO_ADDRESS to define MX51_IO_ADDRESS Signed-off-by: Uwe Kleine-König commit 68b5e858dde8dcb0413b7c1d699c1056ecc0934d Author: Uwe Kleine-König Date: Tue Aug 3 16:15:29 2010 +0200 ARM: mx51: fix naming of spi related defines The names used now match the processor's reference manual. Also remove MXC from the interrupt defines to match the other imx platforms. Acked-by: Wolfram Sang Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König commit 5a2db4e3865868c3bf230435fb312524c0e10bd4 Author: Uwe Kleine-König Date: Tue Aug 3 16:03:26 2010 +0200 ARM: mx51: clean up mx51 header This makes the header more look like the other ones, i.e. - sort #defines by value - use lowercase hex constants - use a consistently named header guard Acked-by: Jason Wang Acked-by: Grant Likely Signed-off-by: Uwe Kleine-König commit 6470310865dc8d7ed78f0df8f4c7f7e39c7bab99 Author: Uwe Kleine-König Date: Tue Sep 21 10:46:15 2010 +0200 ARM: mx51_defconfig: add new boards MACH_MX51_3DS and MACH_EUKREA_CPUIMX51 Further remove FIXED_PHY as it breaks the ethernet. VGA_CONSOLE isn't selectable anymore since fb78b51cb11e. EXT3_DEFAULTS_TO_ORDERED defaults to y since aa32a796389b. INOTIFY is gone since 2dfc1cae4c42. CONFIG_DETECT_SOFTLOCKUP is gone since e16bb1d7fe07. Enable TMPFS for udev. KEYS is selected by NFS_USE_KERNEL_DNS Signed-off-by: Uwe Kleine-König commit ea9a9b2ba239792be57d8601f57a4971958ebad5 Author: Uwe Kleine-König Date: Wed Aug 11 07:32:33 2010 +0200 ARM: remove mx31pdk_defconfig This machine is enabled in mx3_defconfig and so mx31pdk_defconfig isn't really useful. Signed-off-by: Uwe Kleine-König commit 801561cdda3027a0d1e0e15a3772e5dab5af7c65 Author: Uwe Kleine-König Date: Fri Aug 13 12:38:56 2010 +0200 ARM: mx3_defconfig: add new machine MACH_EUKREA_CPUIMX35 Furthermore INOTIFY is gone since 2dfc1ca (inotify: remove inotify in kernel interface) Signed-off-by: Uwe Kleine-König commit 0ac15c884eceaf5b0917d4d28d86ff1bb4845d37 Author: Uwe Kleine-König Date: Tue Sep 21 12:35:41 2010 +0200 ARM: mx27_defconfig: enable switches used in mx27 code - enable all mx27 machines (MACH_CPUIMX27, MACH_IMX27_VISSTRIM_M10, MACH_PCA100, MACH_MXT_TD60) including optional features for CPUIMX27 - eukrea_mbimx27-baseboard.c uses TOUCHSCREEN_ADS7846 - mach-cpuimx27.c uses SERIAL_8250 - several machines make use of SPI_IMX (selects SPI_BITBANG) - drop VGA_CONSOLE as this isn't selectable anymore since fb78b51cb11e - several machines make use of USB_ULPI (depends on USB, but don't enable USB_DEVICE_CLASS as it's deprecated) Signed-off-by: Uwe Kleine-König commit e16ddb3ad2b42d7c906748dc3bc3f393ddb94c67 Author: Uwe Kleine-König Date: Tue Aug 24 12:33:23 2010 +0200 ARM: mx5/mx51_babbage: don't use PHYS_OFFSET Signed-off-by: Uwe Kleine-König commit e7a895bf64e9360499d04b80fa33b0ad93546d44 Author: Sascha Hauer Date: Thu Aug 19 11:37:31 2010 +0200 ARM: mx5/mx51_babbage: fix compiler warnings Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit a060656240af125b22b1c011944377ff4216ac3e Author: Uwe Kleine-König Date: Fri Aug 13 17:34:05 2010 +0200 ARM: imx: ehci: use void __iomem * to hold i/o addresses This fixes: arch/arm/plat-mxc/ehci.c: In function 'mxc_initialize_usb_hw': arch/arm/plat-mxc/ehci.c:260: warning: assignment makes integer from pointer without a cast arch/arm/plat-mxc/ehci.c:263: warning: assignment makes integer from pointer without a cast arch/arm/plat-mxc/ehci.c:270: warning: assignment makes integer from pointer without a cast Signed-off-by: Uwe Kleine-König commit 556cbdbf23fb43433dba9657ad194a36be18f81b Author: Uwe Kleine-König Date: Sat Aug 14 14:00:16 2010 +0200 ARM: imx: remove #ifdefery for unmerged flexcan driver The flexcan driver was merged as e955cead. Cc: Sascha Hauer Acked-by: Marc Kleine-Budde Cc: Wolfgang Grandegger Signed-off-by: Uwe Kleine-König commit 3efee47db7a191443b529740b35240d63ae1ad20 Author: Fabio Estevam Date: Mon Aug 23 07:32:09 2010 -0700 ARM: mx5/mx51_babbage: Add FEC support Tested it by booting a rootfs via NFS. Signed-off-by: Fabio Estevam Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit bd45140d98b60c8ddef8f053ad1645dc1572a15a Author: Sascha Hauer Date: Thu Aug 19 14:08:05 2010 +0200 ARM: mx3/imx35: Add EPIT support Signed-off-by: Sascha Hauer Signed-off-by: Michael Grzeschik Signed-off-by: Uwe Kleine-König commit f2b8901d3efe5e1603c8f6a102b2d5c851c108c6 Author: Sascha Hauer Date: Thu Aug 19 14:08:04 2010 +0200 ARM: imx: Add EPIT support The Enhanced Periodic Interrupt Timer (EPIT) is found on newer i.MX SoCs and can be used as an alternative system timer. Signed-off-by: Sascha Hauer Signed-off-by: Michael Grzeschik Signed-off-by: Uwe Kleine-König commit ab3d8b5859234d1d60b9592e9e9c5eaa9bb55678 Author: Marc Kleine-Budde Date: Wed Aug 18 18:26:42 2010 +0200 ARM: mx3/mx35_3ds: add usb host2 support we still have to toggle two pins on the mc9sdz60: /* MUX3_CTR to be low for USB Host2 DP&DM */ pmic_gpio_set_bit_val(MCU_GPIO_REG_GPIO_CONTROL_2, 6, 0); /* CAN_PWDN to be high for USB Host2 Power&OC */ pmic_gpio_set_bit_val(MCU_GPIO_REG_GPIO_CONTROL_2, 1, 1); until we've a proper driver for the mx9sdz60 in linux we'll do this in barebox (a.k.a. u-boot-v2) Signed-off-by: Marc Kleine-Budde Signed-off-by: Michael Grzeschik Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit 79a11b0ba4a4e2f042b143e6ac0813d6fab90626 Author: Marc Kleine-Budde Date: Wed Aug 18 17:56:44 2010 +0200 ARM: mx3/mx35_3ds: rename usb otg platform data variable name Rename the variable holding the usb otg platform data to avoid clash with usb host platform data variable. usb_pdata -> usb_otg_pdata Signed-off-by: Marc Kleine-Budde Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit 81aa17207b3c50f32be31a1be949e98c660da5f1 Author: Marc Kleine-Budde Date: Wed Aug 18 18:22:59 2010 +0200 ARM: mx3/mx35_3ds: add NAND flash The mx35_3ds comes with 2 GiByte NAND flash. This adds the corresponding platform device. Signed-off-by: Marc Kleine-Budde Signed-off-by: Michael Grzeschik Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit d17e1c1ac3a1e4befecb34c20dc8cb901aa72aba Author: Marc Kleine-Budde Date: Wed Aug 18 18:20:24 2010 +0200 ARM: mx3/mx35_3ds: add physmap-flash NOR at CS0 The mx35_3ds comes with 64 MiByte for NOR flash at CS0, add physmap-flash platform device for it. Signed-off-by: Marc Kleine-Budde Signed-off-by: Michael Grzeschik Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit 3b161e51b254fa7bd3a9b0bd7ca7a2ac8ceaae8b Author: Javier Martin Date: Fri Jul 30 10:06:01 2010 +0200 ARM: imx: Add support for Vista Silicon Visstrim_m10 board Vista Silicon Visstrim_m10 i.MX27 based board is used as multimedia streaming server, access control and other custom applications. Signed-off-by: Javier Martin Signed-off-by: Sascha Hauer Signed-off-by: Uwe Kleine-König commit 3b4b682becdfa9f42321aa024d5cc84f71f06d8c Author: Ma Ling Date: Fri Sep 17 03:12:40 2010 +0800 x86, mem: Optimize memmove for small size and unaligned cases movs instruction will combine data to accelerate moving data, however we need to concern two cases about it. 1. movs instruction need long lantency to startup, so here we use general mov instruction to copy data. 2. movs instruction is not good for unaligned case, even if src offset is 0x10, dest offset is 0x0, we avoid and handle the case by general mov instruction. Signed-off-by: Ma Ling LKML-Reference: <1284664360-6138-1-git-send-email-ling.ma@intel.com> Signed-off-by: H. Peter Anvin commit c80dbb58f9c3f84372e37dfe80b41810052ad62f Author: Steven Whitehouse Date: Fri Sep 24 09:55:07 2010 +0100 GFS2: Remove upgrade mount option This option has never done anything useful. Also at the same time this cleans up the sb checks which are done at mount time. The debug option will be accepted, but ignored in future. Since it didn't do anything, there didn't seem much point in retaining it. Signed-off-by: Steven Whitehouse commit d6dad199a10423ce37b8bfec1f055c380dc4a3d5 Author: Ingo Molnar Date: Fri Sep 24 09:12:25 2010 +0200 jump label: Fix GCC feature check when distcc is used The following build bug occurs on distcc builds: CC arch/x86/kernel/asm-offsets.s In file included from include/linux/module.h:24, from include/linux/crypto.h:22, from arch/x86/kernel/asm-offsets_64.c:9, from arch/x86/kernel/asm-offsets.c:5: include/trace/events/module.h: In function 'trace_module_load': include/trace/events/module.h:18: error: expected '(' before 'goto' include/trace/events/module.h:18: error: expected identifier or '*' before '(' token It triggers because distcc is invoked by turning $CC into "distcc gcc", but gcc-goto.sh check script was using $1 not $@ to expand parameters. Cc: Jason Baron Cc: Steven Rostedt LKML-Reference: <20100923034910.867858597@goodmis.org> Signed-off-by: Ingo Molnar commit a5a2bad55de89a0adf7d6f783cb87ab7eb1a894f Merge: d0303d7 46eb3b6 Author: Ingo Molnar Date: Fri Sep 24 09:12:05 2010 +0200 Merge branch 'tip/perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit df0a59a14c693647da4097ba3578c524c452fd0d Author: Joe Perches Date: Mon Jul 12 13:49:54 2010 -0700 [IA64] Remove unnecessary casts of private_data in perfmon.c Signed-off-by: Joe Perches Signed-off-by: Tony Luck commit ddad53ee8a85649e78f6a3eb8a4af4a7a7c577cb Author: Julia Lawall Date: Fri Aug 27 23:01:30 2010 +0200 [IA64] Fix missing iounmap in error path in cyclone.c By moving the iounmap up above the test, it takes place whether the test succeeds or fails. Signed-off-by: Julia Lawall Signed-off-by: Tony Luck commit 383f9f1741cd03687303f82543bbae11935a2ad6 Author: Thomas Gleixner Date: Tue Sep 7 14:33:34 2010 +0000 [IA64] salinfo: sema_init instead of init_MUTEX Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead. Signed-off-by: Thomas Gleixner Signed-off-by: Tony Luck commit 3e6b1b25a92df39d2b619ed3cf74322ddef6800e Author: Nikitas Angelinas Date: Wed Sep 8 22:04:30 2010 +0100 [IA64] xen: use ARRAY_SIZE macro in xen_pv_ops.c Replace sizeof(xen_branch_target) / sizeof(xen_branch_target[0]) with ARRAY_SIZE(xen_branch_target) in arch/ia64/xen/xen_pv_ops.c Signed-off-by: Nikitas Angelinas Signed-off-by: Tony Luck commit c216488cd1f35c54afbcedf185d5908beb814aef Author: Joe Perches Date: Mon Sep 13 21:23:48 2010 -0700 [IA64] Use static const char * const in palinfo.c Signed-off-by: Joe Perches Signed-off-by: Tony Luck commit 48a4b30124d079c765e6eaea3a7359195d7f0c37 Author: Tony Luck Date: Thu Sep 23 14:02:09 2010 -0700 [IA64] remove asm/compat.h Missed this file in commit 32974ad4907cdde6c9de612cd1b2ee0568fb9409 [IA64] Remove COMPAT_IA32 support It is no longer needed, so remove it. Signed-off-by: Tony Luck commit 85718fae2a8d845e66762e6464152a255e323777 Author: Tony Luck Date: Thu Sep 23 13:52:07 2010 -0700 [IA64] Add CONFIG_STACKTRACE_SUPPORT Several Linux features are dependent on stack trace support. Add it so they can be enabled. Signed-off-by: Tony Luck commit 3e3c486012a3dbb113c0ca15ee265d309d77aea9 Author: Daniel Drake Date: Thu Sep 23 17:28:46 2010 +0100 x86, olpc: Rework BIOS signature check The XO-1.5 laptop is not currently detected as an OLPC machine because it fails this XO-1-centric check. Now that we have OLPC OFW support in the kernel, a more sensible check is to see if we found OFW during boot and check the architecture property. Also remove a now-meaningless codepath, as we're always going to have OFW support with OLPC. Signed-off-by: Daniel Drake LKML-Reference: <20100923162846.D8D409D401B@zog.reactivated.net> Cc: Andres Salomon Cc: Grant Likely Signed-off-by: H. Peter Anvin commit 76fb657017588a0912f0d1d140cb807446e4ef05 Author: Daniel Drake Date: Thu Sep 23 17:28:04 2010 +0100 x86, olpc: Only enable PCI configuration type override on XO-1 This configuration type override is for XO-1 only and must not happen on XO-1.5. Signed-off-by: Daniel Drake LKML-Reference: <20100923162805.0F6549D401B@zog.reactivated.net> Cc: Andres Solomon Cc: Grant Likely Signed-off-by: H. Peter Anvin commit d1ea13c6e2cce0106531852daaa93dd97aec9580 Author: Thomas Gleixner Date: Thu Sep 23 18:40:07 2010 +0200 genirq: Cleanup irq_chip->typename leftovers 3 years transition phase is enough. Cleanup the last users and remove the cruft. Signed-off-by: Thomas Gleixner Cc: Leo Chen Cc: Hirokazu Takata Cc: Chris Metcalf Cc: Jeff Dike Cc: Chris Zankel commit 2dfbf4dfbe47a484bae20456c12b40763b9b6af7 Author: Paul E. McKenney Date: Wed Sep 15 23:30:48 2010 -0700 rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter The PROVE_RCU_REPEATEDLY has no "Say Y"/"Say N" advice, so this commit adds it. Reported-by: Johannes Berg Signed-off-by: Paul E. McKenney commit 269dcc1c2ec25864308ee03a3fa26ea819d9f5d0 Author: Paul E. McKenney Date: Tue Sep 7 14:23:09 2010 -0700 rcu: Add tracing data to support queueing models The current tracing data is not sufficient to deduce the average time that a callback spends waiting for a grace period to end. Add three per-CPU counters recording the number of callbacks invoked (ci), the number of callbacks orphaned (co), and the number of callbacks adopted (ca). Given the existing callback queue length (ql), the average wait time in absence of CPU hotplug operations is ql/ci. The units of wait time will be in terms of the duration over which ci was measured. In the presence of CPU hotplug operations, there is room for argument, but ql/(ci-co+ca) won't steer you too far wrong. Also fixes a typo called out by Lucas De Marchi . Signed-off-by: Paul E. McKenney commit 0ddea0ead2ced99eaaaddff2beb755381e5c89f8 Author: Paul E. McKenney Date: Sun Sep 19 21:06:14 2010 -0700 rcu: fix sparse errors in rcutorture.c Add the sparse __rcu address-space identifier and make a couple of variables static. Signed-off-by: Paul E. McKenney commit 53ecfba259f54b6967a35d19f4a564e3bc07997f Author: Paul E. McKenney Date: Mon Sep 13 17:24:21 2010 -0700 rcu: only one evaluation of arg in rcu_dereference_check() unless sparse The current version of the __rcu_access_pointer(), __rcu_dereference_check(), and __rcu_dereference_protected() macros evaluate their "p" argument three times, not counting typeof()s. This is bad news if that argument contains a side effect. This commit therefore evaluates this argument only once in normal kernel builds. However, the straightforward approach defeats sparse's RCU-pointer checking, so when __CHECKER__ is defined, the additional pair of evaluations of the "p" argument are performed in order to permit sparse to detect misuse of RCU-protected pointers. Signed-off-by: Paul E. McKenney Cc: Arnd Bergmann commit 829f8ed2c963df7c23d1c644db6c4387eb1601fa Author: Christian Dietrich Date: Mon Sep 6 16:37:12 2010 +0200 kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC The CONFIG_DEBUG_LOCK_ALLOC ifdef isn't necessary at this point, because it is checked in an outer ifdef level already and has no effect here. Signed-off-by: Christian Dietrich Signed-off-by: Paul E. McKenney commit 18a06301158b5e4e9fae29e477f468e23f3eda90 Author: Linus Walleij Date: Sun Sep 12 12:56:44 2010 +0100 ARM: 6370/1: mmci: use _cansleep GPIO functions Currently the kernel is screaming about slowpath at me for the wp/cd callbacks. Switch to the _cansleep variants so as to silence this. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 4b8caec09562ce7e6e3aaf2954eef8ea73ba67b8 Author: Rabin Vincent Date: Mon Aug 9 12:56:40 2010 +0100 ARM: 6309/1: mmci: allow neither ->status nor gpio_cd to be specified The card may be always present on the board, and for these cases neither a status callback nor a card detect GPIO is required, and card detection polling can be disabled. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 148b8b39c156424da22693d26adcb69800faf95e Author: Rabin Vincent Date: Mon Aug 9 12:55:48 2010 +0100 ARM: 6308/1: mmci: support card detection interrupts If an IRQ can be requested on the card detected GPIO, use it instead of polling. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit c2048b003cfb840ad81bdc6eb55beb12a19a222e Author: Steven Whitehouse Date: Thu Sep 23 14:00:31 2010 +0100 GFS2: Remove localcaching mount option This option defaulted to on for lock_nolock mounts and off otherwise. The only function was to avoid the revalidation of dentries. In the cluster case, that is entirely pointless and liable to cause coherency problems. The patch changes the revalidation to depend upon whether the fs is a local or cluster fs (i.e. it follows the existing default behaviour). I very much doubt anybody ever used this option as there is no reason to. Even so we will continue to accept it on the mount command line, but ignore it. Signed-off-by: Steven Whitehouse commit f57a024ed2ee00d62515ffd4040f5ded3e0eb853 Author: Steven Whitehouse Date: Thu Sep 23 13:41:42 2010 +0100 GFS2: Remove ignore_local_fs mount argument This is been a no-op for a very long time now. I'm pretty sure nobody uses it, but just in case we'll still accept it on the command line, but ignore it. Signed-off-by: Steven Whitehouse commit 9f5f9ffe50e90ed73040d2100db8bfc341cee352 Author: Paul Mackerras Date: Thu Sep 9 19:02:40 2010 +0000 powerpc/perf: Fix sampling enable for PPC970 The logic to distinguish marked instruction events from ordinary events on PPC970 and derivatives was flawed. The result is that instruction sampling didn't get enabled in the PMU for some marked instruction events, so they would never trigger. This fixes it by adding the appropriate break statements in the switch statement. Reported-by: David Binderman Cc: stable@kernel.org Signed-off-by: Paul Mackerras Signed-off-by: Benjamin Herrenschmidt commit 1ef21199a5d98702755cfa0df39b8b5112c423d6 Author: Stephen Rothwell Date: Fri Sep 3 13:19:04 2010 +1000 powerpc: define a compat_sys_recv cond_syscall Signed-off-by: Stephen Rothwell Signed-off-by: Benjamin Herrenschmidt commit d0303d71c2fb9bcb90a8d48e6462c78c86f70ce6 Merge: 90edf27 c79bd89 Author: Ingo Molnar Date: Thu Sep 23 08:02:09 2010 +0200 Merge branch 'linus' into perf/core Conflicts: arch/sparc/kernel/perf_event.c Merge reason: Resolve the conflict. Signed-off-by: Ingo Molnar commit 46eb3b64dddd20f44e76b08676fa642dd374bf1d Author: Steven Rostedt Date: Wed Sep 22 23:10:23 2010 -0400 jump label/x86/sparc64: Remove !CC_OPTIMIZE_FOR_SIZE config conditions The !CC_OPTIMIZE_FOR_SIZE was added to enable the jump label functionality because Jason noticed that the gcc option would not optimize the labels and may even hurt performance. But this is a gcc problem not a kernel one. Removing this condition should add motivation to the gcc developers to actually fix it. Cc: Jason Baron Acked-by: David S. Miller Signed-off-by: Steven Rostedt commit 234bb549eea16ec7d5207ba747fb8dbf489e64c1 Author: Jan Beulich Date: Thu Sep 2 13:46:34 2010 +0100 x86, cleanups: Use clear_page/copy_page rather than memset/memcpy When operating on whole pages, use clear_page() and copy_page() in favor of memset() and memcpy(); after all that's what they are intended for. Signed-off-by: Jan Beulich LKML-Reference: <4C7FB8CA0200007800013F51@vpn.id2.novell.com> Cc: Andrew Morton Signed-off-by: H. Peter Anvin commit 95fccd465eefb3d6bf80dae0496607b534d38313 Author: Steven Rostedt Date: Wed Sep 22 17:37:43 2010 -0400 jump label: Remove duplicate structure for x86 The structure in the x86 jump label code uses the typedef jump_label_t, which is defined by the #ifdef arch type. The structure does not need to be duplicated there. Signed-off-by: Steven Rostedt commit dff9d3c215251022dd8bb3823c9f75edb4b63fe9 Author: David S. Miller Date: Fri Sep 17 11:09:25 2010 -0400 jump label: Add sparc64 support Add jump label support for sparc64. Signed-off-by: David S. Miller LKML-Reference: <3b5b071fcdb2afb7f67cacecfa78b14c740278a7.1284733808.git.jbaron@redhat.com> Signed-off-by: Jason Baron [ cleaned up some formatting ] Signed-off-by: Steven Rostedt commit d9f5ab7b1c0a520867af389bab5d5fcdbd0e407e Author: Jason Baron Date: Fri Sep 17 11:09:22 2010 -0400 jump label: x86 support add x86 support for jump label. I'm keeping this patch separate so its clear to arch maintainers what was required for x86 support this new feature. Hopefully, it wouldn't be too painful for other archs. Signed-off-by: Jason Baron LKML-Reference: [ cleaned up some formatting ] Signed-off-by: Steven Rostedt commit 52159d98be6f26c48f5e02c7ab3c9848a85979b5 Author: Jason Baron Date: Fri Sep 17 11:09:17 2010 -0400 jump label: Convert dynamic debug to use jump labels Convert the 'dynamic debug' infrastructure to use jump labels. Signed-off-by: Jason Baron LKML-Reference: Signed-off-by: Steven Rostedt commit 8f7b50c514206211cc282a4247f7b12f18dee674 Author: Jason Baron Date: Fri Sep 17 11:09:13 2010 -0400 jump label: Tracepoint support for jump labels Make use of the jump label infrastructure for tracepoints. Signed-off-by: Jason Baron LKML-Reference: Signed-off-by: Steven Rostedt commit 4c3ef6d79328c0e23ade60cbfc8d496123a6855c Author: Jason Baron Date: Fri Sep 17 11:09:08 2010 -0400 jump label: Add jump_label_text_reserved() to reserve jump points Add a jump_label_text_reserved(void *start, void *end), so that other pieces of code that want to modify kernel text, can first verify that jump label has not reserved the instruction. Acked-by: Masami Hiramatsu Signed-off-by: Jason Baron LKML-Reference: <06236663a3a7b1c1f13576bb9eccb6d9c17b7bfe.1284733808.git.jbaron@redhat.com> Signed-off-by: Steven Rostedt commit e0cf0cd49632552f063fb3ae58691946da45fb2e Author: Jason Baron Date: Fri Sep 17 11:09:04 2010 -0400 jump label: Initialize workqueue tracepoints *before* they are registered Initialize the workqueue data structures *before* they are registered so that they are ready for callbacks. Signed-off-by: Jason Baron LKML-Reference: Signed-off-by: Steven Rostedt commit bf5438fca2950b03c21ad868090cc1a8fcd49536 Author: Jason Baron Date: Fri Sep 17 11:09:00 2010 -0400 jump label: Base patch for jump label base patch to implement 'jump labeling'. Based on a new 'asm goto' inline assembly gcc mechanism, we can now branch to labels from an 'asm goto' statment. This allows us to create a 'no-op' fastpath, which can subsequently be patched with a jump to the slowpath code. This is useful for code which might be rarely used, but which we'd like to be able to call, if needed. Tracepoints are the current usecase that these are being implemented for. Acked-by: David S. Miller Signed-off-by: Jason Baron LKML-Reference: [ cleaned up some formating ] Signed-off-by: Steven Rostedt commit 90edf27fb89241917e91155bfdcc7c8e5a587222 Merge: 41945f6 8b15575 Author: Ingo Molnar Date: Wed Sep 22 18:45:01 2010 +0200 Merge branch 'linus' into perf/core Conflicts: kernel/hw_breakpoint.c Merge reason: resolve the conflict. Signed-off-by: Ingo Molnar commit a8027073eb127cd207070891374b5c54c2ce3d23 Author: Steven Rostedt Date: Mon Sep 20 15:13:34 2010 -0400 tracing/sched: Add sched_pi_setprio tracepoint Add a tracepoint that shows the priority of a task being boosted via priority inheritance. Cc: Gregory Haskins Acked-by: Peter Zijlstra Signed-off-by: Steven Rostedt commit b3bc211cfe7d5fe94b310480d78e00bea96fbf2a Author: Steven Rostedt Date: Mon Sep 20 22:40:04 2010 -0400 sched: Give CPU bound RT tasks preference If a high priority task is waking up on a CPU that is running a lower priority task that is bound to a CPU, see if we can move the high RT task to another CPU first. Note, if all other CPUs are running higher priority tasks than the CPU bounded current task, then it will be preempted regardless. Signed-off-by: Steven Rostedt Signed-off-by: Peter Zijlstra Cc: Gregory Haskins LKML-Reference: <20100921024138.888922071@goodmis.org> Signed-off-by: Ingo Molnar commit 43fa5460fe60dea5c610490a1d263415419c60f6 Author: Steven Rostedt Date: Mon Sep 20 22:40:03 2010 -0400 sched: Try not to migrate higher priority RT tasks When first working on the RT scheduler design, we concentrated on keeping all CPUs running RT tasks instead of having multiple RT tasks on a single CPU waiting for the migration thread to move them. Instead we take a more proactive stance and push or pull RT tasks from one CPU to another on wakeup or scheduling. When an RT task wakes up on a CPU that is running another RT task, instead of preempting it and killing the cache of the running RT task, we look to see if we can migrate the RT task that is waking up, even if the RT task waking up is of higher priority. This may sound a bit odd, but RT tasks should be limited in migration by the user anyway. But in practice, people do not do this, which causes high prio RT tasks to bounce around the CPUs. This becomes even worse when we have priority inheritance, because a high prio task can block on a lower prio task and boost its priority. When the lower prio task wakes up the high prio task, if it happens to be on the same CPU it will migrate off of it. But in reality, the above does not happen much either, because the wake up of the lower prio task, which has already been boosted, if it was on the same CPU as the higher prio task, it would then migrate off of it. But anyway, we do not want to migrate them either. To examine the scheduling, I created a test program and examined it under kernelshark. The test program created CPU * 2 threads, where each thread had a different priority. The program takes different options. The options used in this change log was to have priority inheritance mutexes or not. All threads did the following loop: static void grab_lock(long id, int iter, int l) { ftrace_write("thread %ld iter %d, taking lock %d\n", id, iter, l); pthread_mutex_lock(&locks[l]); ftrace_write("thread %ld iter %d, took lock %d\n", id, iter, l); busy_loop(nr_tasks - id); ftrace_write("thread %ld iter %d, unlock lock %d\n", id, iter, l); pthread_mutex_unlock(&locks[l]); } void *start_task(void *id) { [...] while (!done) { for (l = 0; l < nr_locks; l++) { grab_lock(id, i, l); ftrace_write("thread %ld iter %d sleeping\n", id, i); ms_sleep(id); } i++; } [...] } The busy_loop(ms) keeps the CPU spinning for ms milliseconds. The ms_sleep(ms) sleeps for ms milliseconds. The ftrace_write() writes to the ftrace buffer to help analyze via ftrace. The higher the id, the higher the prio, the shorter it does the busy loop, but the longer it spins. This is usually the case with RT tasks, the lower priority tasks usually run longer than higher priority tasks. At the end of the test, it records the number of loops each thread took, as well as the number of voluntary preemptions, non-voluntary preemptions, and number of migrations each thread took, taking the information from /proc/$$/sched and /proc/$$/status. Running this on a 4 CPU processor, the results without changes to the kernel looked like this: Task vol nonvol migrated iterations ---- --- ------ -------- ---------- 0: 53 3220 1470 98 1: 562 773 724 98 2: 752 933 1375 98 3: 749 39 697 98 4: 758 5 515 98 5: 764 2 679 99 6: 761 2 535 99 7: 757 3 346 99 total: 5156 4977 6341 787 Each thread regardless of priority migrated a few hundred times. The higher priority tasks, were a little better but still took quite an impact. By letting higher priority tasks bump the lower prio task from the CPU, things changed a bit: Task vol nonvol migrated iterations ---- --- ------ -------- ---------- 0: 37 2835 1937 98 1: 666 1821 1865 98 2: 654 1003 1385 98 3: 664 635 973 99 4: 698 197 352 99 5: 703 101 159 99 6: 708 1 75 99 7: 713 1 2 99 total: 4843 6594 6748 789 The total # of migrations did not change (several runs showed the difference all within the noise). But we now see a dramatic improvement to the higher priority tasks. (kernelshark showed that the watchdog timer bumped the highest priority task to give it the 2 count. This was actually consistent with every run). Notice that the # of iterations did not change either. The above was with priority inheritance mutexes. That is, when the higher prority task blocked on a lower priority task, the lower priority task would inherit the higher priority task (which shows why task 6 was bumped so many times). When not using priority inheritance mutexes, the current kernel shows this: Task vol nonvol migrated iterations ---- --- ------ -------- ---------- 0: 56 3101 1892 95 1: 594 713 937 95 2: 625 188 618 95 3: 628 4 491 96 4: 640 7 468 96 5: 631 2 501 96 6: 641 1 466 96 7: 643 2 497 96 total: 4458 4018 5870 765 Not much changed with or without priority inheritance mutexes. But if we let the high priority task bump lower priority tasks on wakeup we see: Task vol nonvol migrated iterations ---- --- ------ -------- ---------- 0: 115 3439 2782 98 1: 633 1354 1583 99 2: 652 919 1218 99 3: 645 713 934 99 4: 690 3 3 99 5: 694 1 4 99 6: 720 3 4 99 7: 747 0 1 100 Which shows a even bigger change. The big difference between task 3 and task 4 is because we have only 4 CPUs on the machine, causing the 4 highest prio tasks to always have preference. Although I did not measure cache misses, and I'm sure there would be little to measure since the test was not data intensive, I could imagine large improvements for higher priority tasks when dealing with lower priority tasks. Thus, I'm satisfied with making the change and agreeing with what Gregory Haskins argued a few years ago when we first had this discussion. One final note. All tasks in the above tests were RT tasks. Any RT task will always preempt a non RT task that is running on the CPU the RT task wants to run on. Signed-off-by: Steven Rostedt Signed-off-by: Peter Zijlstra Cc: Gregory Haskins LKML-Reference: <20100921024138.605460343@goodmis.org> Signed-off-by: Ingo Molnar commit 58b26c4c025778c09c7a1438ff185080e11b7d0a Author: Venkatesh Pallipadi Date: Fri Sep 10 18:19:17 2010 -0700 sched: Increment cache_nice_tries only on periodic lb scheduler uses cache_nice_tries as an indicator to do cache_hot and active load balance, when normal load balance fails. Currently, this value is changed on any failed load balance attempt. That ends up being not so nice to workloads that enter/exit idle often, as they do more frequent new_idle balance and that pretty soon results in cache hot tasks being pulled in. Making the cache_nice_tries ignore failed new_idle balance seems to make better sense. With that only the failed load balance in periodic load balance gets accounted and the rate of accumulation of cache_nice_tries will not depend on idle entry/exit (short running sleep-wakeup kind of tasks). This reduces movement of cache_hot tasks. schedstat diff (after-before) excerpt from a workload that has frequent and short wakeup-idle pattern (:2 in cpu col below refers to NEWIDLE idx) This snapshot was across ~400 seconds. Without this change: domainstats: domain0 cpu cnt bln fld imb gain hgain nobusyq nobusyg 0:2 306487 219575 73167 110069413 44583 19070 1172 218403 1:2 292139 194853 81421 120893383 50745 21902 1259 193594 2:2 283166 174607 91359 129699642 54931 23688 1287 173320 3:2 273998 161788 93991 132757146 57122 24351 1366 160422 4:2 289851 215692 62190 83398383 36377 13680 851 214841 5:2 316312 222146 77605 117582154 49948 20281 988 221158 6:2 297172 195596 83623 122133390 52801 21301 929 194667 7:2 283391 178078 86378 126622761 55122 22239 928 177150 8:2 297655 210359 72995 110246694 45798 19777 1125 209234 9:2 297357 202011 79363 119753474 50953 22088 1089 200922 10:2 278797 178703 83180 122514385 52969 22726 1128 177575 11:2 272661 167669 86978 127342327 55857 24342 1195 166474 12:2 293039 204031 73211 110282059 47285 19651 948 203083 13:2 289502 196762 76803 114712942 49339 20547 1016 195746 14:2 264446 169609 78292 115715605 50459 21017 982 168627 15:2 260968 163660 80142 116811793 51483 21281 1064 162596 With this change: domainstats: domain0 cpu cnt bln fld imb gain hgain nobusyq nobusyg 0:2 272347 187380 77455 105420270 24975 1 953 186427 1:2 267276 172360 86234 116242264 28087 6 1028 171332 2:2 259769 156777 93281 123243134 30555 1 1043 155734 3:2 250870 143129 97627 127370868 32026 6 1188 141941 4:2 248422 177116 64096 78261112 22202 2 757 176359 5:2 275595 180683 84950 116075022 29400 6 778 179905 6:2 262418 162609 88944 119256898 31056 4 817 161792 7:2 252204 147946 92646 122388300 32879 4 824 147122 8:2 262335 172239 81631 110477214 26599 4 864 171375 9:2 261563 164775 88016 117203621 28331 3 849 163926 10:2 243389 140949 93379 121353071 29585 2 909 140040 11:2 242795 134651 98310 124768957 30895 2 1016 133635 12:2 255234 166622 79843 104696912 26483 4 746 165876 13:2 244944 151595 83855 109808099 27787 3 801 150794 14:2 241301 140982 89935 116954383 30403 6 845 140137 15:2 232271 128564 92821 119185207 31207 4 1416 127148 Signed-off-by: Venkatesh Pallipadi Signed-off-by: Peter Zijlstra LKML-Reference: <1284167957-3675-1-git-send-email-venki@google.com> Signed-off-by: Ingo Molnar commit cf84fd96323633be7d437e1de4505fc82ff2c11a Merge: 31915ab b30a3f6 Author: Ingo Molnar Date: Tue Sep 21 13:56:43 2010 +0200 Merge commit 'v2.6.36-rc5' into sched/core Merge reason: Pick up the latest fixes in -rc5. Signed-off-by: Ingo Molnar commit 41945f6ccf1e86f87fddf6b32db9cf431c05fb54 Author: Peter Zijlstra Date: Thu Sep 16 19:17:24 2010 +0200 perf: Avoid RCU vs preemption assumptions The per-pmu per-cpu context patch converted things from get_cpu_var() to this_cpu_ptr(), but that only works if rcu_read_lock() actually disables preemption, and since there is no such guarantee, we need to fix that. Use the newly introduced {get,put}_cpu_ptr(). Signed-off-by: Peter Zijlstra Cc: Tejun Heo LKML-Reference: <20100917093009.308453028@chello.nl> Signed-off-by: Ingo Molnar commit 8b8e2ec1eeca7f6941bc81cefc9663018d6ceb57 Author: Peter Zijlstra Date: Thu Sep 16 19:21:28 2010 +0200 percpu: Add {get,put}_cpu_ptr These are similar to {get,put}_cpu_var() except for dynamically allocated per-cpu memory. Signed-off-by: Peter Zijlstra Acked-by: Tejun Heo LKML-Reference: <20100917093009.252867712@chello.nl> Signed-off-by: Ingo Molnar commit 7ed569206ebe7467b9c912b857ec46cf1c361111 Merge: e9d2b06 b30a3f6 Author: Ingo Molnar Date: Tue Sep 21 13:55:04 2010 +0200 Merge commit 'v2.6.36-rc5' into perf/core Merge reason: Pick up the latest fixes in -rc5. Signed-off-by: Ingo Molnar commit a800c7cc5380fbb6b4f2f3bd89f6776eb3da2242 Author: Thomas Gleixner Date: Tue Sep 21 11:33:54 2010 +0200 MAINTAINERS: Add IRQ subsystem I do not expect, that this will help anything, but at least it's going to remove the lame excuse about the missing maintainer entry. Signed-off-by: Thomas Gleixner commit c2b9ff24a0df649d4d40947878b5b5ac39c7299e Author: H. Peter Anvin Date: Mon Sep 20 18:01:46 2010 -0700 x86, cpu: Re-run get_cpu_cap() after adjusting the CPUID level At least on Intel, adjusting the max CPUID level can expose new CPUID features, so we need to re-run get_cpu_cap() after changing the CPUID level. Signed-off-by: H. Peter Anvin commit ce5f68246bf2385d6174856708d0b746dc378f20 Author: H. Peter Anvin Date: Mon Sep 20 13:04:45 2010 -0700 x86, hotplug: In the MWAIT case of play_dead, CLFLUSH the cache line When we're using MWAIT for play_dead, explicitly CLFLUSH the cache line before executing MONITOR. This is a potential workaround for the Xeon 7400 erratum AAI65 after having a spurious wakeup and returning around the loop. "Potential" here because it is not certain that that erratum could actually trigger; however, the CLFLUSH should be harmless. Signed-off-by: H. Peter Anvin Acked-by: Venkatesh Pallipadi Cc: Asit Mallick Cc: Arjan van de Ven Cc: Len Brown commit fa6f2cc77081792e4edca9168420a3422299ef15 Author: Jason Baron Date: Fri Sep 17 11:08:56 2010 -0400 jump label: Make text_poke_early() globally visible Make text_poke_early available outside of alternative.c. The jump label patchset wants to make use of it in order to set up the optimal no-op sequences at run-time. Signed-off-by: Jason Baron LKML-Reference: <04cfddf2ba77bcabfc3e524f1849d871d6a1cf9d.1284733808.git.jbaron@redhat.com> Signed-off-by: Steven Rostedt commit f49aa448561fe9215f43405cac6f31eb86317792 Author: Jason Baron Date: Fri Sep 17 11:08:51 2010 -0400 jump label: Make dynamic no-op selection available outside of ftrace Move Steve's code for finding the best 5-byte no-op from ftrace.c to alternative.c. The idea is that other consumers (in this case jump label) want to make use of that code. Signed-off-by: Jason Baron LKML-Reference: <96259ae74172dcac99c0020c249743c523a92e18.1284733808.git.jbaron@redhat.com> Signed-off-by: Steven Rostedt commit 23ac4ae827e6264e21b898f2cd3f601450aa02a6 Author: Andreas Herrmann Date: Fri Sep 17 18:03:43 2010 +0200 x86, k8: Rename k8.[ch] to amd_nb.[ch] and CONFIG_K8_NB to CONFIG_AMD_NB The file names are somehow misleading as the code is not specific to AMD K8 CPUs anymore. The files accomodate code for other AMD CPU northbridges as well. Same is true for the config option which is valid for AMD CPU northbridges in general and not specific to K8. Signed-off-by: Andreas Herrmann LKML-Reference: <20100917160343.GD4958@loge.amd.com> Signed-off-by: H. Peter Anvin commit 9f081ce5da2c8af297a0a7d15a57fb4beeed374b Author: Tony Luck Date: Mon Sep 20 13:15:07 2010 -0700 [IA64] Move local_softirq_pending() definition Ugly #include dependencies. We need to have local_softirq_pending() defined before it gets used in . But provides the definition *after* this #include chain: Signed-off-by: Tony Luck commit 43e3bf203456c4f06bdd6060426976ad2bed9081 Author: Konrad Rzeszutek Wilk Date: Mon Sep 20 13:13:04 2010 -0700 [IA64] iommu: Add a dummy iommu_table.h file in IA64. We don't need a comlex IOMMU dependency list on IA64 so we just define the IOMMU_* macro as a dummy. Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: Tony Luck commit 8d1235852b462cfb66aa036bd4a2686763c69ed4 Author: Steven Whitehouse Date: Fri Sep 17 12:30:23 2010 +0100 GFS2: Make . and .. qstrs constant Rather than calculating the qstrs for . and .. each time we need them, its better to keep a constant version of these and just refer to them when required. Signed-off-by: Steven Whitehouse Reviewed-by: Christoph Hellwig commit 9fa0ea9f26f64fbfc3dfd51d1dc2c230b65ffb19 Author: Steven Whitehouse Date: Mon Sep 13 16:23:00 2010 +0100 GFS2: Use new workqueue scheme The recovery workqueue can be freezable since we want it to finish what it is doing if the system is to be frozen (although why you'd want to freeze a cluster node is beyond me since it will result in it being ejected from the cluster). It does still make sense for single node GFS2 filesystems though. The glock workqueue will benefit from being able to run more work items concurrently. A test running postmark shows improved performance and multi-threaded workloads are likely to benefit even more. It needs to be high priority because the latency directly affects the latency of filesystem glock operations. The delete workqueue is similar to the recovery workqueue in that it must not get blocked by memory allocations, and may run for a long time. Potentially other GFS2 threads might also be converted to workqueues, but I'll leave that for a later patch. Signed-off-by: Steven Whitehouse Acked-by: Tejun Heo commit 1fea7c25a05d388c0cdbe02cbdaf3a2e70885581 Author: Steven Whitehouse Date: Wed Sep 8 10:09:25 2010 +0100 GFS2: Update handling of DLM return codes to match reality GFS2's idea of which return codes it needs to handle was based upon those listed in dlm.h. Those didn't cover all the possible codes and listed some which never happen. This updates GFS2 to handle all the codes which can actually be returned from the DLM under various circumstances. Signed-off-by: Steven Whitehouse commit 7b5e3d5fcf0d6fce66050bd0313a7dc2ae4abc62 Author: Steven Whitehouse Date: Fri Sep 3 09:39:20 2010 +0100 GFS2: Don't enforce min hold time when two demotes occur in rapid succession Due to the design of the VFS, it is quite usual for operations on GFS2 to consist of a lookup (requiring a shared lock) followed by an operation requiring an exclusive lock. If a remote node has cached an exclusive lock, then it will receive two demote events in rapid succession firstly for a shared lock and then to unlocked. The existing min hold time code was triggering in this case, even if the node was otherwise idle since the state change time was being updated by the initial demote. This patch introduces logic to skip the min hold timer in the case that a "double demote" of this kind has occurred. The min hold timer will still be used in all other cases. A new glock flag is introduced which is used to keep track of whether there have been any newly queued holders since the last glock state change. The min hold time is only applied if the flag is set. Signed-off-by: Steven Whitehouse Tested-by: Abhijith Das commit fe08d5a89726675a920b0e9bbbe849c46b27a6e5 Author: Steven Whitehouse Date: Mon Aug 23 11:54:45 2010 +0100 GFS2: Fix whitespace in previous patch Removes the offending space Signed-off-by: Steven Whitehouse commit 3921120e757f9167f3fcd3a1781239824471b14d Author: Benjamin Marzinski Date: Fri Aug 20 00:21:02 2010 -0500 GFS2: fallocate support This patch adds support for fallocate to gfs2. Since the gfs2 does not support uninitialized data blocks, it must write out zeros to all the blocks. However, since it does not need to lock any pages to read from, gfs2 can write out the zero blocks much more efficiently. On a moderately full filesystem, fallocate works around 5 times faster on average. The fallocate call also allows gfs2 to add blocks to the file without changing the filesize, which will make it possible for gfs2 to preallocate space for the rindex file, so that gfs2 can grow a completely full filesystem. Signed-off-by: Benjamin Marzinski Signed-off-by: Steven Whitehouse commit 9a3f236d40a99ea8dca3df40d8ef67631057cad6 Author: Steven Whitehouse Date: Mon Aug 23 11:49:34 2010 +0100 GFS2: Add a bug trap in allocation code This adds a check to ensure that if we reach the block allocator that we don't try and proceed if there is no alloc structure hanging off the inode. This should only happen if there is a bug in GFS2. The error return code is distinctive in order that it will be easily spotted. Signed-off-by: Steven Whitehouse commit 820969f353587281d645735c83c7f07d606e67ba Author: Steven Whitehouse Date: Wed Aug 11 09:53:47 2010 +0100 GFS2: No longer experimental I think the time has arrvied to remove the experimental tag from GFS2. Signed-off-by: Steven Whitehouse commit a2e0f79939e09e74698564b88dee709db208e1e2 Author: Steven Whitehouse Date: Wed Aug 11 09:53:11 2010 +0100 GFS2: Remove i_disksize With the update of the truncate code, ip->i_disksize and inode->i_size are merely copies of each other. This means we can remove ip->i_disksize and use inode->i_size exclusively reducing the size of a GFS2 inode by 8 bytes. Signed-off-by: Steven Whitehouse commit ff8f33c8b30d7b7efdcf2548c7f6e64db6a89b29 Author: Steven Whitehouse Date: Wed Aug 11 09:37:53 2010 +0100 GFS2: New truncate sequence This updates GFS2's truncate code to use the new truncate sequence correctly. This is a stepping stone to being able to remove ip->i_disksize in favour of using i_size everywhere now that the two sizes are always identical. Signed-off-by: Steven Whitehouse Cc: Nick Piggin Cc: Christoph Hellwig commit b51d92da4ebb52b61fdc99c911171562673e88ef Author: Simon Guinot Date: Sun Sep 19 15:33:59 2010 +0200 [ARM] Kirkwood: remove duplicated code in LaCie setup files Signed-off-by: Simon Guinot Signed-off-by: Nicolas Pitre commit 84712e9aa43862ded44e47acfaa93612a7eeaf7c Author: Simon Guinot Date: Sun Sep 19 15:33:58 2010 +0200 [ARM] Kirkwood: add LaCie d2 Network v2 support Signed-off-by: Simon Guinot Signed-off-by: Nicolas Pitre commit 709406494c0ed7da843bad624f6b16f9a2df4a6c Author: Eric Cooper Date: Wed Sep 15 10:49:41 2010 -0400 [ARM] Kirkwood: support for Seagate DockStar This patch adds support for the Seagate FreeAgent DockStar, a Marvell SheevaPlug variant. Signed-off-by: Eric Cooper Signed-off-by: Nicolas Pitre commit fd2ce9c59a63d1daec8d76d272eca5149fb8706a Author: Tanmay Upadhyay Date: Thu Aug 26 11:11:58 2010 +0530 [ARM] OpenRD: Enable SD/UART selection for serial port 1 This patch enables users to choose either the SDIO interface or UART1 (RS232/RS485). The selection can be done through kernel parameter. By default the port would be used for SDIO interface. Passing the string "kw_openrd_init_uart1=232" or "kw_openrd_init_uart1=485" enables either the RS-232 or RS-485 port respectively; disabling the SDIO interface. Anything else selects the default SDIO interface. "kw_openrd_init_uart1=485" is ignored on OpenRD-Base as it doesn't have RS485 port. Signed-off-by: Tanmay Upadhyay Acked-by: Alexander Clouter Signed-off-by: Nicolas Pitre commit f8b63c184ad13cc8adc3dadb557d4fbc29f76e4d Author: Catalin Marinas Date: Mon Sep 13 15:59:07 2010 +0100 ARM: 6382/1: Remove superfluous flush_kernel_dcache_page() Since page cache pages are now considered 'dirty' by default, the cache flushing is handled via __flush_dcache_page() when a page gets mapped to user space. Highmem pages on VIVT systems are flushed during kunmap() and flush_kernel_dcache_page() was already a no-op in this case. ARCH_HAS_FLUSH_KERNEL_DCACHE_PAGE is still defined since ARM needs specific implementations for flush_kernel_vmap_range() and invalidate_kernel_vmap_range(). Cc: Nicolas Pitre Signed-off-by: Catalin Marinas Signed-off-by: Russell King commit 85848dd7ab75fce1134856228582a8df522c91d9 Author: Catalin Marinas Date: Mon Sep 13 15:58:37 2010 +0100 ARM: 6381/1: Use lazy cache flushing on ARMv7 SMP systems ARMv7 processors like Cortex-A9 broadcast the cache maintenance operations in hardware. This patch allows the flush_dcache_page/update_mmu_cache pair to work in lazy flushing mode similar to the UP case. Note that cache flushing on SMP systems now takes place via the set_pte_at() call (__sync_icache_dcache) and there is no race with other CPUs executing code from the new PTE before the cache flushing took place. Tested-by: Rabin Vincent Cc: Nicolas Pitre Signed-off-by: Catalin Marinas Signed-off-by: Russell King commit 6012191aa9c6ffff3a23b81162298318b56d7cb3 Author: Catalin Marinas Date: Mon Sep 13 15:58:06 2010 +0100 ARM: 6380/1: Introduce __sync_icache_dcache() for VIPT caches On SMP systems, there is a small chance of a PTE becoming visible to a different CPU before the current cache maintenance operations in update_mmu_cache(). To avoid this, cache maintenance must be handled in set_pte_at() (similar to IA-64 and PowerPC). This patch provides a unified VIPT cache handling mechanism and implements the __sync_icache_dcache() function for ARMv6 onwards architectures. It is called from set_pte_at() and replaces the update_mmu_cache(). The latter is still used on VIVT hardware where a vm_area_struct is required. Tested-by: Rabin Vincent Cc: Nicolas Pitre Signed-off-by: Catalin Marinas Signed-off-by: Russell King commit c01778001a4f5ad9c62d882776235f3f31922fdd Author: Catalin Marinas Date: Mon Sep 13 15:57:36 2010 +0100 ARM: 6379/1: Assume new page cache pages have dirty D-cache There are places in Linux where writes to newly allocated page cache pages happen without a subsequent call to flush_dcache_page() (several PIO drivers including USB HCD). This patch changes the meaning of PG_arch_1 to be PG_dcache_clean and always flush the D-cache for a newly mapped page in update_mmu_cache(). The patch also sets the PG_arch_1 bit in the DMA cache maintenance function to avoid additional cache flushing in update_mmu_cache(). Tested-by: Rabin Vincent Cc: Nicolas Pitre Signed-off-by: Catalin Marinas Signed-off-by: Russell King commit 0fc73099dd25df2c5181b7bad57d1faa5cd12d3c Author: Catalin Marinas Date: Mon Sep 13 15:57:05 2010 +0100 ARM: 6378/1: Allow lazy cache flushing via PG_arch_1 for highmem pages Commit d73cd42 forced non-lazy cache flushing of highmem pages in flush_dcache_page(). This isn't needed since __flush_dcache_page() (called lazily from update_mmu_cache) can handle highmem pages (fixed by commit 7e5a69e). Signed-off-by: Catalin Marinas Acked-by: Nicolas Pitre Signed-off-by: Russell King commit 4f724beace1be4ba3dbd1a75cff3940354e3ff4f Author: Sundar Iyer Date: Wed Sep 15 10:50:59 2010 +0100 ARM: 6392/1: ux500: add ab8500-regulators machine specific data From: Sundar R Iyer Reviewed-by: Mark Brown Acked-by: Linus Walleij Acked-by: Bengt JONSSON Signed-off-by: Sundar R Iyer Signed-off-by: Russell King commit 9d704c04ff8ae61b60935d67ce334b18fc70f1b2 Author: Sundar Iyer Date: Wed Sep 15 10:45:51 2010 +0100 ARM: 6391/1: ux500: add CPU hotplug support Acked-by: Linus Walleij Signed-off-by: Sundar Iyer Signed-off-by: Russell King commit f0a7a98d1d400e2a5fd9a63ed56d30d30f2864cb Author: Rabin Vincent Date: Mon Sep 13 13:04:02 2010 +0100 ARM: 6373/1: tc35892-gpio: add setup/remove callbacks For board-specific initialization. Cc: Samuel Ortiz Cc: linux-kernel@vger.kernel.org Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit f066439cfc37d498a06de76fcab8c21d4094ca64 Author: Rabin Vincent Date: Mon Sep 13 12:39:38 2010 +0100 ARM: 6372/1: ux500: add DB5500 DMA event lines Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit eaa7f2d50de08efcebb3909ad81fbd76220c9b95 Author: Rabin Vincent Date: Mon Sep 13 12:37:52 2010 +0100 ARM: 6371/1: ux500: add DB5500 pins Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 29aeb3cfeb88ecdb2febb5da247d0cf6a82f8831 Author: Linus Walleij Date: Mon Sep 6 22:15:08 2010 +0100 ARM: 6337/2: AB8500 I2C platform configuration and irq This patch adds the platform part of the AB8500 PRCMU I2C access driver. The old irq name AB4500 is changed to AB8500. Signed-off-by: Mattias Wallin Signed-off-by: Linus Walleij Signed-off-by: Russell King commit aa3090005d27f3c7fba915ccea36b97b669fa3ab Merge: 151b6a5 448352a Author: Russell King Date: Sun Sep 19 11:00:02 2010 +0100 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-tcc into devel-stable commit 15e408cd6ccc3f4f453d87ccd5bc7a84d59feb96 Author: Namhyung Kim Date: Tue Sep 14 21:43:48 2010 +0900 futex: Add lock context annotations queue_lock/unlock/me() and unqueue_me_pi() grab/release spinlocks but are missing proper annotations. Add them. Signed-off-by: Namhyung Kim Cc: Peter Zijlstra Cc: Darren Hart LKML-Reference: <1284468228-8723-3-git-send-email-namhyung@gmail.com> Signed-off-by: Thomas Gleixner commit a3c74c52570c0c4ac90c9a0216de800c39089ba7 Author: Namhyung Kim Date: Tue Sep 14 21:43:47 2010 +0900 futex: Mark restart_block.futex.uaddr[2] __user @uaddr and @uaddr2 fields in restart_block.futex are user pointers. Add __user and remove unnecessary casts. Signed-off-by: Namhyung Kim Cc: Peter Zijlstra Cc: Darren Hart LKML-Reference: <1284468228-8723-2-git-send-email-namhyung@gmail.com> Signed-off-by: Thomas Gleixner commit 1dcc41bb037533839753df983d31778b30b67d93 Author: Namhyung Kim Date: Tue Sep 14 21:43:46 2010 +0900 futex: Change 3rd arg of fetch_robust_entry() to unsigned int* Sparse complains: kernel/futex.c:2495:59: warning: incorrect type in argument 3 (different signedness) Make 3rd argument of fetch_robust_entry() 'unsigned int'. Signed-off-by: Namhyung Kim Cc: Peter Zijlstra Cc: Darren Hart LKML-Reference: <1284468228-8723-1-git-send-email-namhyung@gmail.com> Signed-off-by: Thomas Gleixner commit a68e5c94f7d3dd64fef34dd5d97e365cae4bb42a Author: H. Peter Anvin Date: Fri Sep 17 17:06:46 2010 -0700 x86, hotplug: Move WBINVD back outside the play_dead loop On processors with hyperthreading, when only one thread is offlined the other thread can cause a spurious wakeup on the idled thread. We do not want to re-WBINVD when that happens. Ideally, we should simply skip WBINVD unless we're the last thread on a particular core to shut down, but there might be similar issues elsewhere in the system. Thus, revert to previous behavior of only WBINVD outside the loop. Partly as a result, remove the mb()'s around it: they are not necessary since wbinvd() is a serializing instruction, but they were intended to make sure the compiler didn't do any funny loop optimizations. Reported-by: Asit Mallick Signed-off-by: H. Peter Anvin Cc: Arjan van de Ven Cc: Len Brown Cc: Venkatesh Pallipadi Cc: Peter Zijlstra LKML-Reference: commit ea53069231f9317062910d6e772cca4ce93de8c8 Author: H. Peter Anvin Date: Fri Sep 17 15:39:11 2010 -0700 x86, hotplug: Use mwait to offline a processor, fix the legacy case The code in native_play_dead() has a number of problems: 1. We should use MWAIT when available, to put ourselves into a deeper sleep state. 2. We use the existence of CLFLUSH to determine if WBINVD is safe, but that is totally bogus -- WBINVD is 486+, whereas CLFLUSH is a much later addition. 3. We should do WBINVD inside the loop, just in case of something like setting an A bit on page tables. Pointed out by Arjan van de Ven. This code is based in part of a previous patch by Venki Pallipadi, but unlike that patch this one keeps all the detection code local instead of pre-caching a bunch of information. We're shutting down the CPU; there is absolutely no hurry. This patch moves all the code to C and deletes the global wbinvd_halt() which is broken anyway. Originally-by: Venkatesh Pallipadi Signed-off-by: H. Peter Anvin Reviewed-by: Arjan van de Ven Cc: Len Brown Cc: Venkatesh Pallipadi Cc: Peter Zijlstra LKML-Reference: <20090522232230.162239000@intel.com> commit bc83cccc761953f878088cdfa682de0970b5561f Author: H. Peter Anvin Date: Fri Sep 17 15:36:40 2010 -0700 x86, mwait: Move mwait constants to a common header file We have MWAIT constants spread across three different .c files, for no good reason. Move them all into a common header file. Signed-off-by: H. Peter Anvin Reviewed-by: Arjan van de Ven Cc: Len Brown LKML-Reference: commit 900f9ac9f12dc3dd6fc8e33e16df172eafcaead6 Author: Andreas Herrmann Date: Fri Sep 17 18:02:54 2010 +0200 x86, k8-gart: Decouple handling of garts and northbridges So far we only provide num_k8_northbridges. This is required in different areas (e.g. L3 cache index disable, GART). But not all AMD CPUs provide a GART. Thus it is useful to split off the GART handling from the generic caching of AMD northbridge misc devices. Signed-off-by: Andreas Herrmann LKML-Reference: <20100917160254.GC4958@loge.amd.com> Signed-off-by: H. Peter Anvin commit 3518dd14ca888085797ca8d3a9e11c8ef9e7ae68 Author: Andreas Herrmann Date: Fri Sep 17 18:07:45 2010 +0200 x86, cacheinfo: Fix dependency of AMD L3 CID L3 cache index disable code uses PCI accesses to AMD northbridge functions. Currently the code is #ifdef CONFIG_CPU_SUP_AMD. But it should be #if (defined(CONFIG_CPU_SUP_AMD) && defined(CONFIG_PCI)) which in the end is a dependency to K8_NB. Signed-off-by: Andreas Herrmann LKML-Reference: <20100917160744.GF4958@loge.amd.com> Signed-off-by: H. Peter Anvin commit 448352ae72ef1760c19631a728a3791c1efc52f2 Author: Thomas Gleixner Date: Fri Sep 17 20:27:30 2010 +0200 MAINTAINERS: Add ARM Telechips maintainer Signed-off-by: Thomas Gleixner commit 2aea73ce22b786039906be89b0ae191d4c016c1e Author: Hans J. Koch Date: Fri Sep 17 18:21:36 2010 +0200 ARM: Add board support for Telechips TCC8000-SDK board Add support for the Telechips TCC8000-SDK development board. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit 026cec6164901372c3a16b430cd405f0bb6a7c1f Author: Hans J. Koch Date: Fri Sep 17 18:20:11 2010 +0200 ARM: Add common platform devices for TCC8xxx SoCs This patch introduces a first set of platform devices for integrated peripherals of TCC8xxx processors. Drivers for these devices are available and will be posted in a second step. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit 8a41fa3b3c89e5bd3c69219ddeee268bdcce886c Author: Hans J. Koch Date: Fri Sep 17 18:18:57 2010 +0200 ARM: Basic IO mappings for mach-tcc8k Map the IO ranges of TCC8xxx peripherals. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit 3de7b517dfacf1deb0690dbac28f917643e49975 Author: Hans J. Koch Date: Fri Sep 17 18:17:42 2010 +0200 ARM: Add TCC8xxx system timer Add the system timer using clockevents with the internal TC32 timer. This also adds a clocksource using the same timer. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit e9268ef2252c2dfc7e2d0c435826768bb0e549ea Author: Hans J. Koch Date: Fri Sep 17 18:16:29 2010 +0200 ARM: Introduce plat-tcc irq framework Introduce lowlevel interrupt routines. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit da15797eaec795bc2a1a9adb441214a6f5ea07fc Author: Hans J. Koch Date: Fri Sep 17 18:15:11 2010 +0200 ARM: Add the clock framework for Telechips TCC8xxx processors. This adds definitions and low-level functions to handle clocks in TCC8xxx processors. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit 83ef3338a2ae5d5bd9f5f6803b900b8067660054 Author: Hans J. Koch Date: Fri Sep 17 18:13:56 2010 +0200 ARM: Introduce plat-tcc This patch introduces support for the tcc platform by creating an arch/arm/plat-tcc and arch/arm/mach-tcc8k directories and adding basic include files plus Kconfig and Makefile. Signed-off-by: "Hans J. Koch" Signed-off-by: Thomas Gleixner commit e9d2b064149ff7ef4acbc65a1b9374ac8b218d3e Author: Peter Zijlstra Date: Fri Sep 17 11:28:50 2010 +0200 perf: Undo the per cpu-context timer stuff Revert the timer per cpu-context timers because of unfortunate nohz interaction. Fixing that would have been somewhat ugly, so go back to driving things from the regular tick. Provide a jiffies interval feature for people who want slower rotations. Signed-off-by: Peter Zijlstra Cc: Stephane Eranian Cc: Robert Richter Cc: Yinghai Lu LKML-Reference: <20100917093009.519845633@chello.nl> Signed-off-by: Ingo Molnar commit 917bdd1c9b7b0f4c22f2504c2f0c1074c8ab9df7 Author: Peter Zijlstra Date: Fri Sep 17 11:28:49 2010 +0200 perf: Fix perf_event_exit_cpu_context() Use the right cpu-context.. spotted by preempt warning on hot-unplug Signed-off-by: Peter Zijlstra Cc: Stephane Eranian Cc: Robert Richter LKML-Reference: <20100917093009.461794357@chello.nl> Signed-off-by: Ingo Molnar commit b04243ef7006cda301819f54ee7ce0a3632489e3 Author: Peter Zijlstra Date: Fri Sep 17 11:28:48 2010 +0200 perf: Complete software pmu grouping Aside from allowing software events into a !software group, allow adding !software events to pure software groups. Once we've moved the software group and attached the first !software event, the group will no longer be a pure software group and hence no longer be eligible for movement, at which point the straight ctx comparison is correct again. Signed-off-by: Peter Zijlstra Cc: Stephane Eranian Cc: Robert Richter Cc: Paul Mackerras LKML-Reference: <20100917093009.410784731@chello.nl> Signed-off-by: Ingo Molnar commit d14b12d7adbf214f33eb59f800b5c3d5ed9268e8 Author: Stephane Eranian Date: Fri Sep 17 11:28:47 2010 +0200 perf_events: Fix broken event grouping Events were not grouped anymore. The reason was that in perf_event_open(), the field event->group_leader was initialized before the function looked up the group_fd to find the event leader. This patch fixes this by reordering the code correctly. Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra Cc: Robert Richter LKML-Reference: <20100917093009.360420946@chello.nl> Signed-off-by: Ingo Molnar commit 3ee48b6af49cf534ca2f481ecc484b156a41451d Author: Cliff Wickman Date: Thu Sep 16 11:44:02 2010 -0500 mm, x86: Saving vmcore with non-lazy freeing of vmas During the reading of /proc/vmcore the kernel is doing ioremap()/iounmap() repeatedly. And the buildup of un-flushed vm_area_struct's is causing a great deal of overhead. (rb_next() is chewing up most of that time). This solution is to provide function set_iounmap_nonlazy(). It causes a subsequent call to iounmap() to immediately purge the vma area (with try_purge_vmap_area_lazy()). With this patch we have seen the time for writing a 250MB compressed dump drop from 71 seconds to 44 seconds. Signed-off-by: Cliff Wickman Cc: Andrew Morton Cc: kexec@lists.infradead.org Cc: LKML-Reference: Signed-off-by: Ingo Molnar commit 74704ac6ea402d50c9543cb28247e6d9f521f7ae Author: Jean Pihet Date: Tue Sep 7 09:21:32 2010 +0200 tracing, perf: Add more power related events This patch adds new generic events for dynamic power management tracing: - clock events class: used for clock enable/disable and for clock rate change, - power_domain events class: used for power domains transitions. The OMAP architecture will be using the new events for PM debugging, however the new events are made generic enough to be used by all platforms. Signed-off-by: Jean Pihet Acked-by: Thomas Renninger Cc: discuss@lesswatts.org Cc: linux-pm@lists.linux-foundation.org Cc: Thomas Renninger Cc: Arjan van de Ven Cc: Peter Zijlstra Cc: Len Brown Cc: Kevin Hilman LKML-Reference: Signed-off-by: Ingo Molnar commit 31915ab4cbf507aadab40847cf9989da5e88b090 Author: Heiko Carstens Date: Thu Sep 16 14:42:25 2010 +0200 sched: Remove branch hints within context_switch() With 710390d9 "sched: Optimize branch hint in context_switch()" the branch hint logic within context_switch() got inversed. In fact the hints "if (likely(!mm))" and "if (likely(!prev->mm))" mean that it is likely that the previous and next task are kernel threads. That assumption is certainly counter intuitive, but Tim has shown that at least with his workload this is true. Nevertheless the truth is: it depends on the current workload. So just remove the annotations which also improves readability. Reported-by: Tim Blechmann Signed-off-by: Heiko Carstens Cc: Peter Zijlstra Cc: Mike Galbraith LKML-Reference: <20100916124225.GA2209@osiris.boeblingen.de.ibm.com> Signed-off-by: Ingo Molnar commit 7c996361ef0d02ef8c1435902c909d14195adcdc Author: Yinghai Lu Date: Thu Sep 16 00:20:36 2010 -0700 arm, memblock: Fix the sparsemem build Stephen Rothwell reported this build failure: arch/arm/mm/init.c: In function 'arm_memory_present': arch/arm/mm/init.c:260: warning: ISO C90 forbids mixed declarations and code Caused by commit 719c1514f2 ("memblock/arm: Use new accessors") which forgot a closing brace on a new for_each_memblock() in arm_memory_present(). Reported-by: Stephen Rothwell Signed-off-by: Yinghai Lu Cc: Peter Zijlstra Cc: Benjamin Herrenschmidt Cc: Russell King LKML-Reference: <4C91C544.5050907@kernel.org> Signed-off-by: Ingo Molnar commit fa47f7e52874683a9659df2f1f143105f676dc0f Author: Suresh Siddha Date: Fri Aug 27 11:09:50 2010 -0700 x86, x2apic: Simplify apic init in SMP and UP builds Move enable_IR_x2apic() inside the default_setup_apic_routing(), and for SMP platforms, move the default_setup_apic_routing() after smp_sanity_check(). This cleans up the code that tries to avoid multiple calls to default_setup_apic_routing() when smp_sanity_check() fails (which goes through the APIC_init_uniprocessor() path). Signed-off-by: Suresh Siddha LKML-Reference: <20100827181049.173087246@sbsiddha-MOBL3.sc.intel.com> Signed-off-by: H. Peter Anvin commit 62a92f4c69cd1d9361ad8c16be1dd16e6821bc15 Author: Suresh Siddha Date: Fri Aug 27 11:09:49 2010 -0700 x86, intr-remap: Remove IRTE setup duplicate code Remove IRTE setup duplicate code with prepare_irte(). Signed-off-by: Suresh Siddha LKML-Reference: <20100827181049.095067319@sbsiddha-MOBL3.sc.intel.com> Signed-off-by: H. Peter Anvin commit 75e3cfbed6f71a8f151dc6e413b6ce3c390030cb Author: Suresh Siddha Date: Fri Aug 27 11:09:48 2010 -0700 x86, intr-remap: Set redirection hint in the IRTE Currently the redirection hint in the interrupt-remapping table entry is set to 0, which means the remapped interrupt is directed to the processors listed in the destination. So in logical flat mode in the presence of intr-remapping, this results in a single interrupt multi-casted to multiple cpu's as specified by the destination bit mask. But what we really want is to send that interrupt to one of the cpus based on the lowest priority delivery mode. Set the redirection hint in the IRTE to '1' to indicate that we want the remapped interrupt to be directed to only one of the processors listed in the destination. This fixes the issue of same interrupt getting delivered to multiple cpu's in the logical flat mode in the presence of interrupt-remapping. While there is no functional issue observed with this behavior, this will impact performance of such configurations (<=8 cpu's using logical flat mode in the presence of interrupt-remapping) Signed-off-by: Suresh Siddha LKML-Reference: <20100827181049.013051492@sbsiddha-MOBL3.sc.intel.com> Cc: Weidong Han Cc: # [v2.6.32+] Signed-off-by: H. Peter Anvin commit 93f3b86fb1bd0ad7b4a5eb1ad1fdae2b290633b7 Author: Joel Becker Date: Wed Sep 15 17:00:58 2010 -0700 ocfs2: Initialize the bktcnt variable properly, and call it bucket_count Signed-off-by: Joel Becker commit c0e1a3e80dc030cd54f06416efbf9e439bf6ecb7 Author: Joel Becker Date: Wed Sep 15 16:56:54 2010 -0700 ocfs2: Silence unused warning. When CONFIG_OCFS2_DEBUG_MASKLOG is undefined, we don't use the dentry variable in ocfs2_sync_file(). Let's just move all access to the dentry inside the logging call. Signed-off-by: Joel Becker commit 3661ca66a42e306aaf53246fb75aec1ea01be0f0 Author: Yinghai Lu Date: Wed Sep 15 13:05:29 2010 -0700 memblock: Fix section mismatch warnings Stephen found a bunch of section mismatch warnings with the new memblock changes. Use __init_memblock to replace __init in memblock.c and remove __init in memblock.h. We should not use __init in header files. Reported-by: Stephen Rothwell Tested-by: Stephen Rothwell Signed-off-by: Yinghai Lu Cc: Peter Zijlstra Cc: Benjamin Herrenschmidt LKML-Reference: <4C912709.2090201@kernel.org> Signed-off-by: Ingo Molnar commit 635c17c2b2b4e5cd34f5dcba19d751b4e58533c2 Author: Namhyung Kim Date: Wed Sep 15 10:04:30 2010 +0900 kprobes: Add sparse context annotations This removes following warnings when build with C=1 warning: context imbalance in 'kretprobe_hash_lock' - wrong count at exit warning: context imbalance in 'kretprobe_table_lock' - wrong count at exit warning: context imbalance in 'kretprobe_hash_unlock' - unexpected unlock warning: context imbalance in 'kretprobe_table_unlock' - unexpected unlock Signed-off-by: Namhyung Kim Acked-by: Masami Hiramatsu LKML-Reference: <1284512670-2369-6-git-send-email-namhyung@gmail.com> Signed-off-by: Ingo Molnar commit 6abded71d730322df96c5b7f4ab952ffd5a0080d Author: Namhyung Kim Date: Wed Sep 15 10:04:29 2010 +0900 kprobes: Remove __dummy_buf Remove __dummy_buf which is needed for kallsyms_lookup only. use kallsysm_lookup_size_offset instead. Signed-off-by: Namhyung Kim Acked-by: Masami Hiramatsu LKML-Reference: <1284512670-2369-5-git-send-email-namhyung@gmail.com> Signed-off-by: Ingo Molnar commit 6376b2297502e72255b7eb2893c6044ad5a7b5f4 Author: Namhyung Kim Date: Wed Sep 15 10:04:28 2010 +0900 kprobes: Make functions static Make following (internal) functions static to make sparse happier :-) * get_optimized_kprobe: only called from static functions * kretprobe_table_unlock: _lock function is static * kprobes_optinsn_template_holder: never called but holding asm code Signed-off-by: Namhyung Kim Acked-by: Masami Hiramatsu LKML-Reference: <1284512670-2369-4-git-send-email-namhyung@gmail.com> Signed-off-by: Ingo Molnar commit 05662bdb64c746079de7ac4dc4fb4caa5e8e119f Author: Namhyung Kim Date: Wed Sep 15 10:04:27 2010 +0900 kprobes: Verify jprobe entry point Verify jprobe's entry point is a function entry point using kallsyms' offset value. Signed-off-by: Namhyung Kim Acked-by: Masami Hiramatsu LKML-Reference: <1284512670-2369-3-git-send-email-namhyung@gmail.com> Signed-off-by: Ingo Molnar commit edbaadbe42b0b790618ec49d29626223529d8195 Author: Namhyung Kim Date: Wed Sep 15 10:04:26 2010 +0900 kprobes: Remove redundant address check Remove call to kernel_text_address() in register_jprobes() because it is called right after in register_kprobe(). Signed-off-by: Namhyung Kim Acked-by: Masami Hiramatsu LKML-Reference: <1284512670-2369-2-git-send-email-namhyung@gmail.com> Signed-off-by: Ingo Molnar commit 38a81da2205f94e8a2a834b51a6b99c91fc7c2e8 Author: Matt Helsley Date: Mon Sep 13 13:01:20 2010 -0700 perf events: Clean up pid passing The kernel perf event creation path shouldn't use find_task_by_vpid() because a vpid exists in a specific namespace. find_task_by_vpid() uses current's pid namespace which isn't always the correct namespace to use for the vpid in all the places perf_event_create_kernel_counter() (and thus find_get_context()) is called. The goal is to clean up pid namespace handling and prevent bugs like: https://bugzilla.kernel.org/show_bug.cgi?id=17281 Instead of using pids switch find_get_context() to use task struct pointers directly. The syscall is responsible for resolving the pid to a task struct. This moves the pid namespace resolution into the syscall much like every other syscall that takes pid parameters. Signed-off-by: Matt Helsley Signed-off-by: Peter Zijlstra Cc: Robin Green Cc: Prasad Cc: Arnaldo Carvalho de Melo Cc: Steven Rostedt Cc: Will Deacon Cc: Mahesh Salgaonkar LKML-Reference: Signed-off-by: Ingo Molnar commit 2ebd4ffb6d0cb877787b1e42be8485820158857e Author: Matt Helsley Date: Mon Sep 13 13:01:19 2010 -0700 perf events: Split out task search into helper Split out the code which searches for non-exiting tasks into its own helper. Creating this helper not only makes the code slightly more readable it prepares to move the search out of find_get_context() in a subsequent commit. Signed-off-by: Matt Helsley Signed-off-by: Peter Zijlstra Cc: Robin Green Cc: Prasad Cc: Arnaldo Carvalho de Melo Cc: Steven Rostedt Cc: Will Deacon Cc: Mahesh Salgaonkar LKML-Reference: <561205417b450b8a4bf7488374541d64b4690431.1284407762.git.matthltc@us.ibm.com> Signed-off-by: Ingo Molnar commit d958077d007d98125766d11e82da2fd6497b91d6 Author: Matt Helsley Date: Mon Sep 13 13:01:18 2010 -0700 hw breakpoints: Fix pid namespace bug Hardware breakpoints can't be registered within pid namespaces because tsk->pid is passed rather than the pid in the current namespace. (See https://bugzilla.kernel.org/show_bug.cgi?id=17281 ) This is a quick fix demonstrating the problem but is not the best method of solving the problem since passing pids internally is not the best way to avoid pid namespace bugs. Subsequent patches will show a better solution. Much thanks to Frederic Weisbecker for doing the bulk of the work finding this bug. Signed-off-by: Matt Helsley Signed-off-by: Peter Zijlstra Cc: Robin Green Cc: Prasad Cc: Arnaldo Carvalho de Melo Cc: Steven Rostedt Cc: Will Deacon Cc: Mahesh Salgaonkar LKML-Reference: Signed-off-by: Ingo Molnar commit 64a48d90149bb7007275fac13eaa4cb8d8ce12ea Author: Matt Fleming Date: Mon Sep 13 20:17:29 2010 +0100 perf, sh: Fix patch merge foul-up 3f6da390 ("perf: Rework and fix the arch CPU-hotplug hooks") introduced this breakage. sh_pmu_setup() is missing an opening curly brace. Signed-off-by: Peter Zijlstra LKML-Reference: <20100913191729.GA6440@console-pimps.org> Signed-off-by: Ingo Molnar commit 65175c07653534294257f75baa03a36edad86870 Author: Michael Cree Date: Sun Sep 12 17:37:24 2010 +1200 alpha: Fix HW performance counters to be stopped properly Also fix a few compile errors due to undefined and duplicated variables. Signed-off-by: Michael Cree Signed-off-by: Peter Zijlstra LKML-Reference: <1284269844-23251-1-git-send-email-mcree@orcon.net.nz> Signed-off-by: Ingo Molnar commit d9ca07a05ce1c42ac9717e54eaea4546a3a80978 Author: Stephane Eranian Date: Tue Sep 14 15:34:01 2010 +0200 watchdog: Avoid kernel crash when disabling watchdog In case you boot with the watchdog disabled, i.e., nowatchdog, then, if you try to disable it via /proc/sys/kernel/watchdog, you get a kernel crash. The reason is that you are trying to cancel a hrtimer which has never been initialized. This patch fixes this by skipping execution of watchdog_disable_all_cpus() when the watchdog is marked disabled from boot. Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra LKML-Reference: <4c8f7a23.cae9d80a.2c11.0bb4@mx.google.com> Signed-off-by: Ingo Molnar commit 3aabae7d9dfaed60effe93662f02c19bafc18537 Merge: 79e406d 57c072c Author: Ingo Molnar Date: Wed Sep 15 10:27:31 2010 +0200 Merge branch 'tip/perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit 79e406d7b00ab2b261ae32a59f266fd3b7af6f29 Author: Steven Rostedt Date: Tue Sep 14 22:19:46 2010 -0400 tracing: Remove leftover FTRACE_ENABLE/DISABLE_MCOUNT enums The enums for FTRACE_ENABLE_MCOUNT and FTRACE_DISABLE_MCOUNT were used as commands to ftrace_run_update_code(). But these commands were used by the old nasty ftrace daemon that has long been slain. This is a clean up patch to remove the references to these enums and simplify the code a little. Reported-by: Wu Zhangjin Signed-off-by: Steven Rostedt commit b304d0441a4118fadd4c3f16e4dc600c271030b5 Author: Steven Rostedt Date: Tue Sep 14 18:58:33 2010 -0400 tracing: Do not trace in irq when funcgraph-irq option is zero When the function graph tracer funcgraph-irq option is zero, disable tracing in IRQs. This makes the option have two effects. 1) When reading the trace file, do not display the functions that happen in interrupt context (when detected) 2) [*new*] When recording a trace, skip those that are detected to be in interrupt by the 'in_irq()' function Note, in_irq() is updated at irq_enter() and irq_exit(). There are still functions that are recorded by the function graph tracer that is in interrupt context but outside the irq_enter/exit() routines. Signed-off-by: Steven Rostedt commit 2bd16212b8eb86f9574e78d6605a5ba9e9aa8c4e Author: Jiri Olsa Date: Tue Sep 7 16:53:44 2010 +0200 tracing: Add funcgraph-irq option for function graph tracer. It's handy to be able to disable the irq related output and not to have to jump over each irq related code, when you have no interrest in it. The option is by default enabled, so there's no change to current behaviour. It affects only the final output, so all the irq related data stay in the ring buffer. Signed-off-by: Jiri Olsa LKML-Reference: <20100907145344.GC1912@jolsa.brq.redhat.com> Signed-off-by: Steven Rostedt commit 04a344069052d94b4ea1f95d930cbfa39b4ca292 Author: Phil Carmody Date: Tue Sep 14 13:35:39 2010 -0700 [IA64] unwind - optimise linked-list searches for modules It's clear from the comment in the code about keeping the kernel's unwind table at the front of the list that some attention has been paid to access patterns. Tests on other architectures have shown that a move-to-front optimisation improves searches dramatically. Signed-off-by: Phil Carmody Signed-off-by: Tony Luck commit 747584be04bb98a856bab5cd1bfe56d341881b83 Author: Phil Carmody Date: Tue Sep 14 13:34:43 2010 -0700 [IA64] unwind: remove preprocesser noise, and correct comment The expression in the comment was mis-bracketted. There was also no need to introduce a coding-style breaking macro for a single use, so just made it a static const. Signed-off-by: Phil Carmody Signed-off-by: Tony Luck commit 57c072c7113f54f9512624d6c665db6184448782 Author: Steven Rostedt Date: Tue Sep 14 11:21:11 2010 -0400 tracing: Fix reading of set_ftrace_filter across lists If we do: # cd /sys/kernel/debug # echo 'do_IRQ:traceon schedule:traceon sys_write:traceon' > \ set_ftrace_filter # cat set_ftrace_filter We get the following output: #### all functions enabled #### sys_write:traceon:unlimited schedule:traceon:unlimited do_IRQ:traceon:unlimited This outputs two lists. One is the fact that all functions are currently enabled for function tracing, the other has three probed functions, which happen to have 'traceon' as their commands. Currently, when reading the first list (functions enabled) the seq_file code will receive a "NULL" from the t_next() function causing it to exit early. This makes "read()" from userspace stop reading the code at this boarder. Although read is allowed to do this, some (broken) applications might consider this an end of file and stop early. This patch adds the start of the second list to t_next() when it finishes the first list. It is a simple change and gives the set_ftrace_filter file nicer reading ability. Signed-off-by: Steven Rostedt commit 98c4fd046f07156ca6055677e8f03d4280be16c1 Author: Steven Rostedt Date: Fri Sep 10 11:47:43 2010 -0400 tracing: Keep track of set_ftrace_filter position and allow lseek again This patch keeps track of the index within the elements of set_ftrace_filter and if the position goes backwards, it nicely resets and starts from the beginning again. This allows for lseek and pread to work properly now. Signed-off-by: Steven Rostedt commit 4aeb69672d011fac5c8df671f3ca89f7987c104e Author: Steven Rostedt Date: Thu Sep 9 10:00:28 2010 -0400 tracing: Replace typecasted void pointer in set_ftrace_filter code The set_ftrace_filter uses seq_file and reads from two lists. The pointer returned by t_next() can either be of type struct dyn_ftrace or struct ftrace_func_probe. If there is a bug (there was one) the wrong pointer may be used and the reference can cause an oops. This patch makes t_next() and friends only return the iterator structure which now has a pointer of type struct dyn_ftrace and struct ftrace_func_probe. The t_show() can now test if the pointer is NULL or not and if the pointer exists, it is guaranteed to be of the correct type. Now if there's a bug, only wrong data will be shown but not an oops. Cc: Chris Wright Signed-off-by: Steven Rostedt commit 2bccfffd1538f3523847583213567e2f7ce00926 Author: Steven Rostedt Date: Thu Sep 9 08:43:22 2010 -0400 tracing: Do not reset *pos in set_ftrace_filter After the filtered functions are read, the probed functions are read from the hash in set_ftrace_filter. When the hashed probed functions are read, the *pos passed in is reset. Instead of modifying the pos given to the read function, just record the pos where the filtered functions ended and subtract from that. Signed-off-by: Steven Rostedt commit 7740191cd909b75d75685fb08a5d1f54b8a9d28b Author: Mathieu Desnoyers Date: Mon Sep 13 17:47:00 2010 -0400 sched: Fix string comparison in /proc/sched_features Fix incorrect handling of the following case: INTERACTIVE INTERACTIVE_SOMETHING_ELSE The comparison only checks up to each element's length. Changelog since v1: - Embellish using some Rostedtisms. [ mingo: ^^ == smaller and cleaner ] Signed-off-by: Mathieu Desnoyers Reviewed-by: Steven Rostedt Cc: Cc: Peter Zijlstra Cc: Tony Lindgren LKML-Reference: <20100913214700.GB16118@Krystal> Signed-off-by: Ingo Molnar commit 637bbdc5b83615ef9f45f50399d1c7f27473c713 Author: Dave Young Date: Mon Sep 13 20:19:03 2010 +0800 sched: Remove unused PF_ALIGNWARN flag PF_ALIGNWARN is not implemented and it is for 486 as the comment. It is not likely someone will implement this flag feature. So here remove this flag and leave the valuable 0x00000001 for future use. Signed-off-by: Dave Young Cc: Peter Zijlstra Cc: Linus Torvalds LKML-Reference: <20100913121903.GB22238@darkstar> Signed-off-by: Ingo Molnar commit 469917ce8717b9f8c5298bf279fa138859baab8d Author: Arnaldo Carvalho de Melo Date: Mon Sep 13 10:25:04 2010 -0300 perf ui browser: Don't use windows, slang is enough They are useless and take away precious columns and lines, so stop using windows. One more step in removing newt code, that after all is not being useful at all for the coalescing TUI model in perf. Suggested-by: Christoph Hellwig Cc: Christoph Hellwig Cc: Frederic Weisbecker Cc: Ingo Molnar Cc: Mike Galbraith Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Tom Zanussi LKML-Reference: <20100822082003.GB7365@infradead.org> Signed-off-by: Arnaldo Carvalho de Melo commit 0c67b40872326a5340cab51d79a192a5fbaeb484 Author: Peter Zijlstra Date: Mon Sep 13 11:15:58 2010 +0200 perf: Fix free_event() With the context rework stuff we can actually end up freeing an event before it gets attached to a context. Reported-by: Cyrill Gorcunov Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit cde8e88498c8de69271fcb6d4dd974979368fa67 Author: Peter Zijlstra Date: Mon Sep 13 11:06:55 2010 +0200 perf: Sanitize the RCU logic Simplify things and simply synchronize against two RCU variants for PMU unregister -- we don't care about performance, its module unload if anything. Reported-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra Cc: Paul E. McKenney LKML-Reference: Signed-off-by: Ingo Molnar commit b0b2072df3b544f56b90173c2cde7a374c51546b Author: Stephane Eranian Date: Fri Sep 10 13:28:01 2010 +0200 perf_events: Fix BTS interrupt handling to avoid being dazed by NMI (v2) Fix a bug introduced with commit de725de and the change in the meaning of the return value of intel_pmu_handle_irq(). With the current code, when you are using the BTS, you get 'dazed by NMI' each time the BTS buffer fills up. BTS does interrupt on the PMU vector, thus NMI. You need to take this into account in the return value of the function. This version fixes initial patch which was missing changes to perf_event_intel_ds.c. Signed-off-by: Stephane Eranian Acked-by: Don Zickus Cc: peterz@infradead.org Cc: paulus@samba.org Cc: davem@davemloft.net Cc: fweisbec@gmail.com Cc: perfmon2-devel@lists.sf.net Cc: eranian@gmail.com Cc: robert.richter@amd.com LKML-Reference: <4c8a1686.aae9d80a.5aa4.5e35@mx.google.com> Signed-off-by: Ingo Molnar commit d0ed0c32662e756e7daf85e70a5a27a9c1111331 Author: Joe Perches Date: Sat Sep 11 22:10:54 2010 -0700 x86: Remove pr_ uses of KERN_ Signed-off-by: Joe Perches Cc: Jiri Kosina LKML-Reference: Signed-off-by: Ingo Molnar commit 823108a056c52a83c32ca199a57566a36fad4d19 Author: Yinghai Lu Date: Sat Sep 11 00:08:42 2010 -0700 powerpc, memblock: Fix memblock API change fallout Fix memblock API change fallout in the WII code. Signed-off-by: Yinghai Lu Cc: linux-mm@kvack.org Cc: Benjamin Herrenschmidt LKML-Reference: <4C8B2AFA.2000705@kernel.org> Signed-off-by: Ingo Molnar commit da5ab11cdfdf496448e0e9cdbbc2dfe207a96c94 Author: Michal Simek Date: Sat Sep 11 00:07:06 2010 -0700 memblock, microblaze: Fix memblock API change fallout Adopt Microblaze to the memblock API changes, to fix this build failure: CC arch/microblaze/mm/init.o arch/microblaze/mm/init.c: In function 'mm_cmdline_setup': arch/microblaze/mm/init.c:236: error: 'struct memblock_type' has no member named 'region' ... Signed-off-by: Yinghai Lu Cc: linux-mm@kvack.org Cc: Stephen Rothwell Cc: Benjamin Herrenschmidt LKML-Reference: <4C8B2A9A.1040303@kernel.org> Signed-off-by: Ingo Molnar commit 351e5a703ad994405bd900da330823d3b4a372e0 Author: Venkatesh Pallipadi Date: Fri Sep 10 15:55:50 2010 -0700 x86, mtrr: Support mtrr lookup for range spanning across MTRR range mtrr_type_lookup [start:end] looked up the resultant MTRR type for that range, based on fixed and all variable MTRR ranges. It did check for multiple MTRR var ranges overlapping [start:end] and returned the net type. However, if the [start:end] range spanned across any var MTRR range, mtrr_type_lookup would return an error return of 0xFE. This was based on typical usage of mtrr_type_lookup in PAT mapping, where region being mapped would not normally span across MTRR ranges and also trying to keep the code simple. Mark recently reported the problem with this limitation. When there are two continguous MTRR's of type "writeback" and if there is a memory mapping over a region starting in one MTRR range and ending in another MTRR range, such mapping will fallback to "uncached" due to the above limitation. Change below adds support for such lookups spanning multiple MTRR ranges. We now have a wrapper mtrr_type_lookup that dynamically splits such a region into smaller chunks that fit within one MTRR range and does a __mtrr_type_lookup on it and combine the results later. Reported-by: Mark Langsdorf Signed-off-by: Venkatesh Pallipadi LKML-Reference: <1284159350-19841-3-git-send-email-venki@google.com> Reviewed-by: Suresh Siddha Signed-off-by: H. Peter Anvin commit a7f07cfbaa1dd5bf9e615948f280c92e7928e6f7 Author: Venkatesh Pallipadi Date: Fri Sep 10 15:55:49 2010 -0700 x86, mtrr: Refactor MTRR type overlap check code Move the MTRR type overlap check into a new function. No functional change in this patch. Just making it easier to add multiple region overlap check in the following patch. Signed-off-by: Venkatesh Pallipadi LKML-Reference: <1284159350-19841-2-git-send-email-venki@google.com> Reviewed-by: Suresh Siddha Signed-off-by: H. Peter Anvin commit 5e98d492406818e6a94c0ba54c61f59d40cefa4a Author: Goldwyn Rodrigues Date: Mon Jun 28 10:04:32 2010 -0500 Track negative entries v3 Track negative dentries by recording the generation number of the parent directory in d_fsdata. The generation number for the parent directory is recorded in the inode_info, which increments every time the lock on the directory is dropped. If the generation number of the parent directory and the negative dentry matches, there is no need to perform the revalidate, else a revalidate is forced. This improves performance in situations where nodes look for the same non-existent file multiple times. Thanks Mark for explaining the DLM sequence. Signed-off-by: Goldwyn Rodrigues Signed-off-by: Joel Becker commit b4d693fcc5fe99ed211addb5c6a0f8398f0b266e Author: Tao Ma Date: Mon Aug 16 16:58:21 2010 +0800 ocfs2: Cache system inodes of other slots. Durring orphan scan, if we are slot 0, and we are replaying orphan_dir:0001, the general process is that for every file in this dir: 1. we will iget orphan_dir:0001, since there is no inode for it. we will have to create an inode and read it from the disk. 2. do the normal work, such as delete_inode and remove it from the dir if it is allowed. 3. call iput orphan_dir:0001 when we are done. In this case, since we have no dcache for this inode, i_count will reach 0, and VFS will have to call clear_inode and in ocfs2_clear_inode we will checkpoint the inode which will let ocfs2_cmt and journald begin to work. 4. We loop back to 1 for the next file. So you see, actually for every deleted file, we have to read the orphan dir from the disk and checkpoint the journal. It is very time consuming and cause a lot of journal checkpoint I/O. A better solution is that we can have another reference for these inodes in ocfs2_super. So if there is no other race among nodes(which will let dlmglue to checkpoint the inode), for step 3, clear_inode won't be called and for step 1, we may only need to read the inode for the 1st time. This is a big win for us. So this patch will try to cache system inodes of other slots so that we will have one more reference for these inodes and avoid the extra inode read and journal checkpoint. Signed-off-by: Tao Ma Signed-off-by: Joel Becker commit a33f13efe05192e7a805018a2ce2b2afddd04057 Author: Joel Becker Date: Mon Aug 16 12:10:17 2010 -0700 libfs: Fix shift bug in generic_check_addressable() generic_check_addressable() erroneously shifts pages down by a block factor when it should be shifting up. To prevent overflow, we shift blocks down to pages. Signed-off-by: Joel Becker commit 3bdb8efd94a73bb137e3315cd831cbc874052b4b Author: Patrick J. LoPresti Date: Thu Jul 22 15:05:57 2010 -0700 OCFS2: Allow huge (> 16 TiB) volumes to mount The OCFS2 developers have already done all of the hard work to allow volumes larger than 16 TiB. But there is still a "sanity check" in fs/ocfs2/super.c that prevents the mounting of such volumes, even when the cluster size and journal options would allow it. This patch replaces that sanity check with a more sophisticated one to mount a huge volume provided that (a) it is addressable by the raw word/address size of the system (borrowing a test from ext4); (b) the volume is using JBD2; and (c) the JBD2_FEATURE_INCOMPAT_64BIT flag is set on the journal. I factored out the sanity check into its own function. I also moved it from ocfs2_initialize_super() down to ocfs2_check_volume(); any earlier, and the journal will not have been initialized yet. This patch is one of a pair, and it depends on the other ("JBD2: Allow feature checks before journal recovery"). I have tested this patch on small volumes, huge volumes, and huge volumes without 64-bit block support in the journal. All of them appear to work or to fail gracefully, as appropriate. Signed-off-by: Patrick LoPresti Signed-off-by: Joel Becker commit e5f4d3394a52ac351f1a479fe136d92fa5228eff Author: Peter Zijlstra Date: Fri Sep 10 17:38:06 2010 +0200 perf: Fix perf_init_event() We ought to return -ENOENT when non of the registered PMUs recognise the requested event. This fixes a boot crash that occurs if no PMU is available but the NMI watchdog tries to register an event. Reported-by: Ingo Molnar Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit 1113e1b504f6e8d4364c0b73c9097828067d4617 Author: Patrick J. LoPresti Date: Thu Jul 22 15:04:16 2010 -0700 JBD2: Allow feature checks before journal recovery Before we start accessing a huge (> 16 TiB) OCFS2 volume, we need to confirm that its journal supports 64-bit offsets. In particular, we need to check the journal's feature bits before recovering the journal. This is not possible with JBD2 at present, because the journal superblock (where the feature bits reside) is not loaded from disk until the journal is recovered. This patch loads the journal superblock in jbd2_journal_check_used_features() if it has not already been loaded, allowing us to check the feature bits before journal recovery. Signed-off-by: Patrick LoPresti Cc: linux-ext4@vger.kernel.org Acked-by: "Theodore Ts'o" Signed-off-by: Joel Becker commit 30ca22c70e3ef0a96ff84de69cd7e8561b416cb2 Author: Patrick J. LoPresti Date: Thu Jul 22 15:03:41 2010 -0700 ext3/ext4: Factor out disk addressability check As part of adding support for OCFS2 to mount huge volumes, we need to check that the sector_t and page cache of the system are capable of addressing the entire volume. An identical check already appears in ext3 and ext4. This patch moves the addressability check into its own function in fs/libfs.c and modifies ext3 and ext4 to invoke it. [Edited to -EINVAL instead of BUG_ON() for bad blocksize_bits -- Joel] Signed-off-by: Patrick LoPresti Cc: linux-ext4@vger.kernel.org Acked-by: Andreas Dilger Signed-off-by: Joel Becker commit 729963a1ff8d069d05dab6a024bfd59805ac622c Merge: 17ae521 6ea4843 Author: Joel Becker Date: Fri Sep 10 08:41:04 2010 -0700 Merge branch 'cow_readahead' of git://oss.oracle.com/git/tma/linux-2.6 into merge-2 commit 17ae521158d6fe89cfdd00a9990aa40d02e81391 Author: Tao Ma Date: Mon Aug 2 11:02:14 2010 +0800 ocfs2: Remove obsolete comments before ocfs2_start_trans. Signed-off-by: Tao Ma Signed-off-by: Joel Becker commit f9c57ada32ea3f2e12600cf274035fff063b2e0f Author: Tao Ma Date: Mon Aug 2 11:02:13 2010 +0800 ocfs2: Remove unused old_id in ocfs2_commit_cache. Signed-off-by: Tao Ma Signed-off-by: Joel Becker commit 4c38881f87c21ada5609a4065cb10e3e74da0d6e Author: Jan Kara Date: Thu Aug 5 20:32:46 2010 +0200 ocfs2: Remove ocfs2_sync_inode() ocfs2_sync_inode() is used only from ocfs2_sync_file(). But all data has already been written before calling ocfs2_sync_file() and ocfs2 doesn't use inode's private_list for tracking metadata buffers thus sync_mapping_buffers() is superfluous as well. Signed-off-by: Jan Kara Acked-by: Mark Fasheh Signed-off-by: Joel Becker commit 83fd9c7f65634ac440a6b9b7a63ba562f213ac60 Author: Goldwyn Rodrigues Date: Thu Jun 10 17:21:36 2010 -0500 Reorganize data elements to reduce struct sizes Thanks for the comments. I have incorportated them all. CONFIG_OCFS2_FS_STATS is enabled and CONFIG_DEBUG_LOCK_ALLOC is disabled. Statistics now look like - ocfs2_write_ctxt: 2144 - 2136 = 8 ocfs2_inode_info: 1960 - 1848 = 112 ocfs2_journal: 168 - 160 = 8 ocfs2_lock_res: 336 - 304 = 32 ocfs2_refcount_tree: 512 - 472 = 40 Signed-off-by: Goldwyn Rodrigues Signed-off-by: Joel Becker commit 95fa859a268fd7d9bae6f2d4d095e3f61100ac1b Author: Tao Ma Date: Wed Jun 9 16:48:59 2010 +0800 ocfs2: Remove obscure error handling in direct_write. In ocfs2, actually we don't allow any direct write pass i_size, see the function ocfs2_prepare_inode_for_write. So we don't need the bogus simple_setsize. Signed-off-by: Tao Ma Signed-off-by: Joel Becker commit 3c3f20c9813391ba4004764072989744395cf405 Author: Tao Ma Date: Tue Jun 1 13:58:13 2010 +0800 ocfs2: Add some trace log for orphan scan. Now orphan scan worker has no trace log, so it is very hard to tell whether it is finished or blocked. So add 2 mlog trace log so that we can tell whether the current orphan scan worker is blocked or not. It does help when I analyzed a orphan scan bug. Signed-off-by: Tao Ma Signed-off-by: Joel Becker commit ddee5cdb70e6f87de2fc696b87bd7bd184a51eb8 Author: Tristan Ye Date: Sat May 22 16:26:33 2010 +0800 Ocfs2: Add new OCFS2_IOC_INFO ioctl for ocfs2 v8. The reason why we need this ioctl is to offer the none-privileged end-user a possibility to get filesys info gathering. We use OCFS2_IOC_INFO to manipulate the new ioctl, userspace passes a structure to kernel containing an array of request pointers and request count, such as, * From userspace: struct ocfs2_info_blocksize oib = { .ib_req = { .ir_magic = OCFS2_INFO_MAGIC, .ir_code = OCFS2_INFO_BLOCKSIZE, ... } ... } struct ocfs2_info_clustersize oic = { ... } uint64_t reqs[2] = {(unsigned long)&oib, (unsigned long)&oic}; struct ocfs2_info info = { .oi_requests = reqs, .oi_count = 2, } ret = ioctl(fd, OCFS2_IOC_INFO, &info); * In kernel: Get the request pointers from *info*, then handle each request one bye one. Idea here is to make the spearated request small enough to guarantee a better backward&forward compatibility since a small piece of request would be less likely to be broken if filesys on raw disk get changed. Currently, the following 7 requests are supported per the requirement from userspace tool o2info, and I believe it will grow over time:-) OCFS2_INFO_CLUSTERSIZE OCFS2_INFO_BLOCKSIZE OCFS2_INFO_MAXSLOTS OCFS2_INFO_LABEL OCFS2_INFO_UUID OCFS2_INFO_FS_FEATURES OCFS2_INFO_JOURNAL_SIZE This ioctl is only specific to OCFS2. Signed-off-by: Tristan Ye Signed-off-by: Joel Becker commit cee010ec5211b96f33c5c2208f5c14ebb04b634a Author: Peter Zijlstra Date: Fri Sep 10 12:51:54 2010 +0200 perf: Ensure we call add_event_to_ctx() with the right locks held Even though we call it from the inherit path, where the child is not yet accessible, we need to hold ctx->lock, add_event_to_ctx() assumes IRQs are disabled. Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit b2b57fe053c9cf8b8af5a0e826a465996afed0ff Author: Brian Gerst Date: Fri Sep 3 21:17:19 2010 -0400 x86, fpu: Merge fpu_save_init() Make 64-bit use the 32-bit version of fpu_save_init(). Remove unused clear_fpu_state(). Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-13-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 58a992b9cbaf449aeebd3575c3695a9eb5d95b5e Author: Brian Gerst Date: Fri Sep 3 21:17:18 2010 -0400 x86-32, fpu: Rewrite fpu_save_init() Rewrite fpu_save_init() to prepare for merging with 64-bit. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-12-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit eec73f813ab0954253e5e2168119c4555f83f07d Author: Brian Gerst Date: Fri Sep 3 21:17:17 2010 -0400 x86, fpu: Remove PSHUFB_XMM5_* macros The PSHUFB_XMM5_* macros are no longer used. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-11-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 8eb91a577d7763d21628f6761045328784b1911c Author: Brian Gerst Date: Fri Sep 3 21:17:16 2010 -0400 x86, fpu: Remove unnecessary ifdefs from i387 code. Remove ifdefs for code that the compiler can optimize away on 64-bit. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-10-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit a334fe43d85f570ae907acf988a053c5eff78d6e Author: Brian Gerst Date: Fri Sep 3 21:17:15 2010 -0400 x86-32, fpu: Remove math_emulate stub check_fpu() in bugs.c halts boot if no FPU is found and math emulation isn't enabled. Therefore this stub will never be used. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-9-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 820241356d6aa9a895fc10def15794a5a5bfcd98 Author: Brian Gerst Date: Fri Sep 3 21:17:14 2010 -0400 x86-64, fpu: Simplify constraints for fxsave/fxtstor Use the "R" constraint (legacy register) instead of listing all the possible registers. Clean up the comments as well. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-8-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 10c11f304986a1f84201c2261a428701f9d2dffc Author: Brian Gerst Date: Fri Sep 3 21:17:13 2010 -0400 x86-64, fpu: Fix %cs value in convert_from_fxsr() While %ds still contains the userspace selector, %cs is KERNEL_CS at this point. Always get %cs from pt_regs even for the current task. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-7-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit a4d4fbc7735bba6654b20f859135f9d3f8fe7f76 Author: Brian Gerst Date: Fri Sep 3 21:17:12 2010 -0400 x86-64, fpu: Disable preemption when using TS_USEDFPU Consolidates code and fixes the below race for 64-bit. commit 9fa2f37bfeb798728241cc4a19578ce6e4258f25 Author: torvalds Date: Tue Sep 2 07:37:25 2003 +0000 Be a lot more careful about TS_USEDFPU and preemption We had some races where we testecd (or set) TS_USEDFPU together with sequences that depended on the setting (like clearing or setting the TS flag in %cr0) and we could be preempted in between, which screws up the FPU state, since preemption will itself change USEDFPU and the TS flag. This makes it a lot more explicit: the "internal" low-level FPU functions ("__xxxx_fpu()") all require preemption to be disabled, and the exported "real" functions will make sure that is the case. One case - in __switch_to() - was switched to the non-preempt-safe internal version, since the scheduler itself has already disabled preemption. BKrev: 3f5448b5WRiQuyzAlbajs3qoQjSobw Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-6-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit bfd946cb891800d408decaae268a3480775178a3 Author: Brian Gerst Date: Fri Sep 3 21:17:11 2010 -0400 x86, fpu: Merge __save_init_fpu() __save_init_fpu() is identical for 32-bit and 64-bit. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-5-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 51115d4d45700fc7c08306f7ba6e68551f526ae5 Author: Brian Gerst Date: Fri Sep 3 21:17:10 2010 -0400 x86, fpu: Merge tolerant_fwait() Commit e2e75c91 merged the math exception handler, allowing both 32-bit and 64-bit to handle math exceptions from kernel mode. Switch to using the 64-bit version of tolerant_fwait() without fnclex, which simply ignores the exception if one is still pending from userspace. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-4-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 6ac8bac2684235f4caf22a410549c582aa7327d6 Author: Brian Gerst Date: Fri Sep 3 21:17:09 2010 -0400 x86, fpu: Merge fpu_init() Make fpu_init() handle 32-bit setup. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-3-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 2df7a6e9e8e67c19e5fe2eac3f2d2223b7bb4a7b Author: Brian Gerst Date: Fri Sep 3 21:17:08 2010 -0400 x86: Use correct type for %cr4 %cr4 is 64-bit in 64-bit mode (although the upper 32-bits are currently reserved). Use unsigned long for the temporary variable to get the right size. Signed-off-by: Brian Gerst Acked-by: Pekka Enberg Cc: Suresh Siddha LKML-Reference: <1283563039-3466-2-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin commit 3b8fad3e2f5f69bfd8e42d099ca8582fb2342edf Author: Frederic Weisbecker Date: Wed Sep 8 14:26:00 2010 +0200 irq: Fix circular headers dependency asm-generic/hardirq.h needs asm/irq.h which might include linux/interrupt.h as in the sparc 32 case. At this point we need irq_cpustat generic definitions, but those are included later in asm-generic/hardirq.h. Then delay a bit the inclusion of irq.h from asm-generic/hardirq.h, it doesn't need to be included early. This fixes: include/linux/interrupt.h: In function '__raise_softirq_irqoff': include/linux/interrupt.h:414: error: implicit declaration of function 'local_softirq_pending' include/linux/interrupt.h:414: error: lvalue required as left operand of assignment Reported-by: Ingo Molnar Signed-off-by: Frederic Weisbecker Cc: Lai Jiangshan Cc: Koki Sanagi Cc: mathieu.desnoyers@efficios.com Cc: rostedt@goodmis.org Cc: nhorman@tuxdriver.com Cc: scott.a.mcmillan@intel.com Cc: eric.dumazet@gmail.com Cc: kaneshige.kenji@jp.fujitsu.com Cc: davem@davemloft.net Cc: izumi.taku@jp.fujitsu.com Cc: kosaki.motohiro@jp.fujitsu.com LKML-Reference: <20100908122557.GA5310@nowhere> Signed-off-by: Ingo Molnar commit 4e231c7962ce711c7d8c2a4dc23ecd1e8fc28363 Author: Peter Zijlstra Date: Thu Sep 9 21:01:59 2010 +0200 perf: Fix up delayed_put_task_struct() I missed a perf_event_ctxp user when converting it to an array. Pull this last user into perf_event.c as well and fix it up. Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit 8af3c153baf95374eff20a37f00c59a295b52756 Author: Miroslav Lichvar Date: Tue Sep 7 16:43:46 2010 +0200 ntp: Clamp PLL update interval Clamp update interval to reduce PLL gain with low sampling rate (e.g. intermittent network connection) to avoid instability. The clamp roughly corresponds to the loop time constant, it's 8 * poll interval for SHIFT_PLL 2 and 32 * poll interval for SHIFT_PLL 4. This gives good results without affecting the gain in normal conditions where ntpd skips only up to seven consecutive samples. Signed-off-by: Miroslav Lichvar Acked-by: john stultz LKML-Reference: <1283870626-9472-1-git-send-email-mlichvar@redhat.com> Signed-off-by: Thomas Gleixner commit 1b9a644fece117cfa5474a2388d6b89d1baf8ddf Author: Peter Zijlstra Date: Tue Sep 7 18:32:22 2010 +0200 perf: Optimize context ops Assuming we don't mix events of different pmus onto a single context (with the exeption of software events inside a hardware group) we can now assume that all events on a particular context belong to the same pmu, hence we can disable the pmu for the entire context operations. This reduces the amount of hardware writes. The exception for swevents comes from the fact that the sw pmu disable is a nop. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit 89a1e18731959e9953fae15ddc1a983eb15a4f19 Author: Peter Zijlstra Date: Tue Sep 7 17:34:50 2010 +0200 perf: Provide a separate task context for swevents Since software events are always schedulable, mixing them up with hardware events (who are not) can lead to funny scheduling oddities. Giving them their own context solves this. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit 8dc85d547285668e509f86c177bcd4ea055bcaaf Author: Peter Zijlstra Date: Thu Sep 2 16:50:03 2010 +0200 perf: Multiple task contexts Provide the infrastructure for multiple task contexts. A more flexible approach would have resulted in more pointer chases in the scheduling hot-paths. This approach has the limitation of a static number of task contexts. Since I expect most external PMUs to be system wide, or at least node wide (as per the intel uncore unit) they won't actually need a task context. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit eb184479874238393ac186c4e054d24311c34aaa Author: Peter Zijlstra Date: Tue Sep 7 15:55:13 2010 +0200 perf: Clean up perf_event_context allocation Unify the two perf_event_context allocation sites. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit 97dee4f3206622f31396dede2b5ddb8670458f56 Author: Peter Zijlstra Date: Tue Sep 7 15:35:33 2010 +0200 perf: Move some code around Move all inherit code near each other. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit 108b02cfce04ee90b0a07ee0b104baffd39f5934 Author: Peter Zijlstra Date: Mon Sep 6 14:32:03 2010 +0200 perf: Per-pmu-per-cpu contexts Allocate per-cpu contexts per pmu. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit b5ab4cd563e7ab49b27957704112a8ecade54e1f Author: Peter Zijlstra Date: Mon Sep 6 16:32:21 2010 +0200 perf: Per cpu-context rotation timer Give each cpu-context its own timer so that it is a self contained entity, this eases the way for per-pmu-per-cpu contexts as well as provides the basic infrastructure to allow different rotation times per pmu. Things to look at: - folding the tick and these TICK_NSEC timers - separate task context rotation Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit b28ab83c595e767f2028276b7398d17f2253cec0 Author: Peter Zijlstra Date: Mon Sep 6 14:48:15 2010 +0200 perf: Remove the swevent hash-table from the cpu context Separate the swevent hash-table from the cpu_context bits in preparation for per pmu cpu contexts. This keeps the swevent hash a global entity. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit c3f00c70276d8ae82578c8b773e2db657f69a478 Author: Peter Zijlstra Date: Wed Aug 18 14:37:15 2010 +0200 perf: Separate find_get_context() from event initialization Separate find_get_context() from the event allocation and initialization so that we may make find_get_context() depend on the event pmu in a later patch. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Frederic Weisbecker Cc: Lin Ming Cc: Yanmin LKML-Reference: Signed-off-by: Ingo Molnar commit 15ac9a395a753cb28c674e7ea80386ffdff21785 Author: Peter Zijlstra Date: Mon Sep 6 15:51:45 2010 +0200 perf: Remove the sysfs bits Neither the overcommit nor the reservation sysfs parameter were actually working, remove them as they'll only get in the way. Signed-off-by: Peter Zijlstra Cc: paulus LKML-Reference: Signed-off-by: Ingo Molnar commit a4eaf7f14675cb512d69f0c928055e73d0c6d252 Author: Peter Zijlstra Date: Wed Jun 16 14:37:10 2010 +0200 perf: Rework the PMU methods Replace pmu::{enable,disable,start,stop,unthrottle} with pmu::{add,del,start,stop}, all of which take a flags argument. The new interface extends the capability to stop a counter while keeping it scheduled on the PMU. We replace the throttled state with the generic stopped state. This also allows us to efficiently stop/start counters over certain code paths (like IRQ handlers). It also allows scheduling a counter without it starting, allowing for a generic frozen state (useful for rotating stopped counters). The stopped state is implemented in two different ways, depending on how the architecture implemented the throttled state: 1) We disable the counter: a) the pmu has per-counter enable bits, we flip that b) we program a NOP event, preserving the counter state 2) We store the counter state and ignore all read/overflow events Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Will Deacon Cc: Paul Mundt Cc: Frederic Weisbecker Cc: Cyrill Gorcunov Cc: Lin Ming Cc: Yanmin Cc: Deng-Cheng Zhu Cc: David Miller Cc: Michael Cree LKML-Reference: Signed-off-by: Ingo Molnar commit fa407f35e0298d841e4088f95a7f9cf6e725c6d5 Author: Peter Zijlstra Date: Thu Jun 24 12:35:12 2010 +0200 perf: Shrink hw_perf_event Use hw_perf_event::period_left instead of hw_perf_event::remaining and win back 8 bytes. Signed-off-by: Peter Zijlstra Cc: paulus Cc: Frederic Weisbecker LKML-Reference: Signed-off-by: Ingo Molnar commit ad5133b7030d04ce7701aa7cbe98f561347c79c2 Author: Peter Zijlstra Date: Tue Jun 15 12:22:39 2010 +0200 perf: Default PMU ops Provide default implementations for the pmu txn methods, this allows us to remove some conditional code. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Will Deacon Cc: Paul Mundt Cc: Frederic Weisbecker Cc: Cyrill Gorcunov Cc: Lin Ming Cc: Yanmin Cc: Deng-Cheng Zhu Cc: David Miller Cc: Michael Cree LKML-Reference: Signed-off-by: Ingo Molnar commit 33696fc0d141bbbcb12f75b69608ea83282e3117 Author: Peter Zijlstra Date: Mon Jun 14 08:49:00 2010 +0200 perf: Per PMU disable Changes perf_disable() into perf_pmu_disable(). Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Will Deacon Cc: Paul Mundt Cc: Frederic Weisbecker Cc: Cyrill Gorcunov Cc: Lin Ming Cc: Yanmin Cc: Deng-Cheng Zhu Cc: David Miller Cc: Michael Cree LKML-Reference: Signed-off-by: Ingo Molnar commit 24cd7f54a0d47e1d5b3de29e2456bfbd2d8447b7 Author: Peter Zijlstra Date: Fri Jun 11 17:32:03 2010 +0200 perf: Reduce perf_disable() usage Since the current perf_disable() usage is only an optimization, remove it for now. This eases the removal of the __weak hw_perf_enable() interface. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Will Deacon Cc: Paul Mundt Cc: Frederic Weisbecker Cc: Cyrill Gorcunov Cc: Lin Ming Cc: Yanmin Cc: Deng-Cheng Zhu Cc: David Miller Cc: Michael Cree LKML-Reference: Signed-off-by: Ingo Molnar commit 9ed6060d286b1eb55974d09080f442f809408c42 Author: Peter Zijlstra Date: Fri Jun 11 17:36:35 2010 +0200 perf: Unindent labels Fixup random annoying style bits. Signed-off-by: Peter Zijlstra Cc: paulus LKML-Reference: Signed-off-by: Ingo Molnar commit b0a873ebbf87bf38bf70b5e39a7cadc96099fa13 Author: Peter Zijlstra Date: Fri Jun 11 13:35:08 2010 +0200 perf: Register PMU implementations Simple registration interface for struct pmu, this provides the infrastructure for removing all the weak functions. Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Will Deacon Cc: Paul Mundt Cc: Frederic Weisbecker Cc: Cyrill Gorcunov Cc: Lin Ming Cc: Yanmin Cc: Deng-Cheng Zhu Cc: David Miller Cc: Michael Cree LKML-Reference: Signed-off-by: Ingo Molnar commit 51b0fe39549a04858001922919ab355dee9bdfcf Author: Peter Zijlstra Date: Fri Jun 11 13:35:57 2010 +0200 perf: Deconstify struct pmu sed -ie 's/const struct pmu\>/struct pmu/g' `git grep -l "const struct pmu\>"` Signed-off-by: Peter Zijlstra Cc: paulus Cc: stephane eranian Cc: Robert Richter Cc: Will Deacon Cc: Paul Mundt Cc: Frederic Weisbecker Cc: Cyrill Gorcunov Cc: Lin Ming Cc: Yanmin Cc: Deng-Cheng Zhu Cc: David Miller Cc: Michael Cree LKML-Reference: Signed-off-by: Ingo Molnar commit 4cb14bc8c54f8489251d5cba8328cb410ead0cea Author: Heiko Carstens Date: Tue Aug 31 10:28:18 2010 +0200 topology, s390: Add z11 cpu topology support Use the extended cpu topology information that z11 machines provide to improve the scheduler's decision making. Signed-off-by: Heiko Carstens Signed-off-by: Peter Zijlstra LKML-Reference: <20100831082844.604956770@de.ibm.com> Signed-off-by: Ingo Molnar commit b40d8ed4e42c79f8ed1cf345eed0888f4a2f0678 Author: Heiko Carstens Date: Tue Aug 31 10:28:17 2010 +0200 topology/sysfs: Provide book id and siblings attributes Create attributes: /sys/devices/system/cpu/cpuX/topology/book_id /sys/devices/system/cpu/cpuX/topology/book_siblings which show the book id and the book siblings of a cpu. Unlike the attributes for SMT and MC these attributes are only present if CONFIG_SCHED_BOOK is set. There is no reason to pollute sysfs for every architecture with unused attributes. Signed-off-by: Heiko Carstens Signed-off-by: Peter Zijlstra LKML-Reference: <20100831082844.435648457@de.ibm.com> Signed-off-by: Ingo Molnar commit 01a08546af311c065f34727787dd0cc8dc0c216f Author: Heiko Carstens Date: Tue Aug 31 10:28:16 2010 +0200 sched: Add book scheduling domain On top of the SMT and MC scheduling domains this adds the BOOK scheduling domain. This is useful for NUMA like machines which do not have an interface which tells which piece of memory is attached to which node or where the hardware performs striping. Signed-off-by: Heiko Carstens Signed-off-by: Peter Zijlstra LKML-Reference: <20100831082844.253053798@de.ibm.com> Signed-off-by: Ingo Molnar commit f269893c575167447cc9f6d1867e639fb5b6f0c5 Author: Heiko Carstens Date: Tue Aug 31 10:28:15 2010 +0200 sched: Merge cpu_to_core_group functions Merge and simplify the two cpu_to_core_group variants so that the resulting function follows the same pattern like cpu_to_phys_group. Signed-off-by: Heiko Carstens Signed-off-by: Peter Zijlstra LKML-Reference: <20100831082843.953617555@de.ibm.com> Signed-off-by: Ingo Molnar commit 2aa61274efb9f532deaebc9812675a27af1994cb Merge: 359d510 5e11637 Author: Ingo Molnar Date: Thu Sep 9 20:40:06 2010 +0200 Merge branch 'perf/urgent' into perf/core Merge reason: Pick up pending fixes before applying dependent new changes. Signed-off-by: Ingo Molnar commit 37a2f9f30a360fb03522d15c85c78265ccd80287 Author: Cliff Wickman Date: Wed Sep 8 10:14:27 2010 -0500 x86, kdump: Change copy_oldmem_page() to use cached addressing The copy of /proc/vmcore to a user buffer proceeds much faster if the kernel addresses memory as cached. With this patch we have seen an increase in transfer rate from less than 15MB/s to 80-460MB/s, depending on size of the transfer. This makes a big difference in time needed to save a system dump. Signed-off-by: Cliff Wickman Acked-by: "Eric W. Biederman" Cc: kexec@lists.infradead.org Cc: # as far back as it would apply LKML-Reference: Signed-off-by: Ingo Molnar commit aeb9c7d618264dcf6eea39142fefee096c3b09e2 Author: Andre Przywara Date: Mon Sep 6 15:14:20 2010 +0200 x86, kvm: add new AMD SVM feature bits The recently updated CPUID specification names new SVM feature bits. Add them to the list of reported features. Signed-off-by: Andre Przywara LKML-Reference: <1283778860-26843-5-git-send-email-andre.przywara@amd.com> Signed-off-by: H. Peter Anvin commit 6d886fd042634c0d3312bace63a5d0c541b721dc Author: Andre Przywara Date: Mon Sep 6 15:14:19 2010 +0200 x86, cpu: Fix allowed CPUID bits for KVM guests The AMD extensions to AVX (FMA4, XOP) work on the same YMM register set as AVX, so they are safe for guests to use, as long as AVX itself is allowed. Add F16C and AES on the way for the same reasons. Signed-off-by: Andre Przywara LKML-Reference: <1283778860-26843-4-git-send-email-andre.przywara@amd.com> Acked-by: Avi Kivity Signed-off-by: H. Peter Anvin commit 33ed82fb6c5f032151f7e9f1ac7b667f78f426b8 Author: Andre Przywara Date: Mon Sep 6 15:14:18 2010 +0200 x86, cpu: Update AMD CPUID feature bits AMD's public CPUID specification has been updated and some bits have got names. Add them to properly describe new CPU features. Signed-off-by: Andre Przywara LKML-Reference: <1283778860-26843-3-git-send-email-andre.przywara@amd.com> Signed-off-by: H. Peter Anvin commit 7ef8aa72ab176e0288f363d1247079732c5d5792 Author: Andre Przywara Date: Mon Sep 6 15:14:17 2010 +0200 x86, cpu: Fix renamed, not-yet-shipping AMD CPUID feature bit The AMD SSE5 feature set as-it has been replaced by some extensions to the AVX instruction set. Thus the bit formerly advertised as SSE5 is re-used for one of these extensions (XOP). Although this changes the /proc/cpuinfo output, it is not user visible, as there are no CPUs (yet) having this feature. To avoid confusion this should be added to the stable series, too. Cc: stable@kernel.org [.32.x .34.x, .35.x] Signed-off-by: Andre Przywara LKML-Reference: <1283778860-26843-2-git-send-email-andre.przywara@amd.com> Signed-off-by: H. Peter Anvin commit 19852e59002fbba1c2c6ba0f154095a37ad2ac03 Author: Will Deacon Date: Fri Sep 3 10:44:33 2010 +0100 ARM: 6358/1: hw-breakpoint: add HAVE_HW_BREAKPOINT to Kconfig If we're targetting a v6 or v7 core and have at least software perf events available, then automatically add support for hardware breakpoints. Cc: Frederic Weisbecker Cc: S. Karthikeyan Signed-off-by: Will Deacon Signed-off-by: Russell King commit 864232fa1a2f8dfe003438ef0851a56722740f3e Author: Will Deacon Date: Fri Sep 3 10:42:55 2010 +0100 ARM: 6357/1: hw-breakpoint: add new ptrace requests for hw-breakpoint interaction For debuggers to take advantage of the hw-breakpoint framework in the kernel, it is necessary to expose the API calls via a ptrace interface. This patch exposes the hardware breakpoints framework as a collection of virtual registers, accesible using PTRACE_SETHBPREGS and PTRACE_GETHBPREGS requests. The breakpoints are stored in the debug_info struct of the running thread. Cc: Frederic Weisbecker Cc: S. Karthikeyan Signed-off-by: Will Deacon Signed-off-by: Russell King commit f81ef4a920c8e1af75adf9f15042c2daa49d3cb3 Author: Will Deacon Date: Fri Sep 3 10:41:08 2010 +0100 ARM: 6356/1: hw-breakpoint: add ARM backend for the hw-breakpoint framework The hw-breakpoint framework in the kernel requires architecture-specific support in order to install, remove, validate and manage hardware breakpoints. This patch adds initial support for this framework to the ARM architecture, but restricts the number of watchpoints to a single resource to get around the fact that the Data Fault Address Register is unknown when a watchpoint debug exception is taken. On cores with v7 debug, the Kernel can handle breakpoint and watchpoint exceptions occuring from userspace. Older cores require clients to handle the exception themselves by registering an appropriate overflow handler or, in the case of ptrace, handling the raised SIGTRAP. The memory-mapped extended debug interface is unsupported due to its unreliability in real implementations. Cc: Frederic Weisbecker Cc: S. Karthikeyan Signed-off-by: Will Deacon Signed-off-by: Russell King commit 3a4b5dca53aecb16db9e007d782b2d1e757e941a Author: Will Deacon Date: Fri Sep 3 10:39:59 2010 +0100 ARM: 6355/1: hw-breakpoint: add mechanism for hooking into prefetch aborts On ARM processors with hardware breakpoint and watchpoint support, triggering these events results in a debug exception. These manifest as prefetch and data aborts respectively. arch/arm/mm/fault.c already provides hook_fault_code for hooking into data aborts dependent on the DFSR. This patch adds a new function, hook_ifault_code for hooking into prefetch aborts in the same manner. Cc: Frederic Weisbecker Cc: S. Karthikeyan Signed-off-by: Will Deacon Signed-off-by: Russell King commit ed2d372c0738386b8a184a6a6bea9c16df6ffb68 Author: Christian Dietrich Date: Mon Sep 6 16:37:05 2010 +0200 sched: Remove unnecessary #ifdef CONFIG_SMP The CONFIG_SMP ifdef isn't necessary at this point, because it is checked in an outer ifdef level already and has no effect here. Cleanup only, no functional effect. Signed-off-by: Christian Dietrich Cc: vamos-dev@i4.informatik.uni-erlangen.de Cc: Peter Zijlstra Cc: Mike Galbraith Cc: Tejun Heo LKML-Reference: <7a3a39ef3f765a4473cb026b1f204059568a7098.1283782701.git.qy03fugy@stud.informatik.uni-erlangen.de> Signed-off-by: Ingo Molnar commit 0f1cf415f00286a38f5ce35b459342dbfc895b50 Author: Christian Dietrich Date: Mon Sep 6 16:36:18 2010 +0200 x86: Remove unnecessary #ifdef ACPI/X86_IO_ACPI The ACPI/X86_IO_ACPI ifdef isn't necessary at this point, because it is checked in an outer ifdef level already and has no effect here. Cleanup only, no functional effect. Signed-off-by: Christian Dietrich Acked-by: Borislav Petkov Cc: vamos-dev@i4.informatik.uni-erlangen.de LKML-Reference: Signed-off-by: Ingo Molnar commit 359d5106a2ff4ffa2ba129ec8f54743c341dabfc Author: Koki Sanagi Date: Mon Aug 23 18:47:09 2010 +0900 perf: Add a script to show packets processing Add a perf script which shows packets processing and processed time. It helps us to investigate networking or network devices. If you want to use it, install perf and record perf.data like following. If you set script, perf gathers records until it ends. If not, you must Ctrl-C to stop recording. And if you want a report from record, If you use some options, you can limit the output. Option is below. tx: show only tx packets processing rx: show only rx packets processing dev=: show processing on this device debug: work with debug mode. It shows buffer status. For example, if you want to show received packets processing associated with eth4, 106133.171439sec cpu=0 irq_entry(+0.000msec irq=24:eth4) | softirq_entry(+0.006msec) | |---netif_receive_skb(+0.010msec skb=f2d15900 len=100) | | | skb_copy_datagram_iovec(+0.039msec 10291::10291) | napi_poll_exit(+0.022msec eth4) This perf script helps us to analyze the processing time of a transmit/receive sequence. Signed-off-by: Koki Sanagi Acked-by: David S. Miller Cc: Neil Horman Cc: Mathieu Desnoyers Cc: Kaneshige Kenji Cc: Izumo Taku Cc: Kosaki Motohiro Cc: Lai Jiangshan Cc: Scott Mcmillan Cc: Steven Rostedt Cc: Eric Dumazet Cc: Tom Zanussi LKML-Reference: <4C72439D.3040001@jp.fujitsu.com> Signed-off-by: Frederic Weisbecker commit 07dc22e7295f25526f110d704655ff0ea7687420 Author: Koki Sanagi Date: Mon Aug 23 18:46:12 2010 +0900 skb: Add tracepoints to freeing skb This patch adds tracepoint to consume_skb and add trace_kfree_skb before __kfree_skb in skb_free_datagram_locked and net_tx_action. Combinating with tracepoint on dev_hard_start_xmit, we can check how long it takes to free transmitted packets. And using it, we can calculate how many packets driver had at that time. It is useful when a drop of transmitted packet is a problem. sshd-6828 [000] 112689.258154: consume_skb: skbaddr=f2d99bb8 Signed-off-by: Koki Sanagi Acked-by: David S. Miller Acked-by: Neil Horman Cc: Mathieu Desnoyers Cc: Kaneshige Kenji Cc: Izumo Taku Cc: Kosaki Motohiro Cc: Lai Jiangshan Cc: Scott Mcmillan Cc: Steven Rostedt Cc: Eric Dumazet LKML-Reference: <4C724364.50903@jp.fujitsu.com> Signed-off-by: Frederic Weisbecker commit cf66ba58b5cb8b1526e9dd2fb96ff8db048d4d44 Author: Koki Sanagi Date: Mon Aug 23 18:45:02 2010 +0900 netdev: Add tracepoints to netdev layer This patch adds tracepoint to dev_queue_xmit, dev_hard_start_xmit, netif_rx and netif_receive_skb. These tracepoints help you to monitor network driver's input/output. -0 [001] 112447.902030: netif_rx: dev=eth1 skbaddr=f3ef0900 len=84 -0 [001] 112447.902039: netif_receive_skb: dev=eth1 skbaddr=f3ef0900 len=84 sshd-6828 [000] 112447.903257: net_dev_queue: dev=eth4 skbaddr=f3fca538 len=226 sshd-6828 [000] 112447.903260: net_dev_xmit: dev=eth4 skbaddr=f3fca538 len=226 rc=0 Signed-off-by: Koki Sanagi Acked-by: David S. Miller Acked-by: Neil Horman Cc: Mathieu Desnoyers Cc: Kaneshige Kenji Cc: Izumo Taku Cc: Kosaki Motohiro Cc: Lai Jiangshan Cc: Scott Mcmillan Cc: Steven Rostedt Cc: Eric Dumazet LKML-Reference: <4C72431E.3000901@jp.fujitsu.com> Signed-off-by: Frederic Weisbecker commit 3e4b10d7a4d2a78af64f8096dc7cdb3bebd65adb Author: Neil Horman Date: Mon Aug 23 18:43:51 2010 +0900 napi: Convert trace_napi_poll to TRACE_EVENT This patch converts trace_napi_poll from DECLARE_EVENT to TRACE_EVENT to improve the usability of napi_poll tracepoint. -0 [001] 241302.750777: napi_poll: napi poll on napi struct f6acc480 for device eth3 -0 [000] 241302.852389: napi_poll: napi poll on napi struct f5d0d70c for device eth1 The original patch is below: http://marc.info/?l=linux-kernel&m=126021713809450&w=2 [ sanagi.koki@jp.fujitsu.com: And add a fix by Steven Rostedt: http://marc.info/?l=linux-kernel&m=126150506519173&w=2 ] Signed-off-by: Neil Horman Acked-by: David S. Miller Acked-by: Neil Horman Cc: Mathieu Desnoyers Cc: Kaneshige Kenji Cc: Izumo Taku Cc: Kosaki Motohiro Cc: Lai Jiangshan Cc: Scott Mcmillan Cc: Steven Rostedt Cc: Eric Dumazet LKML-Reference: <4C7242D7.4050009@jp.fujitsu.com> Signed-off-by: Koki Sanagi Signed-off-by: Frederic Weisbecker commit 2bf2160d8805de64308e2e7c3cd97813cb58ed2f Author: Lai Jiangshan Date: Mon Aug 23 18:42:48 2010 +0900 irq: Add tracepoint to softirq_raise Add a tracepoint for tracing when softirq action is raised. This and the existing tracepoints complete softirq's tracepoints: softirq_raise, softirq_entry and softirq_exit. And when this tracepoint is used in combination with the softirq_entry tracepoint we can determine the softirq raise latency. Signed-off-by: Lai Jiangshan Acked-by: Mathieu Desnoyers Acked-by: Neil Horman Cc: David Miller Cc: Kaneshige Kenji Cc: Izumo Taku Cc: Kosaki Motohiro Cc: Lai Jiangshan Cc: Scott Mcmillan Cc: Steven Rostedt Cc: Eric Dumazet LKML-Reference: <4C724298.4050509@jp.fujitsu.com> [ factorize softirq events with DECLARE_EVENT_CLASS ] Signed-off-by: Koki Sanagi Signed-off-by: Frederic Weisbecker commit 592091c0e21655bfbdf68741dd5a920c2ac2bbe6 Author: Jin Dongming Date: Tue Aug 31 09:13:33 2010 +0900 therm_throt.c: Trivial printk message fix for a unsuitable abbreviation of 'thermal' In unexpected_thermal_interrupt(), "LVT TMR interrupt" is used in error message. I don't think TMR is a suitable abbreviation for thermal. 1.TMR has been used in IA32 Architectures Software Developer's Manual, and is the abbreviation for Trigger Mode Register. 2.There is not an standard abbreviation "TMR" defined for thermal in IA32 Architectures Software Developer's Manual. 3.Though we could understand it as Thermal Monitor Register, it is easy to be misunderstood as a *TIMER* interrupt also. I think this patch will fix it. Signed-off-by: Jin Dongming Reviewed-by: Jean Delvare Cc: Brown Len Cc: Hidetoshi Seto Cc: Fenghua Yu LKML-Reference: <4C7C492D.5020704@np.css.fujitsu.com> Signed-off-by: Ingo Molnar commit d9fadd7ba99a67030783a212bcb17d11f0678433 Author: Andreas Herrmann Date: Thu Sep 2 15:37:10 2010 +0200 x86, AMD: Remove needless CPU family check (for L3 cache info) Old 32-bit AMD CPUs (all w/o L3 cache) should always return 0 for cpuid_edx(0x80000006). For unknown reason the 32-bit implementation differed from the 64-bit implementation. See commit 67cddd94799 ("i386: Add L3 cache support to AMD CPUID4 emulation"). The current check is the result of the x86 merge. Signed-off-by: Andreas Herrmann Cc: Andi Kleen LKML-Reference: <20100902133710.GA5449@loge.amd.com> Signed-off-by: Ingo Molnar commit 1b13fe6a6e9986dbc079cbb05090be75edbffa5d Author: Borislav Petkov Date: Fri Sep 3 18:39:41 2010 +0200 AGP: Warn when GATT memory cannot be set to UC This is one of those paranoid checks which should at least tell us that something is about to go haywire after we've disabled GART table walk probes which is done by default now on AMD. Signed-off-by: Borislav Petkov Cc: Dave Airlie Cc: FUJITA Tomonori LKML-Reference: <1283531981-7495-4-git-send-email-bp@amd64.org> Signed-off-by: Ingo Molnar commit 260133ab658bd2b80e07832a878e00405e19ff43 Author: Borislav Petkov Date: Fri Sep 3 18:39:40 2010 +0200 x86, GART: Disable GART table walk probes Current code tramples over bit F3x90[6] which can be used to disable GART table walk probes. However, this bit should be set for performance reasons (speed up GART table walks). We are allowed to do that since we put GART tables in UC memory later anyway. Make it so. Signed-off-by: Borislav Petkov Cc: Dave Airlie Cc: FUJITA Tomonori LKML-Reference: <1283531981-7495-3-git-send-email-bp@amd64.org> Signed-off-by: Ingo Molnar commit 57ab43e33122ffdc2eebca5d6de035699f0a8c06 Author: Borislav Petkov Date: Fri Sep 3 18:39:39 2010 +0200 x86, GART: Remove superfluous AMD64_GARTEN There is a GARTEN so use that and drop the duplicate. Signed-off-by: Borislav Petkov Cc: Dave Airlie Cc: FUJITA Tomonori LKML-Reference: <1283531981-7495-2-git-send-email-bp@amd64.org> Signed-off-by: Ingo Molnar commit 1c5f50ee347daea013671f718b70cd6bf497bef9 Author: Wu Fengguang Date: Fri Sep 3 17:04:07 2010 +0800 x86, mm: fix uninitialized addr in kernel_physical_mapping_init() This re-adds the lost chunk in commit 9b861528a80. Reported-by: Stephen Rothwell Signed-off-by: Wu Fengguang Cc: Peter Zijlstra Cc: Haicheng Li Cc: Andi Kleen LKML-Reference: <20100903090407.GA19771@localhost> Signed-off-by: Ingo Molnar commit 7fe977dab356fbd7e86aa10bf83891761107c57c Author: Jan Beulich Date: Thu Sep 2 14:01:58 2010 +0100 i386: Make kernel_execve() suitable for stack unwinding The explicit saving and restoring of %ebx was confusing stack unwind data consumers, and it is plain unnecessary to do this within the asm(), since that was only introduced for PIC user mode consumers of the original _syscall3() macro this was derived from. Signed-off-by: Jan Beulich Cc: Arnd Bergmann LKML-Reference: <4C7FBC660200007800013F95@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit df5d1874ce1a1f0e0eceff4fa3a9d45620243a68 Author: Jan Beulich Date: Thu Sep 2 14:07:16 2010 +0100 x86: Use {push,pop}{l,q}_cfi in more places ... plus additionally introduce {push,pop}f{l,q}_cfi. All in the hope that the code becomes better readable this way (it gets quite a bit smaller in any case). Signed-off-by: Jan Beulich Acked-by: Alexander van Heukelum LKML-Reference: <4C7FBDA40200007800013FAF@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit a34107b5577968dc53cf9c2195c7c2d4a2caf9ce Author: Jan Beulich Date: Thu Sep 2 14:04:16 2010 +0100 i386: Add unwind directives to syscall ptregs stubs When these stubs are actual functions (i.e. having a return instruction) and have stack manipulation instructions in them, they should also be annotated to allow unwinding through them. Signed-off-by: Jan Beulich Acked-by: Alexander van Heukelum LKML-Reference: <4C7FBCF00200007800013F99@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit b1cccb1bb01dc1cb89f58723a58c3d4988d44d94 Author: Jan Beulich Date: Thu Sep 2 13:55:11 2010 +0100 x86-64: Use symbolics instead of raw numbers in entry_64.S ... making the code a little less fragile. Also use pushq_cfi instead of raw CFI annotations in two more places, and add two missing annotations after stack pointer adjustments which got modified here anyway. Signed-off-by: Jan Beulich Acked-by: Alexander van Heukelum LKML-Reference: <4C7FBACF0200007800013F6A@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit 1f130a783a796f147b080c594488b566c86007d0 Author: Jan Beulich Date: Thu Sep 2 13:54:32 2010 +0100 x86-64: Adjust frame type at paranoid_exit: As this isn't an exception or interrupt entry point, it doesn't have any of the hardware provide frame layouts active. Signed-off-by: Jan Beulich Acked-by: Alexander van Heukelum LKML-Reference: <4C7FBAA80200007800013F67@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit e6b04b6b5a3182ae36cf9a69f1aaaee432edc8ad Author: Jan Beulich Date: Thu Sep 2 13:52:45 2010 +0100 x86-64: Fix unwind annotations in syscall stubs With the return address removed from the stack, these should really refer to their caller's register state. Signed-off-by: Jan Beulich Acked-by: Alexander van Heukelum LKML-Reference: <4C7FBA3D0200007800013F61@vpn.id2.novell.com> Signed-off-by: Ingo Molnar commit 81a294c44e973dc7182e4733421b7cb2daba3c29 Author: Paul E. McKenney Date: Mon Aug 30 09:52:50 2010 -0700 rcu: fix _oddness handling of verbose stall warnings CONFIG_RCU_CPU_STALL_VERBOSE depends on CONFIG_TREE_PREEMPT_RCU, but rcu_bootup_announce_oddness() complains if CONFIG_RCU_CPU_STALL_VERBOSE is not set even in the case of CONFIG_TREE_RCU. This commit therefore fixes rcu_bootup_announce_oddness() to avoid insisting on impossibilities. Reported-by: Guy Martin Signed-off-by: Paul E. McKenney commit fd0d67d62def64ed5aa57f99d247e2b3d5eff8c5 Author: Uwe Kleine-König Date: Thu Sep 2 16:13:35 2010 +0100 ARM: 6347/2: nomadik: move nmk_gpio_probe to .devinit.text This fixes a section mismatch reported by modpost: WARNING: arch/arm/plat-nomadik/built-in.o(.data+0x100): Section mismatch in reference from the variable nmk_gpio_driver to the function .init.text:nmk_gpio_probe() The variable nmk_gpio_driver references the function __init nmk_gpio_probe() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, According to Rabin VINCENT the alternative to use platform_driver_probe won't work because the "platform devices are not yet registered when nmk_gpio_init() is called." Acked-by: Rabin Vincent Signed-off-by: Uwe Kleine-König Signed-off-by: Russell King commit 9e978f096241e303c10cf6e6dc80dce41ef41b92 Author: Uwe Kleine-König Date: Thu Sep 2 09:14:20 2010 +0100 ARM: 6351/1: s3c64xx: don't put smartq_bl_init in .init.text This fixes a section mismatch found by modpost: WARNING: arch/arm/mach-s3c64xx/built-in.o(.data+0x2498): Section mismatch in reference from the variable smartq_backlight_data to the function .init.text:smartq_bl_init() The variable smartq_backlight_data references the function __init smartq_bl_init() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, Signed-off-by: Uwe Kleine-König Signed-off-by: Russell King commit d684f640639d7be8efb7b324294830d9bcbf15f9 Author: Uwe Kleine-König Date: Thu Sep 2 09:14:22 2010 +0100 ARM: 6350/1: s3c64xx: don't put smartq5_leds in .init.data This fixes a section mismatch found by modpost: WARNING: arch/arm/mach-s3c64xx/built-in.o(.data+0x2814): Section mismatch in reference from the variable smartq5_led_data to the (unknown reference) .init.data:(unknown) The variable smartq5_led_data references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, Signed-off-by: Uwe Kleine-König Signed-off-by: Russell King commit 495c7b8e64811e8117eca472c6f90dccda039dc4 Author: Uwe Kleine-König Date: Thu Sep 2 09:14:19 2010 +0100 ARM: 6348/1: s3c64xx: don't put smartq7_leds in .init.data This fixes a section mismatch found by modpost: WARNING: arch/arm/mach-s3c64xx/built-in.o(.data+0x2c1c): Section mismatch in reference from the variable smartq7_led_data to the (unknown reference) .init.data:(unknown) The variable smartq7_led_data references the (unknown reference) __initdata (unknown) If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, Signed-off-by: Uwe Kleine-König Signed-off-by: Russell King commit 6720db7cc592b2148e0d88a7d76dc0532f3d266c Author: Rabin Vincent Date: Thu Sep 2 11:28:48 2010 +0100 ARM: 6354/1: nomadik-gpio: allow control of sleep mode direction and pull up DB8500v2 allows control of direction and pull up/down configuration in sleep mode, instead of switching the pin to input with pull up/down enabled. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 7e3f7e59ccc6ed8b243de9941ffd09d2ad7a5b9c Author: Rabin Vincent Date: Thu Sep 2 11:28:05 2010 +0100 ARM: 6353/1: nomadik-gpio: add SLPM register handing for DB8500v2 The SLPM register enables/disables wakeup detection on DB8500v2. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit e3726fcf263adf764a4f1b9428082837662a41c4 Author: Linus Walleij Date: Thu Aug 19 12:36:01 2010 +0100 ARM: 6336/1: U8500 PRCMU driver Add an initial driver for communicating with the Power, Reset and Clock Management Unit (PRCMU) firmware in U8500. This initial version supports AB8500 communication only. Signed-off-by: Mattias Nilsson Signed-off-by: Mattias Wallin Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 008f8a2f7ff4d63559b7ba7a6f7073efef9b1e08 Author: Hanumath Prasad Date: Thu Aug 19 12:06:32 2010 +0100 ARM: 6335/1: ux500: mop500: register eMMC devices Acked-by: Linus Walleij Signed-off-by: Hanumath Prasad Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 1c833abc1f8c056f562ccf4d57a69514d338cc35 Author: Hanumath Prasad Date: Thu Aug 19 12:06:10 2010 +0100 ARM: 6334/1: ux500: add DB8500 SD/MMC platform devices Acked-by: Linus Walleij Signed-off-by: Hanumath Prasad Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit f946738ca882c365a963043de471f45e91ab0a95 Author: Linus Walleij Date: Thu Aug 19 10:27:49 2010 +0100 ARM: 6331/1: ux500 cpu/SoC version macros v2 This patch adds support for checking if the digital baseband (DB) System-on-Chip (aka "cpu) ASIC hardware version is 1.0, 1.1 or 2.0. We print the result in the bootlog, the functions are then used for runtime decisions based on hardware version. Signed-off-by: Mattias Wallin Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 5333a3de3cdd739ec4f6d501f5f6d09bab7ff919 Author: Phil Carmody Date: Thu Aug 19 15:20:37 2010 +0100 ARM: 6341/1: unwind - optimise linked-list searches for modules With several sections per module, and dozens of modules, the searches down the linked list of sections would dominate the lookup time, dwarfing any savings from the binary search within the section. A simple move-to-front optimisation exploits the commonality of the code paths taken, and in simple real-world tests reduces the number of steps in the search to barely more than 1. Signed-off-by: Phil Carmody Acked-by: Catalin Marinas Signed-off-by: Russell King commit 09e56a2d076c2afb2a1932ae4283e10ef2d26ef3 Author: Phil Carmody Date: Thu Aug 19 15:19:04 2010 +0100 ARM: 6340/1: module - additional unwind tables for exit/devexit sections Without these, exit functions cannot be stack-traced, so to speak. This implies that module unloads that perform allocations (don't laugh) will cause noisy warnings on the console when kmemleak is enabled, as it presumes that all code's call chains are traceable. Similarly, BUGs and WARN_ONs will give additional console spam. Signed-off-by: Phil Carmody Acked-by: Catalin Marinas Signed-off-by: Russell King commit e5f7772eec3ec342ecfe686ab8330ef538af134b Author: Phil Carmody Date: Thu Aug 19 15:16:37 2010 +0100 ARM: 6339/1: module - simplify unwind table handling The various sections are all dealt with similarly, so factor out that common behaviour. (Incorporating Peter Huewe's fix.) Cc: Peter Huewe Signed-off-by: Phil Carmody Acked-by: Catalin Marinas Signed-off-by: Russell King commit 5793432628ad76f93ae4d31c23fb1c26e3d8b525 Author: Phil Carmody Date: Thu Aug 19 15:10:24 2010 +0100 ARM: 6338/1: module - simplify code with temporaries Less to read. Signed-off-by: Phil Carmody Acked-by: Catalin Marinas Signed-off-by: Russell King commit 80be7a7f642719bf99fc49692fc77d6333f51a73 Author: Rabin Vincent Date: Tue Aug 10 19:58:17 2010 +0100 ARM: 6320/1: ftrace: enable dynamic ftrace Dynamic ftrace for ARM has been disabled since 07c4cc1cdaa08f ("ftrace: disable dynamic ftrace for all archs that use daemon"). Now that the code has been updated, re-enable it. Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 72dc43a9eb123d2742bd413c80dbeab0c588f622 Author: Rabin Vincent Date: Tue Aug 10 19:52:35 2010 +0100 ARM: 6319/1: ftrace: add Thumb-2 support to dynamic ftrace Handle the different nop and call instructions for Thumb-2. Also, we need to adjust the recorded mcount_loc addresses because they have the lsb set. Cc: Catalin Marinas Acked-by: Steven Rostedt [recordmcount.pl change] Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 3b6c223b1b97ad60bbb0f4efda57d649414ac2a2 Author: Rabin Vincent Date: Tue Aug 10 19:43:28 2010 +0100 ARM: 6318/1: ftrace: fix and update dynamic ftrace This adds mcount recording and updates dynamic ftrace for ARM to work with the new ftrace dyamic tracing implementation. It also adds support for the mcount format used by newer ARM compilers. With dynamic tracing, mcount() is implemented as a nop. Callsites are patched on startup with nops, and dynamically patched to call to the ftrace_caller() routine as needed. Acked-by: Steven Rostedt [recordmcount.pl change] Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit f9810a82536e0c730c57844753e6c08cc7f77881 Author: Rabin Vincent Date: Tue Aug 10 19:39:20 2010 +0100 ARM: 6317/1: ftrace: pass KBUILD_CFLAGS to record_mcount.pl On ARM, we have two ABIs, and the ABI used is controlled via a config option. Object files built with one ABI can't be merged with object files built with the other ABI. So, record_mcount.pl needs to use the same compiler flags as the kernel when generating the object file with the mcount locations. Ensure this by passing CFLAGS to the script. Acked-by: Steven Rostedt Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit a3ba87a614992500cf2c47e6f788e74a971ce91f Author: Rabin Vincent Date: Tue Aug 10 19:37:21 2010 +0100 ARM: 6316/1: ftrace: add Thumb-2 support Fix the mcount routines to build and run on a kernel built with the Thumb-2 instruction set by correcting the following errors using the fixes suggested by Catalin Marinas: - Problem: The following assembler errors appear at the "adr r0, ftrace_stub" instruction: entry-common.S: Assembler messages: entry-common.S:179: Error: invalid immediate for address calculation (value = 0x00000004) Fix: The errors don't occur with a non-global symbol, so use one. - Problem: The "mov lr, pc" does not set the lsb when storing the pc in lr. The called function returns with "bx lr", and the mode changes to ARM. Fix: Add a label on the return address and use "adr lr, BSYM(label)". We don't modify the old mcount because it won't be built when using Thumb-2. Acked-by: Catalin Marinas Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 72fa62fa5dff0e2e06491dd99c429adb137f299b Author: Rabin Vincent Date: Tue Aug 10 19:33:52 2010 +0100 ARM: 6315/1: ftrace: add ENDPROC annotations When building as Thumb-2, the ".type foo, %function" annotation in ENDPROC seems to be required in order for the assembly routines to be recognized as Thumb-2 code. If the ENDPROC annotations are not present, calls to these routines are generated as BLX instead of BL. Acked-by: Catalin Marinas Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 09bfafac3e237415cc4b6adde49f9f28b3a42659 Author: Rabin Vincent Date: Tue Aug 10 19:32:37 2010 +0100 ARM: 6314/1: ftrace: allow build without frame pointers on ARM With a new enough GCC, ARM function tracing can be supported without the need for frame pointers. This is essential for Thumb-2 support, since frame pointers aren't available then. Acked-by: Catalin Marinas Acked-by: Steven Rostedt Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 7e9501fdecdee8151938e624b41978307cadddd2 Author: Rabin Vincent Date: Tue Aug 10 19:20:53 2010 +0100 ARM: 6312/1: ftrace: allow building without frame pointers With current gcc, compiling with both -pg and -fomit-frame-pointer is not allowed. However, -pg can be used to build without actually specifying -fno-omit-frame-pointer, upon which the default behaviour for the target will be used. On ARM, it is not possible to build a Thumb-2 kernel with -fno-omit-frame-pointer (FRAME_POINTERS depends on !THUMB2_KERNEL). In order to support ftrace for Thumb-2, we need to be able to allow a combination of FUNCTION_TRACER and !FRAME_POINTER. We do this by omitting -fomit-frame-pointer if ftrace is enabled. Acked-by: Frederic Weisbecker Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit cd64d1697cf079bb8a67766e36e88ced38498933 Author: Sean MacLennan Date: Wed Sep 1 07:21:21 2010 +0000 powerpc: mtmsrd not defined Replace the BOOK3S_64 specific mtmsrd with the generic MTMSRD macro. Only enable ldstfp when CONFIG_PPC_FPU is set. Signed-off-by: Sean MacLennan Signed-off-by: Benjamin Herrenschmidt commit 025c0186a0357b0bd92039a927a07860e8be4205 Author: Sean MacLennan Date: Wed Sep 1 07:21:21 2010 +0000 powerpc: Fix incorrect .stabs entry for copy_32.S Signed-off-by: Sean MacLennan Signed-off-by: Benjamin Herrenschmidt commit 0d35e1620d2882d74faed90d9ac457bf6c7a0886 Author: Matthew McClintock Date: Tue Aug 31 13:24:44 2010 +0000 powerpc/mm: Assume first cpu is boot_cpuid not 0 arch/powerpc/mm/mmu_context_nohash.c assumes the boot cpu will always have smp_processor_id() == 0. This patch fixes that assumption Signed-off-by: Matthew McClintock Signed-off-by: Benjamin Herrenschmidt commit 86250b9d12caa1a3dee12a7cf638b7dd70eaadb6 Author: Ian Munsie Date: Wed Aug 25 18:50:28 2010 +0000 powerpc: Wire up direct socket system calls This patch wires up the various socket system calls on PowerPC so that userspace can call them directly, rather than by going through the multiplexed socketcall system call. Signed-off-by: Ian Munsie Signed-off-by: Benjamin Herrenschmidt commit 7cf9bac559d233ff3a7fdbbdc4fc4c184abc5f59 Author: Julia Lawall Date: Tue Aug 31 05:48:58 2010 +0000 powerpc/chrp/nvram.c: Add of_node_put to avoid memory leak Add a call to of_node_put in the error handling code following a call to of_find_node_by_type. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E,E1,E2; statement S; @@ *x = (of_find_node_by_path |of_find_node_by_name |of_find_node_by_phandle |of_get_parent |of_get_next_parent |of_get_next_child |of_find_compatible_node |of_match_node |of_find_node_by_type |of_find_node_with_property |of_find_matching_node |of_parse_phandle )(...); ... if (x == NULL) S <... when != x = E *if (...) { ... when != of_node_put(x) when != if (...) { ... of_node_put(x); ... } ( return <+...x...+>; | * return ...; ) } ...> ( E2 = x; | of_node_put(x); ) // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit 182f30e4b9f6e26d565eb432d1140a487c64fa17 Author: Julia Lawall Date: Sat Aug 28 23:52:46 2010 +0000 powerpc/cell: Add of_node_put to avoid memory leak Add calls to of_node_put in the error handling code following calls to of_find_node_by_path and of_find_node_by_phandle. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E,E1; statement S; @@ *x = (of_find_node_by_path |of_find_node_by_name |of_find_node_by_phandle |of_get_parent |of_get_next_parent |of_get_next_child |of_find_compatible_node |of_match_node )(...); ... if (x == NULL) S <... when != x = E *if (...) { ... when != of_node_put(x) when != if (...) { ... of_node_put(x); ... } ( return <+...x...+>; | * return ...; ) } ...> of_node_put(x); // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit 0373721b19217c85c8c9435b79f0bac88fec9f26 Author: Julia Lawall Date: Sat Aug 28 23:52:43 2010 +0000 powerpc/powermac/pfunc_core.c: Add of_node_put to avoid memory leak Add a call to of_node_put in the error handling code following a call to of_find_node_by_phandle. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E,E1; statement S; @@ *x = (of_find_node_by_path |of_find_node_by_name |of_find_node_by_phandle |of_get_parent |of_get_next_parent |of_get_next_child |of_find_compatible_node |of_match_node )(...); ... if (x == NULL) S <... when != x = E *if (...) { ... when != of_node_put(x) when != if (...) { ... of_node_put(x); ... } ( return <+...x...+>; | * return ...; ) } ...> of_node_put(x); // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit a8e25c61546bdc30d936bc0f4fd3a7cb594490c5 Author: Julia Lawall Date: Sat Aug 28 23:52:45 2010 +0000 powerpc/maple: Add of_node_put to avoid memory leak Add a call to of_node_put in the error handling code following a call to of_find_node_by_path. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E,E1; statement S; @@ *x = (of_find_node_by_path |of_find_node_by_name |of_find_node_by_phandle |of_get_parent |of_get_next_parent |of_get_next_child |of_find_compatible_node |of_match_node )(...); ... if (x == NULL) S <... when != x = E *if (...) { ... when != of_node_put(x) when != if (...) { ... of_node_put(x); ... } ( return <+...x...+>; | * return ...; ) } ...> of_node_put(x); // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit 1f7aac6eb585f92756603341cb1d770c797c4867 Author: Julia Lawall Date: Sat Aug 28 23:52:40 2010 +0000 powerpc/via-pmu-led.c: Add of_node_put to avoid memory leak Add a call to of_node_put in the error handling code following a call to of_find_node_by_path. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r exists@ local idexpression x; expression E,E1; statement S; @@ *x = (of_find_node_by_path |of_find_node_by_name |of_find_node_by_phandle |of_get_parent |of_get_next_parent |of_get_next_child |of_find_compatible_node |of_match_node )(...); ... if (x == NULL) S <... when != x = E *if (...) { ... when != of_node_put(x) when != if (...) { ... of_node_put(x); ... } ( return <+...x...+>; | * return ...; ) } ...> of_node_put(x); // Signed-off-by: Julia Lawall Signed-off-by: Benjamin Herrenschmidt commit 8fb07c0444c37caa39a8df7c70a694c6211f2f57 Author: Benjamin Herrenschmidt Date: Mon Aug 30 19:24:18 2010 +0000 powerpc/dart_iommu: Support for 64-bit iommu bypass window on PCIe The PCI-Express bus off the U4/CPC945 bridge supports direct DMA to all of memory, bypassing the DART iommu, for 64-bit capable devices. This adds support for it on Bimini and Apple Quad G5's in order to improve DMA performances of cards using that slot (the x16 graphics slot). Tested with an Intel ixgbe 10GE card. Signed-off-by: Benjamin Herrenschmidt commit 5b6e9ff6deb703b95fb355bb66d86096c1a2df09 Author: Benjamin Herrenschmidt Date: Mon Aug 30 19:23:52 2010 +0000 powerpc/dma: Add optional platform override of dma_set_mask() Some platforms may want to override dma_set_mask() to take into account some specific "features" such as the availability of a direct-map window in addition to an iommu. Signed-off-by: Benjamin Herrenschmidt commit cab175f9fa2973f0deb1580fca3c966fe1d3981e Author: Denis Kirjanov Date: Fri Aug 27 03:49:11 2010 +0000 powerpc: Use is_32bit_task() helper to test 32-bit binary This patch removes all explicit tests for the TIF_32BIT flag Signed-off-by: Denis Kirjanov Signed-off-by: Benjamin Herrenschmidt commit 05d77ac90c0d260ae18decd70507dc4f5b71a2cb Author: Andreas Schwab Date: Sat Aug 21 11:43:20 2010 +0000 powerpc: Remove fpscr use from [kvm_]cvt_{fd,df} Neither lfs nor stfs touch the fpscr, so remove the restore/save of it around them. Signed-off-by: Andreas Schwab Signed-off-by: Benjamin Herrenschmidt commit 872e439a45ed4a4bd499bc55cb0dffa74027f749 Author: Paul Mackerras Date: Tue Aug 31 01:59:53 2010 +0000 powerpc/pseries: Re-enable dispatch trace log userspace interface Since the cpu accounting code uses the hypervisor dispatch trace log now when CONFIG_VIRT_CPU_ACCOUNTING = y, the previous commit disabled access to it via files in the /sys/kernel/debug/powerpc/dtl/ directory in that case. This restores those files. To do this, we now have a hook that the cpu accounting code will call as it processes each entry from the hypervisor dispatch trace log. The code in dtl.c now uses that to fill up its ring buffer, rather than having the hypervisor fill the ring buffer directly. This also fixes dtl_file_read() to handle overflow conditions a bit better and adds a spinlock to ensure that race conditions (multiple processes opening or reading the file concurrently) are handled correctly. Signed-off-by: Paul Mackerras Signed-off-by: Benjamin Herrenschmidt commit cf9efce0ce3136fa076f53e53154e98455229514 Author: Paul Mackerras Date: Thu Aug 26 19:56:43 2010 +0000 powerpc: Account time using timebase rather than PURR Currently, when CONFIG_VIRT_CPU_ACCOUNTING is enabled, we use the PURR register for measuring the user and system time used by processes, as well as other related times such as hardirq and softirq times. This turns out to be quite confusing for users because it means that a program will often be measured as taking less time when run on a multi-threaded processor (SMT2 or SMT4 mode) than it does when run on a single-threaded processor (ST mode), even though the program takes longer to finish. The discrepancy is accounted for as stolen time, which is also confusing, particularly when there are no other partitions running. This changes the accounting to use the timebase instead, meaning that the reported user and system times are the actual number of real-time seconds that the program was executing on the processor thread, regardless of which SMT mode the processor is in. Thus a program will generally show greater user and system times when run on a multi-threaded processor than on a single-threaded processor. On pSeries systems on POWER5 or later processors, we measure the stolen time (time when this partition wasn't running) using the hypervisor dispatch trace log. We check for new entries in the log on every entry from user mode and on every transition from kernel process context to soft or hard IRQ context (i.e. when account_system_vtime() gets called). So that we can correctly distinguish time stolen from user time and time stolen from system time, without having to check the log on every exit to user mode, we store separate timestamps for exit to user mode and entry from user mode. On systems that have a SPURR (POWER6 and POWER7), we read the SPURR in account_system_vtime() (as before), and then apportion the SPURR ticks since the last time we read it between scaled user time and scaled system time according to the relative proportions of user time and system time over the same interval. This avoids having to read the SPURR on every kernel entry and exit. On systems that have PURR but not SPURR (i.e., POWER5), we do the same using the PURR rather than the SPURR. This disables the DTL user interface in /sys/debug/kernel/powerpc/dtl for now since it conflicts with the use of the dispatch trace log by the time accounting code. Signed-off-by: Paul Mackerras Signed-off-by: Benjamin Herrenschmidt commit 93c22703efa72c7527dbd586d1951c1f4a85fd70 Author: Paul Mackerras Date: Thu Aug 12 20:18:48 2010 +0000 powerpc: Dynamically allocate most lppaca structs This arranges for the lppaca structs for most cpus to be dynamically allocated in the same manner as the paca structs. If we don't include support for legacy iSeries, only the first lppaca is statically allocated; the rest are dynamically allocated. If we include legacy iSeries support, then we statically allocate the first 64 lppaca structs, since the iSeries hypervisor requires that the lppaca structs be present in the data section of the kernel image, but legacy iSeries supports at most 64 cpus. With CONFIG_NR_CPUS, the kernel image size for a typical pSeries config went from: text data bss dec hex filename 9524478 4734564 8469944 22728986 15ad11a ../test-1024/vmlinux to: text data bss dec hex filename 9524482 3751508 8469944 21745934 14bd10e ../test-1024/vmlinux a reduction of 983052 bytes overall. Signed-off-by: Paul Mackerras Signed-off-by: Benjamin Herrenschmidt commit 8154c5d22d91cd16bd9985b0638c8957e4688d0e Author: Paul Mackerras Date: Thu Aug 12 20:18:15 2010 +0000 powerpc: Abstract indexing of lppaca structs Currently we have the lppaca structs as a simple array of NR_CPUS entries, taking up space in the data section of the kernel image. In future we would like to allocate them dynamically, so this abstracts out the accesses to the array, making it easier to change how we locate the lppaca for a given cpu in future. Specifically, lppaca[cpu] changes to lppaca_of(cpu). Signed-off-by: Paul Mackerras Signed-off-by: Benjamin Herrenschmidt commit e1f0ece113fe028593b6869fe191a991322c5d85 Author: Michael Neuling Date: Tue Aug 10 20:02:05 2010 +0000 powerpc: Move arch_sd_sibling_asym_packing() to smp.c Simple cleanup by moving arch_sd_sibling_asym_packing from process.c to smp.c to save an #ifdef CONFIG_SMP No functionality change. Signed-off-by: Michael Neuling Signed-off-by: Benjamin Herrenschmidt commit 28b549905b239357db7c249e261857c1716db05a Author: Anton Blanchard Date: Tue Aug 24 13:15:28 2010 +0000 powerpc: Check end of stack canary at oops time Add a check for the stack canary when we oops, similar to x86. This should make it clear that we overran our stack: Unable to handle kernel paging request for data at address 0x24652f63700ac689 Faulting instruction address: 0xc000000000063d24 Thread overran stack, or stack corrupted Signed-off-by: Anton Blanchard Signed-off-by: Benjamin Herrenschmidt commit f89451fbd2b9f28f5ff156154989599ec062354b Author: Anton Blanchard Date: Wed Aug 11 01:40:27 2010 +0000 powerpc: Feature nop out reservation clear when stcx checks address The POWER architecture does not require stcx to check that it is operating on the same address as the larx. This means it is possible for an an exception handler to execute a larx, get a reservation, decide not to do the stcx and then return back with an active reservation. If the interrupted code was in the middle of a larx/stcx sequence the stcx could incorrectly succeed. All recent POWER CPUs check the address before letting the stcx succeed so we can create a CPU feature and nop it out. As Ben suggested, we can only do this in our syscall path because there is a remote possibility some kernel code gets interrupted by an exception that ends up operating on the same cacheline. Thanks to Paul Mackerras and Derek Williams for the idea. To test this I used a very simple null syscall (actually getppid) testcase at http://ozlabs.org/~anton/junkcode/null_syscall.c I tested against 2.6.35-git10 with the following changes against the pseries_defconfig: CONFIG_VIRT_CPU_ACCOUNTING=n CONFIG_AUDIT=n CONFIG_PPC_4K_PAGES=n CONFIG_PPC_64K_PAGES=y CONFIG_FORCE_MAX_ZONEORDER=9 CONFIG_PPC_SUBPAGE_PROT=n CONFIG_FUNCTION_TRACER=n CONFIG_FUNCTION_GRAPH_TRACER=n CONFIG_IRQSOFF_TRACER=n CONFIG_STACK_TRACER=n to remove the overhead of virtual CPU accounting, syscall auditing and the ftrace mcount tracers. 64kB pages were enabled to minimise TLB misses. POWER6: +8.2% POWER7: +7.0% Another suggestion was to use a larx to something in the L1 instead of a stcx. This was almost as fast as removing the larx on POWER6, but only 3.5% faster on POWER7. We can use this to speed up the reservation clear in our exception exit code. Signed-off-by: Anton Blanchard Signed-off-by: Benjamin Herrenschmidt commit 8c77391475bc3284a380fc46aaf0bcf26bde3ae6 Author: Anton Blanchard Date: Mon Aug 2 20:11:36 2010 +0000 powerpc: Add 64bit csum_and_copy_to_user This adds the equivalent of csum_and_copy_from_user for the receive side so we can copy and checksum in one pass. It is modelled on the generic checksum routine. Signed-off-by: Anton Blanchard Signed-off-by: Benjamin Herrenschmidt commit fdd374b62ca4df144c0138359dcffa83df7a0ea8 Author: Anton Blanchard Date: Mon Aug 2 20:09:52 2010 +0000 powerpc: Optimise 64bit csum_partial_copy_generic and add csum_and_copy_from_user We use the same core loop as the new csum_partial, adding in the stores and exception handling code. To keep things simple we do all the exception fixup in csum_and_copy_from_user. This wrapper function is modelled on the generic checksum code and is careful to always calculate a complete checksum even if we only copied part of the data to userspace. To test this I forced checksumming on over loopback and ran socklib (a simple TCP benchmark). On a POWER6 575 throughput improved by 19% with this patch. If I forced both the sender and receiver onto the same cpu (with the hope of shifting the benchmark from being cache bandwidth limited to cpu limited), adding this patch improved performance by 55% Signed-off-by: Anton Blanchard Signed-off-by: Benjamin Herrenschmidt commit 9b83ecb0a3cf1bf7ecf84359ddcfb9dd49646bf2 Author: Anton Blanchard Date: Mon Aug 2 20:08:34 2010 +0000 powerpc: Optimise 64bit csum_partial The main loop of csum_partial runs very slowly on recent POWER CPUs. After some analysis on both POWER6 and POWER7 I came up with routine below. First we get the source aligned to a double word, ignoring any odd alignment to keep things simple. Then we do 64 bytes at a time, with an entry and exit limb of a further 64 bytes. On both POWER6 and POWER7 this should be as fast as we can go since we are limited by the latency of the adde instructions. To test this I forced checksumming on over loopback and ran socklib (a simple TCP benchmark). On a POWER6 575 throughput improved by 11% with this patch. Signed-off-by: Anton Blanchard Signed-off-by: Benjamin Herrenschmidt commit f6195aa09e618d712f52bf4fa33b5293820eb93d Author: Steven Rostedt Date: Wed Sep 1 12:23:12 2010 -0400 ring-buffer: Place duplicate expression into a single function While discussing the strictness of the 80 character limit on the Kernel Summit Discussion mailing list, I showed examples that I broke that limit slightly with some algorithms. In discussing with John Linville, what looked better, I realized that two of the 80 char breaking culprits were an identical expression. As a clean up, this patch moves the identical expression into its own helper function and that is used instead. As a side effect, the offending code is now under the 80 character limit. :-) This clean up code also changes the expression from (A - B) - C to A - (B + C) This makes the code look a little nicer too. Cc: John W. Linville Signed-off-by: Steven Rostedt commit c9cf4a019cff198ee5638323e3b0ee18886467e8 Author: Cyrill Gorcunov Date: Wed Aug 25 22:23:34 2010 +0400 perf, x86, Pentium4: Add RAW events verification Implements verification of - Bits of ESCR EventMask field (meaningful bits in field are hardware predefined and others bits should be set to zero) - INSTR_COMPLETED event (it is available on predefined cpu model only) - Thread shared events (they should be guarded by "perf_event_paranoid" sysctl due to security reason). The side effect of this action is that PERF_COUNT_HW_BUS_CYCLES become a "paranoid" general event. Signed-off-by: Cyrill Gorcunov Tested-by: Lin Ming Cc: Frederic Weisbecker Cc: Peter Zijlstra LKML-Reference: <20100825182334.GB14874@lenovo> Signed-off-by: Ingo Molnar commit 14416c35b6b9975c9593d7ecc8382d1ecaa0b598 Author: Akinobu Mita Date: Tue Aug 31 23:00:09 2010 -0400 lockup_detector: Remove unused panic_notifier The panic notifer in lockup_detector just set did_panic to 1. But did_panic is not used anywhere so we can just remove it. Signed-off-by: Akinobu Mita Cc: peterz@infradead.org Cc: gorcunov@gmail.com Cc: fweisbec@gmail.com LKML-Reference: <1283310009-22168-4-git-send-email-dzickus@redhat.com> Signed-off-by: Don Zickus Signed-off-by: Ingo Molnar commit eac243355a99d6b9d41bbeba4fc83e7f735485f9 Author: Akinobu Mita Date: Tue Aug 31 23:00:08 2010 -0400 lockup_detector: Convert cpu notifier to return encapsulate errno value By the commit e6bde73b07edeb703d4c89c1daabc09c303de11f ("cpu-hotplug: return better errno on cpu hotplug failure"), the cpu notifier can return encapsulate errno value, resulting in more meaningful error codes for CPU hotplug failures. This converts the cpu notifier to return encapsulate errno value for the lockup_detector as well. Signed-off-by: Akinobu Mita Cc: peterz@infradead.org Cc: gorcunov@gmail.com Cc: fweisbec@gmail.com LKML-Reference: <1283310009-22168-3-git-send-email-dzickus@redhat.com> Signed-off-by: Don Zickus Signed-off-by: Ingo Molnar commit 46b93b74fc022885ab69dfc8e2af0562dd626638 Author: Steven Rostedt Date: Tue Aug 31 16:35:20 2010 -0400 tracing/lockdep: Fix dependency of TRACE_IRQFLAGS When CONFIG_IRQSOFF_TRACER is set and CONFIG_PROVE_LOCKING is not, we get the following error: $ make oldconfig scripts/kconfig/conf --oldconfig arch/x86/Kconfig warning: (IRQSOFF_TRACER && TRACING_SUPPORT && FTRACE && TRACE_IRQFLAGS_SUPPORT && !ARCH_USES_GETTIMEOFFSET) selects TRACE_IRQFLAGS which has unmet direct dependencies (DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && PROVE_LOCKING) warning: (IRQSOFF_TRACER && TRACING_SUPPORT && FTRACE && TRACE_IRQFLAGS_SUPPORT && !ARCH_USES_GETTIMEOFFSET) selects TRACE_IRQFLAGS which has unmet direct dependencies (DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && PROVE_LOCKING) This is because IRQSOFF_TRACER selects TRACE_IRQFLAGS but TRACE_IRQFLAGS has PROVE_LOCKING as a dependency. This code is incorrect, and this patch changes the TRACE_IRQFLAGS to be just a simple bool that does not depend or select anything. Instead both IRQSOFF_TRACER and PROVE_LOCKING select it. Reported-by: Richard Kennedy Signed-off-by: Steven Rostedt commit 4cbe75be5c6ae86bdc7daec864eeb2dfd66f48bb Author: Robert Richter Date: Mon Aug 30 18:21:55 2010 +0200 oprofile, arm: initialize perf_event pointers with NULL The pointers must be NULL'ed to avoid double-freeing the pointers in rare cases during reinitialization. Signed-off-by: Robert Richter commit c7fd239a647ead1c336a051012d6bb96465ea8c6 Author: Will Deacon Date: Sun Aug 29 14:52:00 2010 -0400 ARM: oprofile: fix and simplify init/exit functions Now that oprofile_arch_exit is only called when the OProfile module is unloaded, it can assume that init completed successfully and not have to worry about double frees or releasing NULL perf events. This patch ensures that oprofile_arch_init fails gracefully on ARM and simplifies the exit code based on the above. Cc: Robert Richter Cc: Matt Fleming Cc: Peter Zijlstra Cc: Ingo Molnar Signed-off-by: Will Deacon Signed-off-by: Robert Richter commit 979048e1f26190d16b5aea87166177f37e614439 Author: Will Deacon Date: Sun Aug 29 14:51:59 2010 -0400 oprofile: don't call arch exit code from init code on failure oprofile_init calls oprofile_arch_init to initialise the architecture-specific backend code. If this backend code returns failure, oprofile_arch_exit is called immediately, making it difficult to allocate and free resources correctly. This patch removes the oprofile_arch_exit call from oprofile_init, meaning that all architectures must ensure that oprofile_arch_init cleans up any mess it's made before returning an error. As far as I can tell, this only affects the code for ARM. Cc: Robert Richter Cc: Matt Fleming Cc: Peter Zijlstra Cc: Ingo Molnar Signed-off-by: Will Deacon Signed-off-by: Robert Richter commit daab7fc734a53fdeaf844b7c03053118ad1769da Merge: 774ea0b 2bfc96a Author: Ingo Molnar Date: Tue Aug 31 09:45:21 2010 +0200 Merge commit 'v2.6.36-rc3' into x86/memblock Conflicts: arch/x86/kernel/trampoline.c mm/memblock.c Merge reason: Resolve the conflicts, update to latest upstream. Signed-off-by: Ingo Molnar commit 7ac41ccf47d82569d26f34beab1dec92cc3b6347 Author: Konrad Rzeszutek Wilk Date: Mon Aug 30 14:10:02 2010 -0400 x86, iommu: Fix IOMMU_INIT alignment rules This boot crash was observed: DMA-API: preallocated 32768 debug entries DMA-API: debugging enabled by kernel config BUG: unable to handle kernel paging request at 19da8955 IP: [] 0xf4ffffff *pde = 00000000 The crux of the failure was that even if we did not use any of the .iommu_table section, the linker would still insert it in the vmlinux file. This patch fixes that and also fixes the runtime crash where we would try to access the array. Reported-by: Ingo Molnar Signed-off-by: Konrad Rzeszutek Wilk Cc: Joerg Roedel Cc: FUJITA Tomonori LKML-Reference: <1283191802-25086-1-git-send-email-konrad.wilk@oracle.com> Signed-off-by: Ingo Molnar commit 9fbaf49c7f717740002d49eee1bbd03d89d8766a Author: Julia Lawall Date: Sat Aug 28 17:41:03 2010 +0200 x86, kmemcheck: Remove double test The opcodes 0x2e and 0x3e are tested for in the first Group 2 line as well. The sematic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @expression@ expression E; @@ ( * E || ... || E | * E && ... && E ) // Signed-off-by: Julia Lawall Reviewed-by: Pekka Enberg Cc: Vegard Nossum LKML-Reference: <1283010066-20935-5-git-send-email-julia@diku.dk> Signed-off-by: Ingo Molnar commit 3449dafaf514f83de8d9a41f2c437a8803eea24d Merge: f2481f3 98ee74a Author: Ingo Molnar Date: Mon Aug 30 08:55:38 2010 +0200 Merge branch 'perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core commit 6f44d0337cc54a46e83b4c8a6195607e78fff71d Author: Konrad Rzeszutek Wilk Date: Fri Aug 27 14:19:33 2010 -0400 x86, doc: Adding comments about .iommu_table and its neighbors. Updating the linker section with comments about .iommu_table and some other ones that I know of. CC: Sam Ravnborg CC: H. Peter Anvin CC: Fujita Tomonori CC: Thomas Gleixner CC: Ingo Molnar Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282933173-19960-1-git-send-email-konrad.wilk@oracle.com> Signed-off-by: H. Peter Anvin commit 774ea0bcb27f57b6fd521b3b6c43237782fed4b9 Author: Yinghai Lu Date: Wed Aug 25 13:39:18 2010 -0700 x86: Remove old bootmem code Requested by Ingo, Thomas and HPA. The old bootmem code is no longer necessary, and the transition is complete. Remove it. Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 6f2a75369e7561e800d86927ecd83c970996b21f Author: Yinghai Lu Date: Wed Aug 25 13:39:18 2010 -0700 x86, memblock: Use memblock_memory_size()/memblock_free_memory_size() to get correct dma_reserve memblock_memory_size() will return memory size in memblock.memory.region. memblock_free_memory_size() will return free memory size in memblock.memory.region. So We can get exact reseved size in specified range. Set the size right after initmem_init(), because later bootmem API will get area above 16M. (except some fallback). Later after we remove the bootmem, We could call that just before paging_init(). Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit a587d2daebcd2bc159d4348b6a7b028950a6d803 Author: Yinghai Lu Date: Wed Aug 25 13:39:18 2010 -0700 x86: Remove not used early_res code and some functions in e820.c that are not used anymore Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit a9ce6bc15100023b411f8117e53a016d61889800 Author: Yinghai Lu Date: Wed Aug 25 13:39:17 2010 -0700 x86, memblock: Replace e820_/_early string with memblock_ 1.include linux/memblock.h directly. so later could reduce e820.h reference. 2 this patch is done by sed scripts mainly -v2: use MEMBLOCK_ERROR instead of -1ULL or -1UL Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 72d7c3b33c980843e756681fb4867dc1efd62a76 Author: Yinghai Lu Date: Wed Aug 25 13:39:17 2010 -0700 x86: Use memblock to replace early_res 1. replace find_e820_area with memblock_find_in_range 2. replace reserve_early with memblock_x86_reserve_range 3. replace free_early with memblock_x86_free_range. 4. NO_BOOTMEM will switch to use memblock too. 5. use _e820, _early wrap in the patch, in following patch, will replace them all 6. because memblock_x86_free_range support partial free, we can remove some special care 7. Need to make sure that memblock_find_in_range() is called after memblock_x86_fill() so adjust some calling later in setup.c::setup_arch() -- corruption_check and mptable_update -v2: Move reserve_brk() early Before fill_memblock_area, to avoid overlap between brk and memblock_find_in_range() that could happen We have more then 128 RAM entry in E820 tables, and memblock_x86_fill() could use memblock_find_in_range() to find a new place for memblock.memory.region array. and We don't need to use extend_brk() after fill_memblock_area() So move reserve_brk() early before fill_memblock_area(). -v3: Move find_smp_config early To make sure memblock_find_in_range not find wrong place, if BIOS doesn't put mptable in right place. -v4: Treat RESERVED_KERN as RAM in memblock.memory. and they are already in memblock.reserved already.. use __NOT_KEEP_MEMBLOCK to make sure memblock related code could be freed later. -v5: Generic version __memblock_find_in_range() is going from high to low, and for 32bit active_region for 32bit does include high pages need to replace the limit with memblock.default_alloc_limit, aka get_max_mapped() -v6: Use current_limit instead -v7: check with MEMBLOCK_ERROR instead of -1ULL or -1L -v8: Set memblock_can_resize early to handle EFI with more RAM entries -v9: update after kmemleak changes in mainline Suggested-by: David S. Miller Suggested-by: Benjamin Herrenschmidt Suggested-by: Thomas Gleixner Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 301ff3e88ef9ff4bdb92f36a3e6170fce4c9dd34 Author: Yinghai Lu Date: Wed Aug 25 13:39:17 2010 -0700 x86, memblock: Use memblock_debug to control debug message print out Also let memblock_x86_reserve_range/memblock_x86_free_range could print out name if memblock=debug is specified will also print ther name when reserve_memblock_area/free_memblock_area are called. -v2: according to Ingo, put " if (memblock_debug) " in one place Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit e82d42be24bd5d75bf6f81045636e6ca95ab55f2 Author: Yinghai Lu Date: Wed Aug 25 13:39:17 2010 -0700 x86, memblock: Add memblock_x86_memory_in_range() It will return memory size in specified range according to memblock.memory.region Try to share some code with memblock_x86_free_memory_in_range() by passing get_free to __memblock_x86_memory_in_range(). -v2: Ben want _in_range in the name instead of size Signed-off-by: Yinghai Lu Cc: Benjamin Herrenschmidt Signed-off-by: H. Peter Anvin commit b52c17ce854125700c4e19d4427d39bf2504ff63 Author: Yinghai Lu Date: Wed Aug 25 13:39:16 2010 -0700 x86, memblock: Add memblock_x86_free_memory_in_range() It will return free memory size in specified range. We can not use memory_size - reserved_size here, because some reserved area may not be in the scope of memblock.memory.region. Use memblock.memory.region subtracting memblock.reserved.region to get free range array. then count size of all free ranges. -v2: Ben insist on using _in_range Signed-off-by: Yinghai Lu Cc: Benjamin Herrenschmidt Signed-off-by: H. Peter Anvin commit 6bcc8176d07f108da3b1af17fb2c0e82c80e948e Author: Yinghai Lu Date: Wed Aug 25 13:39:16 2010 -0700 x86, memblock: Add memblock_x86_find_in_range_node() It can be used to find NODE_DATA for numa. Need to make sure early_node_map[] is filled before it is called, otherwise it will fallback to memblock_find_in_range(), with node range. Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit edbe7d23b4482e7f33179290bcff3b1feae1c5f3 Author: Yinghai Lu Date: Wed Aug 25 13:39:16 2010 -0700 memblock: Add find_memory_core_early() According to node range in early_node_map[] with __memblock_find_in_range to find free range. Will be used by memblock_x86_find_in_range_node() memblock_x86_find_in_range_node will be used to find right buffer for NODE_DATA Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 88ba088c18457caaf8d2e5f8d36becc731a3d4f6 Author: Yinghai Lu Date: Wed Aug 25 13:39:16 2010 -0700 x86, memblock: Add memblock_x86_register_active_regions() and memblock_x86_hole_size() memblock_x86_register_active_regions() will be used to fill early_node_map, the result will be memblock.memory.region AND numa data memblock_x86_hole_size will be used to find hole size on memblock.memory.region with specified range. Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 4d5cf86ce187c0d3a4cdf233ab0cc6526ccbe01f Author: Yinghai Lu Date: Wed Aug 25 13:39:16 2010 -0700 x86, memblock: Add get_free_all_memory_range() get_free_all_memory_range is for CONFIG_NO_BOOTMEM=y, and will be called by free_all_memory_core_early(). It will use early_node_map aka active ranges subtract memblock.reserved to get all free range, and those ranges will convert to slab pages. -v4: increase range size Signed-off-by: Yinghai Lu Cc: Jan Beulich Signed-off-by: H. Peter Anvin commit 9dc5d569c133819c1ce069ebb1d771c62de32580 Author: Yinghai Lu Date: Wed Aug 25 13:39:15 2010 -0700 x86, memblock: Add memblock_x86_reserve_range/memblock_x86_free_range They are wrappers for core versions, which take start/end/name instead of base/size. This will make x86 conversion eaasier. could add more debug print out -v2: change get_max_mapped() to memblock.default_alloc_limit according to Michael Ellerman and Ben change to memblock_x86_reserve_range and memblock_x86_free_range according to Michael Ellerman -v3: call check_and_double after reserve/free, so could avoid to use find_memblock_area. Suggested by Michael Ellerman Signed-off-by: Yinghai Lu Cc: Benjamin Herrenschmidt Cc: Michael Ellerman Signed-off-by: H. Peter Anvin commit 27de794365786b4cdc3461ed4e23af2a33f40612 Author: Yinghai Lu Date: Wed Aug 25 13:39:15 2010 -0700 x86, memblock: Add memblock_x86_to_bootmem() memblock_x86_to_bootmem() will reserve memblock.reserved.region in bootmem after bootmem is set up. We can use it to with all arches that support memblock later. Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit f88eff74aa848e58b1ea49768c0bbb874b31357f Author: Yinghai Lu Date: Wed Aug 25 13:39:15 2010 -0700 bootmem, x86: Add weak version of reserve_bootmem_generic It will be used memblock_x86_to_bootmem converting It is an wrapper for reserve_bootmem, and x86 64bit is using special one. Also clean up that version for x86_64. We don't need to take care of numa path for that, bootmem can handle it how Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit fb74fb6db91abc3c1ceeb9d2c17b44866a12c63e Author: Yinghai Lu Date: Wed Aug 25 13:39:15 2010 -0700 x86, memblock: Add memblock_x86_find_in_range_size() size is returned according free range. Will be used to find free ranges for early_memtest and memory corruption check Do not mess it up with lib/memblock.c yet. Signed-off-by: Yinghai Lu Signed-off-by: H. Peter Anvin commit 7950c407c0288b223a200c1bba8198941599ca37 Author: Yinghai Lu Date: Wed Aug 25 13:39:14 2010 -0700 memblock: Add memblock_free/reserve_reserved_regions() So we can avoid export memblock_reserved_init_regions() Suggested by Ben. -v2: use __init_memblock attribute Signed-off-by: Yinghai Lu Cc: Benjamin Herrenschmidt Signed-off-by: H. Peter Anvin commit dd7c4d89730a1be2c1d361a8ae1f0fe9465ccf9c Author: Paul E. McKenney Date: Fri Aug 27 10:51:17 2010 -0700 rcu: performance fixes to TINY_PREEMPT_RCU callback checking This commit tightens up checks in rcu_preempt_check_callbacks() to avoid unnecessary special handling at rcu_read_unlock() time. Signed-off-by: Paul E. McKenney commit 98ee74a75ca0f047e75400afa712f7bf08268b8e Merge: 7de5d89 5225c45 Author: Frederic Weisbecker Date: Fri Aug 27 02:28:40 2010 +0200 Merge branch 'perf/urgent' into perf/core Conflicts: tools/perf/util/callchain.h Merge reason: Fix a non-trivial conflict with latest fixes commit 660a293ea9be709b893d371fbc0328fcca33c33a Author: Shaohua Li Date: Tue Jul 27 16:06:28 2010 +0800 x86, mm: Make spurious_fault check explicitly check the PRESENT bit pte_present() returns true even present bit isn't set but _PAGE_PROTNONE (global bit) bit is set. While with CONFIG_DEBUG_PAGEALLOC, free pages have global bit set but present bit clear. This patch makes we could catch free pages access with CONFIG_DEBUG_PAGEALLOC enabled. [ hpa: added a comment in the code as a warning to janitors ] Signed-off-by: Shaohua Li LKML-Reference: <1280217988.32400.75.camel@sli10-desk.sh.intel.com> Signed-off-by: H. Peter Anvin commit ee1f284f38c8dfcbc7b656915a039dde016de7d3 Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:58:05 2010 -0400 x86, iommu: Utilize the IOMMU_INIT macros functionality. We remove all of the sub-platform detection/init routines and instead use on the .iommu_table array of structs to call the .early_init if .detect returned a positive value. Also we can stop detecting other IOMMUs if the IOMMU used the _FINISH type macro. During the 'pci_iommu_init' stage, we call .init for the second-stage initialization if it was defined. Currently only SWIOTLB has this defined and it used to de-allocate the SWIOTLB if the other detected IOMMUs have deemed it unnecessary to use SWIOTLB. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-11-git-send-email-konrad.wilk@oracle.com> CC: Fujita Tomonori CC: Thomas Gleixner CC: Ingo Molnar Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: H. Peter Anvin commit 4db77ff3237a88ea74f691dd776e92b2f86a8f3f Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:58:04 2010 -0400 x86, VT-d: Make Intel VT-d IOMMU use IOMMU_INIT_* macros. We utilize the IOMMU_INIT macros to create this dependency: [null] | [pci_xen_swiotlb_detect] | [pci_swiotlb_detect_override] | [pci_swiotlb_detect_4gb] | +-------+--------+---------------------+ / \ \ [detect_calgary] [gart_iommu_hole_init] [detect_intel_iommu] | [amd_iommu_detect] Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-10-git-send-email-konrad.wilk@oracle.com> CC: Fujita Tomonori CC: Jesse Barnes CC: David Woodhouse CC: Len Brown CC: Chris Wright CC: Yinghai Lu Signed-off-by: H. Peter Anvin commit 22e6daf41ba28ddc06295e42859b266f737b3e99 Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:58:03 2010 -0400 x86, GART/AMD-VI: Make AMD GART and IOMMU use IOMMU_INIT_* macros. We utilize the IOMMU_INIT macros to create this dependency: [null] | [pci_xen_swiotlb_detect] | [pci_swiotlb_detect_override] | [pci_swiotlb_detect_4gb] | +-------+--------+ / \ [detect_calgary] [gart_iommu_hole_init] | [amd_iommu_detect] Meaning that 'amd_iommu_detect' will be called after 'gart_iommu_hole_init'. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-9-git-send-email-konrad.wilk@oracle.com> CC: Fujita Tomonori CC: Joerg Roedel CC: Thomas Gleixner CC: Ingo Molnar Signed-off-by: H. Peter Anvin commit d2aa232f3d0b5a3e22f91b736fe68eddcf0d5ea3 Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:58:02 2010 -0400 x86, calgary: Make Calgary IOMMU use IOMMU_INIT_* macros. We utilize the IOMMU_INIT macros to create this dependency: [pci_xen_swiotlb_detect] | [pci_swiotlb_detect_override] | [pci_swiotlb_detect_4gb] | [detect_calgary] Meaning that 'detect_calgary' is going to be called after 'pci_swiotlb_detect'. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-8-git-send-email-konrad.wilk@oracle.com> CC: Muli Ben-Yehuda CC: "Jon D. Mason" CC: "Darrick J. Wong" CC: Fujita Tomonori Signed-off-by: H. Peter Anvin commit 5cb3a267939a223eb84692d229569d2ef493d7ca Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:58:01 2010 -0400 x86, xen-swiotlb: Make Xen-SWIOTLB use IOMMU_INIT_* macros. We utilize the IOMMU_INIT macros to create this dependency: [null] | [pci_xen_swiotlb_detect] | [pci_swiotlb_detect_override] | [pci_swiotlb_detect_4gb] In other words, we set 'pci_xen_swiotlb_detect' to be the first detection to be run during start. CC: Fujita Tomonori Cc: Jeremy Fitzhardinge Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-7-git-send-email-konrad.wilk@oracle.com> Signed-off-by: H. Peter Anvin commit c116c5457c46edb767df6f4e36d4905e3514ad37 Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:58:00 2010 -0400 x86, swiotlb: Make SWIOTLB use IOMMU_INIT_* macros. We utilize the IOMMU_INIT macros to create this dependency: [pci_xen_swiotlb_detect] | [pci_swiotlb_detect_override] | [pci_swiotlb_detect_4gb] And set the SWIOTLB IOMMU_INIT to utilize 'pci_swiotlb_init' for .init and 'pci_swiotlb_late_init' for .late_init. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-6-git-send-email-konrad.wilk@oracle.com> CC: Fujita Tomonori Signed-off-by: H. Peter Anvin commit efa631c26d3bb1162b8f95008801db602217f52b Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:57:59 2010 -0400 x86, swiotlb: Simplify SWIOTLB pci_swiotlb_detect routine. In 'pci_swiotlb_detect' we used to do two different things: a). If user provided 'iommu=soft' or 'swiotlb=force' we would set swiotlb=1 and return 1 (and forcing pci-dma.c to call pci_swiotlb_init() immediately). b). If 4GB or more would be detected and if user did not specify iommu=off, we would set 'swiotlb=1' and return whatever 'a)' figured out. We simplify this by splitting a) and b) in two different routines. CC: Fujita Tomonori Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-5-git-send-email-konrad.wilk@oracle.com> Signed-off-by: H. Peter Anvin commit 5bef80a4b826b9cee1c6aec7ecc371ec395260cc Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:57:58 2010 -0400 x86, iommu: Add proper dependency sort routine (and sanity check). We are using a very simple sort routine which sorts the .iommu_table array in the order of dependencies. Specifically each structure of iommu_table_entry has a field 'depend' which contains the function pointer to the IOMMU that MUST be run before us. We sort the array of structures so that the struct iommu_table_entry with no 'depend' field are first, and then the subsequent ones are the ones for which the 'depend' function has been already invoked (in other words, precede us). Using the kernel's version 'sort', which is a mergeheap is feasible, but would require making the comparison operator scan recursivly the array to satisfy the "heapify" process: setting the levels properly. The end result would much more complex than it should be an it is just much simpler to utilize this simple sort routine. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-4-git-send-email-konrad.wilk@oracle.com> CC: H. Peter Anvin CC: Fujita Tomonori Signed-off-by: H. Peter Anvin commit 480125ba49ba62be93beea37770f266846e077ab Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:57:57 2010 -0400 x86, iommu: Make all IOMMU's detection routines return a value. We return 1 if the IOMMU has been detected. Zero or an error number if we failed to find it. This is in preperation of using the IOMMU_INIT so that we can detect whether an IOMMU is present. I have not tested this for regression on Calgary, nor on AMD Vi chipsets as I don't have that hardware. CC: Muli Ben-Yehuda CC: "Jon D. Mason" CC: "Darrick J. Wong" CC: Jesse Barnes CC: David Woodhouse CC: Chris Wright CC: Yinghai Lu CC: Joerg Roedel CC: H. Peter Anvin CC: Fujita Tomonori Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-3-git-send-email-konrad.wilk@oracle.com> Signed-off-by: H. Peter Anvin commit 0444ad93ea2449963132d68753020a6a24d69895 Author: Konrad Rzeszutek Wilk Date: Thu Aug 26 13:57:56 2010 -0400 x86, iommu: Add IOMMU_INIT macros, .iommu_table section, and iommu_table_entry structure This patch set adds a mechanism to "modularize" the IOMMUs we have on X86. Currently the count of IOMMUs is up to six and they have a complex relationship that requires careful execution order. 'pci_iommu_alloc' does that today, but most folks are unhappy with how it does it. This patch set addresses this and also paves a mechanism to jettison unused IOMMUs during run-time. For details that sparked this, please refer to: http://lkml.org/lkml/2010/8/2/282 The first solution that comes to mind is to convert wholesale the IOMMU detection routines to be called during initcall time frame. Unfortunately that misses the dependency relationship that some of the IOMMUs have (for example: for AMD-Vi IOMMU to work, GART detection MUST run first, and before all of that SWIOTLB MUST run). The second solution would be to introduce a registration call wherein the IOMMU would provide its detection/init routines and as well on what MUST run before it. That would work, except that the 'pci_iommu_alloc' which would run through this list, is called during mem_init. This means we don't have any memory allocator, and it is so early that we haven't yet started running through the initcall_t list. This solution borrows concepts from the 2nd idea and from how MODULE_INIT works. A macro is provided that each IOMMU uses to define it's detect function and early_init (before the memory allocate is active), and as well what other IOMMU MUST run before us. Since most IOMMUs depend on having SWIOTLB run first ("pci_swiotlb_detect") a convenience macro to depends on that is also provided. This macro is similar in design to MODULE_PARAM macro wherein we setup a .iommu_table section in which we populate it with the values that match a struct iommu_table_entry. During bootup we will sort through the array so that the IOMMUs that MUST run before us are first elements in the array. And then we just iterate through them calling the detection routine and if appropiate, the init routines. Signed-off-by: Konrad Rzeszutek Wilk LKML-Reference: <1282845485-8991-2-git-send-email-konrad.wilk@oracle.com> CC: H. Peter Anvin CC: Fujita Tomonori CC: Thomas Gleixner CC: Ingo Molnar Signed-off-by: H. Peter Anvin commit 9b861528a8012e7bc4d1f7bae07395b225331477 Author: Haicheng Li Date: Fri Aug 20 17:50:16 2010 +0800 x86-64, mem: Update all PGDs for direct mapping and vmemmap mapping changes When memory hotplug-adding happens for a large enough area that a new PGD entry is needed for the direct mapping, the PGDs of other processes would not get updated. This leads to some CPUs oopsing like below when they have to access the unmapped areas. [ 1139.243192] BUG: soft lockup - CPU#0 stuck for 61s! [bash:6534] [ 1139.243195] Modules linked in: ipv6 autofs4 rfcomm l2cap crc16 bluetooth rfkill binfmt_misc dm_mirror dm_region_hash dm_log dm_multipath dm_mod video output sbs sbshc fan battery ac parport_pc lp parport joydev usbhid processor thermal thermal_sys container button rtc_cmos rtc_core rtc_lib i2c_i801 i2c_core pcspkr uhci_hcd ohci_hcd ehci_hcd usbcore [ 1139.243229] irq event stamp: 8538759 [ 1139.243230] hardirqs last enabled at (8538759): [] restore_args+0x0/0x30 [ 1139.243236] hardirqs last disabled at (8538757): [] __do_softirq+0x106/0x146 [ 1139.243240] softirqs last enabled at (8538758): [] __do_softirq+0x137/0x146 [ 1139.243245] softirqs last disabled at (8538743): [] call_softirq+0x1c/0x34 [ 1139.243249] CPU 0: [ 1139.243250] Modules linked in: ipv6 autofs4 rfcomm l2cap crc16 bluetooth rfkill binfmt_misc dm_mirror dm_region_hash dm_log dm_multipath dm_mod video output sbs sbshc fan battery ac parport_pc lp parport joydev usbhid processor thermal thermal_sys container button rtc_cmos rtc_core rtc_lib i2c_i801 i2c_core pcspkr uhci_hcd ohci_hcd ehci_hcd usbcore [ 1139.243284] Pid: 6534, comm: bash Tainted: G M 2.6.32-haicheng-cpuhp #7 QSSC-S4R [ 1139.243287] RIP: 0010:[] [] alloc_arraycache+0x35/0x69 [ 1139.243292] RSP: 0018:ffff8802799f9d78 EFLAGS: 00010286 [ 1139.243295] RAX: ffff8884ffc00000 RBX: ffff8802799f9d98 RCX: 0000000000000000 [ 1139.243297] RDX: 0000000000190018 RSI: 0000000000000001 RDI: ffff8884ffc00010 [ 1139.243300] RBP: ffffffff8100c34e R08: 0000000000000002 R09: 0000000000000000 [ 1139.243303] R10: ffffffff8246dda0 R11: 000000d08246dda0 R12: ffff8802599bfff0 [ 1139.243305] R13: ffff88027904c040 R14: ffff8802799f8000 R15: 0000000000000001 [ 1139.243308] FS: 00007fe81bfe86e0(0000) GS:ffff88000d800000(0000) knlGS:0000000000000000 [ 1139.243311] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1139.243313] CR2: ffff8884ffc00000 CR3: 000000026cf2d000 CR4: 00000000000006f0 [ 1139.243316] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1139.243318] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [ 1139.243321] Call Trace: [ 1139.243324] [] ? alloc_arraycache+0x29/0x69 [ 1139.243328] [] ? cpuup_callback+0x1b0/0x32a [ 1139.243333] [] ? notifier_call_chain+0x33/0x5b [ 1139.243337] [] ? __raw_notifier_call_chain+0x9/0xb [ 1139.243340] [] ? cpu_up+0xb3/0x152 [ 1139.243344] [] ? store_online+0x4d/0x75 [ 1139.243348] [] ? sysdev_store+0x1b/0x1d [ 1139.243351] [] ? sysfs_write_file+0xe5/0x121 [ 1139.243355] [] ? vfs_write+0xae/0x14a [ 1139.243358] [] ? sys_write+0x47/0x6f [ 1139.243362] [] ? system_call_fastpath+0x16/0x1b This patch makes sure to always replicate new direct mapping PGD entries to the PGDs of all processes, as well as ensures corresponding vmemmap mapping gets synced. V1: initial code by Andi Kleen. V2: fix several issues found in testing. V3: as suggested by Wu Fengguang, reuse common code of vmalloc_sync_all(). [ hpa: changed pgd_change from int to bool ] Originally-by: Andi Kleen Signed-off-by: Haicheng Li LKML-Reference: <4C6E4FD8.6080100@linux.intel.com> Reviewed-by: Wu Fengguang Reviewed-by: Andi Kleen Signed-off-by: H. Peter Anvin commit 6afb5157b9eba4092e2f0f54d24a3806409bdde5 Author: Haicheng Li Date: Wed May 19 17:42:14 2010 +0800 x86, mm: Separate x86_64 vmalloc_sync_all() into separate functions No behavior change. Move some of vmalloc_sync_all() code into a new function sync_global_pgds() that will be useful for memory hotplug. Signed-off-by: Haicheng Li LKML-Reference: <4C6E4ECD.1090607@linux.intel.com> Reviewed-by: Wu Fengguang Reviewed-by: Andi Kleen Signed-off-by: H. Peter Anvin commit 8301bb68c6bb9836889641a47443aeb97b763f6c Author: Rabin Vincent Date: Mon Aug 9 12:57:30 2010 +0100 ARM: 6310/1: mmci: support different FIFO sizes The Ux500 variant has a 32-word FIFO (TXFIFOEMPTY is asserted when it has 2 left) and TXFIFOHALFEMPTY is repurposed as TXFIFOBURSTWRITEABLE, with a burst being defined as 8-words. Likewise for RX. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 2971944582ff43b7dedbb460777052243ac9915a Author: Rabin Vincent Date: Mon Aug 9 12:54:43 2010 +0100 ARM: 6307/1: mmci: allow the card detect GPIO value not to be inverted On some platforms, the GPIO value from the gpio_cd pin doesn't need to be inverted to get it active high. Add a cd_invert platform data parameter and change existing platforms using GPIO for CD (only Realview) to enable it. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King commit 9ea77bdb39b62c9bf9fd3cdd1c25a9420bccd380 Author: H. Peter Anvin Date: Wed Aug 25 16:38:20 2010 -0700 x86, bios: Make the x86 early memory reservation a kernel option Add a kernel command-line option so the x86 early memory reservation size can be adjusted at runtime instead of only at compile time. Suggested-by: Andrew Morton LKML-Reference: Signed-off-by: H. Peter Anvin commit f2481f3df4521e731da36afe7f0fe19a5c93e46d Author: Tom Zanussi Date: Tue Aug 24 00:23:50 2010 -0500 perf tools: Fix linking errors with --as-needed flag External shared libraries should never be appended to the LDFLAGS as this messes the linking order. As EXTLIBS collects those libraries, it seems that perl and python libraries should also be appended to EXTLIBS. Also fix the broken linking order. This is a refresh of a patch by Ozan Çağlayan and improved by both Tom Zanussi and Kirill A. Shutemov. Cc: Ozan Çağlayan Tested-by: Kirill A. Shutemov Tested-by: Tom Zanussi LKML-Reference: <1282627430.28324.8.camel@tropicana> Signed-off-by: Tom Zanussi Signed-off-by: Arnaldo Carvalho de Melo commit acf01734b1747b1ec4be6f159aff579ea5f7f8e2 Author: Borislav Petkov Date: Wed Aug 25 18:28:23 2010 +0200 x86, tsc: Remove CPU frequency calibration on AMD 6b37f5a20c0e5c334c010a587058354215433e92 introduced the CPU frequency calibration code for AMD CPUs whose TSCs didn't increment with the core's P0 frequency. From F10h, revB onward, however, the TSC increment rate is denoted by MSRC001_0015[24] and when this bit is set (which should be done by the BIOS) the TSC increments with the P0 frequency so the calibration is not needed and booting can be a couple of mcecs faster on those machines. Besides, there should be virtually no machines out there which don't have this bit set, therefore this calibration can be safely removed. It is a shaky hack anyway since it assumes implicitly that the core is in P0 when BIOS hands off to the OS, which might not always be the case. Signed-off-by: Borislav Petkov LKML-Reference: <20100825162823.GE26438@aftab> Signed-off-by: H. Peter Anvin commit 90f18e63fbd005133624bf18a5e8b75c92e90f4d Author: Srikar Dronamraju Date: Wed Aug 25 19:13:29 2010 +0530 perf symbols: List symbols in a dso in ascending name order Given a dso, list the symbols in ascending name order. Needed for listing available symbols from perf probe. Cc: Ananth N Mavinakayanahalli Cc: Andrew Morton Cc: Christoph Hellwig Cc: "Frank Ch. Eigler" Cc: Frederic Weisbecker Cc: Jim Keniston Cc: Mark Wielaard Cc: Masami Hiramatsu Cc: Mathieu Desnoyers Cc: Naren A Devaiah Cc: Oleg Nesterov Cc: "Paul E. McKenney" Cc: Randy Dunlap Cc: Srikar Dronamraju Cc: Steven Rostedt LKML-Reference: <20100825134329.5447.92261.sendpatchset@localhost6.localdomain6> Signed-off-by: Srikar Dronamraju Signed-off-by: Arnaldo Carvalho de Melo commit 3c916cc28ca31892d96215eaf99c1d592884961d Author: Arnaldo Carvalho de Melo Date: Wed Aug 25 17:18:35 2010 -0300 perf hists browser: Introduce "expand/collapse all callchains" action When looking at a callchains enabled perf data file one can find it tiresome to start with all callchains collapsed and then to have to go one by one expanding them. So associate 'E' with "Expand all callchains" and 'C' with "Collapse all callchains". This way now one can have the top level view and then switch to/from having all callchains expanded. More work is needed to allow expanding just from one branch down to its leaves. Reported-by: Christoph Hellwig Cc: Christoph Hellwig Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 163caed90203a7cab66326ce2be138715dc7c5da Author: Arnaldo Carvalho de Melo Date: Wed Aug 25 16:30:03 2010 -0300 perf hists browser: Init the has_children fields just once Not everytime we show the callchains, removing duplicated initialization of this field. Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 293db47f4753f5746e5aaa998ceb24dff662cf7e Author: Arnaldo Carvalho de Melo Date: Wed Aug 25 16:05:36 2010 -0300 perf hists browser: replace rb_first() != NULL by !RB_EMPTY_ROOT() Its way too stupid to use rb_first() for just caching if there are children, use the cheaper RB_EMPTY_ROOT() instead. Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 18b308d7994e0e2a360b979f159fa7d2b91a26b1 Author: Arnaldo Carvalho de Melo Date: Wed Aug 25 12:47:44 2010 -0300 perf hists: Fix hist_entry__init_have_children It wasn't setting the ms.has_children for the hist_entry itself, just for the callchain Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 7de5d895b2020260190db0021de646f3f22f755e Merge: 04fba67 502adf5 Author: Ingo Molnar Date: Wed Aug 25 13:09:58 2010 +0200 Merge branch 'linus' into perf/core Merge reason: pick up perf fixes Signed-off-by: Ingo Molnar commit 04fba67163a9e6132614b72b33bb2743bd33ffb3 Author: Lin Ming Date: Wed Aug 25 14:49:09 2010 +0800 perf: Remove unused variable This fixes the following build warning introduced by the callchain rework: arch/x86/kernel/cpu/perf_event.c:1574: warning: ‘perf_callchain_entry_nmi’ defined but not used Signed-off-by: Lin Ming Cc: Peter Zijlstra Cc: Frederic Weisbecker LKML-Reference: <1282718949.16443.75.camel@minggr.sh.intel.com> Signed-off-by: Ingo Molnar commit d0cd7425fab774a480cce17c2f649984312d0b55 Author: H. Peter Anvin Date: Tue Aug 24 17:32:04 2010 -0700 x86, bios: By default, reserve the low 64K for all BIOSes The laundry list of BIOSes that need the low 64K reserved is getting very long, so make it the default across all BIOSes. This also allows the code to be simplified and unified with the reservation code for the first 4K. This resolves kernel bugzilla 16661 and who knows what else... Signed-off-by: H. Peter Anvin LKML-Reference: commit b0f4c062fb6dd4c02b1fe6de73319ed50a09b27d Author: Alok Kataria Date: Mon Aug 23 17:05:57 2010 -0700 x86, paravirt: Remove alloc_pmd_clone hook, only used by VMI VMI was the only user of the alloc_pmd_clone hook, given that VMI is now removed we can also remove this hook. Signed-off-by: Alok N Kataria LKML-Reference: <1282608357.19396.36.camel@ank32.eng.vmware.com> Cc: Jeremy Fitzhardinge Signed-off-by: H. Peter Anvin commit 2c96c7751d2bb822542b03ddfaca70933f5aaf02 Author: Paul E. McKenney Date: Mon Aug 23 16:34:02 2010 -0700 rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes CPU-bound real-time processes can cause RCU CPU stall warnings, and much other trouble as well. Document the fact that they can cause RCU CPU stall warnings. Suggested-by: Darren Hart Signed-off-by: Paul E. McKenney commit 9863c90f682fba34cdc26c3437e8c00da6c83fa4 Author: Alok Kataria Date: Mon Aug 23 14:49:11 2010 -0700 x86, vmware: Remove deprecated VMI kernel support With the recent innovations in CPU hardware acceleration technologies from Intel and AMD, VMware ran a few experiments to compare these techniques to guest paravirtualization technique on VMware's platform. These hardware assisted virtualization techniques have outperformed the performance benefits provided by VMI in most of the workloads. VMware expects that these hardware features will be ubiquitous in a couple of years, as a result, VMware has started a phased retirement of this feature from the hypervisor. Please note that VMI has always been an optimization and non-VMI kernels still work fine on VMware's platform. Latest versions of VMware's product which support VMI are, Workstation 7.0 and VSphere 4.0 on ESX side, future maintainence releases for these products will continue supporting VMI. For more details about VMI retirement take a look at this, http://blogs.vmware.com/guestosguide/2009/09/vmi-retirement.html This feature removal was scheduled for 2.6.37 back in September 2009. Signed-off-by: Alok N Kataria LKML-Reference: <1282600151.19396.22.camel@ank32.eng.vmware.com> Signed-off-by: H. Peter Anvin commit 59daa706fbec745684702741b9f5373142dd9fdc Author: Ma Ling Date: Tue Jun 29 03:24:25 2010 +0800 x86, mem: Optimize memcpy by avoiding memory false dependece All read operations after allocation stage can run speculatively, all write operation will run in program order, and if addresses are different read may run before older write operation, otherwise wait until write commit. However CPU don't check each address bit, so read could fail to recognize different address even they are in different page.For example if rsi is 0xf004, rdi is 0xe008, in following operation there will generate big performance latency. 1. movq (%rsi), %rax 2. movq %rax, (%rdi) 3. movq 8(%rsi), %rax 4. movq %rax, 8(%rdi) If %rsi and rdi were in really the same meory page, there are TRUE read-after-write dependence because instruction 2 write 0x008 and instruction 3 read 0x00c, the two address are overlap partially. Actually there are in different page and no any issues, but without checking each address bit CPU could think they are in the same page, and instruction 3 have to wait for instruction 2 to write data into cache from write buffer, then load data from cache, the cost time read spent is equal to mfence instruction. We may avoid it by tuning operation sequence as follow. 1. movq 8(%rsi), %rax 2. movq %rax, 8(%rdi) 3. movq (%rsi), %rax 4. movq %rax, (%rdi) Instruction 3 read 0x004, instruction 2 write address 0x010, no any dependence. At last on Core2 we gain 1.83x speedup compared with original instruction sequence. In this patch we first handle small size(less 20bytes), then jump to different copy mode. Based on our micro-benchmark small bytes from 1 to 127 bytes, we got up to 2X improvement, and up to 1.5X improvement for 1024 bytes on Corei7. (We use our micro-benchmark, and will do further test according to your requirment) Signed-off-by: Ma Ling LKML-Reference: <1277753065-18610-1-git-send-email-ling.ma@intel.com> Signed-off-by: H. Peter Anvin commit fdf4289679fd41d76553ce224750e9737cd80eea Author: Ma, Ling Date: Mon Aug 23 14:11:12 2010 -0700 x86, mem: Don't implement forward memmove() as memcpy() memmove() allow source and destination address to be overlap, but there is no such limitation for memcpy(). Therefore, explicitly implement memmove() in both the forwards and backward directions, to give us the ability to optimize memcpy(). Signed-off-by: Ma Ling LKML-Reference: Signed-off-by: H. Peter Anvin commit 61c77326d1df079f202fa79403c3ccd8c5966a81 Author: Shaohua Li Date: Mon Aug 16 09:16:55 2010 +0800 x86, mm: Avoid unnecessary TLB flush In x86, access and dirty bits are set automatically by CPU when CPU accesses memory. When we go into the code path of below flush_tlb_fix_spurious_fault(), we already set dirty bit for pte and don't need flush tlb. This might mean tlb entry in some CPUs hasn't dirty bit set, but this doesn't matter. When the CPUs do page write, they will automatically check the bit and no software involved. On the other hand, flush tlb in below position is harmful. Test creates CPU number of threads, each thread writes to a same but random address in same vma range and we measure the total time. Under a 4 socket system, original time is 1.96s, while with the patch, the time is 0.8s. Under a 2 socket system, there is 20% time cut too. perf shows a lot of time are taking to send ipi/handle ipi for tlb flush. Signed-off-by: Shaohua Li LKML-Reference: <20100816011655.GA362@sli10-desk.sh.intel.com> Acked-by: Suresh Siddha Cc: Andrea Archangeli Signed-off-by: H. Peter Anvin commit a6b9b4d50f492630443b38404d1f436b3b748c14 Merge: e36c886 28457ee Author: Ingo Molnar Date: Mon Aug 23 11:32:34 2010 +0200 Merge branch 'rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/rcu commit 612d4fd7d0c4a866a531099d4cdd0424c1058321 Author: Frederic Weisbecker Date: Sun Aug 22 21:10:35 2010 +0200 perf: Support for callchains merge If we sort the histograms by comm, which is the default, we need to merge some of them, typically different thread histograms of a same process, or just same comm. But during this merge, we forgot to merge callchains. So imagine we have three threads (tids: 1000, 1001, 1002) that belong to comm "foo". tid 1000 got 100 events tid 1001 got 10 events tid 1002 got 3 events Once we merge these histograms to get a per comm result, we'll finally get: "foo" got 113 events The problem is if we merge 1000 and 1001 histograms into 1002, then the end merge result, wrt callchains, will be only callchains that belong to 1002. This is because we haven't handled callchains in the merge. Only those from one of the threads inside a common comm survive. It means during this merge, we can lose a lot of callchains. Fix this by implementing callchains merge and apply it on histograms that collapse. Reported-by: Christoph Hellwig Signed-off-by: Frederic Weisbecker Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras commit 6cb8e56161c4103af9178ea45ba61ddbde02969a Author: Frederic Weisbecker Date: Sun Aug 22 20:18:01 2010 +0200 perf: Rename append_callchain into callchain_append Do that to start a consistant callchain API namespace. Signed-off-by: Frederic Weisbecker Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Christoph Hellwig commit d2009c5130b627d3efccae8ed36cd43450c8486d Author: Frederic Weisbecker Date: Sun Aug 22 20:05:22 2010 +0200 perf: Keep track of the max depth of a callchain In order to implement callchains collapsing, we need to keep track of the maximum depth in a histogram tree of callchains. This way we'll avoid allocating an arbitrary temporary buffer size on callchain merge time. Signed-off-by: Frederic Weisbecker Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Christoph Hellwig commit 28457ee69c473a903e51e26c7bcd6f1e9eceb93e Author: Arnd Bergmann Date: Tue Mar 9 19:24:45 2010 +0100 vhost: add __rcu annotations Also add rcu_dereference_protected() for code paths where locks are held. Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: "Michael S. Tsirkin" commit f4e7ac0a233a4dc9b51345546ab69c64bb43e2c1 Author: Kirill A. Shutemov Date: Sat Aug 21 03:38:20 2010 +0300 perf tools: add test for strlcpy() Some Linux distributions like ALT Linux provides patched glibc with contains strlcpy(). It's confilcts with strlcpy() from perf. Let's add check for strlcpy(). Cc: Peter Zijlstra Cc: Paul Mackerras Cc: Ingo Molnar LKML-Reference: <1282351101-8879-1-git-send-email-kirill@shutemov.name> Signed-off-by: Kirill A. Shutemov Signed-off-by: Arnaldo Carvalho de Melo commit 8b9e74eb8af808807192d16b76565c27154ae7ed Author: Arnaldo Carvalho de Melo Date: Sat Aug 21 10:38:16 2010 -0300 perf tools: Add --tui and --stdio to choose the UI Relying just on ~/.perfconfig or rebuilding the tool disabling support for the TUI is too cumbersome, so allow specifying which UI to use and make the command line switch override whatever is in ~/.perfconfig. Suggested-by: Christoph Hellwig Cc: Christoph Hellwig Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 65e6bf484c497f02d47a0faae69ee398cd59cfda Author: Paul E. McKenney Date: Thu Aug 19 21:43:09 2010 -0700 rcu: add comment stating that list_empty() applies to RCU-protected lists Because list_empty() does not dereference any RCU-protected pointers, and further does not pass such pointers to the caller (so that the caller does not dereference them either), it is safe to use list_empty() on RCU-protected lists. There is no need for a list_empty_rcu(). This commit adds a comment stating this explicitly. Requested-by: Andrew Morton Signed-off-by: Paul E. McKenney commit 80dcf60e6b97c7363971e7a0a788d8484d35f8a6 Author: Paul E. McKenney Date: Thu Aug 19 16:57:45 2010 -0700 rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU Replace one of the ACCESS_ONCE() calls in each of __rcu_read_lock() and __rcu_read_unlock() with barrier() as suggested by Steve Rostedt in order to avoid the potential compiler-optimization-induced bug noted by Mathieu Desnoyers. Located-by: Mathieu Desnoyers Suggested-by: Steven Rostedt Signed-off-by: Paul E. McKenney commit 7b0b759b65247cbc66384a912be9acf8d4800636 Author: Paul E. McKenney Date: Tue Aug 17 14:18:46 2010 -0700 rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU The CONFIG_PREEMPT_RCU kernel configuration parameter was recently re-introduced, but as an indication of the type of RCU (preemptible vs. non-preemptible) instead of as selecting a given implementation. This commit uses CONFIG_PREEMPT_RCU to combine duplicate code from include/linux/rcutiny.h and include/linux/rcutree.h into include/linux/rcupdate.h. This commit also combines a few other pieces of duplicate code that have accumulated. Signed-off-by: Paul E. McKenney commit 73d4da4d360136826b36f78f5cf72b29da82c8a6 Author: Paul E. McKenney Date: Mon Aug 16 10:50:54 2010 -0700 rcu: Upgrade srcu_read_lock() docbook about SRCU grace periods It is illegal to wait for an SRCU grace period while within the corresponding flavor of SRCU read-side critical section. Therefore, this commit updates the srcu_read_lock() docbook accordingly. Signed-off-by: Paul E. McKenney commit 5cc6517abdeccb6690b344a43b5ce8eaee82da3c Author: Paul E. McKenney Date: Fri Aug 13 16:34:22 2010 -0700 rcu: document ways of stalling updates in low-memory situations Signed-off-by: Paul E. McKenney commit a3dc3fb161f9b4066c0fce22db72638af8baf83b Author: Paul E. McKenney Date: Fri Aug 13 16:16:25 2010 -0700 rcu: repair code-duplication FIXMEs Combine the duplicate definitions of ULONG_CMP_GE(), ULONG_CMP_LT(), and rcu_preempt_depth() into include/linux/rcupdate.h. Signed-off-by: Paul E. McKenney commit 53d84e004d5e8c018be395c4330dc72fd60bd13e Author: Paul E. McKenney Date: Tue Aug 10 14:28:53 2010 -0700 rcu: permit suppressing current grace period's CPU stall warnings When using a kernel debugger, a long sojourn in the debugger can get you lots of RCU CPU stall warnings once you resume. This might not be helpful, especially if you are using the system console. This patch therefore allows RCU CPU stall warnings to be suppressed, but only for the duration of the current set of grace periods. This differs from Jason's original patch in that it adds support for tiny RCU and preemptible RCU, and uses a slightly different method for suppressing the RCU CPU stall warning messages. Signed-off-by: Jason Wessel Signed-off-by: Paul E. McKenney Tested-by: Jason Wessel commit 8cdd32a918350430483751feaae1c19cef816f69 Author: Paul E. McKenney Date: Mon Aug 9 14:23:03 2010 -0700 rcu: refer RCU CPU stall-warning victims to stallwarn.txt There is some documentation on RCU CPU stall warnings contained in Documentation/RCU/stallwarn.txt, but it will not be apparent to someone who runs into such a warning while under time pressure. This commit therefore adds comments preceding the printk()s pointing out the location of this documentation. Signed-off-by: Paul E. McKenney commit 9079fd7c2e06a92cf27d05224a1f478581916c5b Author: Paul E. McKenney Date: Sat Aug 7 21:59:54 2010 -0700 rcu: update obsolete rcu_read_lock() comment. The comment says that blocking is illegal in rcu_read_lock()-style RCU read-side critical sections, which is no longer entirely true given preemptible RCU. This commit provides a fix. Suggested-by: David Miller Signed-off-by: Paul E. McKenney commit a57eb940d130477a799dfb24a570ee04979c0f7f Author: Paul E. McKenney Date: Tue Jun 29 16:49:16 2010 -0700 rcu: Add a TINY_PREEMPT_RCU Implement a small-memory-footprint uniprocessor-only implementation of preemptible RCU. This implementation uses but a single blocked-tasks list rather than the combinatorial number used per leaf rcu_node by TREE_PREEMPT_RCU, which reduces memory consumption and greatly simplifies processing. This version also takes advantage of uniprocessor execution to accelerate grace periods in the case where there are no readers. The general design is otherwise broadly similar to that of TREE_PREEMPT_RCU. This implementation is a step towards having RCU implementation driven off of the SMP and PREEMPT kernel configuration variables, which can happen once this implementation has accumulated sufficient experience. Removed ACCESS_ONCE() from __rcu_read_unlock() and added barrier() as suggested by Steve Rostedt in order to avoid the compiler-reordering issue noted by Mathieu Desnoyers (http://lkml.org/lkml/2010/8/16/183). As can be seen below, CONFIG_TINY_PREEMPT_RCU represents almost 5Kbyte savings compared to CONFIG_TREE_PREEMPT_RCU. Of course, for non-real-time workloads, CONFIG_TINY_RCU is even better. CONFIG_TREE_PREEMPT_RCU text data bss dec filename 13 0 0 13 kernel/rcupdate.o 6170 825 28 7023 kernel/rcutree.o ---- 7026 Total CONFIG_TINY_PREEMPT_RCU text data bss dec filename 13 0 0 13 kernel/rcupdate.o 2081 81 8 2170 kernel/rcutiny.o ---- 2183 Total CONFIG_TINY_RCU (non-preemptible) text data bss dec filename 13 0 0 13 kernel/rcupdate.o 719 25 0 744 kernel/rcutiny.o --- 757 Total Requested-by: Loïc Minier Signed-off-by: Paul E. McKenney commit ed8052616680e72f58bca678d4d1678cb12a7e47 Author: Peter Zijlstra Date: Fri Aug 20 14:30:41 2010 +0200 perf: Remove superfluous return values from perf_callchain_*() Fixes these build warnings introduced by the callchain rework: arch/x86/kernel/cpu/perf_event.c: In function ‘perf_callchain_kernel’: arch/x86/kernel/cpu/perf_event.c:1646: warning: ‘return’ with a value, in function returning void arch/x86/kernel/cpu/perf_event.c: In function ‘perf_callchain_user’: arch/x86/kernel/cpu/perf_event.c:1699: warning: ‘return’ with a value, in function returning void arch/x86/kernel/cpu/perf_event.c: At top level: arch/x86/kernel/cpu/perf_event.c:1607: warning: ‘perf_callchain_entry_nmi’ defined but not used Signed-off-by: Peter Zijlstra Acked-by: Frederic Weisbecker LKML-Reference: Signed-off-by: Ingo Molnar commit 277b199800ac90811ac86d215063df1984f51619 Author: Lin Ming Date: Fri Aug 20 11:03:51 2010 +0800 lockup_detector: Make callback function static watchdog_overflow_callback() is only used in kernel/watchdog.c. Signed-off-by: Lin Ming Cc: Peter Zijlstra Cc: Don Zickus LKML-Reference: <1282273431.16443.32.camel@minggr.sh.intel.com> Signed-off-by: Ingo Molnar commit 4d87ffadbba88105f33271bef5f2c79366c6a4e1 Author: Paul E. McKenney Date: Wed Aug 4 17:31:12 2010 -0700 rcu: Fix RCU_FANOUT help message Commit cf244dc01bf68 added a fourth level to the TREE_RCU hierarchy, but the RCU_FANOUT help message still said "cube root". This commit fixes this to "fourth root" and also emphasizes that production systems are well-served by the default. (Stress-testing RCU itself uses small RCU_FANOUT values in order to test large-system code paths on small(er) systems.) Located-by: John Kacur Signed-off-by: Paul E. McKenney commit 910b1b7e19a292ff685001caf1bf1a9775b771a1 Author: Paul E. McKenney Date: Wed Jul 21 08:05:56 2010 -0700 rcu: Allow RCU CPU stall warnings to be off at boot, but manually enablable Currently, if RCU CPU stall warnings are enabled, they are enabled immediately upon boot. They can be manually disabled via /sys (and also re-enabled via /sys), and are automatically disabled upon panic. However, some users need RCU CPU stalls to be disabled at boot time, but to be enabled without rebuilding/rebooting. For example, someone running a real-time application in production might not want the additional latency of RCU CPU stall detection in normal operation, but might need to enable it at any point for fault isolation purposes. This commit therefore provides a new CONFIG_RCU_CPU_STALL_DETECTOR_RUNNABLE kernel configuration parameter that maintains the current behavior (enable at boot) by default, but allows a kernel to be configured with RCU CPU stall detection built into the kernel, but disabled at boot time. Requested-by: Clark Williams Requested-by: John Kacur Signed-off-by: Paul E. McKenney commit 687d7a960aea46e016182c7ce346d62c4dbd0366 Author: Paul E. McKenney Date: Wed Jul 21 06:52:40 2010 -0700 rcu: restrict TREE_RCU to SMP builds with !PREEMPT Because both TINY_RCU and TREE_PREEMPT_RCU have been in mainline for several releases, it is time to restrict the use of TREE_RCU to SMP non-preemptible systems. This reduces testing/validation effort. This commit is a first step towards driving the selection of RCU implementation directly off of the SMP and PREEMPT configuration parameters. Signed-off-by: Paul E. McKenney commit f2e0dd7090eddef427ab9d9f81de122244cded51 Author: Paul E. McKenney Date: Wed Jul 14 14:38:30 2010 -0700 rcu: allow RCU CPU stall warning messages to be controlled in /sys Set the permissions of the rcu_cpu_stall_suppress to 644 to enable RCU CPU stall warnings to be enabled and disabled at runtime via sysfs. Suggested-by: Josh Triplett Signed-off-by: Paul E. McKenney commit ded5e5ed2f3348ba2f9a319c6497e46c22850e97 Author: Paul E. McKenney Date: Wed May 19 10:46:55 2010 -0700 Update call_rcu() usage, add synchronize_rcu() Reported-by: Kyle Hubert Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 65e423f8ee5843e1ea3f2d94adf4ba3560a17f7b Author: Paul E. McKenney Date: Wed May 19 10:42:16 2010 -0700 Update documentation to note the passage of INIT_RCU_HEAD() Signed-off-by: Alexey Dobriyan Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 5e8067adfdbaf97039a97540765b1e16eb8d61cc Author: Mathieu Desnoyers Date: Sat Apr 17 08:48:41 2010 -0400 rcu head remove init RCU heads really don't need to be initialized. Their state before call_rcu() really does not matter. We need to keep init/destroy_rcu_head_on_stack() though, since we want debugobjects to be able to keep track of these objects. Signed-off-by: Alexey Dobriyan Signed-off-by: Mathieu Desnoyers CC: David S. Miller CC: "Paul E. McKenney" CC: akpm@linux-foundation.org CC: mingo@elte.hu CC: laijs@cn.fujitsu.com CC: dipankar@in.ibm.com CC: josh@joshtriplett.org CC: dvhltc@us.ibm.com CC: niv@us.ibm.com CC: tglx@linutronix.de CC: peterz@infradead.org CC: rostedt@goodmis.org CC: Valdis.Kletnieks@vt.edu CC: dhowells@redhat.com CC: eric.dumazet@gmail.com CC: Alexey Dobriyan Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 4d2deb40b20c2608486598364e63e37b09a9ac2f Author: Arnd Bergmann Date: Wed Feb 24 20:01:56 2010 +0100 kernel: __rcu annotations This adds annotations for RCU operations in core kernel components Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Al Viro Cc: Jens Axboe Cc: Andrew Morton Reviewed-by: Josh Triplett commit d2c2486bc8e185548490e8edbc84d185de9eaff1 Author: Arnd Bergmann Date: Fri Feb 26 14:53:26 2010 +0100 idr: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Manfred Spraul Reviewed-by: Josh Triplett commit a1115570b31091f3e3ab9e6cf7ee8d320a42be84 Author: Arnd Bergmann Date: Thu Feb 25 23:43:52 2010 +0100 radix-tree: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Nick Piggin Reviewed-by: Josh Triplett commit 374a8e0dc33c984fac284de7d57d77af3cfdbfb7 Author: Arnd Bergmann Date: Wed Feb 24 20:00:13 2010 +0100 notifiers: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Alan Cox Reviewed-by: Josh Triplett commit 77d8485a8b5416c615b6acd95f01bfcacd7d81ff Author: Paul E. McKenney Date: Thu Jul 8 17:38:59 2010 -0700 rcu: improve kerneldoc for rcu_read_lock(), call_rcu(), and synchronize_rcu() Make it explicit that new RCU read-side critical sections that start after call_rcu() and synchronize_rcu() start might still be running after the end of the relevant grace period. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 742734eea0cf5314cde5945963ed964be167bd84 Author: Paul E. McKenney Date: Wed Jun 30 11:43:52 2010 -0700 rcu: add boot parameter to suppress RCU CPU stall warning messages Although the RCU CPU stall warning messages are a very good way to alert people to a problem, once alerted, it is sometimes helpful to shut them off in order to avoid obscuring other messages that might be being used to track down the problem. Although you can rebuild the kernel with CONFIG_RCU_CPU_STALL_DETECTOR=n, this is sometimes inconvenient. This commit therefore adds a boot parameter named "rcu_cpu_stall_suppress" that shuts these messages off without requiring a rebuild (though a reboot might be needed for those not brave enough to patch their kernel while it is running). This message-suppression was already in place for the panic case, so this commit need only rename the variable and export it via module_param(). Signed-off-by: Paul E. McKenney commit b163760e37047781b37c412cde54d146ac4b651f Author: Paul E. McKenney Date: Wed Jun 2 16:21:38 2010 -0700 rcu: make CPU stall warning timeout configurable Also set the default to 60 seconds, up from the previous hard-coded timeout of 10 seconds. This allows people who care to set short timeouts, while avoiding people with unusual configurations (make randconfig!!!) from being bothered with spurious CPU stall warnings. Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 4221a9918e38b7494cee341dda7b7b4bb8c04bde Author: Tetsuo Handa Date: Sat Jun 26 01:08:19 2010 +0900 Add RCU check for find_task_by_vpid(). find_task_by_vpid() says "Must be called under rcu_read_lock().". But due to commit 3120438 "rcu: Disable lockdep checking in RCU list-traversal primitives", we are currently unable to catch "find_task_by_vpid() with tasklist_lock held but RCU lock not held" errors due to the RCU-lockdep checks being suppressed in the RCU variants of the struct list_head traversals. This commit therefore places an explicit check for being in an RCU read-side critical section in find_task_by_pid_ns(). =================================================== [ INFO: suspicious rcu_dereference_check() usage. ] --------------------------------------------------- kernel/pid.c:386 invoked rcu_dereference_check() without protection! other info that might help us debug this: rcu_scheduler_active = 1, debug_locks = 1 1 lock held by rc.sysinit/1102: #0: (tasklist_lock){.+.+..}, at: [] sys_setpgid+0x40/0x160 stack backtrace: Pid: 1102, comm: rc.sysinit Not tainted 2.6.35-rc3-dirty #1 Call Trace: [] lockdep_rcu_dereference+0x94/0xb0 [] find_task_by_pid_ns+0x6d/0x70 [] find_task_by_vpid+0x18/0x20 [] sys_setpgid+0x47/0x160 [] sysenter_do_call+0x12/0x36 Commit updated to use a new rcu_lockdep_assert() exported API rather than the old internal __do_rcu_dereference(). Signed-off-by: Tetsuo Handa Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 394f99a9007d4274f7076bb8553ab0ff9707688b Author: Lai Jiangshan Date: Mon Jun 28 16:25:04 2010 +0800 rcu: simplify the usage of percpu data &percpu_data is compatible with allocated percpu data. And we use it and remove the "->rda[NR_CPUS]" array, saving significant storage on systems with large numbers of CPUs. This does add an additional level of indirection and thus an additional cache line referenced, but because ->rda is not used on the read side, this is OK. Signed-off-by: Lai Jiangshan Reviewed-by: Tejun Heo Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit e546f485e1d7520ca0200502cdcc11b503f4805c Author: Lai Jiangshan Date: Mon Jun 21 16:57:42 2010 +0800 rcutorture: add random preemption Add random preemption to help we to torture the preemptable rcu. srcu_read_delay() also calls rcu_read_delay() for shorter delays. Added comment to preempt_schedule() call indicating that no quiescent states happen if preemption is disabled. Signed-off-by: Lai Jiangshan Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 84483ea42cd4f2781d6e97a83ab3ebd0ff19fb10 Author: Paul E. McKenney Date: Wed Jun 16 16:48:13 2010 -0700 rcu: add shiny new debug assists to Documentation/RCU/checklist.txt Add a section describing PROVE_RCU, DEBUG_OBJECTS_RCU_HEAD, and the __rcu sparse checking to the RCU checklist. Suggested-by: David Miller Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett commit 4b6a2872a2a00042ee50024822ab706e5456aad8 Author: Arnd Bergmann Date: Thu Mar 4 15:59:23 2010 +0100 kvm: add __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Avi Kivity Cc: Marcelo Tosatti Reviewed-by: Josh Triplett commit 0906a372f2aa0fec1e59bd12b896883b6e41307a Author: Arnd Bergmann Date: Tue Mar 9 20:59:15 2010 +0100 net/netfilter: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Acked-by: Patrick McHardy Cc: "David S. Miller" Cc: Eric Dumazet Reviewed-by: Josh Triplett commit 2be85279281bafe7de808ca99de59af4fd474c49 Author: Arnd Bergmann Date: Thu Mar 4 15:50:28 2010 +0100 input: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Dmitry Torokhov Acked-by: Dmitry Torokhov Reviewed-by: Josh Triplett commit 5b22216e11f717adc344abc7f97b42e03127c6c0 Author: Arnd Bergmann Date: Wed Mar 3 10:20:10 2010 +0100 nfs: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Acked-by: Trond Myklebust commit e63ba744a64d234c8a07c469ab1806443cb0a6ff Author: Arnd Bergmann Date: Fri Feb 26 18:01:20 2010 +0100 keys: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Acked-by: David Howells Reviewed-by: Josh Triplett commit 1b0ba1c9037b2265d6e5d0165d31e4c0269b603b Author: Arnd Bergmann Date: Wed Feb 24 19:45:09 2010 +0100 credentials: rcu annotation Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Peter Zijlstra Cc: Ingo Molnar Acked-by: David Howells Reviewed-by: Josh Triplett commit 2c392b8c3450ceb69ba1b93cb0cddb3998fb8cdc Author: Arnd Bergmann Date: Wed Feb 24 19:41:39 2010 +0100 cgroups: __rcu annotations Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Acked-by: Paul Menage Cc: Li Zefan Reviewed-by: Josh Triplett commit 67bdbffd696f29a0b68aa8daa285783a06651583 Author: Arnd Bergmann Date: Thu Feb 25 16:55:13 2010 +0100 rculist: avoid __rcu annotations This avoids warnings from missing __rcu annotations in the rculist implementation, making it possible to use the same lists in both RCU and non-RCU cases. We can add rculist annotations later, together with lockdep support for rculist, which is missing as well, but that may involve changing all the users. Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Pavel Emelyanov Cc: Sukadev Bhattiprolu Reviewed-by: Josh Triplett commit ca5ecddfa8fcbd948c95530e7e817cee9fb43a3d Author: Paul E. McKenney Date: Wed Apr 28 14:39:09 2010 -0700 rcu: define __rcu address space modifier for sparse This commit provides definitions for the __rcu annotation defined earlier. This annotation permits sparse to check for correct use of RCU-protected pointers. If a pointer that is annotated with __rcu is accessed directly (as opposed to via rcu_dereference(), rcu_assign_pointer(), or one of their variants), sparse can be made to complain. To enable such complaints, use the new default-disabled CONFIG_SPARSE_RCU_POINTER kernel configuration option. Please note that these sparse complaints are intended to be a debugging aid, -not- a code-style-enforcement mechanism. There are special rcu_dereference_protected() and rcu_access_pointer() accessors for use when RCU read-side protection is not required, for example, when no other CPU has access to the data structure in question or while the current CPU hold the update-side lock. This patch also updates a number of docbook comments that were showing their age. Signed-off-by: Arnd Bergmann Signed-off-by: Paul E. McKenney Cc: Christopher Li Reviewed-by: Josh Triplett commit d34a16661ed0fed433c9469d7cfa3ca4d30ca42e Author: Paul E. McKenney Date: Mon Jun 14 17:06:21 2010 -0700 net: convert to rcu_dereference_index_check() The task_cls_classid() function applies rcu_dereference() to integers, which does not work with the shiny new sparse-based checking in rcu_dereference(). This commit therefore moves to the new RCU API rcu_dereference_index_check(). Signed-off-by: Paul E. McKenney Reviewed-by: Josh Triplett Acked-by: David S. Miller Acked-by: Herbert Xu commit 4c1c952e37c7511a52f617ceddbc10c855d45d7b Author: Arnaldo Carvalho de Melo Date: Thu Aug 12 12:37:51 2010 -0300 perf ui browser: Add routines to compactly specify exit keys This makes the usual idiom for specifying a series of key codes to exit ui_browser__run() for specialized processing (search, annotate, etc) or plain exiting the browser more compact. It also abstracts away some more libnewt operations. At some point we'll also replace NEWT_KEY_foo with something that can be mapped to NEWT or, say, gtk. Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit b50e003db13848dd74572ffd221047683313981d Author: Arnaldo Carvalho de Melo Date: Wed Aug 11 10:07:43 2010 -0300 perf ui browser: Return the exit key in all browsers Make all browsers return the exit key uniformly and remove the newtExitStruct parameter, removing one more newt specific thing from the ui API. Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 8f9bbc408b6f704e84d0ae78e6093005ad58d4fe Author: Arnaldo Carvalho de Melo Date: Wed Aug 11 14:51:47 2010 -0300 perf ui browser: Abstract some more slang operations Browsers don't have to deal with absolute coordinates, just using (row, column) and leaving the rest to ui_browser is better and removes one more UI backend detail from the browsers. Also shorten the percent_color setting idiom, removing some more direct libslang calls. Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit c8710ad38900153af7a3e6762e99c062cfa46443 Merge: 6016ee1 86397dc Author: Ingo Molnar Date: Thu Aug 19 12:48:09 2010 +0200 Merge branch 'tip/perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core commit 6016ee13db518ab1cd0cbf43fc2ad5712021e338 Author: Namhyung Kim Date: Wed Aug 11 12:47:59 2010 +0900 perf, tracing: add missing __percpu markups ftrace_event_call->perf_events, perf_trace_buf, fgraph_data->cpu_data and some local variables are percpu pointers missing __percpu markups. Add them. Signed-off-by: Namhyung Kim Acked-by: Tejun Heo Cc: Steven Rostedt Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Stephane Eranian LKML-Reference: <1281498479-28551-1-git-send-email-namhyung@gmail.com> Signed-off-by: Frederic Weisbecker commit 7ae07ea3a48d30689ee037cb136bc21f0b37d8ae Author: Frederic Weisbecker Date: Sat Aug 14 20:45:13 2010 +0200 perf: Humanize the number of contexts Instead of hardcoding the number of contexts for the recursions barriers, define a cpp constant to make the code more self-explanatory. Signed-off-by: Frederic Weisbecker Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Stephane Eranian commit 927c7a9e92c4f69097a6e9e086d11fc2f8a5b40b Author: Frederic Weisbecker Date: Thu Jul 1 16:20:36 2010 +0200 perf: Fix race in callchains Now that software events don't have interrupt disabled anymore in the event path, callchains can nest on any context. So seperating nmi and others contexts in two buffers has become racy. Fix this by providing one buffer per nesting level. Given the size of the callchain entries (2040 bytes * 4), we now need to allocate them dynamically. v2: Fixed put_callchain_entry call after recursion. Fix the type of the recursion, it must be an array. v3: Use a manual pr cpu allocation (temporary solution until NMIs can safely access vmalloc'ed memory). Do a better separation between callchain reference tracking and allocation. Make the "put" path lockless for non-release cases. v4: Protect the callchain buffers with rcu. v5: Do the cpu buffers allocations node affine. Signed-off-by: Frederic Weisbecker Tested-by: Will Deacon Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Stephane Eranian Cc: Paul Mundt Cc: David Miller Cc: Borislav Petkov commit f72c1a931e311bb7780fee19e41a89ac42cab50e Author: Frederic Weisbecker Date: Thu Jul 1 02:31:21 2010 +0200 perf: Factorize callchain context handling Store the kernel and user contexts from the generic layer instead of archs, this gathers some repetitive code. Signed-off-by: Frederic Weisbecker Acked-by: Paul Mackerras Tested-by: Will Deacon Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Stephane Eranian Cc: David Miller Cc: Paul Mundt Cc: Borislav Petkov commit 56962b4449af34070bb1994621ef4f0265eed4d8 Author: Frederic Weisbecker Date: Wed Jun 30 23:03:51 2010 +0200 perf: Generalize some arch callchain code - Most archs use one callchain buffer per cpu, except x86 that needs to deal with NMIs. Provide a default perf_callchain_buffer() implementation that x86 overrides. - Centralize all the kernel/user regs handling and invoke new arch handlers from there: perf_callchain_user() / perf_callchain_kernel() That avoid all the user_mode(), current->mm checks and so... - Invert some parameters in perf_callchain_*() helpers: entry to the left, regs to the right, following the traditional (dst, src). Signed-off-by: Frederic Weisbecker Acked-by: Paul Mackerras Tested-by: Will Deacon Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Stephane Eranian Cc: David Miller Cc: Paul Mundt Cc: Borislav Petkov commit 70791ce9ba68a5921c9905ef05d23f62a90bc10c Author: Frederic Weisbecker Date: Tue Jun 29 19:34:05 2010 +0200 perf: Generalize callchain_store() callchain_store() is the same on every archs, inline it in perf_event.h and rename it to perf_callchain_store() to avoid any collision. This removes repetitive code. Signed-off-by: Frederic Weisbecker Acked-by: Paul Mackerras Tested-by: Will Deacon Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Stephane Eranian Cc: David Miller Cc: Paul Mundt Cc: Borislav Petkov commit c1a65932fd7216fdc9a0db8bbffe1d47842f862c Author: Frederic Weisbecker Date: Tue Jun 29 18:08:13 2010 +0200 perf: Drop unappropriate tests on arch callchains Drop the TASK_RUNNING test on user tasks for callchains as this check doesn't seem to make any sense. Also remove the tests for !current that is not supposed to happen and current->pid as this should be handled at the generic level, with exclude_idle attribute. Signed-off-by: Frederic Weisbecker Tested-by: Will Deacon Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Stephane Eranian Cc: David Miller Cc: Paul Mundt Cc: Borislav Petkov commit 86397dc3ccfc0e17b7550d05eaf15fe91f6498dd Author: Li Zefan Date: Tue Aug 17 13:53:06 2010 +0800 tracing: Clean up seqfile code for format file Remove the nasty hack that marks a pointer's LSB to distinguish common fields from event fields. Replace it with a more sane approach. Signed-off-by: Li Zefan LKML-Reference: <4C6A23C2.9020606@cn.fujitsu.com> Signed-off-by: Steven Rostedt commit 6a103b0d44e9f97dc430002cf3ac7a7defa3819f Author: John Kacur Date: Thu Aug 5 17:10:54 2010 +0200 lockup detector: Fix grammar by adding a missing "to" in the comments This fixes a minor grammar problem in the comments in hung_task.c Signed-off-by: John Kacur Cc: Peter Zijlstra LKML-Reference: <1281021054-4228-2-git-send-email-jkacur@redhat.com> Signed-off-by: Ingo Molnar commit f1b499f029c5dde85d46a8811353c62f29157541 Author: John Kacur Date: Thu Aug 5 17:10:53 2010 +0200 lockdep: Remove __debug_show_held_locks There is no longer any functional difference between __debug_show_held_locks() and debug_show_held_locks(), so remove the former. Signed-off-by: John Kacur Cc: Peter Zijlstra LKML-Reference: <1281021054-4228-1-git-send-email-jkacur@redhat.com> Signed-off-by: Ingo Molnar commit 1f999ab5a1360afc388868cc0ef9afe8edeef3be Author: Robert Richter Date: Wed Jul 21 19:03:57 2010 +0200 x86, xsave: Disable xsave in i387 emulation mode xsave is broken for (!HAVE_HWFP). This is the case if config MATH_EMULATION is enabled, 'no387' kernel parameter is set and xsave exists. xsave will not work because x86/math-emu and xsave share the same memory. As this case can be treated as corner case we simply disable xsave then. Signed-off-by: Robert Richter LKML-Reference: <1279731838-1522-7-git-send-email-robert.richter@amd.com> Signed-off-by: H. Peter Anvin commit f6e9456c9272bb570df6e217cdbe007e270b1c4e Author: Robert Richter Date: Wed Jul 21 19:03:58 2010 +0200 x86, cleanup: Remove obsolete boot_cpu_id variable boot_cpu_id is there for historical reasons and was renamed to boot_cpu_physical_apicid in patch: c70dcb7 x86: change boot_cpu_id to boot_cpu_physical_apicid However, there are some remaining occurrences of boot_cpu_id that are never touched in the kernel and thus its value is always 0. This patch removes boot_cpu_id completely. Signed-off-by: Robert Richter LKML-Reference: <1279731838-1522-8-git-send-email-robert.richter@amd.com> Signed-off-by: H. Peter Anvin commit 6ea4843f53282465f2bdbe5eedde7d8c3081dfdf Author: Tao Ma Date: Thu Aug 12 10:31:34 2010 +0800 ocfs2: Add readhead during CoW. In CoW, when we meet with a readahead page, we know it is time to move the readahead window. So carry out a new readahead. Signed-off-by: Tao Ma commit 7b61cf54a2445ad21df9dd44f0c8bb90154ddea8 Author: Tao Ma Date: Thu Jun 17 14:14:36 2010 +0800 ocfs2: Add readahead support for CoW. Add a new function ocfs2_readahead_for_cow so that we start readahead before we start our CoW. Signed-off-by: Tao Ma commit 155027121fe52f9b4f25e9d156c22f2f5012e5fe Author: Tao Ma Date: Thu Aug 12 10:36:38 2010 +0800 ocfs2: Add struct file to ocfs2_refcount_cow. Add a new parameter 'struct file *' to ocfs2_refcount_cow so that we can add readahead support later. Signed-off-by: Tao Ma commit b890823635e022467b924e3d9da8c5166a4e349c Author: Tao Ma Date: Thu Aug 12 10:27:14 2010 +0800 ocfs2: pass struct file* to ocfs2_prepare_inode_for_write. struct file * has file_ra_state to store the readahead state and data. So pass this to ocfs2_prepare_inode_for_write. so that it can be used in ocfs2_refcount_cow. Signed-off-by: Tao Ma commit 0378da0fda6edf5aaffda6f1248a78986bd955b5 Author: Tao Ma Date: Thu Aug 12 10:25:28 2010 +0800 ocfs2: pass struct file* to ocfs2_write_begin_nolock. struct file * has file_ra_state to store the readahead state and data. So pass this to ocfs2_write_begin_nolock so that it can be used in ocfs2_refcount_cow. Signed-off-by: Tao Ma commit 5303b68f57c227c27193a14e57dd12be27cd670f Author: Yinghai Lu Date: Wed Jul 28 15:38:40 2010 +1000 memblock: Add memblock_find_in_range() This is a wrapper for memblock_find_base() using slightly different arguments (start,end instead of start,size for example) in order to make it easier to convert existing arch/x86 code. Signed-off-by: Yinghai Lu Signed-off-by: Benjamin Herrenschmidt commit 10d0643988e976360eb3497dcafb55b393b8e480 Author: Yinghai Lu Date: Wed Jul 28 15:43:02 2010 +1000 memblock: Option for the architecture to put memblock into the .init section Arch code can define ARCH_DISCARD_MEMBLOCK in asm/memblock.h, which in turns causes memblock code and data to go respectively into the .init and .initdata sections. This will be used by the x86 architecture. If ARCH_DISCARD_MEMBLOCK is defined, the debugfs files to inspect the memblock arrays after boot are not created. Signed-off-by: Yinghai Lu Signed-off-by: Benjamin Herrenschmidt commit f0b37fad9a63217c39997b2d2b31f44e3d8be727 Author: Yinghai Lu Date: Wed Jul 28 15:28:21 2010 +1000 memblock: Protect memblock.h with CONFIG_HAVE_MEMBLOCK This should make it easier to catch/debug incorrect use when the CONFIG_ option isn't set. Signed-off-by: Yinghai Lu Signed-off-by: Benjamin Herrenschmidt commit 25818f0f288cd5333ba5a90ad6dde3def4c4ff58 Author: Benjamin Herrenschmidt Date: Wed Jul 28 15:25:10 2010 +1000 memblock: Make MEMBLOCK_ERROR be 0 And ensure we don't hand out 0 as a valid allocation. We put the low limit at PAGE_SIZE arbitrarily. Signed-off-by: Benjamin Herrenschmidt commit 37d8d4bf489e39eedc9537f8616fe87879b13cb0 Author: Yinghai Lu Date: Wed Jul 28 15:20:58 2010 +1000 memblock: Export MEMBLOCK_ERROR will used by x86 memblock_x86_find_in_range_node and nobootmem replacement Signed-off-by: Yinghai Lu Signed-off-by: Benjamin Herrenschmidt commit ea9e4376bb545e400a325b3d76fecd02815303c0 Author: Yinghai Lu Date: Wed Jul 28 15:13:22 2010 +1000 memblock: Improve debug output when resizing the reserve array Print out the location info in addition to which array is being resized. Also use memblocK_dbg() to put that under control of the memblock_debug flag. Signed-off-by: Yinghai Lu Signed-off-by: Benjamin Herrenschmidt commit 5e63cf43af844ed30acc278b38b8c9bc51eba493 Author: Yinghai Lu Date: Wed Jul 28 15:07:21 2010 +1000 memblock: Expose some memblock bits for use by x86 This exposes memblock_debug and associated memblock_dbg() macro, along with memblock_can_resize so that x86 can use these when ported to use memblock Signed-off-by: Yinghai Lu Signed-off-by: Benjamin Herrenschmidt commit 6d03b885f0926ab5b66e21307d505afcafa6dced Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:19 2010 -0700 memblock: Add debugfs files to dump the arrays content Signed-off-by: Benjamin Herrenschmidt commit 918fe8d60331f679519ab8239a7232272126da9e Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:18 2010 -0700 memblock: Make memblock_alloc_try_nid() fallback to MEMBLOCK_ALLOC_ANYWHERE memblock_alloc_nid() used to fallback to allocating anywhere by using memblock_alloc() as a fallback. However, some of my previous patches limit memblock_alloc() to the region covered by MEMBLOCK_ALLOC_ACCESSIBLE which is not quite what we want for memblock_alloc_try_nid(). So we fix it by explicitely using MEMBLOCK_ALLOC_ANYWHERE. Not that so far only sparc uses memblock_alloc_nid() and it hasn't been updated to clamp the accessible zone yet. Thus the temporary "breakage" should have no effect. Signed-off-by: Benjamin Herrenschmidt commit 9d1e24928e6a0728d1c7c76818ccbd11b93e7ac9 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:17 2010 -0700 memblock: Separate memblock_alloc_nid() and memblock_alloc_try_nid() The former is now strict, it will fail if it cannot honor the allocation within the node, while the later implements the previous semantic which falls back to allocating anywhere. Signed-off-by: Benjamin Herrenschmidt commit c196f76fd5ece716ee3b7fa5dda3576961c0cecc Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:16 2010 -0700 memblock: NUMA allocate can now use early_pfn_map We now provide a default (weak) implementation of memblock_nid_range() which uses the early_pfn_map[] if CONFIG_ARCH_POPULATES_NODE_MAP is set. Sparc still needs to use its own method due to the way the pages can be scattered between nodes. This implementation is inefficient due to our main algorithm and callback construct wanting to work on an ascending addresses bases while early_pfn_map[] would rather work with nid's (it's unsorted at that stage). But it should work and we can look into improving it subsequently, possibly using arch compile options to chose a different algorithm alltogether. Signed-off-by: Benjamin Herrenschmidt commit fef501d49d31f997a3381b6c1efd5bca382b6b6f Author: Benjamin Herrenschmidt Date: Mon Jul 12 15:00:34 2010 +1000 memblock: Add "start" argument to memblock_find_base() To constraint the search of a region between two boundaries, which will be used by the new NUMA aware allocator among others. Signed-off-by: Benjamin Herrenschmidt commit d2cd563ba82c424083b78e0ce97d68bfb04d1242 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:14 2010 -0700 memblock: Add arch function to control coalescing of memblock memory regions Some archs such as ARM want to avoid coalescing accross things such as the lowmem/highmem boundary or similar. This provides the option to control it via an arch callback for which a weak default is provided which always allows coalescing. Signed-off-by: Benjamin Herrenschmidt commit 142b45a72e221537c1bb1995497fef7cdc439e26 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:13 2010 -0700 memblock: Add array resizing support When one of the array gets full, we resize it. After much thinking and a few iterations of that code, I went back to on-demand resizing using the (new) internal memblock_find_base() function, which is pretty much what Yinghai initially proposed, though there some differences in the details. To work this relies on the default alloc limit being set sensibly by the architecture. Signed-off-by: Benjamin Herrenschmidt commit 6ed311b282210d23d1a2cb2665aa899979993628 Author: Benjamin Herrenschmidt Date: Mon Jul 12 14:36:48 2010 +1000 memblock: Move functions around into a more sensible order Some shuffling is needed for doing array resize so we may as well put some sense into the ordering of the functions in the whole memblock.c file. No code change. Added some comments. Signed-off-by: Benjamin Herrenschmidt commit 7f219c736f9439acb1c50d264fbee93c353773ca Author: Benjamin Herrenschmidt Date: Mon Jul 12 14:24:57 2010 +1000 memblock: split memblock_find_base() out of __memblock_alloc_base() This will be used by the array resize code and might prove useful to some arch code as well at which point it can be made non-static. Also add comment as to why aligning size is important Signed-off-by: Benjamin Herrenschmidt --- v2. Fix loss of size alignment v3. Fix result code commit 7590abe891c85fbc65dc906516d0bf89e070c19a Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:10 2010 -0700 memblock: Move memblock_init() to the bottom of the file It's a real PITA to have to search for it in the middle Signed-off-by: Benjamin Herrenschmidt commit 4d629f9a02e32f8fe035a11018472ea8ff9647eb Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:09 2010 -0700 memblock: Define MEMBLOCK_ERROR internally instead of using ~(phys_addr_t)0 Signed-off-by: Benjamin Herrenschmidt commit 3a9c2c81eb2024c136cc534df534f93682d516d0 Author: Benjamin Herrenschmidt Date: Mon Jul 12 13:28:15 2010 +1000 memblock: Make memblock_find_region() out of memblock_alloc_region() This function will be used to locate a free area to put the new memblock arrays when attempting to resize them. memblock_alloc_region() is gone, the two callsites now call memblock_add_region(). Signed-off-by: Benjamin Herrenschmidt --- v2. Fix membase_alloc_nid_region() conversion commit 449e8df39d3f94a69deae8341f157f6ef5999015 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:07 2010 -0700 memblock: Add debug markers at the end of the array Since we allocate one more than needed, why not do a bit of sanity checking here to ensure we don't walk past the end of the array ? Signed-off-by: Benjamin Herrenschmidt commit bf23c51f1f49d3960f3cd8e3d2e7f943d9c41042 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:06 2010 -0700 memblock: Move memblock arrays to static storage in memblock.c and make their size a variable This is in preparation for having resizable arrays. Note that we still allocate one more than needed, this is unchanged from the previous implementation. Signed-off-by: Benjamin Herrenschmidt commit 4734b594c6ca1be796d30c82d93fdf5160f45124 Author: Benjamin Herrenschmidt Date: Wed Jul 28 14:31:29 2010 +1000 memblock: Remove memblock_type.size and add memblock.memory_size instead Right now, both the "memory" and "reserved" memblock_type structures have a "size" member. It represents the calculated memory size in the former case and is unused in the latter. This moves it out to the main memblock structure instead Signed-off-by: Benjamin Herrenschmidt commit 9d3c30f5a17ec35894eadb7171f724643dce19c3 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:04 2010 -0700 memblock: Remove unused memblock.debug struct member Signed-off-by: Benjamin Herrenschmidt commit 2898cc4cdf208f15246b7a1c6951d2b126a70fd6 Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:34:42 2010 +1000 memblock: Change u64 to phys_addr_t Let's not waste space and cycles on archs that don't support >32-bit physical address space. Signed-off-by: Benjamin Herrenschmidt commit cd3db0c4ca3d237e7ad20f7107216e575705d2b0 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:02 2010 -0700 memblock: Remove rmo_size, burry it in arch/powerpc where it belongs The RMA (RMO is a misnomer) is a concept specific to ppc64 (in fact server ppc64 though I hijack it on embedded ppc64 for similar purposes) and represents the area of memory that can be accessed in real mode (aka with MMU off), or on embedded, from the exception vectors (which is bolted in the TLB) which pretty much boils down to the same thing. We take that out of the generic MEMBLOCK data structure and move it into arch/powerpc where it belongs, renaming it to "RMA" while at it. Signed-off-by: Benjamin Herrenschmidt commit e63075a3c9377536d085bc013cd3fe6323162449 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:01 2010 -0700 memblock: Introduce default allocation limit and use it to replace explicit ones This introduce memblock.current_limit which is used to limit allocations from memblock_alloc() or memblock_alloc_base(..., MEMBLOCK_ALLOC_ACCESSIBLE). The old MEMBLOCK_ALLOC_ANYWHERE changes value from 0 to ~(u64)0 and can still be used with memblock_alloc_base() to allocate really anywhere. It is -no-longer- cropped to MEMBLOCK_REAL_LIMIT which disappears. Note to archs: I'm leaving the default limit to MEMBLOCK_ALLOC_ANYWHERE. I strongly recommend that you ensure that you set an appropriate limit during boot in order to guarantee that an memblock_alloc() at any time results in something that is accessible with a simple __va(). The reason is that a subsequent patch will introduce the ability for the array to resize itself by reallocating itself. The MEMBLOCK core will honor the current limit when performing those allocations. Signed-off-by: Benjamin Herrenschmidt commit 27f574c223d2c09610058b3ec7a29582d63a3e06 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:39:00 2010 -0700 memblock: Expose MEMBLOCK_ALLOC_ANYWHERE Signed-off-by: Benjamin Herrenschmidt commit c3f72b5706716ada7923def513486ab7bb3a5301 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:38:59 2010 -0700 memblock: Factor the lowest level alloc function Signed-off-by: Benjamin Herrenschmidt commit 35a1f0bd07015dde66501b47cfb6ddc72ebe7346 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:38:58 2010 -0700 memblock: Remove nid_range argument, arch provides memblock_nid_range() instead Signed-off-by: Benjamin Herrenschmidt commit b693fffb189fbfe7e1e8317ce5838808be8666a0 Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:52:55 2010 +1000 memblock: Remove memblock_find() Nobody uses it anymore. It's semantics were ... weird Signed-off-by: Benjamin Herrenschmidt commit 1e2b904026e9debf95f500b8980a00c43ac0f31c Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:52:25 2010 +1000 memblock: Remove obsolete accessors Signed-off-by: Benjamin Herrenschmidt commit 719c1514f2fef5f01fcfa2bba81b7bb079c7c6a1 Author: Benjamin Herrenschmidt Date: Thu Aug 5 12:55:55 2010 +1000 memblock/arm: Use new accessors CC: Russell King Signed-off-by: Benjamin Herrenschmidt commit 28be7072ce54b82642ebff6a80d474d4c6a6a7fd Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:43:53 2010 +1000 memblock/powerpc: Use new accessors Signed-off-by: Benjamin Herrenschmidt commit 08b84798819e54ba1d29be71a52afbb697c7b666 Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:43:31 2010 +1000 memblock/sparc: Use new accessors CC: David S. Miller Signed-off-by: Benjamin Herrenschmidt commit 64106ca61cc73f3798497c76d2b7749b8e93ead4 Author: Benjamin Herrenschmidt Date: Wed Aug 4 14:11:04 2010 +1000 memblock/sh: Use new accessors CC: Paul Mundt Signed-off-by: Benjamin Herrenschmidt commit 76bfcc818f87d884e427908f5010128dae32d11a Author: Benjamin Herrenschmidt Date: Wed Aug 4 14:13:06 2010 +1000 memblock/microblaze: Use new accessors CC: Michal Simek Signed-off-by: Benjamin Herrenschmidt commit 5b385f259fa4d356452e3b4729cbaf5213f4f55b Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:40:38 2010 +1000 memblock: Introduce for_each_memblock() and new accessors Walk memblock's using for_each_memblock() and use memblock_region_base/end_pfn() for getting to PFNs. Signed-off-by: Benjamin Herrenschmidt commit dbe3039e64b1dd4cf26f782d45b524f85b444ad4 Author: Benjamin Herrenschmidt Date: Wed Aug 4 14:09:23 2010 +1000 memblock/arm: Use memblock_region_is_memory() for omap fb Instead of the deprecated memblock_find() Signed-off-by: Benjamin Herrenschmidt commit 5e6f6aa1c243fafeb2648cf4ebd5abd99ab2531b Author: Benjamin Herrenschmidt Date: Wed Aug 4 13:23:02 2010 +1000 memblock/arm: pfn_valid uses memblock_is_memory() The implementation is pretty much similar. There is a -small- added overhead by having another function call and the address shift. If that becomes a concern, I suppose we could actually have memblock itself expose a memblock_pfn_valid() which then ARM can use directly with an appropriate #define... Signed-off-by: Benjamin Herrenschmidt commit 72d4b0b4e0e7fa858767e03972771a9f7c02b689 Author: Benjamin Herrenschmidt Date: Wed Aug 4 14:38:47 2010 +1000 memblock: Implement memblock_is_memory and memblock_is_region_memory To make it fast, we steal ARM's binary search for memblock_is_memory() and we use that to also the replace existing implementation of memblock_is_reserved(). Signed-off-by: Benjamin Herrenschmidt commit 411a25a80da328f5ae6b6c037872ffe867fcc130 Author: Benjamin Herrenschmidt Date: Tue Jul 6 15:38:56 2010 -0700 memblock: No reason to include asm/memblock.h late Signed-off-by: Benjamin Herrenschmidt commit e3239ff92a17976ac5d26fa0fe40ef3a9daf2523 Author: Benjamin Herrenschmidt Date: Wed Aug 4 14:06:41 2010 +1000 memblock: Rename memblock_region to memblock_type and memblock_property to memblock_region Signed-off-by: Benjamin Herrenschmidt commit f1c2c19c498e27de48bf0dc4221e6e31b1823169 Author: Benjamin Herrenschmidt Date: Wed Aug 4 14:17:17 2010 +1000 memblock: Fix memblock_is_region_reserved() to return a boolean All callers expect a boolean result which is true if the region overlaps a reserved region. However, the implementation actually returns -1 if there is no overlap, and a region index (0 based) if there is. Make it behave as callers (and common sense) expect. Signed-off-by: Benjamin Herrenschmidt