8 years agocompat: Fix RT signal mask corruption via sigprocmask
Jan Kiszka [Thu, 10 May 2012 13:04:36 +0000]
compat: Fix RT signal mask corruption via sigprocmask

compat_sys_sigprocmask reads a smaller signal mask from userspace than
sigprogmask accepts for setting.  So the high word of blocked.sig[0]
will be cleared, releasing any potentially blocked RT signal.

This was discovered via userspace code that relies on get/setcontext.
glibc's i386 versions of those functions use sigprogmask instead of
rt_sigprogmask to save/restore signal mask and caused RT signal
unblocking this way.

As suggested by Linus, this replaces the sys_sigprocmask based compat
version with one that open-codes the required logic, including the merge
of the existing blocked set with the new one provided on SIG_SETMASK.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

8 years agoARM: OMAP: igep0020: fix smsc911x dummy regulator id
Enrico Butera [Wed, 9 May 2012 09:27:59 +0000]
ARM: OMAP: igep0020: fix smsc911x dummy regulator id

id 0 is already used and causes errors at boot:

WARNING: at fs/sysfs/dir.c:508 sysfs_add_one+0x9c/0xac()
sysfs: cannot create duplicate filename '/devices/platform/reg-fixed-voltage.0'

Fix it by using the next available one (id=1).

This was caused by 5b3689f4 (ARM: OMAP2+: smsc911x: Add fixed
board regulators) that did not account for some regulators
already being used.

Signed-off-by: Enrico Butera <ebutera@users.berlios.de>
[tony@atomide.com: updated comments for regression causing commit]
Signed-off-by: Tony Lindgren <tony@atomide.com>

8 years agoARM: OMAP: Revert "ARM: OMAP: ctrl: Fix CONTROL_DSIPHY register fields"
Archit Taneja [Thu, 19 Apr 2012 12:09:16 +0000]
ARM: OMAP: Revert "ARM: OMAP: ctrl: Fix CONTROL_DSIPHY register fields"

This reverts commit 46f8c3c7e95c0d30d95911e7975ddc4f93b3e237.

The commit above swapped the DSI1_PPID and DSI2_PPID register fields in
CONTROL_DSIPHY to be in sync with the newer public OMAP TRMs(after version V).

With this commit, contention errors were reported on DSI lanes some OMAP4 SDPs.
After probing the DSI lanes on OMAP4 SDP, it was seen that setting bits in the
DSI2_PPID field was pulling up voltage on DSI1 lanes, and DSI1_PPID field was
pulling up voltage on DSI2 lanes.

This proves that the current version of OMAP4 TRM is incorrect, swap the
position of register fields according to the older TRM versions as they were

Cc: stable@vger.kernel.org # v3.2+
Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>

8 years agoARM: OMAP1: Amstrad Delta: Fix wrong IRQ base in FIQ handler
Janusz Krzysztofik [Mon, 30 Apr 2012 17:26:09 +0000]
ARM: OMAP1: Amstrad Delta: Fix wrong IRQ base in FIQ handler

Commit 384ebe1c2849160d040df3e68634ec506f13d9ff, "gpio/omap: Add DT
support to GPIO driver", introduced dynamic IRQ numbering of OMAP GPIO
interrupts, breaking all IH_GPIO_BASE based IRQ number calculations.
This issue was corrected in the OMAP GPIO driver and the related header
file with commit 25db711df3258d125dc1209800317e5c0ef3c870, "gpio/omap:
Fix IRQ handling for SPARSE_IRQ".

However, the Amstrad Delta FIQ handler, which replaces the gpio-omap
driver in serving GPIO interrupts on this board, still uses that
outdated method. Fix it.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Tony Lindgren <tony@atomide.com>

8 years agoARM: orion5x: Fix GPIO enable bits for MPP9
Ben Hutchings [Sun, 8 Apr 2012 04:18:53 +0000]
ARM: orion5x: Fix GPIO enable bits for MPP9

Commit 554cdaefd1cf7bb54b209c4e68c7cec87ce442a9 ('ARM: orion5x: Refactor
mpp code to use common orion platform mpp.') seems to have accidentally
inverted the GPIO valid bits for MPP9 (only).  For the mv2120 platform
which uses MPP9 as a GPIO LED device, this results in the error:

[   12.711476] leds-gpio: probe of leds-gpio failed with error -22

Reported-by: Henry von Tresckow <hvontres@gmail.com>
References: http://bugs.debian.org/667446
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Cc: stable@vger.kernel.org [v3.0+]
Tested-by: Hans Henry von Tresckow <hvontres@gmail.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>

8 years agoARM: kirkwood: add missing kexec.h include
Ian Campbell [Sun, 29 Apr 2012 13:40:42 +0000]
ARM: kirkwood: add missing kexec.h include

Fixes the following build error when CONFIG_KEXEC is enabled:
CC arch/arm/mach-kirkwood/board-dt.o
arch/arm/mach-kirkwood/board-dt.c: In function 'kirkwood_dt_init':
arch/arm/mach-kirkwood/board-dt.c:52:2: error: 'kexec_reinit' undeclared (first use in this function)
arch/arm/mach-kirkwood/board-dt.c:52:2: note: each undeclared identifier is reported only once for each function it appears in

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
[v4, rebase onto recent Linus for repost]
[v3, speak actual English in the commit message, thanks Sergei Shtylyov]
[v2, using linux/kexec.h not asm/kexec.h]
Signed-off-by: Jason Cooper <jason@lakedaemon.net>

8 years agoregmap: fix possible memory corruption in regmap_bulk_read()
Laxman Dewangan [Fri, 18 May 2012 10:34:11 +0000]
regmap: fix possible memory corruption in regmap_bulk_read()

The function regmap_bulk_read() calls the regmap_read() for
each register if set of register has volatile and cache is
enabled. In this case, last few register read makes the memory
corruption if the register size is not the size of unsigned int.
The regam_read() takes argument as unsigned int for returning
value and it update the value as
*val = map->format.parse_val(map->work_buf);
This causes complete 4 bytes (size of unsigned int) to get written.
Now if client pass the memory pointer for value which is equal to the
required size of register count in regmap_bulk_read() then last few
register read actually update the memory beyond passed pointer size.

Avoid this by using local variable for read and then do memcpy()
for actual byte copy to passed pointer based on register size.

I allocated one pointer ptr and take first 16 bytes dump of that
pointer then call regmap_bulk_read() with pointer which is just
on top of this allocated pointer and register count of 128. Here
register size is 1 byte.
The memory trace of last 5 register read are as follows:

[    5.438589] regmap_bulk_read after regamp_read() for register 122
[    5.447421] 0xef993c20 0xef993c00 0x00000000 0x00000001
[    5.467535] regmap_bulk_read after regamp_read() for register 123
[    5.476374] 0xef993c20 0xef993c00 0x00000000 0x00000001
[    5.496425] regmap_bulk_read after regamp_read() for register 124
[    5.505260] 0xef993c20 0xef993c00 0x00000000 0x00000001
[    5.525372] regmap_bulk_read after regamp_read() for register 125
[    5.534205] 0xef993c00 0xef993c00 0x00000000 0x00000001
[    5.554258] regmap_bulk_read after regamp_read() for register 126
[    5.563100] 0xef990000 0xef993c00 0x00000000 0x00000001
[    5.554258] regmap_bulk_read after regamp_read() for register 127
[    5.587108] 0xef000000 0xef993c00 0x00000000 0x00000001

Here it is observed that the memory content at first word started changing
on last 3 regmap_read() and so corruption happened.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>



Change-Id: I1b3659c37fcee7cef4cdb8f46ba20e88dccedfd4

8 years agoKVM: ia64: fix build due to typo
Avi Kivity [Wed, 18 Apr 2012 16:23:50 +0000]
KVM: ia64: fix build due to typo


Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>

8 years agoKVM: PPC: Book3S HV: Fix refcounting of hugepages
David Gibson [Tue, 8 May 2012 10:24:08 +0000]
KVM: PPC: Book3S HV: Fix refcounting of hugepages

The H_REGISTER_VPA hcall implementation in HV Power KVM needs to pin some
guest memory pages into host memory so that they can be safely accessed
from usermode.  It does this used get_user_pages_fast().  When the VPA is
unregistered, or the VCPUs are cleaned up, these pages are released using

However, the get_user_pages() is invoked on the specific memory are of the
VPA which could lie within hugepages.  In case the pinned page is huge,
we explicitly find the head page of the compound page before calling
put_page() on it.

At least with the latest kernel, this is not correct.  put_page() already
handles finding the correct head page of a compound, and also deals with
various counts on the individual tail page which are important for
transparent huge pages.  We don't support transparent hugepages on Power,
but even so, bypassing this count maintenance can lead (when the VM ends)
to a hugepage being released back to the pool with a non-zero mapcount on
one of the tail pages.  This can then lead to a bad_page() when the page
is released from the hugepage pool.

This removes the explicit compound_head() call to correct this bug.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Acked-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>

8 years agoKVM: Do not take reference to mm during async #PF
Gleb Natapov [Wed, 2 May 2012 12:04:02 +0000]
KVM: Do not take reference to mm during async #PF

It turned to be totally unneeded. The reason the code was introduced is
so that KVM can prefault swapped in page, but prefault can fail even
if mm is pinned since page table can change anyway. KVM handles this
situation correctly though and does not inject spurious page faults.

 "INFO: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected" warning while
 running LTP inside a KVM guest using the recent -next kernel.

Reported-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>

8 years agoKVM: ensure async PF event wakes up vcpu from halt
Gleb Natapov [Thu, 3 May 2012 08:36:39 +0000]
KVM: ensure async PF event wakes up vcpu from halt

If vcpu executes hlt instruction while async PF is waiting to be delivered
vcpu can block and deliver async PF only after another even wakes it
up. This happens because kvm_check_async_pf_completion() will remove
completion event from vcpu->async_pf.done before entering kvm_vcpu_block()
and this will make kvm_arch_vcpu_runnable() return false. The solution
is to make vcpu runnable when processing completion.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>

8 years agopowerpc/irq: Make alignment & program interrupt behave the same
Benjamin Herrenschmidt [Tue, 8 May 2012 03:38:50 +0000]
powerpc/irq: Make alignment & program interrupt behave the same

Alignment was the last user of the ENABLE_INTS macro, which we can
now remove. All non-syscall exceptions now disable interrupts on
entry, they get re-enabled conditionally from C code. Don't
unconditionally re-enable in program check either, check the
original context.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

8 years agopowerpc/irq: Fix bug with new lazy IRQ handling code
Benjamin Herrenschmidt [Tue, 8 May 2012 03:31:59 +0000]
powerpc/irq: Fix bug with new lazy IRQ handling code

We had a case where we could turn on hard interrupts while
leaving the PACA_IRQ_HARD_DIS bit set in the PACA. This can
in turn cause a BUG_ON() to hit in __check_irq_replay() due
to interrupt state getting out of sync.

The assembly code was also way too convoluted. Instead, we
now leave it to the C code to do the right thing which ends
up being smaller and more readable.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

8 years agoregulator: Actually free the regulator in devm_regulator_put()
Mark Brown [Mon, 7 May 2012 10:34:52 +0000]
regulator: Actually free the regulator in devm_regulator_put()

It turns out that (quite surprisingly) devres_destroy() only undoes the
devres mapping, it doesn't destroy the underlying resource, meaning that
anything using devm_regulator_put() would leak. While we wait for the new
devres_release() which does what we want to get merged open code it in

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>

8 years agoregulator: Fix the logic to ensure new voltage setting in valid range
Axel Lin [Wed, 11 Apr 2012 12:53:58 +0000]
regulator: Fix the logic to ensure new voltage setting in valid range

I think this is a typo.
To ensure new voltage setting won't greater than desc->max,
the equation should be desc->min + desc->step * new_val <= desc->max.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org

8 years agodrm/nouveau/i2c: resume use of i2c-algo-bit, rather than custom stack
Ben Skeggs [Fri, 4 May 2012 04:38:49 +0000]
drm/nouveau/i2c: resume use of i2c-algo-bit, rather than custom stack

Previous issues with i2c-algo-bit have now been resolved.

This is a revert of f553b79c03f0dbd52f6f03abe8233a2bef8cbd0d mostly,
due to fixes in the i2c core repairing the original issue, this code
isn't required and was causing regressions.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reported-by: Nick Bowler <nbowler@elliptictech.com>
Tested-by: Nick Bowler <nbowler@elliptictech.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>

8 years agodrm/i915: Do no set Stencil Cache eviction LRA w/a on gen7+
Daniel Vetter [Sun, 6 May 2012 14:50:24 +0000]
drm/i915: Do no set Stencil Cache eviction LRA w/a on gen7+

I've flagged this while reviewing the first version and Ken Graunke
fixed it up in v2, but unfortunately Dave Airlie picked up the wrong

Cc: Dave Airlie <airlied@redhat.com>
Cc: Kenneth Graunke <kenneth@whitecape.org>
Cc: stable@kernel.org
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

8 years agodrm/i915: disable sdvo hotplug on i945g/gm
Daniel Vetter [Fri, 4 May 2012 09:29:56 +0000]
drm/i915: disable sdvo hotplug on i945g/gm

Chris Wilson dug out a hw erratum saying that there's noise on the
interrupt line on i945G chips. We also have a bug report from a i945GM
chip with an sdvo hotplug interrupt storm (and no apparent cause).

Play it safe and disable sdvo hotplug on all i945 variants.

Note that this is a regression that has been introduced in 3.1,
when we've enabled sdvo hotplug support with

commit cc68c81aed7d892deaf12d720d5455208e94cd0a
Author: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
Date:   Wed Sep 21 17:13:30 2011 +0100

    drm/i915: Enable SDVO hotplug interrupts for HDMI and DVI

Cc: stable@kernel.org
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=38442
Reported-and-tested-by: Dominik Köppl <dominik@devwork.org>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

8 years agoxen/Kconfig: fix Kconfig layout
Andrew Morton [Fri, 4 May 2012 21:04:12 +0000]
xen/Kconfig: fix Kconfig layout

Fit it into 80 columns so that it is readable in menuconfig.

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

8 years agoxen/pci: don't use PCI BIOS service for configuration space accesses
David Vrabel [Fri, 4 May 2012 13:29:46 +0000]
xen/pci: don't use PCI BIOS service for configuration space accesses

The accessing PCI configuration space with the PCI BIOS32 service does
not work in PV guests.

On systems without MMCONFIG or where the BIOS hasn't marked the
MMCONFIG region as reserved in the e820 map, the BIOS service is
probed (even though direct access is preferred) and this hangs.

CC: stable@kernel.org
Acked-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
[v1: Fixed compile error when CONFIG_PCI is not set]
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

8 years agoxen/pte: Fix crashes when trying to see non-existent PGD/PMD/PUD/PTEs
Konrad Rzeszutek Wilk [Thu, 3 May 2012 20:14:14 +0000]
xen/pte: Fix crashes when trying to see non-existent PGD/PMD/PUD/PTEs

If I try to do "cat /sys/kernel/debug/kernel_page_tables"
I end up with:

BUG: unable to handle kernel paging request at ffffc7fffffff000
IP: [<ffffffff8106aa51>] ptdump_show+0x221/0x480
Oops: 0000 [#1] SMP
.. snip..
RAX: 0000000000000000 RBX: ffffc00000000fff RCX: 0000000000000000
RDX: 0000800000000000 RSI: 0000000000000000 RDI: ffffc7fffffff000

which is due to the fact we are trying to access a PFN that is not
accessible to us. The reason (at least in this case) was that
PGD[256] is set to __HYPERVISOR_VIRT_START which was setup (by the
hypervisor) to point to a read-only linear map of the MFN->PFN array.
During our parsing we would get the MFN (a valid one), try to look
it up in the MFN->PFN tree and find it invalid and return ~0 as PFN.
Then pte_mfn_to_pfn would happilly feed that in, attach the flags
and return it back to the caller. 'ptdump_show' bitshifts it and
gets and invalid value that it tries to dereference.

Instead of doing all of that, we detect the ~0 case and just
return !_PAGE_PRESENT.

This bug has been in existence .. at least until 2.6.37 (yikes!)

CC: stable@kernel.org
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

8 years agoxen/apic: Return the APIC ID (and version) for CPU 0.
Konrad Rzeszutek Wilk [Wed, 2 May 2012 19:04:51 +0000]
xen/apic: Return the APIC ID (and version) for CPU 0.

On x86_64 on AMD machines where the first APIC_ID is not zero, we get:

ACPI: LAPIC (acpi_id[0x01] lapic_id[0x10] enabled)
BIOS bug: APIC version is 0 for CPU 1/0x10, fixing up to 0x10
BIOS bug: APIC version mismatch, boot CPU: 0, CPU 1: version 10

which means that when the ACPI processor driver loads and
tries to parse the _Pxx states it fails to do as, as it
ends up calling acpi_get_cpuid which does this:

for_each_possible_cpu(i) {
        if (cpu_physical_id(i) == apic_id)
                return i;

And the bootup CPU, has not been found so it fails and returns -1
for the first CPU - which then subsequently in the loop that
"acpi_processor_get_info" does results in returning an error, which
means that "acpi_processor_add" failing and per_cpu(processor)
is never set (and is NULL).

That means that when xen-acpi-processor tries to load (much much
later on) and parse the P-states it gets -ENODEV from
acpi_processor_register_performance() (which tries to read
the per_cpu(processor)) and fails to parse the data.

Reported-by-and-Tested-by:  Stefan Bader <stefan.bader@canonical.com>
Suggested-by:  Boris Ostrovsky <boris.ostrovsky@amd.com>
[v2: Bit-shift APIC ID by 24 bits]
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

8 years agodrivers/video/xen-fbfront.c: add missing cleanup code
Julia Lawall [Sun, 22 Apr 2012 09:57:40 +0000]
drivers/video/xen-fbfront.c: add missing cleanup code

The operations in the subsequent error-handling code appear to be also
useful here.

Acked-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
[v1: Collapse some of the error handling functions]
[v2: Fix compile warning]
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

8 years agopercpu, x86: don't use PMD_SIZE as embedded atom_size on 32bit
Tejun Heo [Fri, 27 Apr 2012 17:54:35 +0000]
percpu, x86: don't use PMD_SIZE as embedded atom_size on 32bit

With the embed percpu first chunk allocator, x86 uses either PAGE_SIZE
or PMD_SIZE for atom_size.  PMD_SIZE is used when CPU supports PSE so
that percpu areas are aligned to PMD mappings and possibly allow using
PMD mappings in vmalloc areas in the future.  Using larger atom_size
doesn't waste actual memory; however, it does require larger vmalloc
space allocation later on for !first chunks.

With reasonably sized vmalloc area, PMD_SIZE shouldn't be a problem
but x86_32 at this point is anything but reasonable in terms of
address space and using larger atom_size reportedly leads to frequent
percpu allocation failures on certain setups.

As there is no reason to not use PMD_SIZE on x86_64 as vmalloc space
is aplenty and most x86_64 configurations support PSE, fix the issue
by always using PMD_SIZE on x86_64 and PAGE_SIZE on x86_32.

v2: drop cpu_has_pse test and make x86_64 always use PMD_SIZE and
    x86_32 PAGE_SIZE as suggested by hpa.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Yanmin Zhang <yanmin.zhang@intel.com>
Reported-by: ShuoX Liu <shuox.liu@intel.com>
Acked-by: H. Peter Anvin <hpa@zytor.com>
LKML-Reference: <4F97BA98.6010001@intel.com>
Cc: stable@vger.kernel.org

8 years agopercpu: use KERN_CONT in pcpu_dump_alloc_info()
Tejun Heo [Thu, 29 Mar 2012 16:45:58 +0000]
percpu: use KERN_CONT in pcpu_dump_alloc_info()

pcpu_dump_alloc_info() was printing continued lines without KERN_CONT.
Use it.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Kay Sievers <kay.sievers@vrfy.org>

8 years agoARM: 7414/1: SMP: prevent use of the console when using idmap_pgd
Colin Cross [Sat, 5 May 2012 19:58:13 +0000]
ARM: 7414/1: SMP: prevent use of the console when using idmap_pgd

Commit 4e8ee7de227e3ab9a72040b448ad728c5428a042 (ARM: SMP: use
idmap_pgd for mapping MMU enable during secondary booting)
switched secondary boot to use idmap_pgd, which is initialized
during early_initcall, instead of a page table initialized during
__cpu_up.  This causes idmap_pgd to contain the static mappings
but be missing all dynamic mappings.

If a console is registered that creates a dynamic mapping, the
printk in secondary_start_kernel will trigger a data abort on
the missing mapping before the exception handlers have been
initialized, leading to a hang.  Initial boot is not affected
because no consoles have been registered, and resume is usually
not affected because the offending console is suspended.
Onlining a cpu with hotplug triggers the problem.

A workaround is to the printk in secondary_start_kernel until
after the page tables have been switched back to init_mm.

Cc: <stable@vger.kernel.org>
Signed-off-by: Colin Cross <ccross@android.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

8 years agoARM: 7412/1: audit: use only AUDIT_ARCH_ARM regardless of endianness
Will Deacon [Fri, 4 May 2012 16:53:52 +0000]
ARM: 7412/1: audit: use only AUDIT_ARCH_ARM regardless of endianness

The machine endianness has no direct correspondence to the syscall ABI,
so use only AUDIT_ARCH_ARM when identifying the ABI to the audit tools
in userspace.

Cc: stable@vger.kernel.org
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

8 years agoARM: 7411/1: audit: fix treatment of saved ip register during syscall tracing
Will Deacon [Fri, 4 May 2012 16:52:02 +0000]
ARM: 7411/1: audit: fix treatment of saved ip register during syscall tracing

The ARM audit code incorrectly uses the saved application ip register
value to infer syscall entry or exit. Additionally, the saved value will
be clobbered if the current task is not being traced, which can lead to
libc corruption if ip is live (apparently glibc uses it for the TLS

This patch fixes the syscall tracing code so that the why parameter is
used to infer the syscall direction and the saved ip is only updated if
we know that we will be signalling a ptrace trap.

Reported-and-Tested-by: Jon Masters <jcm@jonmasters.org>

Cc: stable@vger.kernel.org
Cc: Eric Paris <eparis@redhat.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

8 years agoARM: 7410/1: Add extra clobber registers for assembly in kernel_execve
Tim Bird [Wed, 2 May 2012 21:55:39 +0000]
ARM: 7410/1: Add extra clobber registers for assembly in kernel_execve

The inline assembly in kernel_execve() uses r8 and r9.  Since this
code sequence does not return, it usually doesn't matter if the
register clobber list is accurate.  However, I saw a case where a
particular version of gcc used r8 as an intermediate for the value
eventually passed to r9.  Because r8 is used in the inline
assembly, and not mentioned in the clobber list, r9 was set
to an incorrect value.

This resulted in a kernel panic on execution of the first user-space
program in the system.  r9 is used in ret_to_user as the thread_info
pointer, and if it's wrong, bad things happen.

Cc: <stable@vger.kernel.org>
Signed-off-by: Tim Bird <tim.bird@am.sony.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

8 years agoIA32 emulation: Fix build problem for modular ia32 a.out support
Larry Finger [Mon, 7 May 2012 00:40:03 +0000]
IA32 emulation: Fix build problem for modular ia32 a.out support

Commit ce7e5d2d19bc ("x86: fix broken TASK_SIZE for ia32_aout") breaks
kernel builds when "CONFIG_IA32_AOUT=m" with

  ERROR: "set_personality_ia32" [arch/x86/ia32/ia32_aout.ko] undefined!
  make[1]: *** [__modpost] Error 1

The entry point needs to be exported.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Acked-by: Al Viro <viro@zeniv.linux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

8 years agoregulator: tps6238x0: fix build break
Varun Wadekar [Thu, 17 May 2012 10:23:36 +0000]
regulator: tps6238x0: fix build break

regulator_register() now expects one additional argument in 3.4.

Change-Id: I979ab99fc7bf666ce76d818fa3a5fe53580caf06
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>

8 years agovideo: tegra: dc: fix build warnings
Jon Mayo [Tue, 15 May 2012 18:50:48 +0000]
video: tegra: dc: fix build warnings

Makes function pointer type for mode_filter match the function in hdmi.c

Change-Id: Id61f319a4ddef003b79782391e9e7f2f8cb32dda
Signed-off-by: Jon Mayo <jmayo@nvidia.com>
Reviewed-on: http://git-master/r/102630
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Shashank Sharma <shashanks@nvidia.com>

8 years agovideo: tegra: dc: make functions static in rgb.c
Jon Mayo [Thu, 10 May 2012 22:38:48 +0000]
video: tegra: dc: make functions static in rgb.c

Use static for functions that are not called externally.

Change-Id: Iacccb83e31e860d10f92897041421298231e45b1
Reviewed-on: http://git-master/r/102623
Reviewed-by: Jon Mayo <jmayo@nvidia.com>
Tested-by: Jon Mayo <jmayo@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User

8 years agoARM: tegra3: defconfig: enable TPS6238X0
Varun Wadekar [Thu, 17 May 2012 09:16:26 +0000]
ARM: tegra3: defconfig: enable TPS6238X0

Enable TPS6238X0 voltage regulator chip.

Bug 981330

Change-Id: I0d4207543cd2d2c1b2977536ea7299b5b65fc600
Signed-off-by: Pradeep Kumar <pgoudagunta@nvidia.com>
Reviewed-on: http://git-master/r/102588
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>



8 years agoarm: tegra: pm269: update sh532u config
Charlie Huang [Mon, 14 May 2012 21:51:30 +0000]
arm: tegra: pm269: update sh532u config

bug 980184

Change-Id: I376a62ada8f7e825693a4cdd87942edaa92b8fc4
Signed-off-by: Charlie Huang <chahuang@nvidia.com>
Reviewed-on: http://git-master/r/102309
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>

8 years agotty: serial: tegra: Fix section mismatch warnings
Pradeep Kumar [Mon, 14 May 2012 12:26:00 +0000]
tty: serial: tegra: Fix section mismatch warnings

Fix section mismatch warnings derived from

Bug 984436

Change-Id: Iec737f28b0a7ce3ae521ad788e6ca5a101675c52
Signed-off-by: Pradeep Kumar <pgoudagunta@nvidia.com>
Reviewed-on: http://git-master/r/102237
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>

8 years agovideo: tegra: dc: remove obsolete IRQF_DISABLED
Pritesh Raithatha [Wed, 9 May 2012 14:05:01 +0000]
video: tegra: dc: remove obsolete IRQF_DISABLED

Bug 955184

Change-Id: I7ac0a290c2b6acd454de05d094bd676b88f4b476
Signed-off-by: Pritesh Raithatha <praithatha@nvidia.com>
Reviewed-on: http://git-master/r/101546
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>

8 years agovideo: tegra: dc: correct dc initialisation sequence
Pritesh Raithatha [Wed, 9 May 2012 14:06:46 +0000]
video: tegra: dc: correct dc initialisation sequence

-Move _tegra_dc_enable to before irq_request and remove
-It will remove warning of "IRQ when DC not powered!".

Bug 955184

Change-Id: If9b039f3f1635d92f10bfc54af08101972fc3d57
Signed-off-by: Pritesh Raithatha <praithatha@nvidia.com>
Reviewed-on: http://git-master/r/101498
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>

8 years agoasoc:codecs: tiaic326x: remove mini dsp support
Nikesh Oswal [Tue, 8 May 2012 11:12:49 +0000]
asoc:codecs: tiaic326x: remove mini dsp support

disable the compilation of minidsp specific code,
we are disabling the minidsp in codec because the driver is
not stable and different customers are using different process flows
for mini dsp

Change-Id: I08f8f485f1a379773f2f1f7ae2fd1b3a89c45d07
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: http://git-master/r/101232
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>

8 years agoregulator: TPS6238X0: Add tps6238X0 regulator driver
Varun Wadekar [Thu, 17 May 2012 09:14:59 +0000]
regulator: TPS6238X0: Add tps6238X0 regulator driver

The regulator module consists of 1 DCDC. The output voltage
is configurable and is meant for supply power to the core
voltage of Soc.

Change-Id: Ic62d100a588f7b6f1b30c11fd44a925c97393069
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/100653
Reviewed-by: Automatic_Commit_Validation_User
Tested-by: Pradeep Goudagunta <pgoudagunta@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>



8 years agovideo: tegra: dsi: WAR to stop on going host write
Animesh Kishore [Mon, 14 May 2012 07:57:27 +0000]
video: tegra: dsi: WAR to stop on going host write

WAR comprises of soft reset dsi controller followed by
explicitly clearing host trigger.

Bug 982919

Change-Id: Ia8c497dd496435e429cd5b5ee8aaf1b7d78dc797
Signed-off-by: Animesh Kishore <ankishore@nvidia.com>
Reviewed-on: http://git-master/r/102204
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>

8 years agomisc: bt rfkill: toggle power GPIO based on current power state
Nagarjuna Kristam [Mon, 14 May 2012 06:50:05 +0000]
misc: bt rfkill: toggle power GPIO based on current power state

check if requested state and current BT power state is same,
if yes, do not toggle BT power GPIO's.
if not, set requested power state.

Bug 982600
Bug 928604

Change-Id: I82c65fd6d43940c86cc3de440295ba179a4ade33
Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Reviewed-on: http://git-master/r/102190
Reviewed-by: Rakesh Kumar <krakesh@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>

8 years agoARM: config: tegra: Enable SECTION_MISMATCH warning
Varun Wadekar [Thu, 17 May 2012 09:13:34 +0000]
ARM: config: tegra: Enable SECTION_MISMATCH warning

Some of our driver generate the section mismatch warning but
details of the error is not displayed.
Enable config variable to display all such warning during

Change-Id: Ie0a6dc10cc20304b74a7712717adb44a86474247
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/102183
Reviewed-by: Automatic_Commit_Validation_User



8 years agortc: tps6591x: Enable alarm interrupt for RTC_WKALM_SET ioctl
Preetham Chandru [Tue, 8 May 2012 14:26:27 +0000]
rtc: tps6591x: Enable alarm interrupt for RTC_WKALM_SET ioctl

RTC_WKALM_SET ioctl should do two things:
1. Set alarm value
2. Enable alarm irq
In the current implementation for RTC_WKALM_SET ioctl we are only setting
the alarm value but not enabling the alarm irq and hence the system
is not waking from lp0 state once the set alarm value expiries.
For RTC_WKALM_SET ioctl, alarm->enabled will be set to one from userspace.
So based on this condition we can differentiate between RTC_WKALM_SET &
RTC_ALM_SET and accordingly enable alarm irq.

Bug 978205
Signed-off-by: Preetham Chandru R <pchandru@nvidia.com>
Change-Id: Ia35192e691ca116b13093f52873020f67c5c2f8d
Reviewed-on: http://git-master/r/101447
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>

8 years agommc: enable background ops in driver
Vishal Singh [Fri, 27 Apr 2012 12:40:33 +0000]
mmc: enable background ops in driver

Adding a new config option and enabling background ops in driver.
Correcting the EXT_CSD byte that needs to be written in order to
trigger background ops in the MMC firmware.

Bug 847037.

Change-Id: Ibc517540cab43fa5070b142a416f6b67f2f7e7be
Signed-off-by: Vishal Singh <vissingh@nvidia.com>
Reviewed-on: http://git-master/r/99117
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>

8 years agousb: ehci: tegra: Split resume & suspend call appropriately
Preetham Chandru [Thu, 26 Apr 2012 10:24:14 +0000]
usb: ehci: tegra: Split resume & suspend call appropriately

tegra_ehci_suspend_noirq/tegra_ehci_resume_noirq breaks
the modem suspend call as it does a regulator_disable()/regulator_enable
call which in turn requires the irqs to be enabled.

Hence maintain a normal suspend call i.e with irqs enabled but
split the resume to normal resume and noirq resume.
Spliting the resume in this way takes care of the below erros in
"tegra-ehci tegra-ehci.2:fatal error"
"tegra-ehci tegra-ehci.2: HC died; cleaning up"

Originally resume_noirq & suspend_noirq were added to avoid the above
errors but since it breaks the modem suspend call splitting the suspend
and resume in this way

Bug 954564
Signed-off-by: Preetham Chandru R <pchandru@nvidia.com>
Change-Id: I630b3dbe2ca66d194857dc71ababa3e5955785b1
Reviewed-on: http://git-master/r/99100
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>

8 years agoarm: tegra: pm: remove duplicate cpu pm calls
Mayuresh Kulkarni [Tue, 15 May 2012 08:52:18 +0000]
arm: tegra: pm: remove duplicate cpu pm calls

- cpu_pm_enter() & cpu_cluster_pm_enter() are called by
cpu_pm_suspend() in kernel/kernel/cpu_pm.c using syscore
- similarly, cpu_cluster_pm_exit() & cpu_pm_exit() are
are called by cpu_pm_resume()
- so no need for platform implementation to call them

Change-Id: I188293403f4e714aee668f37584da8fb2deaf117
Signed-off-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>
Reviewed-on: http://git-master/r/102530
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Tested-by: Varun Wadekar <vwadekar@nvidia.com>

8 years agoARM: tegra30: defconfig: disable CONFIG_EARLYSUSPEND
Preetham Chandru [Tue, 15 May 2012 13:06:05 +0000]
ARM: tegra30: defconfig: disable CONFIG_EARLYSUSPEND

Disable CONFIG_EARLYSUSPEND as it is not used for L4T

Signed-off-by: Preetham Chandru R <pchandru@nvidia.com>
Bug 976783
Change-Id: I43b5a5f7f7e650ede774eb432293a2b283d42869
Reviewed-on: http://git-master/r/102593
Reviewed-by: Kiran Adduri <kadduri@nvidia.com>
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>

8 years agoRevert "Revert "i2c: tegra: Add delay before resetting the controller after NACK""
Varun Wadekar [Wed, 16 May 2012 06:00:43 +0000]
Revert "Revert "i2c: tegra: Add delay before resetting the controller after NACK""

This reverts commit 21092209a6a1359e4435592d92236aea62b2af68 since this was
accidentally identified as kernel_submit failure culprit.

Change-Id: I4286a8f09b70602cfbf81334ed784686c5880b45
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>

8 years agoRevert "drivers: video: tegra: Implement HOST1X syncpt init"
Varun Wadekar [Tue, 15 May 2012 12:52:31 +0000]
Revert "drivers: video: tegra: Implement HOST1X syncpt init"

This reverts commit 11e16c6b1614f76fe741a6dbc81f771ddb9dee0f since
it breaks Cardhu boot. Display hangs after bootup and does not
respond to any touch events.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>

8 years agoasoc: tegra: MAX98088 machine: Add support for setting bias level
Ankit Gupta [Mon, 14 May 2012 13:13:23 +0000]
asoc: tegra: MAX98088 machine: Add support for setting bias level

Allow setting bias level to turn off clock extern1 when codec
is idle for enterprise board. (Maxim 98088 codec)

Bug 984678

Change-Id: Ib01be71362ab0c5525f570693b41db73777875e6
Signed-off-by: Ankit Gupta <ankitgupta@nvidia.com>
Reviewed-on: http://git-master/r/102240
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Manoj Gangwal <mgangwal@nvidia.com>
Reviewed-by: Scott Peterson <speterson@nvidia.com>

8 years agoasoc:tegra: Enable I2S tx in voice call
Nikesh Oswal [Fri, 11 May 2012 14:23:27 +0000]
asoc:tegra: Enable I2S tx in voice call

Associated with I2S there is a playback ref count, when
we open the I2S for plyabck it is incremented and during
voice call we check if its not zero then enable the tX.
This logic fails if the start-trigger is not called for the prior
playback stream. Hence we unconditionally enable the tx,
which is harmless

Bug: 981806

Change-Id: I66aafda596e2b2b03745e93f3e851dedc3b8ef5d
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: http://git-master/r/101996
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Scott Peterson <speterson@nvidia.com>

8 years agoARM: tegra: cardhu: wakeup system from GPIO_PV0 without key detection
Laxman Dewangan [Thu, 10 May 2012 13:52:47 +0000]
ARM: tegra: cardhu: wakeup system from GPIO_PV0 without key detection

To meet the LP0 exit power on sequence, it is require to wake system
for tegra gpio in place of PMIC for E1291-A04.
Also it is observed that if GPIO key is used to wakeup then there is
possibility of loosing the key event and hence adding the gpio
GPIO_PV0 as the key with code of RESERVED so that it can only
wakeup system but will not able to send the key event through
gpio keys.

bug 981320

Change-Id: I8610adca4b5ed8ae79f8fcca9a1d4b5548158c60
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/101784
Tested-by: Sang-Hun Lee <sanlee@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User

8 years agoARM: tegra: pm: suspend trace event
Sivaram Nair [Wed, 9 May 2012 16:51:38 +0000]
ARM: tegra: pm: suspend trace event

A new trace event is added for tracing cpu suspend start and end

Change-Id: I2506e3aed0692c44fb4325e9d381cea53228b0c3
Signed-off-by: Sivaram Nair <sivaramn@nvidia.com>
Reviewed-on: http://git-master/r/101748
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>

8 years agoasoc: codecs: spdif: Add support for setting bias level
Ankit Gupta [Thu, 3 May 2012 09:45:31 +0000]
asoc: codecs: spdif: Add support for setting bias level

Allow setting bias level to turn off clock extern1 on enterprise
when codec is idle. Added a dummy widget to make the
target_bias_level to BIAS_OFF as per required by the new ALSA

Bug 984678
Signed-off-by: Ankit Gupta <ankitgupta@nvidia.com>

Change-Id: I29de405c26286eee0a49e655f1d4236f6093ce8a
Reviewed-on: http://git-master/r/100287
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Manoj Gangwal <mgangwal@nvidia.com>
Reviewed-by: Scott Peterson <speterson@nvidia.com>
Tested-by: Ankit Gupta (Engrg-SW) <ankitgupta@nvidia.com>

8 years agoasoc: tegra: pcm: Add support for setting bias level
Ankit Gupta [Thu, 3 May 2012 09:36:27 +0000]
asoc: tegra: pcm: Add support for setting bias level

Allow setting bias level to turn off clock extern1 when codec
is idle for Enterprise (Maxim 98088 codec).

Bug 984678
Signed-off-by: Ankit Gupta <ankitgupta@nvidia.com>

Change-Id: I09538dafe6c6f01547ff989de3c23933c9745db0
Reviewed-on: http://git-master/r/100286
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Scott Peterson <speterson@nvidia.com>
Reviewed-by: Manoj Gangwal <mgangwal@nvidia.com>
Tested-by: Ankit Gupta (Engrg-SW) <ankitgupta@nvidia.com>

8 years agoarm: tegra: p1852: Add Tegra camera driver
Songhee Baek [Wed, 9 May 2012 21:20:22 +0000]
arm: tegra: p1852: Add Tegra camera driver

Add Tegra camera driver to support video
capture through H/W interfaces VIP, CSI.

Bug 978086

Change-Id: I0dc51e47928388ed2073a99f8ca80b5a5a77d166
Signed-off-by: Songhee Baek <sbaek@nvidia.com>
Reviewed-on: http://git-master/r/101590
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>

8 years agoARM: tegra: clock: Export clock minimum
Antti P Miettinen [Wed, 9 May 2012 16:57:01 +0000]
ARM: tegra: clock: Export clock minimum

Add clock minimum to debugfs.

Bug 917644

Change-Id: Ie088809829af2bdc81a969a034bf00847459f0ce
Signed-off-by: Antti P Miettinen <amiettinen@nvidia.com>
Reviewed-on: http://git-master/r/101555
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>

8 years agoarm: tegra: sdhci: Limit eMMC,SDIO,SD DDR clock
Pavan Kunapuli [Wed, 9 May 2012 13:29:19 +0000]
arm: tegra: sdhci: Limit eMMC,SDIO,SD DDR clock

Limit eMMC, SD and SDIO DDR mode clock to 41MHz.

Bug 967719

Change-Id: Iaccc5b771b81b15226f87684b547ad1fb7dd38d3
Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-on: http://git-master/r/101173
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>

8 years agoarm: tegra: clock: Add tegra3 sdmmc4 EMC shared user
Pavan Kunapuli [Tue, 15 May 2012 11:05:39 +0000]
arm: tegra: clock: Add tegra3 sdmmc4 EMC shared user

Adding tegra3 sdmmc4 EMC shared user in the tegra3
clock table.

Bug 967719

Change-Id: I934dcaebf664f8b1db9ea07eef07eb6f266822aa
Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-on: http://git-master/r/100582
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>



8 years agommc: tegra: Set eMMC DDR clock based on emc clock
Pavan Kunapuli [Mon, 7 May 2012 12:13:25 +0000]
mmc: tegra: Set eMMC DDR clock based on emc clock

Set the eMMC ddr mode clock dynamically based on emc
clock rate. If ddr clock limit is specified and the emc
clock is less than max emc freq, then limit emmc ddr
clk. If not, set the max eMMC ddr clock.

Bug 967719

Change-Id: I9f70077c4ac4bb1f3e6d894fcb8420b1aba284dd
Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-on: http://git-master/r/100579
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>

8 years agoarm: tegra: sdhci: Define ddr50 clock limit
Pavan Kunapuli [Fri, 4 May 2012 13:32:04 +0000]
arm: tegra: sdhci: Define ddr50 clock limit

Added a new variable in sdhci platform data
which will limit the ddr50 mode clock.

Bug 967719

Change-Id: I3f55b55651362447845c2e1d5000939e3e028df6
Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-on: http://git-master/r/100569
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>

8 years agodrivers: video: tegra: Implement HOST1X syncpt init
Terje Bergstrom [Thu, 26 Apr 2012 11:18:55 +0000]
drivers: video: tegra: Implement HOST1X syncpt init

Move initialization for HOST1X sync point irq to nvhost driver.

Bug 871237

Change-Id: I0d31e03b43999c609194665cdcbd2f0e498d848f
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/100250
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>

8 years agoARM: tegra: Correction of safe option
Ashwini Ghuge [Tue, 15 May 2012 11:03:32 +0000]
ARM: tegra: Correction of safe option

Corrected safe option for LPW0 and LPW2

Bug 920686

Reviewed-on: http://git-master/r/101973
Tested-by: Ashwini Ghuge <aghuge@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>

Change-Id: If2077d60f1a79bd7c526a8d9a811a4634f26d482

8 years agoarm: tegra: cardhu: add ov5640 support
Charlie Huang [Sat, 28 Apr 2012 00:07:12 +0000]
arm: tegra: cardhu: add ov5640 support

bug 921322

Change-Id: If7f05c632816abac54852293ebd3834b5b3984d8
Signed-off-by: Charlie Huang <chahuang@nvidia.com>
Reviewed-on: http://git-master/r/99508
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>

8 years agomedia: video: tegra: ov5640: add support
Charlie Huang [Sat, 28 Apr 2012 00:04:09 +0000]
media: video: tegra: ov5640: add support

add ov5640 yuv sensor support - initial.

bug 921322

Change-Id: I813afa8963e39afe475f9fdd43152cfaf1a16ae1
Signed-off-by: Charlie Huang <chahuang@nvidia.com>
Reviewed-on: http://git-master/r/99506
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Frank Chen <frankc@nvidia.com>
Reviewed-by: Jon Mayo <jmayo@nvidia.com>

8 years agoasoc: codecs: resolve compilation time warnings
Sanjay Singh Rawat [Fri, 6 Apr 2012 13:24:06 +0000]
asoc: codecs: resolve compilation time warnings

Bug 949219

Change-Id: I9c2a0aa22432c586a7e72273ad935d42332e873f
Signed-off-by: Sanjay Singh Rawat <srawat@nvidia.com>
Reviewed-on: http://git-master/r/95087
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>

8 years agoARM: config: tegra3: enable CONFIG_REGULATOR_USERSPACE_CONSUMER
Laxman Dewangan [Thu, 3 May 2012 11:00:47 +0000]

By enabling the user space regulator consumer, it is possible
to control the rail from userspace through sysfs.

bug 966960

Change-Id: I0f4a7a0afdc998d58e6448e4f621ee4e430a7ef6
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/100320
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>

8 years agoRevert "ARM: 7405/1: kexec: call platform_cpu_kill on the killer rather than the...
Varun Wadekar [Tue, 15 May 2012 06:56:39 +0000]
Revert "ARM: 7405/1: kexec: call platform_cpu_kill on the killer rather than the victim"

This reverts commit be174eb14346d61c9308ee95fb456dd32a1dc682 as this breaks cpu reboot.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>

8 years agoRevert "i2c: tegra: Add delay before resetting the controller after NACK"
Varun Wadekar [Mon, 14 May 2012 14:05:59 +0000]
Revert "i2c: tegra: Add delay before resetting the controller after NACK"

This reverts commit d0c2ce964c672209c5d0740d5bfcba93abdad301 since
this change breaks some i2c tests in kernel_submit.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>

8 years agoLinux 3.4-rc6
Linus Torvalds [Sun, 6 May 2012 22:07:32 +0000]
Linux 3.4-rc6

8 years agointel_mid_powerbtn: mark irq as IRQF_NO_SUSPEND
Yong Wang [Fri, 4 May 2012 21:02:44 +0000]
intel_mid_powerbtn: mark irq as IRQF_NO_SUSPEND

So that the power button still wakes up the platform.

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
Link: http://lkml.kernel.org/r/20120504210244.F2EA5A018B@akpm.mtv.corp.google.com
Tested-by: Kangkai Yin <kangkai.yin@intel.com>
Tested-by: Yong Wang <yong.y.wang@intel.com>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Cc: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>

8 years agoarch/x86/platform/geode/net5501.c: change active_low to 0 for LED driver
Bjarke Istrup Pedersen [Fri, 4 May 2012 21:01:45 +0000]
arch/x86/platform/geode/net5501.c: change active_low to 0 for LED driver

It seems that there was an error with the active_low = 1 for the
LED, since it should be set to 0 (meaning that active is high,
since 0 is false, hence the confusion.

The wiki article about it confuses it, since it contradicts itself,
regarding what turns on the LED.

I have tested 3.4-rc2 on my net5501 with this patch, and it makes the LED
behave correctly, where "none" turns it off, and "default-on" turns it on,
when echoed onto the trigger "file" in /sys/class/leds.

Signed-off-by: Bjarke Istrup Pedersen <gurligebis@gentoo.org>
Link: http://lkml.kernel.org/r/20120504210146.62186A018B@akpm.mtv.corp.google.com
Cc: Philip Prindeville <philipp@redfish-solutions.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>

8 years agox86, relocs: Remove an unused variable
Kusanagi Kouichi [Sun, 1 Apr 2012 08:29:32 +0000]
x86, relocs: Remove an unused variable

sh_symtab is set but not used.

[ hpa: putting this in urgent because of the sheer harmlessness of the patch:
  it quiets a build warning but does not change any generated code. ]

Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp>
Link: http://lkml.kernel.org/r/20120401082932.D5E066FC03D@msa105.auone-net.jp
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: <stable@vger.kernel.org>

8 years agoasm-generic: Use __BITS_PER_LONG in statfs.h
H. Peter Anvin [Thu, 26 Apr 2012 18:45:16 +0000]
asm-generic: Use __BITS_PER_LONG in statfs.h

<asm-generic/statfs.h> is exported to userspace, so using
BITS_PER_LONG is invalid.  We need to use __BITS_PER_LONG instead.

This is kernel bugzilla 43165.

Reported-by: H.J. Lu <hjl.tools@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Link: http://lkml.kernel.org/r/1335465916-16965-1-git-send-email-hpa@linux.intel.com
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: <stable@vger.kernel.org>

8 years agox86/amd: Re-enable CPU topology extensions in case BIOS has disabled it
Andreas Herrmann [Tue, 3 Apr 2012 10:13:07 +0000]
x86/amd: Re-enable CPU topology extensions in case BIOS has disabled it

BIOS will switch off the corresponding feature flag on family
15h models 10h-1fh non-desktop CPUs.

The topology extension CPUID leafs are required to detect which
cores belong to the same compute unit. (thread siblings mask is
set accordingly and also correct information about L1i and L2
cache sharing depends on this).

W/o this patch we wouldn't see which cores belong to the same
compute unit and also cache sharing information for L1i and L2
would be incorrect on such systems.

Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>

8 years agoBtrfs: avoid sleeping in verify_parent_transid while atomic
Chris Mason [Sun, 6 May 2012 11:23:47 +0000]
Btrfs: avoid sleeping in verify_parent_transid while atomic

verify_parent_transid needs to lock the extent range to make
sure no IO is underway, and so it can safely clear the
uptodate bits if our checks fail.

But, a few callers are using it with spinlocks held.  Most
of the time, the generation numbers are going to match, and
we don't want to switch to a blocking lock just for the error
case.  This adds an atomic flag to verify_parent_transid,
and changes it to return EAGAIN if it needs to block to
properly verifiy things.

Signed-off-by: Chris Mason <chris.mason@oracle.com>

8 years agoBtrfs: fix crash in scrub repair code when device is missing
Stefan Behrens [Fri, 4 May 2012 19:16:07 +0000]
Btrfs: fix crash in scrub repair code when device is missing

Fix that when scrub tries to repair an I/O or checksum error and one of
the devices containing the mirror is missing, it crashes in bio_add_page
because the bdev is a NULL pointer for missing devices.

Reported-by: Marco L. Crociani <marco.crociani@gmail.com>
Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>

8 years agobtrfs: Fix mismatching struct members in ioctl.h
Alexander Block [Fri, 4 May 2012 19:16:06 +0000]
btrfs: Fix mismatching struct members in ioctl.h

Fix the size members of btrfs_ioctl_ino_path_args and
btrfs_ioctl_logical_ino_args. The user space btrfs-progs utilities used
__u64 and the kernel headers used __u32 before.

Signed-off-by: Alexander Block <ablock84@googlemail.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>

8 years agoBtrfs: fix page leak when allocing extent buffers
Josef Bacik [Fri, 4 May 2012 19:16:06 +0000]
Btrfs: fix page leak when allocing extent buffers

If we happen to alloc a extent buffer and then alloc a page and notice that
page is already attached to an extent buffer, we will only unlock it and
free our existing eb.  Any pages currently attached to that eb will be
properly freed, but we don't do the page_cache_release() on the page where
we noticed the other extent buffer which can cause us to leak pages and I
hope cause the weird issues we've been seeing in this area.  Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>

8 years agoBtrfs: Add properly locking around add_root_to_dirty_list
Chris Mason [Thu, 3 May 2012 16:08:48 +0000]
Btrfs: Add properly locking around add_root_to_dirty_list

add_root_to_dirty_list happens once at the very beginning of the
transaction, but it is still racey.

Signed-off-by: Chris Mason <chris.mason@oracle.com>

8 years agox86: fix broken TASK_SIZE for ia32_aout
Al Viro [Sun, 6 May 2012 16:20:00 +0000]
x86: fix broken TASK_SIZE for ia32_aout

Setting TIF_IA32 in load_aout_binary() used to be enough; these days
TASK_SIZE is controlled by TIF_ADDR32 and that one doesn't get set
there.  Switch to use of set_personality_ia32()...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

8 years agoalpha: silence 'const' warning in sys_marvel.c
Matt Turner [Wed, 2 May 2012 02:12:12 +0000]
alpha: silence 'const' warning in sys_marvel.c

warning: passing argument 1 of 'pci_find_capability' discards 'const' qualifier from pointer target type

Signed-off-by: Matt Turner <mattst88@gmail.com>

8 years agoalpha: include module.h to fix modpost on Tsunami
Jim Faulkner [Wed, 2 May 2012 01:58:08 +0000]
alpha: include module.h to fix modpost on Tsunami

Signed-off-by: Jim Faulkner <jfaulkne@ccs.neu.edu>
Signed-off-by: Matt Turner <mattst88@gmail.com>

8 years agoalpha: properly define get/set_rtc_time on Marvel/SMP
Matt Turner [Wed, 2 May 2012 01:52:26 +0000]
alpha: properly define get/set_rtc_time on Marvel/SMP

The marvel_get_rtc_time and marvel_set_rtc_time are static, but they're
available through Marvel's machine vector.

Reported-by: Raúl Porcel <armin76@gentoo.org>
Signed-off-by: Matt Turner <mattst88@gmail.com>

8 years agoalpha: VGA_HOSE depends on VGA_CONSOLE
Matt Turner [Wed, 2 May 2012 01:28:59 +0000]
alpha: VGA_HOSE depends on VGA_CONSOLE

arch/alpha/kernel/console.c:locate_and_init_vga uses vga_con, causing
build failures if VGA_CONSOLE was not set and MARVEL, TITAN, DP264, or
GENERIC alpha system types were set.

Reported-by: Raúl Porcel <armin76@gentoo.org>
Signed-off-by: Matt Turner <mattst88@gmail.com>

8 years agoTTY: pdc_cons, fix regression in close
Jiri Slaby [Sat, 5 May 2012 20:49:10 +0000]
TTY: pdc_cons, fix regression in close

The test in pdc_console_tty_close '!tty->count' was always wrong
because tty->count is decremented after tty->ops->close is called and
thus can never be zero. Hence the 'then' branch was never executed and
the timer never deleted.

This did not matter until commit 5dd5bc40f3b6 ("TTY: pdc_cons, use
tty_port").  There we needed to set TTY in tty_port to NULL, but this
never happened due to the bug above.

So change the test to really trigger at the last close by changing the
condition to 'tty->count == 1'.

Well, the driver should not touch tty->count at all.  It should use
tty_port->count and count open count there itself.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Reported-and-tested-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Helge Deller <deller@gmx.de>
Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

8 years agoASoC: omap-pcm: Free dma buffers in case of error.
Oleg Matcovschi [Wed, 25 Apr 2012 02:02:02 +0000]
ASoC: omap-pcm: Free dma buffers in case of error.

Signed-off-by: Oleg Matcovschi <oleg.matcovschi@ti.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@ti.com>

8 years agoASoC: s3c2412-i2s: Fix dai registration
Heiko Stübner [Mon, 30 Apr 2012 11:17:21 +0000]
ASoC: s3c2412-i2s: Fix dai registration

As s3c2412-i2s is using the s3c_i2sv2 it should call the more specialised
s3c_i2sv2_register_dai instead of simply calling snd_soc_register_dai.

Without this call the snd_soc_dai_ops structure isn't initialised correctly.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

8 years agoASoC: wm8350: Don't use locally allocated codec struct
Mark Brown [Mon, 30 Apr 2012 19:11:55 +0000]
ASoC: wm8350: Don't use locally allocated codec struct

The core allocates the live copies, we shouldn't try to duplicate it and
were buggy trying to do so as we were using uninitialised data for the
control data.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

8 years agoASoC: tlv312aic23: unbreak resume
Eric Bénard [Sun, 29 Apr 2012 15:37:57 +0000]
ASoC: tlv312aic23: unbreak resume

* commit f9dfbf9 "ASoC: tlv320aic23: convert to soc-cache" leads to
a bug preventing resumeof the codec as regmap expects a 9 bits data
register but 0xFFFF is passed in tlv320aic23_set_bias_level and this
values gets cached preventing any write to the TLV320AIC23_PWR
register as the final value produced by regmap is (register << 9) | value

* this patch solves the problem by only working on the 9 bits the
register contains.

Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org

8 years agoASoC: bf5xx-ssm2602: Set DAI format
Lars-Peter Clausen [Wed, 25 Apr 2012 09:29:47 +0000]
ASoC: bf5xx-ssm2602: Set DAI format

Commit 980b0bc69 ("ASoC: blackfin: Use dai_fmt") converted the blackfin ASoC
machine drivers to use the dai_links dai_fmt field to setup their DAI format.
For the bf5xx-ssm2602 the commit removed the manual call to snd_soc_dai_set_fmt,
but missed to set the dai_links dai_fmt field.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

8 years agoASoC: core: check of_property_count_strings failure
Richard Zhao [Tue, 24 Apr 2012 07:24:43 +0000]
ASoC: core: check of_property_count_strings failure

Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org

8 years agoASoC: dt: sgtl5000.txt: Add description for 'reg' field
Fabio Estevam [Tue, 24 Apr 2012 04:11:09 +0000]
ASoC: dt: sgtl5000.txt: Add description for 'reg' field

Add description for 'reg' field.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

8 years agoASoC: wm_hubs: Make sure we don't disable differential line outputs
Mark Brown [Tue, 17 Apr 2012 19:28:10 +0000]
ASoC: wm_hubs: Make sure we don't disable differential line outputs

While we need to clean up unused single ended line outputs we don't want
to do this if the outputs are in differential mode.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

8 years agoACPI: Fix D3hot v D3cold confusion
Lin Ming [Mon, 23 Apr 2012 01:03:49 +0000]
ACPI: Fix D3hot v D3cold confusion

Before this patch, ACPI_STATE_D3 incorrectly referenced D3hot
in some places, but D3cold in other places.

After this patch, ACPI_STATE_D3 always means ACPI_STATE_D3_COLD;
and all references to D3hot use ACPI_STATE_D3_HOT.

ACPI's _PR3 method is used to enter both D3hot and D3cold states.
What distinguishes D3hot from D3cold is the presence _PR3
(Power Resources for D3hot)  If these resources are all ON,
then the state is D3hot.  If _PR3 is not present,
or all _PR0 resources for the devices are OFF,
then the state is D3cold.

This patch applies after Linux-3.4-rc1.
A future syntax cleanup may remove ACPI_STATE_D3
to emphasize that it always means ACPI_STATE_D3_COLD.

Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Reviewed-by: Aaron Lu <aaron.lu@amd.com>
Signed-off-by: Len Brown <len.brown@intel.com>

8 years agoinit: don't try mounting device as nfs root unless type fully matches
Sasha Levin [Sat, 5 May 2012 15:06:35 +0000]
init: don't try mounting device as nfs root unless type fully matches

Currently, we'll try mounting any device who's major device number is
UNNAMED_MAJOR as NFS root.  This would happen for non-NFS devices as
well (such as 9p devices) but it wouldn't cause any issues since
mounting the device as NFS would fail quickly and the code proceeded to
doing the proper mount:

       [  101.522716] VFS: Unable to mount root fs via NFS, trying floppy.
       [  101.534499] VFS: Mounted root (9p filesystem) on device 0:18.

Commit 6829a048102a ("NFS: Retry mounting NFSROOT") introduced retries
when mounting NFS root, which means that now we don't immediately fail
and instead it takes an additional 90+ seconds until we stop retrying,
which has revealed the issue this patch fixes.

This meant that it would take an additional 90 seconds to boot when
we're not using a device type which gets detected in order before NFS.

This patch modifies the NFS type check to require device type to be
'Root_NFS' instead of requiring the device to have an UNNAMED_MAJOR
major.  This makes boot process cleaner since we now won't go through
the NFS mounting code at all when the device isn't an NFS root

Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

8 years agohfsplus: Fix potential buffer overflows
Greg Kroah-Hartman [Fri, 4 May 2012 19:09:39 +0000]
hfsplus: Fix potential buffer overflows

Commit ec81aecb2966 ("hfs: fix a potential buffer overflow") fixed a few
potential buffer overflows in the hfs filesystem.  But as Timo Warns
pointed out, these changes also need to be made on the hfsplus
filesystem as well.

Reported-by: Timo Warns <warns@pre-sense.de>
Acked-by: WANG Cong <amwang@redhat.com>
Cc: Alexey Khoroshilov <khoroshilov@ispras.ru>
Cc: Miklos Szeredi <mszeredi@suse.cz>
Cc: Sage Weil <sage@newdream.net>
Cc: Eugene Teo <eteo@redhat.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Dave Anderson <anderson@redhat.com>
Cc: stable <stable@vger.kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

8 years agortc: Fix possible null pointer dereference in rtc-mpc5121.c
John Stultz [Tue, 24 Apr 2012 20:43:35 +0000]
rtc: Fix possible null pointer dereference in rtc-mpc5121.c

Mark Loard pointed out:
"For example, this beauty from rtc-mpc5121.c in the same update:
   rtc->rtc = rtc_device_register("mpc5200-rtc", &op->dev,
                                   &mpc5200_rtc_ops, THIS_MODULE);

   rtc->rtc->uie_unsupported = 1;    // <<<< Ooops NULL pointer >>>>

   if (IS_ERR(rtc->rtc)) {           // <<<< this needs to be earlier >>>>
           err = PTR_ERR(rtc->rtc);
           goto out_free_irq;

This patch moves setting the uie_unsupported flag to after we validate
the rtc->rtc pointer to resolve this.

Reported by: Mark Lord <kernel@teksavvy.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Link: http://lkml.kernel.org/r/1335300215-21427-1-git-send-email-john.stultz@linaro.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

8 years agofs/cifs: fix parsing of dfs referrals
Stefan Metzmacher [Thu, 3 May 2012 22:19:28 +0000]
fs/cifs: fix parsing of dfs referrals

The problem was that the first referral was parsed more than once
and so the caller tried the same referrals multiple times.

The problem was introduced partly by commit
where 'ref += le16_to_cpu(ref->Size);' got lost,
but that was also wrong...

Cc: <stable@vger.kernel.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Tested-by: Björn Jacke <bj@sernet.de>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>