linux-edison.git
12 years agoARM: KVM: add architecture specific hook for capabilities
Marc Zyngier [Mon, 8 Apr 2013 15:47:18 +0000 (16:47 +0100)]
ARM: KVM: add architecture specific hook for capabilities

Most of the capabilities are common to both arm and arm64, but
we still need to handle the exceptions.

Introduce kvm_arch_dev_ioctl_check_extension, which both architectures
implement (in the 32bit case, it just returns 0).

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
12 years agoARM: KVM: perform HYP initilization for hotplugged CPUs
Marc Zyngier [Fri, 12 Apr 2013 18:12:07 +0000 (19:12 +0100)]
ARM: KVM: perform HYP initilization for hotplugged CPUs

Now that we have the necessary infrastructure to boot a hotplugged CPU
at any point in time, wire a CPU notifier that will perform the HYP
init for the incoming CPU.

Note that this depends on the platform code and/or firmware to boot the
incoming CPU with HYP mode enabled and return to the kernel by following
the normal boot path (HYP stub installed).

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
12 years agoARM: KVM: switch to a dual-step HYP init code
Marc Zyngier [Fri, 12 Apr 2013 18:12:06 +0000 (19:12 +0100)]
ARM: KVM: switch to a dual-step HYP init code

Our HYP init code suffers from two major design issues:
- it cannot support CPU hotplug, as we tear down the idmap very early
- it cannot perform a TLB invalidation when switching from init to
  runtime mappings, as pages are manipulated from PL1 exclusively

The hotplug problem mandates that we keep two sets of page tables
(boot and runtime). The TLB problem mandates that we're able to
transition from one PGD to another while in HYP, invalidating the TLBs
in the process.

To be able to do this, we need to share a page between the two page
tables. A page that will have the same VA in both configurations. All we
need is a VA that has the following properties:
- This VA can't be used to represent a kernel mapping.
- This VA will not conflict with the physical address of the kernel text

The vectors page seems to satisfy this requirement:
- The kernel never maps anything else there
- The kernel text being copied at the beginning of the physical memory,
  it is unlikely to use the last 64kB (I doubt we'll ever support KVM
  on a system with something like 4MB of RAM, but patches are very
  welcome).

Let's call this VA the trampoline VA.

Now, we map our init page at 3 locations:
- idmap in the boot pgd
- trampoline VA in the boot pgd
- trampoline VA in the runtime pgd

The init scenario is now the following:
- We jump in HYP with four parameters: boot HYP pgd, runtime HYP pgd,
  runtime stack, runtime vectors
- Enable the MMU with the boot pgd
- Jump to a target into the trampoline page (remember, this is the same
  physical page!)
- Now switch to the runtime pgd (same VA, and still the same physical
  page!)
- Invalidate TLBs
- Set stack and vectors
- Profit! (or eret, if you only care about the code).

Note that we keep the boot mapping permanently (it is not strictly an
idmap anymore) to allow for CPU hotplug in later patches.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
12 years agoARM: KVM: rework HYP page table freeing
Marc Zyngier [Fri, 12 Apr 2013 18:12:05 +0000 (19:12 +0100)]
ARM: KVM: rework HYP page table freeing

There is no point in freeing HYP page tables differently from Stage-2.
They now have the same requirements, and should be dealt with the same way.

Promote unmap_stage2_range to be The One True Way, and get rid of a number
of nasty bugs in the process (good thing we never actually called free_hyp_pmds
before...).

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
12 years agoARM: KVM: enforce maximum size for identity mapped code
Marc Zyngier [Fri, 12 Apr 2013 18:12:04 +0000 (19:12 +0100)]
ARM: KVM: enforce maximum size for identity mapped code

We're about to move to an init procedure where we rely on the
fact that the init code fits in a single page. Make sure we
align the idmap text on a vector alignment, and that the code is
not bigger than a single page.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
12 years agoARM: KVM: move to a KVM provided HYP idmap
Marc Zyngier [Fri, 12 Apr 2013 18:12:03 +0000 (19:12 +0100)]
ARM: KVM: move to a KVM provided HYP idmap

After the HYP page table rework, it is pretty easy to let the KVM
code provide its own idmap, rather than expecting the kernel to
provide it. It takes actually less code to do so.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
12 years agoARM: KVM: fix HYP mapping limitations around zero
Marc Zyngier [Fri, 12 Apr 2013 18:12:02 +0000 (19:12 +0100)]
ARM: KVM: fix HYP mapping limitations around zero

The current code for creating HYP mapping doesn't like to wrap
around zero, which prevents from mapping anything into the last
page of the virtual address space.

It doesn't take much effort to remove this limitation, making
the code more consistent with the rest of the kernel in the process.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
12 years agoARM: KVM: simplify HYP mapping population
Marc Zyngier [Fri, 12 Apr 2013 18:12:01 +0000 (19:12 +0100)]
ARM: KVM: simplify HYP mapping population

The way we populate HYP mappings is a bit convoluted, to say the least.
Passing a pointer around to keep track of the current PFN is quite
odd, and we end-up having two different PTE accessors for no good
reason.

Simplify the whole thing by unifying the two PTE accessors, passing
a pgprot_t around, and moving the various validity checks to the
upper layers.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
12 years agoARM: KVM: arch_timer: use symbolic constants
Mark Rutland [Wed, 27 Mar 2013 15:56:11 +0000 (15:56 +0000)]
ARM: KVM: arch_timer: use symbolic constants

In clocksource/arm_arch_timer.h we define useful symbolic constants.
Let's use them to make the KVM arch_timer code clearer.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: Christoffer Dall <cdall@cs.columbia.edu>
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
12 years agoARM: KVM: add support for minimal host vs guest profiling
Marc Zyngier [Tue, 5 Mar 2013 03:18:00 +0000 (03:18 +0000)]
ARM: KVM: add support for minimal host vs guest profiling

In order to be able to correctly profile what is happening on the
host, we need to be able to identify when we're running on the guest,
and log these events differently.

Perf offers a simple way to register callbacks into KVM. Mimic what
x86 does and enjoy being able to profile your KVM host.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
12 years agovirtio-net: fill only rx queues which are being used
Sasha Levin [Mon, 29 Apr 2013 02:30:08 +0000 (12:00 +0930)]
virtio-net: fill only rx queues which are being used

Due to MQ support we may allocate a whole bunch of rx queues but
never use them. With this patch we'll safe the space used by
the receive buffers until they are actually in use:

sh-4.2# free -h
             total       used       free     shared    buffers     cached
Mem:          490M        35M       455M         0B         0B       4.1M
-/+ buffers/cache:        31M       459M
Swap:           0B         0B         0B
sh-4.2# ethtool -L eth0 combined 8
sh-4.2# free -h
             total       used       free     shared    buffers     cached
Mem:          490M       162M       327M         0B         0B       4.1M
-/+ buffers/cache:       158M       331M
Swap:           0B         0B         0B

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
12 years agof2fs: check truncation of mapping after lock_page
Jaegeuk Kim [Fri, 26 Apr 2013 02:55:17 +0000 (11:55 +0900)]
f2fs: check truncation of mapping after lock_page

We call lock_page when we need to update a page after readpage.
Between grab and lock page, the page can be truncated by other thread.
So, we should check the page after lock_page whether it was truncated or not.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
12 years agof2fs: enhance alloc_nid and build_free_nids flows
Jaegeuk Kim [Thu, 25 Apr 2013 07:05:51 +0000 (16:05 +0900)]
f2fs: enhance alloc_nid and build_free_nids flows

In order to avoid build_free_nid lock contention, let's change the order of
function calls as follows.

At first, check whether there is enough free nids.
 - If available, just get a free nid with spin_lock without any overhead.
 - Otherwise, conduct build_free_nids.
  : scan nat pages, journal nat entries, and nat cache entries.

We should consider carefullly not to serve free nids intermediately made by
build_free_nids.
We can get stable free nids only after build_free_nids is done.

Reviewed-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
12 years agomodpost: fix unwanted VMLINUX_SYMBOL_STR expansion
James Hogan [Mon, 29 Apr 2013 02:06:59 +0000 (11:36 +0930)]
modpost: fix unwanted VMLINUX_SYMBOL_STR expansion

Commit a4b6a77b77ba4f526392612c2365797fab956014 ("module: fix symbol
versioning with symbol prefixes") broke the MODVERSIONS loading of any
module using memcmp (e.g. ipv6) on x86_32, as it's defined to
__builtin_memcmp which is expanded by VMLINUX_SYMBOL_STR. Use
__VMLINUX_SYMBOL_STR instead which doesn't expand the argument.

Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Tested-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: <stable@vger.kernel.org> # 3.9
12 years agof2fs: add a tracepoint on f2fs_new_inode
Jaegeuk Kim [Thu, 25 Apr 2013 04:24:33 +0000 (13:24 +0900)]
f2fs: add a tracepoint on f2fs_new_inode

This can help when debugging the free nid allocation flows.

Reviewed-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
12 years agoLinux 3.9
Linus Torvalds [Mon, 29 Apr 2013 00:36:01 +0000 (17:36 -0700)]
Linux 3.9

12 years agom68knommu: enable Timer on coldfire 532x
Greg Ungerer [Tue, 16 Apr 2013 14:17:53 +0000 (00:17 +1000)]
m68knommu: enable Timer on coldfire 532x

This patch enables the initial Timer on coldfire 532x systems.
Without this, the scheduler will not be triggered and the system hangs,
after all sequential code is executed. It should also apply on later kernel
versions.

Signed-off-by: Christian Gieseler <christiangieseler@yahoo.de>
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
12 years agom68knommu: fix ColdFire 5373/5329 QSPI base address
Greg Ungerer [Fri, 25 Jan 2013 04:21:11 +0000 (14:21 +1000)]
m68knommu: fix ColdFire 5373/5329 QSPI base address

The base address of the QSPI hardware module should be 0xFC05C000.
Fix its definition.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
12 years agom68knommu: add support for configuring a Freescale M5373EVB board
Greg Ungerer [Mon, 5 Nov 2012 05:37:53 +0000 (15:37 +1000)]
m68knommu: add support for configuring a Freescale M5373EVB board

Add a configuration switch for supporting the Freescale M5373EVB board.
It is based on the newly added ColdFire 537x CPU support.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
12 years agom68knommu: add support for the ColdFire 537x family of CPUs
Greg Ungerer [Mon, 5 Nov 2012 05:32:15 +0000 (15:32 +1000)]
m68knommu: add support for the ColdFire 537x family of CPUs

The ColdFire 537x family is very similar internally to the ColdFire 532x
family. So with just a little extra configuration we can configure and
target them as well.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
12 years agom68knommu: make ColdFire M532x platform support more v3 generic
Greg Ungerer [Mon, 5 Nov 2012 05:05:53 +0000 (15:05 +1000)]
m68knommu: make ColdFire M532x platform support more v3 generic

The M532x CPU platform support can be used on more ColdFire CPU families
than just the 532x types. So rename and reconfigure it to reflect that.
The ColdFire 537x family has virtualy identical internals to the 532x,
and so it will be able to share this code when we add support for them.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
12 years agom68knommu: create and use a common M53xx ColdFire class of CPUs
Greg Ungerer [Mon, 5 Nov 2012 02:01:38 +0000 (12:01 +1000)]
m68knommu: create and use a common M53xx ColdFire class of CPUs

The current CONFIG_M532x support definitions are actually common to a larger
set of version 3 ColdFire CPU types. In the future we want to add support for
the 537x family. It is very similar to the 532x internally, and will be able
to use most of the same definitions.

Create a CONFIG_M53xx option that is enabled to support any of the common
532x and 537x CPU types. Convert the current users of CONFIG_M532x to use
CONFIG_M53xx instead.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
12 years agom68k: remove unused asm/dbg.h
Greg Ungerer [Mon, 15 Oct 2012 04:56:09 +0000 (14:56 +1000)]
m68k: remove unused asm/dbg.h

The contents of the m68k asm/dbg.h are never used, remove the file and
remove the one reference to it.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
12 years agom68k: Set ColdFire ACR1 cache mode depending on kernel configuration
Stany MARCEL [Tue, 16 Oct 2012 05:26:11 +0000 (15:26 +1000)]
m68k: Set ColdFire ACR1 cache mode depending on kernel configuration

For coldfire with MMU enabled, data cache did not follow the configuration but
was configured in writethrough mode.

Signed-off-by: Stany MARCEL <stany.marcel@novasys-ingenierie.com>
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
12 years agoromfs: fix nommu map length to keep inside filesystem
Greg Ungerer [Tue, 2 Apr 2013 04:25:33 +0000 (14:25 +1000)]
romfs: fix nommu map length to keep inside filesystem

Checks introduced in commit 4991e7251 ("romfs: do not use
mtd->get_unmapped_area directly") re-introduce problems fixed in the earlier
commit 2b4b2482e ("romfs: fix romfs_get_unmapped_area() argument check").

If a flat binary app is located at the end of a romfs, its page aligned
length may be outside of the romfs filesystem. The flat binary loader, via
nommu do_mmap_pgoff(), page aligns the length it is mmaping. So simple
offset+size checks will fail - returning EINVAL.

We can truncate the length to keep it inside the romfs filesystem, and that
also keeps the call to mtd_get_unmapped_area() happy.

Are there any side effects to truncating the size here though?

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
12 years agom68k: clean up unused "config ROMVECSIZE"
Paul Bolle [Wed, 20 Mar 2013 10:38:06 +0000 (11:38 +0100)]
m68k: clean up unused "config ROMVECSIZE"

Kconfig symbol ROMVECSIZE is unused since commit
f84f52a5c15db7d14a534815f27253b001735183 ("m68knommu: clean up linker
script"). Let's clean up its Kconfig entry too.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
12 years agoMerge branch 'clksrc/cleanup' into next/multiplatform
Olof Johansson [Sun, 28 Apr 2013 22:15:05 +0000 (15:15 -0700)]
Merge branch 'clksrc/cleanup' into next/multiplatform

Merge in the clksrc/cleanup branch to avoid a silly merge conflict. For
some reason two versions of the same patch were merged in two
branches. Resolve this here to avoid merge conflicts down the road,
since it can be confusing to tell which version is the one to keep.

* clksrc/cleanup:
  clocksource: make CLOCKSOURCE_OF_DECLARE type safe

Signed-off-by: Olof Johansson <olof@lixom.net>
Conflicts:
include/linux/clocksource.h

12 years agoMerge branch 'pm-cpufreq'
Rafael J. Wysocki [Sun, 28 Apr 2013 22:08:46 +0000 (00:08 +0200)]
Merge branch 'pm-cpufreq'

* pm-cpufreq:
  cpufreq: Revert incorrect commit 5800043

12 years agocpufreq: Revert incorrect commit 5800043
Rafael J. Wysocki [Sun, 28 Apr 2013 22:08:16 +0000 (00:08 +0200)]
cpufreq: Revert incorrect commit 5800043

Commit 5800043 (cpufreq: convert cpufreq_driver to using RCU) causes
the following call trace to be spit on boot:

 BUG: sleeping function called from invalid context at /scratch/rafael/work/linux-pm/mm/slab.c:3179
 in_atomic(): 0, irqs_disabled(): 0, pid: 292, name: systemd-udevd
 2 locks held by systemd-udevd/292:
  #0:  (subsys mutex){+.+.+.}, at: [<ffffffff8146851a>] subsys_interface_register+0x4a/0xe0
  #1:  (rcu_read_lock){.+.+.+}, at: [<ffffffff81538210>] cpufreq_add_dev_interface+0x60/0x5e0
 Pid: 292, comm: systemd-udevd Not tainted 3.9.0-rc8+ #323
 Call Trace:
  [<ffffffff81072c90>] __might_sleep+0x140/0x1f0
  [<ffffffff811581c2>] kmem_cache_alloc+0x42/0x2b0
  [<ffffffff811e7179>] sysfs_new_dirent+0x59/0x130
  [<ffffffff811e63cb>] sysfs_add_file_mode+0x6b/0x110
  [<ffffffff81538210>] ? cpufreq_add_dev_interface+0x60/0x5e0
  [<ffffffff810a3254>] ? __lock_is_held+0x54/0x80
  [<ffffffff811e647d>] sysfs_add_file+0xd/0x10
  [<ffffffff811e6541>] sysfs_create_file+0x21/0x30
  [<ffffffff81538280>] cpufreq_add_dev_interface+0xd0/0x5e0
  [<ffffffff81538210>] ? cpufreq_add_dev_interface+0x60/0x5e0
  [<ffffffffa000337f>] ? acpi_processor_get_platform_limit+0x32/0xbb [processor]
  [<ffffffffa022f540>] ? do_drv_write+0x70/0x70 [acpi_cpufreq]
  [<ffffffff810a3254>] ? __lock_is_held+0x54/0x80
  [<ffffffff8106c97e>] ? up_read+0x1e/0x40
  [<ffffffff8106e632>] ? __blocking_notifier_call_chain+0x72/0xc0
  [<ffffffff81538dbd>] cpufreq_add_dev+0x62d/0xae0
  [<ffffffff815389b8>] ? cpufreq_add_dev+0x228/0xae0
  [<ffffffff81468569>] subsys_interface_register+0x99/0xe0
  [<ffffffffa014d000>] ? 0xffffffffa014cfff
  [<ffffffff81535d5d>] cpufreq_register_driver+0x9d/0x200
  [<ffffffffa014d000>] ? 0xffffffffa014cfff
  [<ffffffffa014d0e9>] acpi_cpufreq_init+0xe9/0x1000 [acpi_cpufreq]
  [<ffffffff810002fa>] do_one_initcall+0x11a/0x170
  [<ffffffff810b4b87>] load_module+0x1cf7/0x2920
  [<ffffffff81322580>] ? ddebug_proc_open+0xb0/0xb0
  [<ffffffff816baee0>] ? retint_restore_args+0xe/0xe
  [<ffffffff810b5887>] sys_init_module+0xd7/0x120
  [<ffffffff816bb6d2>] system_call_fastpath+0x16/0x1b

which is quite obvious, because that commit put (multiple instances
of) sysfs_create_file() under rcu_read_lock()/rcu_read_unlock(),
although sysfs_create_file() may cause memory to be allocated with
GFP_KERNEL and that may sleep, which is not permitted in RCU read
critical section.

Revert the buggy commit altogether along with some changes on top
of it.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
12 years agoMerge branch 'gic/cleanup' into next/soc
Olof Johansson [Sun, 28 Apr 2013 22:06:56 +0000 (15:06 -0700)]
Merge branch 'gic/cleanup' into next/soc

Merge in the gic cleanup since it has a handful of annoying internal conflicts
with soc development branches. All of them are delete/delete conflicts.

* gic/cleanup:
  irqchip: vic: add include of linux/irq.h
  irqchip: gic: Perform the gic_secondary_init() call via CPU notifier
  irqchip: gic: Call handle_bad_irq() directly
  arm: Move chained_irq_(enter|exit) to a generic file
  arm: Move the set_handle_irq and handle_arch_irq declarations to asm/irq.h

Signed-off-by: Olof Johansson <olof@lixom.net>
Conflicts:
arch/arm/mach-shmobile/smp-emev2.c
arch/arm/mach-shmobile/smp-r8a7779.c
arch/arm/mach-shmobile/smp-sh73a0.c
arch/arm/mach-socfpga/platsmp.c

12 years agoMerge branch 'fixes' into next/cleanup
Olof Johansson [Sun, 28 Apr 2013 19:43:08 +0000 (12:43 -0700)]
Merge branch 'fixes' into next/cleanup

Merging in fixes since there's a conflict in the omap4 clock tables caused by
it.

* fixes: (245 commits)
  ARM: highbank: fix cache flush ordering for cpu hotplug
  ARM: OMAP4: hwmod data: make 'ocp2scp_usb_phy_phy_48m" as the main clock
  arm: mvebu: Fix the irq map function in SMP mode
  Fix GE0/GE1 init on ix2-200 as GE0 has no PHY
  ARM: S3C24XX: Fix interrupt pending register offset of the EINT controller
  ARM: S3C24XX: Correct NR_IRQS definition for s3c2440
  ARM i.MX6: Fix ldb_di clock selection
  ARM: imx: provide twd clock lookup from device tree
  ARM: imx35 Bugfix admux clock
  ARM: clk-imx35: Bugfix iomux clock
  + Linux 3.9-rc6

Signed-off-by: Olof Johansson <olof@lixom.net>
Conflicts:
arch/arm/mach-omap2/cclock44xx_data.c

12 years agofirewire: ohci: fix VIA VT6306 video reception
Andy Leiserson [Wed, 24 Apr 2013 16:10:32 +0000 (09:10 -0700)]
firewire: ohci: fix VIA VT6306 video reception

Add quirk for VT6306 wake bit behavior.

VT6306 seems to reread the wrong descriptor when the wake bit is
written. work around by putting a copy of the branch address in the
first descriptor of the block.

[Stefan R:  This fixes the known broken video reception via gstreamer
on VIA VT6306.  100% repeatable testcase:
$ gst-launch-0.10 dv1394src \! dvdemux \! dvdec \! xvimagesink
with a camcorder or other DV source connected.  Likewise for MPEG2-TS
reception via gstreamer, e.g. from TV settop boxes.
Perhaps this also fixes dv4l on VT6306, but this is as yet untested.
Kino, dvgrab or FFADO had not been affected by this chip quirk.
Additional comments from Andy:]

I've looked into some problems with the wake bit on a vt6306 family
chip (1106:3044, rev 46).

I used this firewire card in a mythtv setup (ISO receive MPEG2 stream)
with Debian 2.6.32 kernels for ~2 years without problems.

Since upgrading to 3.2, I've been having problems with the input stream
freezing -- input data stops until I restart mythtv (I expect closing
and reopening the device would be sufficient). This happens
infrequently, maybe one out of 20 recordings. I eventually determined
that the problem is more likely to occur if the system is loaded.

I isolated the kernel version as the triggering SW factor and then
specifically the change from dualbuffer back to packet-per-buffer DMA
mode.

The possibility that the controller does not properly respond to the
wake bit was suggested in
https://bugzilla.redhat.com/show_bug.cgi?id=415841, but not proven.

Based on the fact that dualbuffer mode worked while packet-per-buffer
has trouble, I guessed that upon seeing the wake bit written, the vt6306
controller only checks the branch address in the first descriptor of the
block, even if that is not the correct place to look (because the block
has multiple descriptors).

This theory seems to be correct. When the ISO reception is hung, I am
able to resume it by manually writing the branch address to the first
descriptor in the block, and then writing the wake bit.

I've had luck so far with the attached patch, so I'm including it. It's
probably not a complete solution -- I haven't tested transmit modes to
see whether they have a similar issue.

I doubt that the quirk test is any cheaper than just writing the extra
branch address in all cases, but it does reduce the risk of breaking
other hardware.

[Stefan R:  omitted QUIRK_NO_MSI from VT6306 quirks table entry,
changed whitespace]

Signed-off-by: Andy Leiserson <andy@leiserson.org>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
12 years agofirewire: ohci: Check LPS before register access on pci removal
Peter Hurley [Wed, 27 Mar 2013 10:59:59 +0000 (06:59 -0400)]
firewire: ohci: Check LPS before register access on pci removal

A pci device can be removed while in its suspended state. If the ohci
host controller is suspended, the PHY is also in low-power mode and
LPS is disabled. If LPS is disabled, most of the host registers aren't
accessible, including IntMaskClear. Furthermore, access to these registers
when LPS is disabled can cause hard lockups on some hardware. Since
interrupts are already disabled in this mode, further action is
unnecessary.

Test LPS before attempting to write IntMaskClear to disable interrupts.

[Stefan R: whitespace changes]

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
12 years agofirewire: ohci: Fix double free_irq()
Peter Hurley [Wed, 27 Mar 2013 10:59:58 +0000 (06:59 -0400)]
firewire: ohci: Fix double free_irq()

A pci device can be removed while in its suspended state.
Because the ohci driver freed the irq to suspend, free_irq() is
called twice; once from pci_remove() and again from pci_suspend(),
which issues the warning below [1].

Rather than allocate the irq in the .enable() path, move the
allocation to .probe(). Consequently, the irq is not reallocated
upon pci_resume() and thus is not freed upon pci_suspend().

[1] Warning reported by Mark Einon <mark.einon@gmail.com> when
suspending an MSI MS-1727 GT740 laptop on Ubuntu 3.5.0-22-generic

WARNING: at ./kernel/irq/manage.c:1198 __free_irq+0xa3/0x1e0()
Hardware name: MS-1727
Trying to free already-free IRQ 16
Modules linked in: ip6table_filter ip6_tables ebtable_nat ebtables <...snip...>
Pid: 4, comm: kworker/0:0 Tainted: P           O 3.5.0-22-generic #34-Ubuntu
Call Trace:
 [<ffffffff81051c1f>] warn_slowpath_common+0x7f/0xc0
 [<ffffffff81051d16>] warn_slowpath_fmt+0x46/0x50
 [<ffffffff8103fa39>] ? default_spin_lock_flags+0x9/0x10
 [<ffffffff810df6b3>] __free_irq+0xa3/0x1e0
 [<ffffffff810df844>] free_irq+0x54/0xc0
 [<ffffffffa005a27e>] pci_remove+0x6e/0x210 [firewire_ohci]
 [<ffffffff8135ae7f>] pci_device_remove+0x3f/0x110
 [<ffffffff8141fdbc>] __device_release_driver+0x7c/0xe0
 [<ffffffff8141fe4c>] device_release_driver+0x2c/0x40
 [<ffffffff8141f5f1>] bus_remove_device+0xe1/0x120
 [<ffffffff8141cd1a>] device_del+0x12a/0x1c0
 [<ffffffff8141cdc6>] device_unregister+0x16/0x30
 [<ffffffff81354784>] pci_stop_bus_device+0x94/0xa0
 [<ffffffffa0091c67>] acpiphp_disable_slot+0xb7/0x1a0 [acpiphp]
 [<ffffffffa0090716>] ? get_slot_status+0x46/0xc0 [acpiphp]
 [<ffffffffa0091d7d>] acpiphp_check_bridge.isra.15+0x2d/0xf0 [acpiphp]
 [<ffffffffa0092442>] _handle_hotplug_event_bridge+0x372/0x4d0 [acpiphp]
 [<ffffffff81390f8c>] ? acpi_os_execute_deferred+0x2f/0x34
 [<ffffffff8116e22d>] ? kfree+0xed/0x110
 [<ffffffff8107086a>] process_one_work+0x12a/0x420
 [<ffffffffa00920d0>] ? _handle_hotplug_event_func+0x1d0/0x1d0 [acpiphp]
 [<ffffffff8107141e>] worker_thread+0x12e/0x2f0
 [<ffffffff810712f0>] ? manage_workers.isra.26+0x200/0x200
 [<ffffffff81075f13>] kthread+0x93/0xa0
 [<ffffffff8168d024>] kernel_thread_helper+0x4/0x10
 [<ffffffff81075e80>] ? kthread_freezable_should_stop+0x70/0x70
 [<ffffffff8168d020>] ? gs_change+0x13/0x13

Reported-by: Mark Einon <mark.einon@gmail.com>
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
12 years agofirewire: remove unnecessary alloc/OOM messages
Stefan Richter [Sun, 24 Mar 2013 16:32:00 +0000 (17:32 +0100)]
firewire: remove unnecessary alloc/OOM messages

These are redundant to log messages from the mm core.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
12 years agofirewire: sbp2: replace BUG_ON by WARN_ON
Stefan Richter [Sun, 24 Mar 2013 16:31:38 +0000 (17:31 +0100)]
firewire: sbp2: replace BUG_ON by WARN_ON

No need to crash and burn if S/G element sizes cannot be set to our
liking; just leave a message in the log.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
12 years agofirewire: core: remove an always false test
Stefan Richter [Sun, 24 Mar 2013 16:31:09 +0000 (17:31 +0100)]
firewire: core: remove an always false test

struct fw_cdev_allocate_iso_resource.bandwidth is unsigned.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
12 years agofirewire: Remove two unneeded checks for macros
Paul Bolle [Sat, 16 Mar 2013 13:09:07 +0000 (14:09 +0100)]
firewire: Remove two unneeded checks for macros

The old IEEE 1394 driver stack was removed in v2.6.37. That made the
checks for two Kconfig (module) macros unneeded, since they will now
always evaluate to true. Remove these two checks.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
12 years agoMerge tag 'late-exynos-v3-for-v3.10' of git://git.kernel.org/pub/scm/linux/kernel...
Olof Johansson [Sun, 28 Apr 2013 19:24:08 +0000 (12:24 -0700)]
Merge tag 'late-exynos-v3-for-v3.10' of git://git./linux/kernel/git/kgene/linux-samsung into late/dt

From Kukjin Kim:
This allows that device tree enables platform to setup a runtime IO
mapping for the chip id

* tag 'late-exynos-v3-for-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  ARM: dts: Add chip-id controller node on Exynos4/5 SoC
  ARM: EXYNOS: Create virtual I/O mapping for Chip-ID controller using device tree

Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoARM: dts: exynos4210: Add basic dts file for universal_c210 board
Tomasz Figa [Tue, 23 Apr 2013 15:46:34 +0000 (17:46 +0200)]
ARM: dts: exynos4210: Add basic dts file for universal_c210 board

This patch adds basic device tree sources for Universal C210 board.

Currently support includes:
- eMMC
- serial
- max8952 and max8998 voltage regulators.
- gpio-keys

More support will be added in further patches.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoARM: dts: exynos4: Add node for PWM device
Tomasz Figa [Tue, 23 Apr 2013 15:46:33 +0000 (17:46 +0200)]
ARM: dts: exynos4: Add node for PWM device

This patch adds device tree node for PWM block present on Exynos 4 SoCs.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoARM: SAMSUNG: Do not register legacy timer interrupts on Exynos
Tomasz Figa [Tue, 23 Apr 2013 15:46:31 +0000 (17:46 +0200)]
ARM: SAMSUNG: Do not register legacy timer interrupts on Exynos

This patch removes legacy PWM timer interrupt initialization from
exynos{4,5}_init_irq() functions, since it conflicts with internal
interrupt handling of the new PWM clocksource driver.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoclocksource: samsung_pwm_timer: Work around rounding errors in clockevents core
Tomasz Figa [Tue, 23 Apr 2013 15:46:30 +0000 (17:46 +0200)]
clocksource: samsung_pwm_timer: Work around rounding errors in clockevents core

Due to rounding errors in clockevents core (in conversions between ticks
and nsecs), it might happen that the set_next_event callback gets called
with cycles = 0, causing the code to incorrectly program the PWM timer.

This patch modifies the callback to program the timer for 1 tick, if
received tick count value is 0.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoclocksource: samsung_pwm_timer: Correct programming of clock events
Tomasz Figa [Tue, 23 Apr 2013 15:46:29 +0000 (17:46 +0200)]
clocksource: samsung_pwm_timer: Correct programming of clock events

In current code, the tick count value programmed to the hardware is
always decremented by one. This is reasonable for periodic mode, since
there is one extra tick between 0 and COUNT (after reloading), but it
makes oneshot events happen 1 tick earlier than requested, because the
interrupt is triggered on transition from 1 to 0.

This patch removes the decrementation from PWM channel setup code and
moves it instead to periodic timer setup, to make both periodic and
oneshot modes work correctly.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoclocksource: samsung_pwm_timer: Use proper clockevents max_delta
Tomasz Figa [Tue, 23 Apr 2013 15:46:28 +0000 (17:46 +0200)]
clocksource: samsung_pwm_timer: Use proper clockevents max_delta

This patch replaces hardcoded -1 argument passed to
clockevents_config_and_register() with tcnt_max calculated based on
variant data.

This fixes invalid max delta configuration for 16-bit timers of s3c24xx.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoclocksource: samsung_pwm_timer: Add support for non-DT platforms
Tomasz Figa [Tue, 23 Apr 2013 15:46:27 +0000 (17:46 +0200)]
clocksource: samsung_pwm_timer: Add support for non-DT platforms

This patch extends the driver to support platforms that still use legacy
ATAGS-based boot, without device tree, by providing an exported function
that can be used from platform code to initialize the clocksource.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoclocksource: samsung_pwm_timer: Drop unused samsung_pwm struct
Tomasz Figa [Tue, 23 Apr 2013 15:46:26 +0000 (17:46 +0200)]
clocksource: samsung_pwm_timer: Drop unused samsung_pwm struct

This patch removes the unused samsung_pwm struct from public header.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoclocksource: samsung_pwm_timer: Keep all driver data in a structure
Tomasz Figa [Tue, 23 Apr 2013 15:46:25 +0000 (17:46 +0200)]
clocksource: samsung_pwm_timer: Keep all driver data in a structure

This patch modifies the driver to keep all its private data consistently
in a single struct, instead of keeping part as separate variables.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoclocksource: samsung_pwm_timer: Make PWM spinlock global
Tomasz Figa [Tue, 23 Apr 2013 15:46:24 +0000 (17:46 +0200)]
clocksource: samsung_pwm_timer: Make PWM spinlock global

This patch makes the PWM spinlock global and exports it to allow using
it in Samsung PWM driver (will be reworked to use proper synchronization
in further patches).

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoclocksource: samsung_pwm_timer: Let platforms select the driver
Tomasz Figa [Tue, 23 Apr 2013 15:46:23 +0000 (17:46 +0200)]
clocksource: samsung_pwm_timer: Let platforms select the driver

This patch modifies the way of enabling the driver to let the platforms
select it in their Kconfig instead of specifying particular platforms in
Kconfig entry of the driver.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoDocumentation: Add device tree bindings for Samsung PWM timers
Tomasz Figa [Tue, 23 Apr 2013 15:46:22 +0000 (17:46 +0200)]
Documentation: Add device tree bindings for Samsung PWM timers

This patch adds missing documentation describing Device Tree bindings
for Samsung PWM timers.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoARM: exynos: dts: cros5250: add EC device
Olof Johansson [Sat, 27 Apr 2013 22:14:10 +0000 (15:14 -0700)]
ARM: exynos: dts: cros5250: add EC device

Add basic EC information to device tree, currently only describing the
keyboard and keymap.

Reviewed-by: Doug Anderson <dianders@chromium.org>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoARM: dts: Add sbs-battery for exynos5250-snow
Doug Anderson [Tue, 16 Apr 2013 16:29:02 +0000 (16:29 +0000)]
ARM: dts: Add sbs-battery for exynos5250-snow

Now that we have i2c-arbitrator in place on bus 4 we can add the
sbs-battery driver.  Future devices will be added onto bus 4 once
drivers are in good shape.

Signed-off-by: Doug Anderson <dianders@chromium.org>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoARM: dts: Add i2c-arbitrator bus for exynos5250-snow
Doug Anderson [Tue, 16 Apr 2013 16:29:01 +0000 (16:29 +0000)]
ARM: dts: Add i2c-arbitrator bus for exynos5250-snow

We need to use the i2c-arbitrator to talk to any of the devices on i2c
bus 4 on exynos5250-snow so that we don't confuse the embedded
controller (EC).  Add the i2c-arbitrator to the device tree.  As we
add future devices (keyboard, sbs, tps65090) we'll add them on top of
this.

The arbitrated bus is numbered 104 simply as a convenience to make it
easier for people poking around to guess that it might have something
to do with the physical bus 4.

The addition is split between the cros5250-common and the snow device
tree file since not all cros5250-class devices use arbitration.

Signed-off-by: Doug Anderson <dianders@chromium.org>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
12 years agoMerge branch 'exynos/dt' into late/dt
Olof Johansson [Sun, 28 Apr 2013 19:03:33 +0000 (12:03 -0700)]
Merge branch 'exynos/dt' into late/dt

* exynos/dt: (125 commits)
  ARM: dts: add PDMA0 changes for exynos5440
  ARM: dts: Add cpufreq controller node for Exynos5440 SoC
  ARM: dts: Fix gmac clock ids due to changes in Exynos5440
  ARM: dts: add device tree file for SD5v1 board
  ARM: dts: update bootargs to boot from sda2 for exynos5440-ssdk5440
  ARM: dts: add PMU support in exynos5440
  ARM: dts: Add node for GMAC for exynos5440
  ARM: dts: list the interrupts generated by pin-controller on Exynos5440
  ARM: dts: Add FIMD DT binding Documentation
  ARM: dts: Add FIMD node and display timing node to exynos4412-origen.dts
  ARM: dts: Add FIMD node to exynos4
  ARM: dts: Add SYSREG block node for S5P/Exynos4 SoC series
  ARM: dts: Add display timing node to exynos5250-smdk5250.dts
  ARM: dts: Add FIMD node to exynos5
  ARM: dts: Add virtual GIC DT bindings for exynos5440
  ARM: dts: Document usb clocks in samsung,exynos4210-ehci/ohci bindings
  ARM: dts: add usb 2.0 clock references to exynos5250 device tree
  ARM: dts: Add architected timer nodes for exynos5250
  ARM: dts: Declare the gic as a15 compatible for exynos5250
  ARM: dts: Add HDMI HPD and regulator node for Arndale board
  ...

12 years agoMerge branch 'samsung/pinctrl-exynos' into late/dt
Olof Johansson [Sun, 28 Apr 2013 19:02:44 +0000 (12:02 -0700)]
Merge branch 'samsung/pinctrl-exynos' into late/dt

* samsung/pinctrl-exynos:
  ARM: EXYNOS: skip wakeup interrupt registration for exynos5250 if pinctrl is enabled
  gpio: samsung: skip gpiolib registration if pinctrl support is enabled for exynos5250
  pinctrl: exynos: add exynos5250 SoC specific data

12 years ago[media] cx88: make core less verbose
Mauro Carvalho Chehab [Sun, 28 Apr 2013 10:15:41 +0000 (07:15 -0300)]
[media] cx88: make core less verbose

Along the time, several debug messages were added at cx88-cards.
While those are still useful to track some troubles with
tuners, they're too verbose:
[ 5768.281801] cx88[0]: Calling XC2028/3028 callback
[ 5768.287388] cx88[0]: Calling XC2028/3028 callback
[ 5768.292575] cx88[0]: Calling XC2028/3028 callback
[ 5768.299408] cx88[0]: Calling XC2028/3028 callback
[ 5768.306244] cx88[0]: Calling XC2028/3028 callback
...

and, most of the time, useless.

So, disable them, except if core_debug modprobe parameter
is used.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
12 years ago[media] em28xx: fix oops at em28xx_dvb_bus_ctrl()
Mauro Carvalho Chehab [Sun, 28 Apr 2013 13:33:57 +0000 (10:33 -0300)]
[media] em28xx: fix oops at em28xx_dvb_bus_ctrl()

em28xx is oopsing with some DVB devices:

[10856.061884] general protection fault: 0000 [#1] SMP
[10856.067041] Modules linked in: rc_hauppauge em28xx_rc xc5000 drxk em28xx_dvb dvb_core em28xx videobuf2_vmalloc videobuf2_memops videobuf2_core rc_pixelview_new tuner_xc2028 tuner cx8800 cx88xx tveeprom btcx_risc videobuf_dma_sg videobuf_core rc_core v4l2_common videodev ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_CHECKSUM be2iscsi iscsi_boot_sysfs iptable_mangle bnx2i cnic uio cxgb4i cxgb4 tun bridge cxgb3i cxgb3 stp ip6t_REJECT mdio libcxgbi nf_conntrack_ipv6 llc nf_defrag_ipv6 ib_iser rdma_cm ib_addr xt_conntrack iw_cm ib_cm ib_sa nf_conntrack ib_mad ib_core bnep bluetooth iscsi_tcp libiscsi_tcp ip6table_filter libiscsi ip6_tables scsi_transport_iscsi xfs libcrc32c snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm tg3 snd_page_alloc snd_timer
[10856.139176]  snd ptp iTCO_wdt soundcore pps_core iTCO_vendor_support lpc_ich mfd_core coretemp nfsd hp_wmi crc32c_intel microcode serio_raw rfkill sparse_keymap nfs_acl lockd sunrpc kvm_intel kvm uinput binfmt_misc firewire_ohci nouveau mxm_wmi i2c_algo_bit drm_kms_helper firewire_core crc_itu_t ttm drm i2c_core wmi [last unloaded: dib0070]
[10856.168969] CPU 1
[10856.170799] Pid: 13606, comm: dvbv5-zap Not tainted 3.9.0-rc5+ #26 Hewlett-Packard HP Z400 Workstation/0AE4h
[10856.181187] RIP: 0010:[<ffffffffa0459e47>]  [<ffffffffa0459e47>] em28xx_write_regs_req+0x37/0x1c0 [em28xx]
[10856.191028] RSP: 0018:ffff880118401a58  EFLAGS: 00010282
[10856.196533] RAX: 00020000012d0000 RBX: ffff88010804aec8 RCX: ffff880118401b14
[10856.203852] RDX: 0000000000000048 RSI: 0000000000000000 RDI: ffff88010804aec8
[10856.211174] RBP: ffff880118401ac8 R08: 0000000000000001 R09: 0000000000000000
[10856.218496] R10: 0000000000000000 R11: 0000000000000006 R12: 0000000000000048
[10856.226026] R13: ffff880118401b14 R14: ffff88011752b258 R15: ffff88011752b258
[10856.233352] FS:  00007f26636d2740(0000) GS:ffff88011fc20000(0000) knlGS:0000000000000000
[10856.241626] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[10856.247565] CR2: 00007f2663716e20 CR3: 00000000c7eb1000 CR4: 00000000000007e0
[10856.254889] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[10856.262215] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[10856.269542] Process dvbv5-zap (pid: 13606, threadinfo ffff880118400000, task ffff8800cd625d40)
[10856.278340] Stack:
[10856.280564]  ffff88011ffe8de8 0000000000000002 0000000000000000 ffff88011ffe9b00
[10856.288191]  ffff880118401b14 00ff88011ffe9b08 ffff880100000048 ffffffff8112a52a
[10856.295893]  0000000000000001 ffff88010804aec8 0000000000000048 ffff880118401b14
[10856.303521] Call Trace:
[10856.306182]  [<ffffffff8112a52a>] ? __alloc_pages_nodemask+0x15a/0x960
[10856.312912]  [<ffffffffa045a002>] em28xx_write_regs+0x32/0xa0 [em28xx]
[10856.319638]  [<ffffffffa045a221>] em28xx_write_reg+0x21/0x30 [em28xx]
[10856.326279]  [<ffffffffa045a2cc>] em28xx_gpio_set+0x9c/0x100 [em28xx]
[10856.332919]  [<ffffffffa045a3ac>] em28xx_set_mode+0x7c/0x80 [em28xx]
[10856.339472]  [<ffffffffa03ef032>] em28xx_dvb_bus_ctrl+0x32/0x40 [em28xx_dvb]

This is caused by commit c7a45e5b4f8c2f96cd242ae1b1c06e7fb19a08d0,
that added support for two I2C buses. A partial fix was applied
at 3de09fbbfaa521e68675bd30cfece252c4856600, but it doesn't cover
all cases, as the DVB core fills fe->dvb->priv with adapter->priv.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
12 years agoKVM: nVMX: Skip PF interception check when queuing during nested run
Jan Kiszka [Sun, 28 Apr 2013 07:24:41 +0000 (09:24 +0200)]
KVM: nVMX: Skip PF interception check when queuing during nested run

While a nested run is pending, vmx_queue_exception is only called to
requeue exceptions that were previously picked up via
vmx_cancel_injection. Therefore, we must not check for PF interception
by L1, possibly causing a bogus nested vmexit.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
12 years agoKVM: x86: Increase the "hard" max VCPU limit
Chegu Vinod [Sun, 28 Apr 2013 01:31:04 +0000 (18:31 -0700)]
KVM: x86: Increase the "hard" max VCPU limit

KVM guests today use 8bit APIC ids allowing for 256 ID's. Reserving one
ID for Broadcast interrupts should leave 255 ID's. In case of KVM there
is no need for reserving another ID for IO-APIC so the hard max limit for
VCPUS can be increased from 254 to 255. (This was confirmed by Gleb Natapov
http://article.gmane.org/gmane.comp.emulators.kvm.devel/99713  )

Signed-off-by: Chegu Vinod <chegu_vinod@hp.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
12 years agokvm: Allow build-time configuration of KVM device assignment
Alex Williamson [Tue, 16 Apr 2013 19:49:18 +0000 (13:49 -0600)]
kvm: Allow build-time configuration of KVM device assignment

We hope to at some point deprecate KVM legacy device assignment in
favor of VFIO-based assignment.  Towards that end, allow legacy
device assignment to be deconfigured.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Alexander Graf <agraf@suse.de>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
12 years agoMerge git://github.com/agraf/linux-2.6.git kvm-ppc-next into queue
Gleb Natapov [Sun, 28 Apr 2013 09:50:07 +0000 (12:50 +0300)]
Merge git://github.com/agraf/linux-2.6.git kvm-ppc-next into queue

12 years agoKVM: x86: Rework request for immediate exit
Jan Kiszka [Sun, 28 Apr 2013 08:50:52 +0000 (10:50 +0200)]
KVM: x86: Rework request for immediate exit

The VMX implementation of enable_irq_window raised
KVM_REQ_IMMEDIATE_EXIT after we checked it in vcpu_enter_guest. This
caused infinite loops on vmentry. Fix it by letting enable_irq_window
signal the need for an immediate exit via its return value and drop
KVM_REQ_IMMEDIATE_EXIT.

This issue only affects nested VMX scenarios.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
12 years agokvm, svm: Fix typo in printk message
Borislav Petkov [Thu, 25 Apr 2013 22:22:01 +0000 (00:22 +0200)]
kvm, svm: Fix typo in printk message

It is "exit_int_info". It is actually EXITINTINFO in the official docs
but we don't like screaming docs.

Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
12 years agoclk: add clk_ignore_unused option to keep boot clocks on
Olof Johansson [Sat, 27 Apr 2013 21:10:18 +0000 (14:10 -0700)]
clk: add clk_ignore_unused option to keep boot clocks on

This is primarily useful when there's a driver that doesn't claim clocks
properly, but the bootloader leaves them on. It's not expected to be used
in normal cases, but for bringup and debug it's very useful to have the
option to not gate unclaimed clocks that are still on.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
[mturquette@linaro.org: fixed up trivial merge issue]

12 years agoKVM: VMX: remove unprintable characters from comment
Jan Kiszka [Sat, 27 Apr 2013 10:58:00 +0000 (12:58 +0200)]
KVM: VMX: remove unprintable characters from comment

Slipped in while copy&pasting from the SDM.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
12 years agocpuset: fix compile warning when CONFIG_SMP=n
Li Zefan [Sun, 28 Apr 2013 01:46:57 +0000 (09:46 +0800)]
cpuset: fix compile warning when CONFIG_SMP=n

Reported by Fengguang's kbuild test robot:

kernel/cpuset.c:787: warning: 'generate_sched_domains' defined but not used

Introduced by commit e0e80a02e5701c8790bd348ab59edb154fbda60b
("cpuset: use rebuild_sched_domains() in cpuset_hotplug_workfn()),
which removed generate_sched_domains() from cpuset_hotplug_workfn().

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Li Zefan <lizefan@huawei.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
12 years agospi-topcliff-pch: fix to use list_for_each_entry_safe() when delete list items
Wei Yongjun [Sat, 27 Apr 2013 06:06:00 +0000 (14:06 +0800)]
spi-topcliff-pch: fix to use list_for_each_entry_safe() when delete list items

Since we will remove items off the list using list_del_init() we need
to use a safe version of the list_for_each_entry() macro aptly named
list_for_each_entry_safe().

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Mark Brown <broonie@sirena.org.uk>
12 years agoMerge remote-tracking branch 'regulator/topic/wm8994' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:50 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/wm8994' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/twl' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:49 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/twl' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/tps80031' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:48 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/tps80031' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/tps6586x' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:48 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/tps6586x' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/tps65023' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:47 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/tps65023' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/tps62360' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:47 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/tps62360' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/s5m8767' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:46 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/s5m8767' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/rc5t583' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:46 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/rc5t583' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/palmas' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:45 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/palmas' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/mc13892' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:44 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/mc13892' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/max8998' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:44 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/max8998' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/max8997' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:43 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/max8997' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/max8973' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:43 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/max8973' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/max8952' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:43 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/max8952' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/max8925' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:42 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/max8925' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/max77686' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:42 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/max77686' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/max1586' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:41 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/max1586' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/lp8788' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:41 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/lp8788' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/gpio' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:40 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/gpio' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/fan53555' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:39 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/fan53555' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/enable-invert' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:37 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/enable-invert' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/core' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:37 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/core' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/ascend' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:36 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/ascend' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/as3711' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:36 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/as3711' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/arizona' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:35 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/arizona' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/ab8500' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:34 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/ab8500' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/topic/ab3100' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:33 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/topic/ab3100' into v3.9-rc8

12 years agoMerge remote-tracking branch 'regulator/fix/core' into v3.9-rc8
Mark Brown [Sun, 28 Apr 2013 01:13:33 +0000 (02:13 +0100)]
Merge remote-tracking branch 'regulator/fix/core' into v3.9-rc8

12 years agoregulator: mc13892: Fix MC13892_SWITCHERS0_SWxHI bit in set_voltage_sel
Axel Lin [Wed, 24 Apr 2013 03:51:12 +0000 (11:51 +0800)]
regulator: mc13892: Fix MC13892_SWITCHERS0_SWxHI bit in set_voltage_sel

It is necessary to clear MC13892_SWITCHERS0_SWxHI bit when set voltage to the
voltage range from 1100000 to 1375000. Leaving MC13892_SWITCHERS0_SWxHI bit
untouched may result in wrong voltage setting.

For example, currently switch voltage from 1400000 to 1300000 will set the
voltage to 1800000 because the HI bit is still set.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@sirena.org.uk>
12 years agoregulator: Remove NULL test before calling regulator_unregister()
Axel Lin [Sat, 27 Apr 2013 05:58:08 +0000 (13:58 +0800)]
regulator: Remove NULL test before calling regulator_unregister()

It's safe to call regulator_unregister() with NULL, thus remove the NULL test
before regulator_unregister() calls.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@sirena.org.uk>
12 years agoregulator: mc13783: Add device tree probe support
Alexander Shiyan [Sat, 27 Apr 2013 06:29:25 +0000 (10:29 +0400)]
regulator: mc13783: Add device tree probe support

Patch adds device tree probe support for mc13783-regulator driver.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Mark Brown <broonie@sirena.org.uk>
12 years agoregulator: mc13xxx: Add warning of incorrect names of regulators
Alexander Shiyan [Sat, 27 Apr 2013 06:29:24 +0000 (10:29 +0400)]
regulator: mc13xxx: Add warning of incorrect names of regulators

This patch adds a warning about incorrect regulators instead of
printing the names of non-information message about the wrong amount.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Mark Brown <broonie@sirena.org.uk>