aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-07-27gpio: fix spurious printk when freeing a gpioJon Povey1-3/+4
When freeing a gpio that has not been exported, gpio_unexport() prints a debug message when it should just fall through silently. Example spurious message: gpio_unexport: gpio0 status -22 Signed-off-by: Jon Povey <[email protected]> Cc: David Brownell <[email protected]> Acked-by: Uwe Kleine-K?nig <[email protected]> Cc: Gregory Bean <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2010-07-27edac: mpc85xx: fix coldplug/hotplug module autoloadingAnton Vorontsov1-0/+3
The MPC85xx EDAC driver is missing module device aliases, so the driver won't load automatically on boot. This patch fixes the issue by adding proper MODULE_DEVICE_TABLE() macros. Signed-off-by: Anton Vorontsov <[email protected]> Cc: Doug Thompson <[email protected]> Cc: Peter Tyser <[email protected]> Cc: Dave Jiang <[email protected]> Cc: Kumar Gala <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2010-07-27drivers/rtc/rtc-rx8581.c: fix setdatetimeRudolf Marek1-3/+17
Fix the logic while writing new date/time to the chip. The driver incorrectly wrote back register values to different registers and even with wrong mask. The patch adds clearing of the VLF register, which should be cleared if all date/time values are set. Signed-off-by: Rudolf Marek <[email protected]> Acked-by: Wan ZongShun <[email protected]> Cc: Martyn Welch <[email protected]> Cc: Alessandro Zummo <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2010-07-27dynamic debug: move ddebug_remove_module() down into free_module()Jason Baron1-1/+3
The command echo "file ec.c +p" >/sys/kernel/debug/dynamic_debug/control causes an oops. Move the call to ddebug_remove_module() down into free_module(). In this way it should be called from all error paths. Currently, we are missing the remove if the module init routine fails. Signed-off-by: Jason Baron <[email protected]> Reported-by: Thomas Renninger <[email protected]> Tested-by: Thomas Renninger <[email protected]> Cc: <[email protected]> [2.6.32+] Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2010-07-27ceph: use complete_all and wake_up_allYehuda Sadeh6-20/+20
This fixes an issue triggered by running concurrent syncs. One of the syncs would go through while the other would just hang indefinitely. In any case, we never actually want to wake a single waiter, so the *_all functions should be used. Signed-off-by: Yehuda Sadeh <[email protected]> Signed-off-by: Sage Weil <[email protected]>
2010-07-279p: Pass the correct end of buffer to p9stat_readLatchesar Ionkov1-1/+1
Pass the correct end of the buffer to p9stat_read. Signed-off-by: Latchesar Ionkov <[email protected]> Signed-off-by: Eric Van Hensbergen <[email protected]>
2010-07-27[S390] etr: fix clock synchronization raceMartin Schwidefsky1-6/+12
The etr events switch-to-local and sync-check disable the synchronous clock and schedule a work queue that tries to get the clock back into sync. If another switch-to-local or sync-check event occurs while the work queue function etr_work_fn still runs the eacr.es bit and the clock_sync_word can become inconsistent because check_sync_clock only uses the clock_sync_word to determine if the clock is in sync or not. The second pass of the etr_work_fn will reset the eacr.es bit but will leave the clock_sync_word intact. Fix this race by moving the reset of the eacr.es bit into the switch-to-local and sync-check functions and by checking the eacr.es bit as well to decide if the clock needs to be synced. Signed-off-by: Martin Schwidefsky <[email protected]>
2010-07-27[S390] Fix IRQ tracing in case of PERHeiko Carstens2-4/+20
In case user space is single stepped (PER) the program check handler claims too early that IRQs are enabled on the return path. Subsequent checks will notice that the IRQ mask in the PSW and what lockdep thinks the IRQ mask should be do not correlate and therefore will print a warning to the console and disable lockdep. Fix this by doing all the work within the correct context. Signed-off-by: Heiko Carstens <[email protected]> Signed-off-by: Martin Schwidefsky <[email protected]>
2010-07-27[SCSI] ibmvscsi: Fix oops when an interrupt is pending during probeAnton Blanchard1-6/+7
A driver needs to be ready to take an interrupt as soon as it registers an interrupt handler. I noticed the following oops when testing kdump: ipr: IBM Power RAID SCSI Device Driver version: 2.5.0 (February 11, 2010) ibmvscsi 30000002: SRP_VERSION: 16.a ibmvscsi 30000002: SRP_VERSION: 16.a Unable to handle kernel paging request for data at address 0x00000000 ... pc: c000000004085e34: .tasklet_action+0xf4/0x1dc ... c000000004086fe4 .__do_softirq+0x16c/0x2c0 c00000000403138c .call_do_softirq+0x14/0x24 c00000000400ee14 .do_softirq+0xa0/0x104 c00000000408690c .irq_exit+0x70/0xd0 c00000000400f190 .do_IRQ+0x214/0x2a8 c000000004004804 hardware_interrupt_entry+0x1c/0x98 --- Exception: 501 (Hardware Interrupt) at c00000000400c544 .raw_local_irq_restore+0x48/0x54 c00000000465d2a8 ._raw_spin_unlock_irqrestore+0x74/0xa0 c0000000040e7f00 .__setup_irq+0x2ec/0x3f0 c0000000040e8198 .request_threaded_irq+0x194/0x22c c00000000446d854 .rpavscsi_init_crq_queue+0x284/0x3f0 c00000000446c764 .ibmvscsi_probe+0x688/0x710 c00000000402903c .vio_bus_probe+0x37c/0x3e4 c000000004403f10 .driver_probe_device+0xec/0x1b8 c000000004404088 .__driver_attach+0xac/0xf4 c000000004403184 .bus_for_each_dev+0x98/0x104 c000000004403c98 .driver_attach+0x40/0x60 c0000000044026f0 .bus_add_driver+0x154/0x324 c0000000044045d0 .driver_register+0xe8/0x1ac c00000000402b2a8 .vio_register_driver+0x54/0x74 c000000004933ea4 .ibmvscsi_module_init+0x80/0xc0 c000000004009834 .do_one_initcall+0x98/0x1d8 c0000000049005b4 .kernel_init+0x27c/0x33c c000000004031550 .kernel_thread+0x54/0x70 srp_task needs to be setup before request_irq. The patch below fixes the oops. Signed-off-by: Anton Blanchard <[email protected]> Acked-by: Brian King <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2010-07-27Merge branch 'urgent' of ↵Linus Torvalds1-3/+3
git://git.kernel.org/pub/scm/linux/kernel/git/paulus/perf * 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/perf: perf, powerpc: Use perf_sample_data_init() for the FSL code
2010-07-27Merge git://git.infradead.org/users/cbou/battery-2.6.35Linus Torvalds1-15/+14
* git://git.infradead.org/users/cbou/battery-2.6.35: ds2782_battery: Rename get_current to fix build failure / name conflict
2010-07-27Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds19-36/+151
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: s2io: fixing DBG_PRINT() macro ath9k: fix dma direction for map/unmap in ath_rx_tasklet net: dev_forward_skb should call nf_reset net sched: fix race in mirred device removal tun: avoid BUG, dump packet on GSO errors bonding: set device in RLB ARP packet handler wimax/i2400m: Add PID & VID for Intel WiMAX 6250 ipv6: Don't add routes to ipv6 disabled interfaces. net: Fix skb_copy_expand() handling of ->csum_start net: Fix corruption of skb csum field in pskb_expand_head() of net/core/skbuff.c macvtap: Limit packet queue length ixgbe/igb: catch invalid VF settings bnx2x: Advance a module version bnx2x: Protect statistics ramrod and sequence number bnx2x: Protect a SM state change wireless: use netif_rx_ni in ieee80211_send_layer2_update
2010-07-27ARM: Add support for the LPC32XX archKevin Wells2-0/+16
Add LPC32XX support in arch/arm/Kconfig and arch/arm/Makefile Signed-off-by: Kevin Wells <[email protected]> Signed-off-by: Uwe Kleine-König <[email protected]>
2010-07-27ARM: LPC32XX: Arch config menu supoport and makefilesKevin Wells3-0/+45
Signed-off-by: Kevin Wells <[email protected]> Signed-off-by: Uwe Kleine-König <[email protected]>
2010-07-27ARM: LPC32XX: Phytec 3250 platform supportKevin Wells1-0/+397
Platform support file for the PHY3250 mach id Signed-off-by: Kevin Wells <[email protected]> Signed-off-by: Uwe Kleine-König <[email protected]>
2010-07-27ARM: LPC32XX: Misc support functionsKevin Wells2-0/+344
Misc support functions and prototypes used in the LPC32XX arch and platforms Signed-off-by: Kevin Wells <[email protected]> Signed-off-by: Uwe Kleine-König <[email protected]>
2010-07-27ARM: LPC32XX: Serial support codeKevin Wells1-0/+190
Serial port setup support code Signed-off-by: Kevin Wells <[email protected]> Signed-off-by: Uwe Kleine-König <[email protected]>
2010-07-27ARM: LPC32XX: System suspend supportKevin Wells2-0/+297
Support for system suspend and resume Signed-off-by: Kevin Wells <[email protected]>
2010-07-27perf, powerpc: Use perf_sample_data_init() for the FSL codePeter Zijlstra1-3/+3
We should use perf_sample_data_init() to initialize struct perf_sample_data. As explained in the description of commit dc1d628a ("perf: Provide generic perf_sample_data initialization"), it is possible for userspace to get the kernel to dereference data.raw, so if it is not initialized, that means that unprivileged userspace can possibly oops the kernel. Using perf_sample_data_init makes sure it gets initialized to NULL. This conversion should have been included in commit dc1d628a, but it got missed. Signed-off-by: Peter Zijlstra <[email protected]> Acked-by: Kumar Gala <[email protected]> Signed-off-by: Paul Mackerras <[email protected]>
2010-07-27wm8350-regulator: fix wm8350_register_regulator error handlingAxel Lin1-1/+1
In the case of platform_device_add() fail, we should call platform_device_put() instead of platform_device_del() Signed-off-by: Axel Lin <[email protected]> Acked-by: Mark Brown <[email protected]> Signed-off-by: Liam Girdwood <[email protected]>
2010-07-27ab3100: fix off-by-one value range checking for voltage selectorAxel Lin1-2/+2
We use voltage selector as an array index for typ_voltages. Thus the valid range for voltage selector should be 0..voltages_len-1. Signed-off-by: Axel Lin <[email protected]> Acked-by: Mark Brown <[email protected]> Acked-by: Linus Walleij <[email protected]> Signed-off-by: Liam Girdwood <[email protected]>
2010-07-27ARM: LPC32XX: GPIO, timer, and IRQ driversKevin Wells3-0/+1060
Common drivers for the LPC32XX used on all platforms Signed-off-by: Kevin Wells <[email protected]> Signed-off-by: Uwe Kleine-König <[email protected]>
2010-07-27ARM: LPC32XX: Clock driverKevin Wells2-0/+1175
Clock driver for the LPC32XX architecture Signed-off-by: Kevin Wells <[email protected]> Signed-off-by: Uwe Kleine-König <[email protected]>
2010-07-27ARM: LPC32XX: Debug and IRQ macrosKevin Wells2-0/+78
Debug (printascii) and IRQ handler macros for the LPC32XX arch Signed-off-by: Kevin Wells <[email protected]> Signed-off-by: Uwe Kleine-König <[email protected]>
2010-07-27ARM: LPC32XX: Initial arch header filesKevin Wells12-0/+1225
Header files for the LPC32xx arch Signed-off-by: Kevin Wells <[email protected]> Signed-off-by: Uwe Kleine-König <[email protected]>
2010-07-27ARM: 6239/1: mmci: let core poll for card detectionRabin Vincent1-21/+1
Use the MMC core's ability to poll for card detection. This also has the advantage of doing the gpio_get_value from a workqueue instead of timer, allowing the gpio to be on a sleeping gpiochip. Acked-by: Linus Walleij <[email protected]> Signed-off-by: Rabin Vincent <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: 6238/1: mmci: fix multi block transfersRabin Vincent1-1/+1
Fix the data transfer size to allow multi block transfers to work. Acked-by: Linus Walleij <[email protected]> Signed-off-by: Rabin Vincent <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: 6237/1: mmci: use sg_miter API to fix multi-page sg handlingRabin Vincent2-56/+39
The mmci driver's SG list iteration logic assumes that each SG entry spans only one page, and only maps and flushes one page of the sg. This is not a valid assumption. Fix it by converting the driver to the sg_miter API, which correctly handles sgs which span multiple pages. Acked-by: Linus Walleij <[email protected]> Signed-off-by: Rabin Vincent <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: Fix section build warnings for AMBA driversRussell King4-5/+5
Found in the Versatile build: WARNING: drivers/built-in.o(.data+0x14c): Section mismatch in reference from the variable pl061_gpio_driver to the (unknown reference) .init.data:(unknown) The variable pl061_gpio_driver references the (unknown reference) __initdata (unknown) WARNING: drivers/built-in.o(.data+0x40f8): Section mismatch in reference from the variable pl011_driver to the (unknown reference) .init.data:(unknown) The variable pl011_driver references the (unknown reference) __initdata (unknown) WARNING: drivers/built-in.o(.data+0x5ab4): Section mismatch in reference from the variable pl031_driver to the (unknown reference) .init.data:(unknown) The variable pl031_driver references the (unknown reference) __initdata (unknown) Basically, amba_id structures must not be __initdata. Also fix: WARNING: drivers/built-in.o(.data+0x138): Section mismatch in reference from the variable pl061_gpio_driver to the function .init.text:pl061_probe() The variable pl061_gpio_driver references the function __init pl061_probe() which is an incorrectly annotated probe function. Fix it to reflect the other AMBA bus probe functions by removing the __init attributation. Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: call machine_shutdown() from machine_halt(), etcRussell King3-9/+18
x86 calls machine_shutdown() from the various machine_*() calls which take the machine down ready for halting, restarting, etc, and uses this to bring the system safely to a point where those actions can be performed. Such actions are stopping the secondary CPUs. So, change the ARM implementation of these to reflect what x86 does. This solves kexec problems on ARM SMP platforms, where the secondary CPUs were left running across the kexec call. Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: SMP: Always enable clock event broadcast supportRussell King3-3/+8
The TWD local timers are unable to wake up the CPU when it is placed into a low power mode, eg. C3. Therefore, we need to adapt things such that the TWD code can cope with this. We do this by always providing a broadcast tick function, and marking the fact that the TWD local timer will stop in low power modes. This means that when the CPU is placed into a low power mode, the core timer code marks this fact, and allows an IPI to be given to the core. Tested-by: Santosh Shilimkar <[email protected]> Signed-off-by: Russell King <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Thomas Gleixner <[email protected]>
2010-07-27ARM: Factor out common code from cpu_proc_fin()Russell King26-124/+40
All implementations of cpu_proc_fin() start by disabling interrupts and then flush caches. Rather than have every processors proc_fin() implementation do this, move it out into generic code - and move the cache flush past setup_mm_for_reboot() (so it can benefit from having caches still enabled.) This allows cpu_proc_fin() to become independent of the L1/L2 cache types, and eventually move the L2 cache flushing into the L2 support code. Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: 6268/1: ARMv6K and ARMv7 use fault statuses 3 and 6 as Access Flag faultKirill A. Shutemov2-2/+23
Statuses 3 (0b00011) and 6 (0x00110) of DFSR are Access Flags faults on ARMv6K and ARMv7. Let's patch fsr_info[] at runtime if we are on ARMv7 or later. Unfortunately, we don't have runtime check for 'K' extension, so we can't check for it. Signed-off-by: Kirill A. Shutemov <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: 6256/1: Check arch version and modify fsr_info[] depends on it at runtimeKirill A. Shutemov1-5/+11
Signed-off-by: Kirill A. Shutemov <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: 6255/1: Workaround infinity loop in handling of translation faultsKirill A. Shutemov1-1/+10
On ARM one Linux PGD entry contains two hardware entries (see page tables layout in pgtable.h). We normally guarantee that we always fill both L1 entries. But create_mapping() doesn't follow the rule. It can create inidividual L1 entries, so here we have to call pmd_none() check in do_translation_fault() for the entry really corresponded to address, not for the first of pair. Signed-off-by: Kirill A. Shutemov <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: 6269/1: Add 'code' parameter for hook_fault_code()Kirill A. Shutemov10-20/+25
Add one more parameter to hook_fault_code() to be able to set 'code' field of struct fsr_info. Signed-off-by: Kirill A. Shutemov <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: 6252/1: Use SIGBUS for unaligned access instead of SIGILLKirill A. Shutemov2-4/+4
POSIX specify to use signal SIGBUS with code BUS_ADRALN for invalid address alignment. Signed-off-by: Kirill A. Shutemov <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: 6251/1: Make SPARSE_IRQ a hidden optioneric miao1-4/+1
SPARSE_IRQ doesn't need to be a visible option, only those platforms supporting that will select it. Signed-off-by: Eric Miao <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: DMA coherent allocator: align remapped addressesRussell King3-4/+18
The DMA coherent remap area is used to provide an uncached mapping of memory for coherency with DMA engines. Currently, we look for any free hole which our allocation will fit in with page alignment. However, this can lead to fragmentation of the area, and allows small allocations to cross L1 entry boundaries. This is undesirable as we want to move towards allocating sections of memory. Align allocations according to the size, limiting the alignment between the page and section sizes. Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: use generic ioremap_page_range()Russell King1-70/+4
We don't need our own implementation of this, use the generic library implementation instead. Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: 6158/2: PL011 baudrate extension for ST-Ericssons derivativeLinus Walleij2-2/+26
Implementation of the ST-Ericsson baudrate extension in the PL011 block. In this modified variant it is possible to change the sampling factor from 16 to 8, and thanks to this we can get higher baudrates while still using the same peripheral clock. Also replace the simple division to determine the baud divisor with DIV_ROUND_CLOSEST() rather than a simple integer division. Cc: Alessandro Rubini <[email protected]> Cc: Jerzy Kasenberg <[email protected]> Signed-off-by: Marcin Mielczarczyk <[email protected]> Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: 6157/2: PL011 TX/RX split of LCR for ST-Ericssons derivativeLinus Walleij2-11/+52
In the ST-Ericsson version of the PL011 the TX and RX have different control registers. Cc: Alessandro Rubini <[email protected]> Signed-off-by: Marcin Mielczarczyk <[email protected]> Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: 6213/1: atomic64_test: add ARM as supported architectureWill Deacon1-1/+1
ARM has support for the atomic64_dec_if_positive operation so ensure that it is tested by the atomic64_test routine. Acked-by: Nicolas Pitre <[email protected]> Signed-off-by: Will Deacon <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27Merge branch 'origin' into miscRussell King852-200622/+8422
2010-07-27ARM: 6225/1: make TCM allocation static and common for all archsLinus Walleij6-73/+90
This changes the TCM handling so that a fixed area is reserved at 0xfffe0000-0xfffeffff for TCM. This areas is used by XScale but XScale does not have TCM so the mechanisms are mutually exclusive. This change is needed to make TCM detection more dynamic while still being able to compile code into it, and is a must for the unified ARM goals: the current TCM allocation at different places in memory for each machine would be a nightmare if you want to compile a single image for more than one machine with TCM so it has to be nailed down in one place. Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: Versatile: fix section mismatchRussell King1-1/+1
WARNING: vmlinux.o(.text+0xbf38): Section mismatch in reference from the function pci_versatile_scan_bus() to the function .devinit.text:pci_scan_bus_parented() The function pci_versatile_scan_bus() references the function __devinit pci_scan_bus_parented(). Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: Remove unnecessary call to find_limits()Russell King1-5/+3
Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: LMB: convert pfn_valid to use LMBRussell King1-5/+4
Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: LMB: Convert arm_memory_present() to use LMB memory informationRussell King1-7/+6
Signed-off-by: Russell King <[email protected]>
2010-07-27ARM: OMAP: Convert OMAPFB and VRAM SDRAM reservation to LMBRussell King5-34/+39
Signed-off-by: Russell King <[email protected]>