|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [linux-linus bisection] complete test-armhf-armhf-xl-xsm
branch xen-unstable
xen branch xen-unstable
job test-armhf-armhf-xl-xsm
test xen-boot
Tree: linux git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Tree: linuxfirmware git://xenbits.xen.org/osstest/linux-firmware.git
Tree: qemuu git://xenbits.xen.org/staging/qemu-upstream-unstable.git
Tree: xen git://xenbits.xen.org/xen.git
*** Found and reproduced problem changeset ***
Bug is in tree: linux
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Bug introduced: 049e6dde7e57f0054fdc49102e7ef4830c698b46
Bug not present: 64291f7db5bd8150a74ad2036f1037e6a0428df2
commit 049e6dde7e57f0054fdc49102e7ef4830c698b46
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Oct 4 16:57:17 2015 +0100
Linux 4.3-rc4
commit 30c44659f4a3e7e1f9f47e895591b4b40bf62671
Merge: 15ecf9a 30059d4
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Oct 4 16:31:13 2015 +0100
Merge branch 'strscpy' of
git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
Pull strscpy string copy function implementation from Chris Metcalf.
Chris sent this during the merge window, but I waffled back and forth on
the pull request, which is why it's going in only now.
The new "strscpy()" function is definitely easier to use and more secure
than either strncpy() or strlcpy(), both of which are horrible nasty
interfaces that have serious and irredeemable problems.
strncpy() has a useless return value, and doesn't NUL-terminate an
overlong result. To make matters worse, it pads a short result with
zeroes, which is a performance disaster if you have big buffers.
strlcpy(), by contrast, is a mis-designed "fix" for strlcpy(), lacking
the insane NUL padding, but having a differently broken return value
which returns the original length of the source string. Which means
that it will read characters past the count from the source buffer, and
you have to trust the source to be properly terminated. It also makes
error handling fragile, since the test for overflow is unnecessarily
subtle.
strscpy() avoids both these problems, guaranteeing the NUL termination
(but not excessive padding) if the destination size wasn't zero, and
making the overflow condition very obvious by returning -E2BIG. It also
doesn't read past the size of the source, and can thus be used for
untrusted source data too.
So why did I waffle about this for so long?
Every time we introduce a new-and-improved interface, people start doing
these interminable series of trivial conversion patches.
And every time that happens, somebody does some silly mistake, and the
conversion patch to the improved interface actually makes things worse.
Because the patch is mindnumbing and trivial, nobody has the attention
span to look at it carefully, and it's usually done over large swatches
of source code which means that not every conversion gets tested.
So I'm pulling the strscpy() support because it *is* a better interface.
But I will refuse to pull mindless conversion patches. Use this in
places where it makes sense, but don't do trivial patches to fix things
that aren't actually known to be broken.
* 'strscpy' of
git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
tile: use global strscpy() rather than private copy
string: provide strscpy()
Make asm/word-at-a-time.h available on all architectures
commit 15ecf9a986e2678f5de36ead23b89235612fc03f
Merge: 0d87708 da6fb7a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Oct 4 11:47:28 2015 +0100
Merge tag 'md/4.3-fixes' of git://neil.brown.name/md
Pull md fixes from Neil Brown:
"Assorted fixes for md in 4.3-rc.
Two tagged for -stable, and one is really a cleanup to match and
improve kmemcache interface.
* tag 'md/4.3-fixes' of git://neil.brown.name/md:
md/bitmap: don't pass -1 to bitmap_storage_alloc.
md/raid1: Avoid raid1 resync getting stuck
md: drop null test before destroy functions
md: clear CHANGE_PENDING in readonly array
md/raid0: apply base queue limits *before* disk_stack_limits
md/raid5: don't index beyond end of array in need_this_block().
raid5: update analysis state for failed stripe
md: wait for pending superblock updates before switching to read-only
commit 0d8770815f70cf41b69a82ede272b026dbb2df7d
Merge: 3e519dd d218af7
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Oct 4 11:41:58 2015 +0100
Merge branch 'upstream' of
git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS updates from Ralf Baechle:
"This week's round of MIPS fixes:
- Fix JZ4740 build
- Fix fallback to GFP_DMA
- FP seccomp in case of ENOSYS
- Fix bootmem panic
- A number of FP and CPS fixes
- Wire up new syscalls
- Make sure BPF assembler objects can properly be disassembled
- Fix BPF assembler code for MIPS I"
* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
MIPS: scall: Always run the seccomp syscall filters
MIPS: Octeon: Fix kernel panic on startup from memory corruption
MIPS: Fix R2300 FP context switch handling
MIPS: Fix octeon FP context switch handling
MIPS: BPF: Fix load delay slots.
MIPS: BPF: Do all exports of symbols with FEXPORT().
MIPS: Fix the build on jz4740 after removing the custom gpio.h
MIPS: CPS: #ifdef on CONFIG_MIPS_MT_SMP rather than CONFIG_MIPS_MT
MIPS: CPS: Don't include MT code in non-MT kernels.
MIPS: CPS: Stop dangling delay slot from has_mt.
MIPS: dma-default: Fix 32-bit fall back to GFP_DMA
MIPS: Wire up userfaultfd and membarrier syscalls.
commit 3e519dde1e8a73e59b0eab52575a14a2986283b6
Merge: 2cf3082 791c76d
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Oct 4 11:40:09 2015 +0100
Merge branch 'irq-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fixes from Thomas Gleixner:
"This update contains:
- Fix for a long standing race affecting /proc/irq/NNN
- One line fix for ARM GICV3-ITS counting the wrong data
- Warning silencing in ARM GICV3-ITS. Another GCC trying to be
overly clever issue"
* 'irq-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
irqchip/gic-v3-its: Count additional LPIs for the aliased devices
irqchip/gic-v3-its: Silence warning when its_lpi_alloc_chunks gets
inlined
genirq: Fix race in register_irq_proc()
commit d218af78492a36a4ae607c08fedfb59258440314
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Fri Sep 25 08:17:42 2015 +0100
MIPS: scall: Always run the seccomp syscall filters
The MIPS syscall handler code used to return -ENOSYS on invalid
syscalls. Whilst this is expected, it caused problems for seccomp
filters because the said filters never had the change to run since
the code returned -ENOSYS before triggering them. This caused
problems on the chromium testsuite for filters looking for invalid
syscalls. This has now changed and the seccomp filters are always
run even if the syscall is invalid. We return -ENOSYS once we
return from the seccomp filters. Moreover, similar codepaths have
been merged in the process which simplifies somewhat the overall
syscall code.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11236/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 2cf30826bbc6c940568be07e8fab0aee02165cf8
Merge: 37cc7ab f4b4aae
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Oct 3 10:53:05 2015 -0400
Merge branch 'x86-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Ingo Molnar:
"Fixes all around the map: W+X kernel mapping fix, WCHAN fixes, two
build failure fixes for corner case configs, x32 header fix and a
speling fix"
* 'x86-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/headers/uapi: Fix __BITS_PER_LONG value for x32 builds
x86/mm: Set NX on gap between __ex_table and rodata
x86/kexec: Fix kexec crash in syscall kexec_file_load()
x86/process: Unify 32bit and 64bit implementations of get_wchan()
x86/process: Add proper bound checks in 64bit get_wchan()
x86, efi, kasan: Fix build failure on !KASAN && KMEMCHECK=y kernels
x86/hyperv: Fix the build in the !CONFIG_KEXEC_CORE case
x86/cpufeatures: Correct spelling of the HWP_NOTIFY flag
commit 37cc7ab1d2c317cc989b8aa0224cfc5f0478ccbd
Merge: a758379 67dfae0
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Oct 3 10:51:41 2015 -0400
Merge branch 'timers-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer fixes from Ingo Molnar:
"An abs64() fix in the watchdog driver, and two clocksource driver
NO_IRQ assumption fixes"
* 'timers-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
clocksource: Fix abs() usage w/ 64bit values
clocksource/drivers/keystone: Fix bad NO_IRQ usage
clocksource/drivers/rockchip: Fix bad NO_IRQ usage
commit a758379b031f50b9def094aad071ef547a5cb335
Merge: 14f97d9 0ce3cc0
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Oct 3 10:46:41 2015 -0400
Merge branch 'core-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull EFI fixes from Ingo Molnar:
"Two EFI fixes: one for x86, one for ARM, fixing a boot crash bug that
can trigger under newer EFI firmware"
* 'core-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
arm64/efi: Fix boot crash by not padding between EFI_MEMORY_RUNTIME
regions
x86/efi: Fix boot crash by mapping EFI memmap entries bottom-up at
runtime, instead of top-down
commit 14f97d9713283adfadf2193e287e21d079f72ee7
Merge: 978ab6a ccf03d6
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Oct 3 10:39:31 2015 -0400
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie:
"Bunch of fixes all over the place, all pretty small: amdgpu, i915,
exynos, one qxl and one vmwgfx.
There is also a bunch of mst fixes, I left some cleanups in the series
as I didn't think it was worth splitting up the tested series"
* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (37 commits)
drm/dp/mst: add some defines for logical/physical ports
drm/dp/mst: drop cancel work sync in the mstb destroy path (v2)
drm/dp/mst: split connector registration into two parts (v2)
drm/dp/mst: update the link_address_sent before sending the link
address (v3)
drm/dp/mst: fixup handling hotplug on port removal.
drm/dp/mst: don't pass port into the path builder function
drm/radeon: drop radeon_fb_helper_set_par
drm: handle cursor_set2 in restore_fbdev_mode
drm/exynos: Staticize local function in exynos_drm_gem.c
drm/exynos: fimd: actually disable dp clock
drm/exynos: dp: remove suspend/resume functions
drm/qxl: recreate the primary surface when the bo is not primary
drm/amdgpu: only print meaningful VM faults
drm/amdgpu/cgs: remove import_gpu_mem
drm/i915: Call non-locking version of drm_kms_helper_poll_enable(), v2
drm: Add a non-locking version of drm_kms_helper_poll_enable(), v2
drm/vmwgfx: Fix a command submission hang regression
drm/exynos: remove unused mode_fixup() code
drm/exynos: remove decon_mode_fixup()
drm/exynos: remove fimd_mode_fixup()
...
commit 978ab6a009e6691375a0b6f8a44ebbb471a64b6d
Merge: 5634347 62d7846
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Oct 2 17:53:25 2015 -0400
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input layer fixes from Dmitry Torokhov:
"Fixes for two recent regressions (in Synaptics PS/2 and uinput
drivers) and some more driver fixups"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Revert "Input: synaptics - fix handling of disabling gesture mode"
Input: psmouse - fix data race in __ps2_command
Input: elan_i2c - add all valid ic type for i2c/smbus
Input: zhenhua - ensure we have BITREVERSE
Input: omap4-keypad - fix memory leak
Input: serio - fix blocking of parport
Input: uinput - fix crash when using ABS events
Input: elan_i2c - expand maximum product_id form 0xFF to 0xFFFF
Input: elan_i2c - add ic type 0x03
Input: elan_i2c - don't require known iap version
Input: imx6ul_tsc - fix controller name
Input: imx6ul_tsc - use the preferred method for kzalloc()
Input: imx6ul_tsc - check for negative return value
Input: imx6ul_tsc - propagate the errors
Input: walkera0701 - fix abs() calculations on 64 bit values
Input: mms114 - remove unneded semicolons
Input: pm8941-pwrkey - remove unneded semicolon
Input: fix typo in MT documentation
Input: cyapa - fix address of Gen3 devices in device tree documentation
commit 67dfae0cd72fec5cd158b6e5fb1647b7dbe0834c
Author: John Stultz <john.stultz@xxxxxxxxxx>
Date: Mon Sep 14 18:05:20 2015 -0700
clocksource: Fix abs() usage w/ 64bit values
This patch fixes one cases where abs() was being used with 64-bit
nanosecond values, where the result may be capped at 32-bits.
This potentially could cause watchdog false negatives on 32-bit
systems, so this patch addresses the issue by using abs64().
Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
Cc: Prarit Bhargava <prarit@xxxxxxxxxx>
Cc: Richard Cochran <richardcochran@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1442279124-7309-2-git-send-email-john.stultz@xxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 5634347dee31373a8faf084f4cdbf6d5ea0b03a4
Merge: b55a97e ee556d0
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Oct 2 14:54:16 2015 -0400
Merge tag 'arm64-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 fixes from Catalin Marinas:
- Fix for transparent huge page change_protection() logic which was
inadvertently changing a huge pmd page into a pmd table entry.
- Function graph tracer panic fix caused by the return_to_handler code
corrupting the multi-regs function return value (composite types).
* tag 'arm64-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64: ftrace: fix function_graph tracer panic
arm64: Fix THP protection change logic
commit b55a97e759c9e9efdce0470f520026383c514a13
Merge: 83dc311 95bc06e
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Oct 2 14:51:46 2015 -0400
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k
Pull m68k updates from Geert Uytterhoeven:
"Summary:
- Fix for accidental modification of arguments of syscall functions
- Wire up new syscalls
- Update defconfigs"
* 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
m68k/defconfig: Update defconfigs for v4.3-rc1
m68k: Define asmlinkage_protect
m68k: Wire up membarrier
m68k: Wire up userfaultfd
m68k: Wire up direct socket calls
commit 791c76d58465a248cbd1ee422c8075cb90fa615f
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Fri Oct 2 16:44:06 2015 +0100
irqchip/gic-v3-its: Count additional LPIs for the aliased devices
When configuring the interrupt mapping for a new device, we
iterate over all the possible aliases to account for their
maximum MSI allocation. This was introduced by e8137f4f5088
("irqchip: gicv3-its: Iterate over PCI aliases to generate ITS
configuration").
Turns out that the code doing that is a bit braindead, and repeatedly
accounts for the same device over and over.
Fix this by counting the actual alias that is passed to us by the
core code.
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Alex Shi <alex.shi@xxxxxxxxxx>
Cc: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1443800646-8074-3-git-send-email-marc.zyngier@xxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit c8415b9470727f70afce8607d4fe521789aa6c1c
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Fri Oct 2 16:44:05 2015 +0100
irqchip/gic-v3-its: Silence warning when its_lpi_alloc_chunks gets inlined
More agressive inlining in recent versions of GCC have uncovered
a new set of warnings:
drivers/irqchip/irq-gic-v3-its.c: In function its_msi_prepare:
drivers/irqchip/irq-gic-v3-its.c:1148:26: warning: lpi_base may be used
uninitialized in this function [-Wmaybe-uninitialized]
dev->event_map.lpi_base = lpi_base;
^
drivers/irqchip/irq-gic-v3-its.c:1116:6: note: lpi_base was declared here
int lpi_base;
^
drivers/irqchip/irq-gic-v3-its.c:1149:25: warning: nr_lpis may be used
uninitialized in this function [-Wmaybe-uninitialized]
dev->event_map.nr_lpis = nr_lpis;
^
drivers/irqchip/irq-gic-v3-its.c:1117:6: note: nr_lpis was declared here
int nr_lpis;
^
The warning is fairly benign (there is no code path that could
actually use uninitialized variables), but let's silence it anyway
by zeroing the variables on the error path.
Reported-by: Alex Shi <alex.shi@xxxxxxxxxx>
Tested-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1443800646-8074-2-git-send-email-marc.zyngier@xxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 83dc311ce0b430ee8e37e62976e6753bfd022004
Merge: 27728bf 7b09a1b
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Oct 2 14:46:15 2015 -0400
Merge tag 'dmaengine-fix-4.3-rc4' of
git://git.infradead.org/users/vkoul/slave-dma
Pull dmaengine fixes from Vinod Koul:
"This contains fixes spread throughout the drivers, and also fixes one
more instance of privatecnt in dmaengine.
Driver fixes summary:
- bunch of pxa_dma fixes for reuse of descriptor issue, residue and
no-requestor
- odd fixes in xgene, idma, sun4i and zxdma
- at_xdmac fixes for cleaning descriptor and block addr mode"
* tag 'dmaengine-fix-4.3-rc4' of
git://git.infradead.org/users/vkoul/slave-dma:
dmaengine: pxa_dma: fix residue corner case
dmaengine: pxa_dma: fix the no-requestor case
dmaengine: zxdma: Fix off-by-one for testing valid pchan request
dmaengine: at_xdmac: clean used descriptor
dmaengine: at_xdmac: change block increment addressing mode
dmaengine: dw: properly read DWC_PARAMS register
dmaengine: xgene-dma: Fix overwritting DMA tx ring
dmaengine: fix balance of privatecnt
dmaengine: sun4i: fix unsafe list iteration
dmaengine: idma64: improve residue estimation
dmaengine: xgene-dma: fix handling xgene_dma_get_ring_size result
dmaengine: pxa_dma: fix initial list move
commit 27728bf04b99a0abc5c27343c06e18379f57c726
Merge: 36f8daf 0bf6cd5
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Oct 2 14:40:57 2015 -0400
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Pull block fixes from Jens Axboe:
"Another week, another round of fixes.
These have been brewing for a bit and in various iterations, but I
feel pretty comfortable about the quality of them. They fix real
issues. The pull request is mostly blk-mq related, and the only one
not fixing a real bug, is the tag iterator abstraction from Christoph.
But it's pretty trivial, and we'll need it for another fix soon.
Apart from the blk-mq fixes, there's an NVMe affinity fix from Keith,
and a single fix for xen-blkback from Roger fixing failure to free
requests on disconnect"
* 'for-linus' of git://git.kernel.dk/linux-block:
blk-mq: factor out a helper to iterate all tags for a request_queue
blk-mq: fix racy updates of rq->errors
blk-mq: fix deadlock when reading cpu_list
blk-mq: avoid inserting requests before establishing new mapping
blk-mq: fix q->mq_usage_counter access race
blk-mq: Fix use after of free q->mq_map
blk-mq: fix sysfs registration/unregistration race
blk-mq: avoid setting hctx->tags->cpumask before allocation
NVMe: Set affinity after allocating request queues
xen/blkback: free requests on disconnection
commit 62d78461447198b49383f20301aaa15fe97dfa4f
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Fri Oct 2 10:31:32 2015 -0700
Revert "Input: synaptics - fix handling of disabling gesture mode"
This reverts commit e51e38494a8ecc18650efb0c840600637891de2c: we
actually do want the device to work in extended W mode, as this is the
mode that allows us receiving multiple contact information.
Cc: stable@xxxxxxxxxxxxxxx
commit 66803dd9198cb57a4b7ed4a6846a63ab1d59a2e0
Author: Matt Bennett <matt.bennett@xxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 30 17:40:42 2015 +1300
MIPS: Octeon: Fix kernel panic on startup from memory corruption
During development it was found that a number of builds would panic
during the kernel init process, more specifically in 'delayed_fput()'.
The panic showed the kernel trying to access a memory address of
'0xb7fdc00' while traversing the 'delayed_fput_list' structure.
Comparing this memory address to the value of the pointer used on
builds that did not panic confirmed that the pointer on crashing
builds must have been corrupted at some stage earlier in the init
process.
By traversing the list earlier and earlier in the code it was found
that 'plat_mem_setup()' was responsible for corrupting the list.
Specifically the line:
memory = cvmx_bootmem_phy_alloc(mem_alloc_size,
__pa_symbol(&__init_end), -1,
0x100000,
CVMX_BOOTMEM_FLAG_NO_LOCKING);
Which would eventually call:
cvmx_bootmem_phy_set_size(new_ent_addr,
cvmx_bootmem_phy_get_size
(ent_addr) -
(desired_min_addr -
ent_addr));
Where 'new_ent_addr'=0x4800000 (the address of 'delayed_fput_list')
and the second argument (size)=0xb7fdc00 (the address causing the
kernel panic). The job of this part of 'plat_mem_setup()' is to
allocate chunks of memory for the kernel to use. At the start of
each chunk of memory the size of the chunk is written, hence the
value 0xb7fdc00 is written onto memory at 0x4800000, therefore the
kernel panics when it goes back to access 'delayed_fput_list' later
on in the initialisation process.
On builds that were not crashing it was found that the compiler had
placed 'delayed_fput_list' at 0x4800008, meaning it wasn't corrupted
(but something else in memory was overwritten).
As can be seen in the first function call above the code begins to
allocate chunks of memory beginning from the symbol '__init_end'.
The MIPS linker script (vmlinux.lds.S) however defines the .bss
section to begin after '__init_end'. Therefore memory within the
.bss section is allocated to the kernel to use (System.map shows
'delayed_fput_list' and other kernel structures to be in .bss).
To stop the kernel panic (and the .bss section being corrupted)
memory should begin being allocated from the symbol '_end'.
Signed-off-by: Matt Bennett <matt.bennett@xxxxxxxxxxxxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: aleksey.makarov@xxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11251/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 085c2f25d36ef4a69bb1dab933daee0692426f15
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Sep 21 10:07:42 2015 -0700
MIPS: Fix R2300 FP context switch handling
Commit 1a3d59579b9f ("MIPS: Tidy up FPU context switching") removed FP
context saving from the asm-written resume function in favour of reusing
existing code to perform the same task. However it only removed the FP
context saving code from the r4k_switch.S implementation of resume.
Remove it from the r2300_switch.S implementation too in order to prevent
attempting to save the FP context twice, which would likely lead to an
exception from the second save because the FPU had already been disabled
by the first save.
This patch has only been build tested, using rbtx49xx_defconfig.
Fixes: 1a3d59579b9f ("MIPS: Tidy up FPU context switching")
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/11167/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 0fa24340f7c88d2814547d8d24d5e3a1803009cc
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Sep 21 10:07:41 2015 -0700
MIPS: Fix octeon FP context switch handling
Commit 1a3d59579b9f ("MIPS: Tidy up FPU context switching") removed FP
context saving from the asm-written resume function in favour of reusing
existing code to perform the same task. However it only removed the FP
context saving code from the r4k_switch.S implementation of resume.
Octeon uses its own implementation in octeon_switch.S, so remove FP
context saving there too in order to prevent attempting to save context
twice. That formerly led to an exception from the second save as follows
because the FPU had already been disabled by the first save:
do_cpu invoked from kernel context![#1]:
CPU: 0 PID: 2 Comm: kthreadd Not tainted 4.3.0-rc2-dirty #2
task: 800000041f84a008 ti: 800000041f864000 task.ti: 800000041f864000
$ 0 : 0000000000000000 0000000010008ce1 0000000000100000
ffffffffbfffffff
$ 4 : 800000041f84a008 800000041f84ac08 800000041f84c000
0000000000000004
$ 8 : 0000000000000001 0000000000000000 0000000000000000
0000000000000001
$12 : 0000000010008ce3 0000000000119c60 0000000000000036
800000041f864000
$16 : 800000041f84ac08 800000000792ce80 800000041f84a008
ffffffff81758b00
$20 : 0000000000000000 ffffffff8175ae50 0000000000000000
ffffffff8176c740
$24 : 0000000000000006 ffffffff81170300
$28 : 800000041f864000 800000041f867d90 0000000000000000
ffffffff815f3fa0
Hi : 0000000000fa8257
Lo : ffffffffe15cfc00
epc : ffffffff8112821c resume+0x9c/0x200
ra : ffffffff815f3fa0 __schedule+0x3f0/0x7d8
Status: 10008ce2 KX SX UX KERNEL EXL
Cause : 1080002c (ExcCode 0b)
PrId : 000d0601 (Cavium Octeon+)
Modules linked in:
Process kthreadd (pid: 2, threadinfo=800000041f864000,
task=800000041f84a008, tls=0000000000000000)
Stack : ffffffff81604218 ffffffff815f7e08 800000041f84a008
ffffffff811681b0
800000041f84a008 ffffffff817e9878 0000000000000000
ffffffff81770000
ffffffff81768340 ffffffff81161398 0000000000000001
0000000000000000
0000000000000000 ffffffff815f4424 0000000000000000
ffffffff81161d68
ffffffff81161be8 0000000000000000 0000000000000000
0000000000000000
0000000000000000 0000000000000000 0000000000000000
ffffffff8111e16c
0000000000000000 0000000000000000 0000000000000000
0000000000000000
0000000000000000 0000000000000000 0000000000000000
0000000000000000
0000000000000000 0000000000000000 0000000000000000
0000000000000000
0000000000000000 0000000000000000 0000000000000000
0000000000000000
...
Call Trace:
[<ffffffff8112821c>] resume+0x9c/0x200
[<ffffffff815f3fa0>] __schedule+0x3f0/0x7d8
[<ffffffff815f4424>] schedule+0x34/0x98
[<ffffffff81161d68>] kthreadd+0x180/0x198
[<ffffffff8111e16c>] ret_from_kernel_thread+0x14/0x1c
Tested using cavium_octeon_defconfig on an EdgeRouter Lite.
Fixes: 1a3d59579b9f ("MIPS: Tidy up FPU context switching")
Reported-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Aleksey Makarov <aleksey.makarov@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Chandrakala Chavva <cchavva@xxxxxxxxxxxxxxxxxx>
Cc: David Daney <david.daney@xxxxxxxxxx>
Cc: Leonid Rosenboim <lrosenboim@xxxxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/11166/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 36f8dafe52b0d0726edd5102900e37192f1d3c65
Merge: 8c25ab8 031277d
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Oct 2 08:03:04 2015 -0400
Merge tag 'mmc-v4.3-rc3' of git://git.linaro.org/people/ulf.hansson/mmc
Pull MMC fixes from Ulf Hansson:
"Here are some mmc fixes intended for v4.3 rc4:
MMC core:
- Allow users of mmc_of_parse() to succeed when CONFIG_GPIOLIB is
unset
- Prevent infinite loop of re-tuning for CRC-errors for CMD19 and
CMD21
MMC host:
- pxamci: Fix issues with card detect
- sunxi: Fix clk-delay settings"
* tag 'mmc-v4.3-rc3' of git://git.linaro.org/people/ulf.hansson/mmc:
mmc: core: fix dead loop of mmc_retune
mmc: pxamci: fix card detect with slot-gpio API
mmc: sunxi: Fix clk-delay settings
mmc: core: Don't return an error for CD/WP GPIOs when GPIOLIB is unset
commit 8c25ab8b5a04a7c559aa8fd4cabe5fc4463b8ada
Merge: bde17b9 15bbdec
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Oct 2 07:59:29 2015 -0400
Merge git://git.infradead.org/intel-iommu
Pull IOVA fixes from David Woodhouse:
"The main fix here is the first one, fixing the over-allocation of
size-aligned requests. The other patches simply make the existing
IOVA code available to users other than the Intel VT-d driver, with no
functional change.
I concede the latter really *should* have been submitted during the
merge window, but since it's basically risk-free and people are
waiting to build on top of it and it's my fault I didn't get it in, I
(and they) would be grateful if you'd take it"
* git://git.infradead.org/intel-iommu:
iommu: Make the iova library a module
iommu: iova: Export symbols
iommu: iova: Move iova cache management to the iova library
iommu/iova: Avoid over-allocating when size-aligned
commit ee556d00cf20012e889344a0adbbf809ab5015a3
Author: Li Bin <huawei.libin@xxxxxxxxxx>
Date: Wed Sep 30 10:49:55 2015 +0800
arm64: ftrace: fix function_graph tracer panic
When function graph tracer is enabled, the following operation
will trigger panic:
mount -t debugfs nodev /sys/kernel
echo next_tgid > /sys/kernel/tracing/set_ftrace_filter
echo function_graph > /sys/kernel/tracing/current_tracer
ls /proc/
------------[ cut here ]------------
[ 198.501417] Unable to handle kernel paging request at virtual address
cb88537fdc8ba316
[ 198.506126] pgd = ffffffc008f79000
[ 198.509363] [cb88537fdc8ba316] *pgd=00000000488c6003,
*pud=00000000488c6003, *pmd=0000000000000000
[ 198.517726] Internal error: Oops: 94000005 [#1] SMP
[ 198.518798] Modules linked in:
[ 198.520582] CPU: 1 PID: 1388 Comm: ls Tainted: G
[ 198.521800] Hardware name: linux,dummy-virt (DT)
[ 198.522852] task: ffffffc0fa9e8000 ti: ffffffc0f9ab0000 task.ti:
ffffffc0f9ab0000
[ 198.524306] PC is at next_tgid+0x30/0x100
[ 198.525205] LR is at return_to_handler+0x0/0x20
[ 198.526090] pc : [<ffffffc0002a1070>] lr : [<ffffffc0000907c0>]
pstate: 60000145
[ 198.527392] sp : ffffffc0f9ab3d40
[ 198.528084] x29: ffffffc0f9ab3d40 x28: ffffffc0f9ab0000
[ 198.529406] x27: ffffffc000d6a000 x26: ffffffc000b786e8
[ 198.530659] x25: ffffffc0002a1900 x24: ffffffc0faf16c00
[ 198.531942] x23: ffffffc0f9ab3ea0 x22: 0000000000000002
[ 198.533202] x21: ffffffc000d85050 x20: 0000000000000002
[ 198.534446] x19: 0000000000000002 x18: 0000000000000000
[ 198.535719] x17: 000000000049fa08 x16: ffffffc000242efc
[ 198.537030] x15: 0000007fa472b54c x14: ffffffffff000000
[ 198.538347] x13: ffffffc0fada84a0 x12: 0000000000000001
[ 198.539634] x11: ffffffc0f9ab3d70 x10: ffffffc0f9ab3d70
[ 198.540915] x9 : ffffffc0000907c0 x8 : ffffffc0f9ab3d40
[ 198.542215] x7 : 0000002e330f08f0 x6 : 0000000000000015
[ 198.543508] x5 : 0000000000000f08 x4 : ffffffc0f9835ec0
[ 198.544792] x3 : cb88537fdc8ba316 x2 : cb88537fdc8ba306
[ 198.546108] x1 : 0000000000000002 x0 : ffffffc000d85050
[ 198.547432]
[ 198.547920] Process ls (pid: 1388, stack limit = 0xffffffc0f9ab0020)
[ 198.549170] Stack: (0xffffffc0f9ab3d40 to 0xffffffc0f9ab4000)
[ 198.582568] Call trace:
[ 198.583313] [<ffffffc0002a1070>] next_tgid+0x30/0x100
[ 198.584359] [<ffffffc0000907bc>] ftrace_graph_caller+0x6c/0x70
[ 198.585503] [<ffffffc0000907bc>] ftrace_graph_caller+0x6c/0x70
[ 198.586574] [<ffffffc0000907bc>] ftrace_graph_caller+0x6c/0x70
[ 198.587660] [<ffffffc0000907bc>] ftrace_graph_caller+0x6c/0x70
[ 198.588896] Code: aa0003f5 2a0103f4 b4000102 91004043 (885f7c60)
[ 198.591092] ---[ end trace 6a346f8f20949ac8 ]---
This is because when using function graph tracer, if the traced
function return value is in multi regs ([x0-x7]), return_to_handler
may corrupt them. So in return_to_handler, the parameter regs should
be protected properly.
Cc: <stable@xxxxxxxxxxxxxxx> # 3.18+
Signed-off-by: Li Bin <huawei.libin@xxxxxxxxxx>
Acked-by: AKASHI Takahiro <takahiro.akashi@xxxxxxxxxx>
Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx>
commit 0c5d187828588dd1b36cb93b4481a8db467ef3e8
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Fri Oct 2 09:48:57 2015 +0200
MIPS: BPF: Fix load delay slots.
The entire bpf_jit_asm.S is written in noreorder mode because "we know
better" according to a comment. This also prevented the assembler from
throwing in the required NOPs for MIPS I processors which have no
load-use interlock, thus the load's consumer might end up using the
old value of the register from prior to the load.
Fixed by putting the assembler in reorder mode for just the affected
load instructions. This is not enough for gas to actually try to be
clever by looking at the next instruction and inserting a nop only
when needed but as the comment said "we know better", so getting gas
to unconditionally emit a NOP is just right in this case and prevents
adding further ifdefery.
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit f4b4aae1828855db761bf998ce37d3062b1d6446
Author: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
Date: Thu Oct 1 01:40:43 2015 +0100
x86/headers/uapi: Fix __BITS_PER_LONG value for x32 builds
On x32, gcc predefines __x86_64__ but long is only 32-bit. Use
__ILP32__ to distinguish x32.
Fixes this compiler error in perf:
tools/include/asm-generic/bitops/__ffs.h: In function '__ffs':
tools/include/asm-generic/bitops/__ffs.h:19:8: error: right shift count
>= width of type [-Werror=shift-count-overflow]
word >>= 32;
^
This isn't sufficient to build perf for x32, though.
Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Link: http://lkml.kernel.org/r/1443660043.2730.15.camel@xxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit da6fb7a9e5bd6f04f7e15070f630bdf1ea502841
Author: NeilBrown <neilb@xxxxxxxx>
Date: Thu Oct 1 16:03:38 2015 +1000
md/bitmap: don't pass -1 to bitmap_storage_alloc.
Passing -1 to bitmap_storage_alloc() causes page->index to be set to
-1, which is quite problematic.
So only pass ->cluster_slot if mddev_is_clustered().
Fixes: b97e92574c0b ("Use separate bitmaps for each nodes in the cluster")
Cc: stable@xxxxxxxxxxxxxxx (v4.1+)
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit e8ff8bf09ff49733534ff3cee91bde030186055f
Author: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx>
Date: Wed Sep 16 10:20:05 2015 -0400
md/raid1: Avoid raid1 resync getting stuck
close_sync() needs to set conf->next_resync to a large, but safe value
below MaxSector and use it to determine whether or not to set
start_next_window in wait_barrier()
Solution suggested by Neil Brown.
Reported-by: Nate Dailey <nate.dailey@xxxxxxxxxxx>
Tested-by: Xiao Ni <xni@xxxxxxxxxx>
Signed-off-by: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 644df1a85fc4b0c7a16800f55717261546f4e651
Author: Julia Lawall <Julia.Lawall@xxxxxxx>
Date: Sun Sep 13 14:15:10 2015 +0200
md: drop null test before destroy functions
Remove unneeded NULL test.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@ expression x; @@
-if (x != NULL)
\(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x);
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit d4929add83ad4660b1824a9282ab5dd4d60140fa
Author: Shaohua Li <shli@xxxxxx>
Date: Fri Sep 18 10:20:12 2015 -0700
md: clear CHANGE_PENDING in readonly array
If faulty disks of an array are more than allowed degraded number, the
array enters error handling. It will be marked as read-only with
MD_CHANGE_PENDING/RECOVERY_NEEDED set. But currently recovery doesn't
clear CHANGE_PENDING bit for read-only array. If MD_CHANGE_PENDING is
set for a raid5 array, all returned IO will be hold on a list till the
bit is clear. But recovery nevery clears this bit, the IO is always in
pending state and nevery finish. This has bad effects like upper layer
can't get an IO error and the array can't be stopped.
Fixes: c3cce6cda162 ("md/raid5: ensure device failure recorded before
write request returns.")
Signed-off-by: Shaohua Li <shli@xxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 66eefe5de11db1e0d8f2edc3880d50e7c36a9d43
Author: NeilBrown <neilb@xxxxxxxx>
Date: Thu Sep 24 15:47:47 2015 +1000
md/raid0: apply base queue limits *before* disk_stack_limits
Calling e.g. blk_queue_max_hw_sectors() after calls to
disk_stack_limits() discards the settings determined by
disk_stack_limits().
So we need to make those calls first.
Fixes: 199dc6ed5179 ("md/raid0: update queue parameter in a safer
location.")
Cc: stable@xxxxxxxxxxxxxxx (v2.6.35+ - please apply with 199dc6ed5179).
Reported-by: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 36707bb2e7c6730d79d6cdc6d1475d3d7e94c518
Author: NeilBrown <neilb@xxxxxxxx>
Date: Thu Sep 24 15:25:36 2015 +1000
md/raid5: don't index beyond end of array in need_this_block().
When need_this_block probably shouldn't be called when there
are more than 2 failed devices, we really don't want it to try
indexing beyond the end of the failed_num[] of fdev[] arrays.
So limit the loops to at most 2 iterations.
Reported-by: Shaohua Li <shli@xxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxx>
commit ebda780bce8d58ec0abab157397c9e099c41a05f
Author: Shaohua Li <shli@xxxxxx>
Date: Fri Sep 18 10:20:13 2015 -0700
raid5: update analysis state for failed stripe
handle_failed_stripe() makes the stripe fail, eg, all IO will return
with a failure, but it doesn't update stripe_head_state. Later
handle_stripe() has special handling for raid6 for handle_stripe_fill().
That check before handle_stripe_fill() doesn't skip the failed stripe
and we get a kernel crash in need_this_block. This patch clear the
analysis state to make sure no functions wrongly called after
handle_failed_stripe()
Signed-off-by: Shaohua Li <shli@xxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 88724bfa68be792c1487d759e87568c36ac1a1cc
Author: NeilBrown <neilb@xxxxxxxx>
Date: Thu Sep 24 14:00:51 2015 +1000
md: wait for pending superblock updates before switching to read-only
If a superblock update is pending, wait for it to complete before
letting md_set_readonly() switch to readonly.
Otherwise we might lose important information about a device having
failed.
For external arrays, waiting for superblock updates can wait on
user-space, so in that case, just return an error.
Reported-and-tested-by: Shaohua Li <shli@xxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit ab76f7b4ab2397ffdd2f1eb07c55697d19991d10
Author: Stephen Smalley <sds@xxxxxxxxxxxxx>
Date: Thu Oct 1 09:04:22 2015 -0400
x86/mm: Set NX on gap between __ex_table and rodata
Unused space between the end of __ex_table and the start of
rodata can be left W+x in the kernel page tables. Extend the
setting of the NX bit to cover this gap by starting from
text_end rather than rodata_start.
Before:
---[ High Kernel Mapping ]---
0xffffffff80000000-0xffffffff81000000 16M
pmd
0xffffffff81000000-0xffffffff81600000 6M ro PSE
GLB x pmd
0xffffffff81600000-0xffffffff81754000 1360K ro
GLB x pte
0xffffffff81754000-0xffffffff81800000 688K RW
GLB x pte
0xffffffff81800000-0xffffffff81a00000 2M ro PSE
GLB NX pmd
0xffffffff81a00000-0xffffffff81b3b000 1260K ro
GLB NX pte
0xffffffff81b3b000-0xffffffff82000000 4884K RW
GLB NX pte
0xffffffff82000000-0xffffffff82200000 2M RW PSE
GLB NX pmd
0xffffffff82200000-0xffffffffa0000000 478M
pmd
After:
---[ High Kernel Mapping ]---
0xffffffff80000000-0xffffffff81000000 16M
pmd
0xffffffff81000000-0xffffffff81600000 6M ro PSE
GLB x pmd
0xffffffff81600000-0xffffffff81754000 1360K ro
GLB x pte
0xffffffff81754000-0xffffffff81800000 688K RW
GLB NX pte
0xffffffff81800000-0xffffffff81a00000 2M ro PSE
GLB NX pmd
0xffffffff81a00000-0xffffffff81b3b000 1260K ro
GLB NX pte
0xffffffff81b3b000-0xffffffff82000000 4884K RW
GLB NX pte
0xffffffff82000000-0xffffffff82200000 2M RW PSE
GLB NX pmd
0xffffffff82200000-0xffffffffa0000000 478M
pmd
Signed-off-by: Stephen Smalley <sds@xxxxxxxxxxxxx>
Acked-by: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1443704662-3138-1-git-send-email-sds@xxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit e3c41e37b0f4b18cbd4dac76cbeece5a7558b909
Author: Lee, Chun-Yi <joeyli.kernel@xxxxxxxxx>
Date: Tue Sep 29 20:58:57 2015 +0800
x86/kexec: Fix kexec crash in syscall kexec_file_load()
The original bug is a page fault crash that sometimes happens
on big machines when preparing ELF headers:
BUG: unable to handle kernel paging request at ffffc90613fc9000
IP: [<ffffffff8103d645>]
prepare_elf64_ram_headers_callback+0x165/0x260
The bug is caused by us under-counting the number of memory ranges
and subsequently not allocating enough ELF header space for them.
The bug is typically masked on smaller systems, because the ELF header
allocation is rounded up to the next page.
This patch modifies the code in fill_up_crash_elf_data() by using
walk_system_ram_res() instead of walk_system_ram_range() to correctly
count the max number of crash memory ranges. That's because the
walk_system_ram_range() filters out small memory regions that
reside in the same page, but walk_system_ram_res() does not.
Here's how I found the bug:
After tracing prepare_elf64_headers() and
prepare_elf64_ram_headers_callback(),
the code uses walk_system_ram_res() to fill-in crash memory regions
information
to the program header, so it counts those small memory regions that
reside in a page area.
But, when the kernel was using walk_system_ram_range() in
fill_up_crash_elf_data() to count the number of crash memory regions,
it filters out small regions.
I printed those small memory regions, for example:
kexec: Get nr_ram ranges. vaddr=0xffff880077592258 paddr=0x77592258,
sz=0xdc0
Based on the code in walk_system_ram_range(), this memory region
will be filtered out:
pfn = (0x77592258 + 0x1000 - 1) >> 12 = 0x77593
end_pfn = (0x77592258 + 0xfc0 -1 + 1) >> 12 = 0x77593
end_pfn - pfn = 0x77593 - 0x77593 = 0 <=== if (end_pfn > pfn) is FALSE
So, the max_nr_ranges that's counted by the kernel doesn't include
small memory regions - causing us to under-allocate the required space.
That causes the page fault crash that happens in a later code path
when preparing ELF headers.
This bug is not easy to reproduce on small machines that have few
CPUs, because the allocated page aligned ELF buffer has more free
space to cover those small memory regions' PT_LOAD headers.
Signed-off-by: Lee, Chun-Yi <jlee@xxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Baoquan He <bhe@xxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Cc: Takashi Iwai <tiwai@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: kexec@xxxxxxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: <stable@xxxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1443531537-29436-1-git-send-email-jlee@xxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit ccf03d6995fa4b784f5b987726ba98f4859bf326
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Thu Oct 1 16:28:25 2015 +1000
drm/dp/mst: add some defines for logical/physical ports
This just removes the magic number.
Acked-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 274d83524895fe41ca8debae4eec60ede7252bb5
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Wed Sep 30 10:39:42 2015 +1000
drm/dp/mst: drop cancel work sync in the mstb destroy path (v2)
Since 9eb1e57f564d4e6e10991402726cc83fe0b9172f
drm/dp/mst: make sure mst_primary mstb is valid in work function
we validate the mstb structs in the work function, and doing
that takes a reference. So we should never get here with the
work function running using the mstb device, only if the work
function hasn't run yet or is running for another mstb.
So we don't need to sync the work here, this was causing
lockdep spew as below.
[ +0.000160] =============================================
[ +0.000001] [ INFO: possible recursive locking detected ]
[ +0.000002] 3.10.0-320.el7.rhel72.stable.backport.3.x86_64.debug #1
Tainted: G W ------------
[ +0.000001] ---------------------------------------------
[ +0.000001] kworker/4:2/1262 is trying to acquire lock:
[ +0.000001] ((&mgr->work)){+.+.+.}, at: [<ffffffff810b29a5>]
flush_work+0x5/0x2e0
[ +0.000007]
but task is already holding lock:
[ +0.000001] ((&mgr->work)){+.+.+.}, at: [<ffffffff810b57e4>]
process_one_work+0x1b4/0x710
[ +0.000004]
other info that might help us debug this:
[ +0.000001] Possible unsafe locking scenario:
[ +0.000002] CPU0
[ +0.000000] ----
[ +0.000001] lock((&mgr->work));
[ +0.000002] lock((&mgr->work));
[ +0.000001]
*** DEADLOCK ***
[ +0.000001] May be due to missing lock nesting notation
[ +0.000002] 2 locks held by kworker/4:2/1262:
[ +0.000001] #0: (events_long){.+.+.+}, at: [<ffffffff810b57e4>]
process_one_work+0x1b4/0x710
[ +0.000004] #1: ((&mgr->work)){+.+.+.}, at: [<ffffffff810b57e4>]
process_one_work+0x1b4/0x710
[ +0.000003]
stack backtrace:
[ +0.000003] CPU: 4 PID: 1262 Comm: kworker/4:2 Tainted: G W
------------ 3.10.0-320.el7.rhel72.stable.backport.3.x86_64.debug #1
[ +0.000001] Hardware name: LENOVO 20EGS0R600/20EGS0R600, BIOS GNET71WW
(2.19 ) 02/05/2015
[ +0.000008] Workqueue: events_long drm_dp_mst_link_probe_work
[drm_kms_helper]
[ +0.000001] ffffffff82c26c90 00000000a527b914 ffff88046399bae8
ffffffff816fe04d
[ +0.000004] ffff88046399bb58 ffffffff8110f47f ffff880461438000
0001009b840fc003
[ +0.000002] ffff880461438a98 0000000000000000 0000000804dc26e1
ffffffff824a2c00
[ +0.000003] Call Trace:
[ +0.000004] [<ffffffff816fe04d>] dump_stack+0x19/0x1b
[ +0.000004] [<ffffffff8110f47f>] __lock_acquire+0x115f/0x1250
[ +0.000002] [<ffffffff8110fd49>] lock_acquire+0x99/0x1e0
[ +0.000002] [<ffffffff810b29a5>] ? flush_work+0x5/0x2e0
[ +0.000002] [<ffffffff810b29ee>] flush_work+0x4e/0x2e0
[ +0.000002] [<ffffffff810b29a5>] ? flush_work+0x5/0x2e0
[ +0.000004] [<ffffffff81025905>] ? native_sched_clock+0x35/0x80
[ +0.000002] [<ffffffff81025959>] ? sched_clock+0x9/0x10
[ +0.000002] [<ffffffff810da1f5>] ? local_clock+0x25/0x30
[ +0.000002] [<ffffffff8110dca9>] ? mark_held_locks+0xb9/0x140
[ +0.000003] [<ffffffff810b4ed5>] ? __cancel_work_timer+0x95/0x160
[ +0.000002] [<ffffffff810b4ee8>] __cancel_work_timer+0xa8/0x160
[ +0.000002] [<ffffffff810b4fb0>] cancel_work_sync+0x10/0x20
[ +0.000007] [<ffffffffa0160d17>]
drm_dp_destroy_mst_branch_device+0x27/0x120 [drm_kms_helper]
[ +0.000006] [<ffffffffa0163968>] drm_dp_mst_link_probe_work+0x78/0xa0
[drm_kms_helper]
[ +0.000002] [<ffffffff810b5850>] process_one_work+0x220/0x710
[ +0.000002] [<ffffffff810b57e4>] ? process_one_work+0x1b4/0x710
[ +0.000005] [<ffffffff810b5e5b>] worker_thread+0x11b/0x3a0
[ +0.000003] [<ffffffff810b5d40>] ? process_one_work+0x710/0x710
[ +0.000002] [<ffffffff810beced>] kthread+0xed/0x100
[ +0.000003] [<ffffffff810bec00>] ? insert_kthread_work+0x80/0x80
[ +0.000003] [<ffffffff817121d8>] ret_from_fork+0x58/0x90
v2: add flush_work.
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit d9515c5ec1a20c77d83471e634ad9bb12deb0eac
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Wed Sep 16 17:55:23 2015 +1000
drm/dp/mst: split connector registration into two parts (v2)
In order to cache the EDID properly for tiled displays, we
need to retrieve it before we register the connector with
userspace, otherwise userspace can call get resources
and try and get the edid before we've even cached it.
This fixes some problems when hotplugging mst monitors,
with X/mutter running. As mutter seems to get 0 modes
for one of the monitors in the tile.
v2: fix warning in radeon
handle tile setting in cached path rather than
get edid path.
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 68d8c9fc91a0f63a2a10ccf7adf56f69125c11c1
Author: Dave Airlie <airlied@xxxxxxxxx>
Date: Sun Sep 6 18:53:00 2015 +1000
drm/dp/mst: update the link_address_sent before sending the link address
(v3)
Update the state before sending the msg to close it.
v2: reset value if return indicates we haven't send the msg.
v3: just clean the code up.
Pointed out by Adam J Richter on
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91481
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit df4839fdc9b3c922586b945f062f38cbbda022bb
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Wed Sep 16 10:37:28 2015 +1000
drm/dp/mst: fixup handling hotplug on port removal.
output ports should always have a connector, unless
in the rare case connector allocation fails in the
driver.
In this case we only need to teardown the pdt,
and free the struct, and there is no need to
send a hotplug msg.
In the case were we add the port to the destroy
list we need to send a hotplug if we destroy
any connectors, so userspace knows to reprobe
stuff.
this patch also handles port->connector allocation
failing which should be a rare event, but makes
the code consistent.
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 1c960876be7cffd2798a9e2be090e0a5afaee895
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Wed Sep 16 11:04:49 2015 +1000
drm/dp/mst: don't pass port into the path builder function
This is unnecessary and it makes it easier to see what is needed
from port.
also add blank line to make things nicer.
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 0c6dadbe79c54818ed4c268297b663f0c4d1ef98
Author: Alex Deucher <alexdeucher@xxxxxxxxx>
Date: Wed Sep 30 14:47:38 2015 -0400
drm/radeon: drop radeon_fb_helper_set_par
It was just a wrapper around drm_fb_helper_set_par that
called cursor_set2 in addition. Now that the core handles
this, drop this radeon specific version.
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Michel Dänzer <michel.daenzer@xxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 03f9abb28c3e10a1d0e08df8bca69e0606b23ea6
Author: Alex Deucher <alexdeucher@xxxxxxxxx>
Date: Wed Sep 30 14:47:37 2015 -0400
drm: handle cursor_set2 in restore_fbdev_mode
If a driver uses the cursor_set2 crtc callback rather than
cursor_set, use that. This fixes the fbdev helper for drivers
that use cursor_set2.
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Michel Dänzer <michel.daenzer@xxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit bde17b90dd9712cb61a7ab0c1ccd0f7f6aa57957
Merge: 1bca100 676bd99
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Oct 1 22:20:11 2015 -0400
Merge branch 'akpm' (patches from Andrew)
Merge misc fixes from Andrew Morton:
"12 fixes"
* emailed patches from Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>:
dmapool: fix overflow condition in pool_find_page()
thermal: avoid division by zero in power allocator
memcg: remove pcp_counter_lock
kprobes: use _do_fork() in samples to make them work again
drivers/input/joystick/Kconfig: zhenhua.c needs BITREVERSE
memcg: make mem_cgroup_read_stat() unsigned
memcg: fix dirty page migration
dax: fix NULL pointer in __dax_pmd_fault()
mm: hugetlbfs: skip shared VMAs when unmapping private pages to satisfy
a fault
mm/slab: fix unexpected index mapping result of
kmalloc_size(INDEX_NODE+1)
userfaultfd: remove kernel header include from uapi header
arch/x86/include/asm/efi.h: fix build failure
commit 1bca1000fa71a1092947b4a51928abe80a3316d2
Merge: 3deaa4f eb6d1c2
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Oct 1 22:06:40 2015 -0400
Merge tag 'pm+acpi-4.3-rc4' of
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management and ACPI fixes from Rafael Wysocki:
"These are fixes mostly, for a few changes made in this cycle (the
intel_idle driver, the OPP library, the ACPI EC driver, turbostat) and
for some issues that have just been discovered (ACPI PCI IRQ
management, PCI power management documentation, turbostat), with a
couple of cleanups on top of them.
Specifics:
- intel_idle driver fixup for the recently added Skylake chips
support (Len Brown).
- Operating Performance Points (OPP) library fix related to the
recently added support for new DT bindings and a fix for a typo in
a comment (Viresh Kumar, Stephen Boyd).
- ACPI EC driver fix for a recently introduced memory leak in an
error code path (Lv Zheng).
- ACPI PCI IRQ management fix for the issue where an ISA IRQ is
shared with a PCI device which requires it to be configured in a
different way and may cause an interrupt storm to happen as a
result with an extra ACPI SCI IRQ handling simplification on top of
it (Jiang Liu).
- Update of the PCI power management documentation that became
outdated and started to actively confuse the readers to make it
actually reflect the code (Rafael J Wysocki).
- turbostat fixes including an IVB Xeon regression fix (related to
the --debug command line option), Skylake adjustment for the TSC
running at a frequency that doesn't match the base one exactly, and
a Knights Landing quirk to account for the fact that it only
updates APERF and MPERF every 1024 clock cycles plus bumping up the
turbostat version number (Len Brown, Hubert Chrzaniuk)"
* tag 'pm+acpi-4.3-rc4' of
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
tools/power turbosat: update version number
tools/power turbostat: SKL: Adjust for TSC difference from base
frequency
tools/power turbostat: KNL workaround for %Busy and Avg_MHz
tools/power turbostat: IVB Xeon: fix --debug regression
ACPI / PCI: Remove duplicated penalty on SCI IRQ
ACPI, PCI, irq: Do not share PCI IRQ with ISA IRQ
ACPI / EC: Fix a memory leak issue in acpi_ec_query()
PM / OPP: Fix typo modifcation -> modification
PCI / PM: Update runtime PM documentation for PCI devices
PM / OPP: of_property_count_u32_elems() can return errors
intel_idle: Skylake Client Support - updated
commit 3deaa4f531506a12ac4860ccd83cb6cbcb15a7eb
Merge: ccf70dd b84f787
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Oct 1 21:55:35 2015 -0400
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller:
1) Fix regression in SKB partial checksum handling, from Pravin B
Shalar.
2) Fix VLAN inside of VXLAN handling in i40e driver, from Jesse
Brandeburg.
3) Cure softlockups during accept() in SCTP, from Karl Heiss.
4) MSG_PEEK should return multiple SKBs worth of data in AF_UNIX, from
Aaron Conole.
5) IPV6 erroneously ignores output interface specifier in lookup key for
route lookups, fix from David Ahern.
6) In Marvell DSA driver, forward unknown frames to CPU port, from
Andrew Lunn.
7) Mission flow flag initializations in some code paths, from David
Ahern.
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
net: Initialize flow flags in input path
net: dsa: fix preparation of a port STP update
testptp: Silence compiler warnings on ppc64
net/mlx4: Handle return codes in mlx4_qp_attach_common
dsa: mv88e6xxx: Enable forwarding for unknown to the CPU port
skbuff: Fix skb checksum partial check.
net: ipv6: Add RT6_LOOKUP_F_IFACE flag if oif is set
net sysfs: Print link speed as signed integer
bna: fix error handling
af_unix: return data from multiple SKBs on recv() with MSG_PEEK flag
af_unix: Convert the unix_sk macro to an inline function for type safety
net: sctp: Don't use 64 kilobyte lookup table for four elements
l2tp: protect tunnel->del_work by ref_count
net/ibm/emac: bump version numbers for correct work with ethtool
sctp: Prevent soft lockup when sctp_accept() is called during a timeout
event
sctp: Whitespace fix
i40e/i40evf: check for stopped admin queue
i40e: fix VLAN inside VXLAN
r8169: fix handling rtl_readphy result
net: hisilicon: fix handling platform_get_irq result
commit 676bd99178cd962ed24ffdad222b7069d330a969
Author: Robin Murphy <robin.murphy@xxxxxxx>
Date: Thu Oct 1 15:37:19 2015 -0700
dmapool: fix overflow condition in pool_find_page()
If a DMA pool lies at the very top of the dma_addr_t range (as may
happen with an IOMMU involved), the calculated end address of the pool
wraps around to zero, and page lookup always fails.
Tweak the relevant calculation to be overflow-proof.
Signed-off-by: Robin Murphy <robin.murphy@xxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Cc: Sumit Semwal <sumit.semwal@xxxxxxxxxx>
Cc: Sakari Ailus <sakari.ailus@xxxxxx>
Cc: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 44241628bb207ec211bebd156aaf69470d90c209
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Thu Oct 1 15:37:16 2015 -0700
thermal: avoid division by zero in power allocator
During boot I get a div by zero Oops regression starting in v4.3-rc3.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Reviewed-by: Javi Merino <javi.merino@xxxxxxx>
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: Eduardo Valentin <edubezval@xxxxxxxxx>
Cc: Daniel Kurtz <djkurtz@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ef510194cefe0cd369ef73419cd65b0a5bb4fb5b
Author: Greg Thelen <gthelen@xxxxxxxxxx>
Date: Thu Oct 1 15:37:13 2015 -0700
memcg: remove pcp_counter_lock
Commit 733a572e66d2 ("memcg: make mem_cgroup_read_{stat|event}() iterate
possible cpus instead of online") removed the last use of the per memcg
pcp_counter_lock but forgot to remove the variable.
Kill the vestigial variable.
Signed-off-by: Greg Thelen <gthelen@xxxxxxxxxx>
Acked-by: Michal Hocko <mhocko@xxxxxxxx>
Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 54aea4542980a3ed580426a81c5af799df4d610d
Author: Petr Mladek <pmladek@xxxxxxxx>
Date: Thu Oct 1 15:37:11 2015 -0700
kprobes: use _do_fork() in samples to make them work again
Commit 3033f14ab78c ("clone: support passing tls argument via C rather
than pt_regs magic") introduced _do_fork() that allowed to pass @tls
parameter.
The old do_fork() is defined only for architectures that are not ready
to use this way and do not define HAVE_COPY_THREAD_TLS.
Let's use _do_fork() in the kprobe examples to make them work again on
all architectures.
Signed-off-by: Petr Mladek <pmladek@xxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Thiago Macieira <thiago.macieira@xxxxxxxxx>
Cc: Jiri Kosina <jkosina@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 09a59a9d57a9d6f49510c93304d6e105deb83b93
Author: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Oct 1 15:37:08 2015 -0700
drivers/input/joystick/Kconfig: zhenhua.c needs BITREVERSE
It uses bitrev8(), so it must ensure that lib/bitrev.o gets included in
vmlinux.
Cc: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Cc: yalin wang <yalin.wang2010@xxxxxxxxx>
Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 484ebb3b8c8b27dd2171696462a3116edb9ff801
Author: Greg Thelen <gthelen@xxxxxxxxxx>
Date: Thu Oct 1 15:37:05 2015 -0700
memcg: make mem_cgroup_read_stat() unsigned
mem_cgroup_read_stat() returns a page count by summing per cpu page
counters. The summing is racy wrt. updates, so a transient negative
sum is possible. Callers don't want negative values:
- mem_cgroup_wb_stats() doesn't want negative nr_dirty or nr_writeback.
This could confuse dirty throttling.
- oom reports and memory.stat shouldn't show confusing negative usage.
- tree_usage() already avoids negatives.
Avoid returning negative page counts from mem_cgroup_read_stat() and
convert it to unsigned.
[akpm@xxxxxxxxxxxxxxxxxxxx: fix old typo while we're in there]
Signed-off-by: Greg Thelen <gthelen@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Acked-by: Michal Hocko <mhocko@xxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> [4.2+]
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 0610c25daa3e76e38ad5a8fae683a89ff9f71798
Author: Greg Thelen <gthelen@xxxxxxxxxx>
Date: Thu Oct 1 15:37:02 2015 -0700
memcg: fix dirty page migration
The problem starts with a file backed dirty page which is charged to a
memcg. Then page migration is used to move oldpage to newpage.
Migration:
- copies the oldpage's data to newpage
- clears oldpage.PG_dirty
- sets newpage.PG_dirty
- uncharges oldpage from memcg
- charges newpage to memcg
Clearing oldpage.PG_dirty decrements the charged memcg's dirty page
count.
However, because newpage is not yet charged, setting newpage.PG_dirty
does not increment the memcg's dirty page count. After migration
completes newpage.PG_dirty is eventually cleared, often in
account_page_cleaned(). At this time newpage is charged to a memcg so
the memcg's dirty page count is decremented which causes underflow
because the count was not previously incremented by migration. This
underflow causes balance_dirty_pages() to see a very large unsigned
number of dirty memcg pages which leads to aggressive throttling of
buffered writes by processes in non root memcg.
This issue:
- can harm performance of non root memcg buffered writes.
- can report too small (even negative) values in
memory.stat[(total_)dirty] counters of all memcg, including the root.
To avoid polluting migrate.c with #ifdef CONFIG_MEMCG checks, introduce
page_memcg() and set_page_memcg() helpers.
Test:
0) setup and enter limited memcg
mkdir /sys/fs/cgroup/test
echo 1G > /sys/fs/cgroup/test/memory.limit_in_bytes
echo $$ > /sys/fs/cgroup/test/cgroup.procs
1) buffered writes baseline
dd if=/dev/zero of=/data/tmp/foo bs=1M count=1k
sync
grep ^dirty /sys/fs/cgroup/test/memory.stat
2) buffered writes with compaction antagonist to induce migration
yes 1 > /proc/sys/vm/compact_memory &
rm -rf /data/tmp/foo
dd if=/dev/zero of=/data/tmp/foo bs=1M count=1k
kill %
sync
grep ^dirty /sys/fs/cgroup/test/memory.stat
3) buffered writes without antagonist, should match baseline
rm -rf /data/tmp/foo
dd if=/dev/zero of=/data/tmp/foo bs=1M count=1k
sync
grep ^dirty /sys/fs/cgroup/test/memory.stat
(speed, dirty residue)
unpatched patched
1) 841 MB/s 0 dirty pages 886 MB/s 0 dirty pages
2) 611 MB/s -33427456 dirty pages 793 MB/s 0 dirty pages
3) 114 MB/s -33427456 dirty pages 891 MB/s 0 dirty pages
Notice that unpatched baseline performance (1) fell after
migration (3): 841 -> 114 MB/s. In the patched kernel, post
migration performance matches baseline.
Fixes: c4843a7593a9 ("memcg: add per cgroup dirty page accounting")
Signed-off-by: Greg Thelen <gthelen@xxxxxxxxxx>
Reported-by: Dave Hansen <dave.hansen@xxxxxxxxx>
Acked-by: Michal Hocko <mhocko@xxxxxxxx>
Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> [4.2+]
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 8346c416d17bf5b4ea1508662959bb62e73fd6a5
Author: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Date: Thu Oct 1 15:36:59 2015 -0700
dax: fix NULL pointer in __dax_pmd_fault()
Commit 46c043ede471 ("mm: take i_mmap_lock in unmap_mapping_range() for
DAX") moved some code in __dax_pmd_fault() that was responsible for
zeroing newly allocated PMD pages. The new location didn't properly set
up 'kaddr', so when run this code resulted in a NULL pointer BUG.
Fix this by getting the correct 'kaddr' via bdev_direct_access().
Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Reported-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Reviewed-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Dave Chinner <david@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 2f84a8990ebbe235c59716896e017c6b2ca1200f
Author: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Date: Thu Oct 1 15:36:57 2015 -0700
mm: hugetlbfs: skip shared VMAs when unmapping private pages to satisfy a
fault
SunDong reported the following on
https://bugzilla.kernel.org/show_bug.cgi?id=103841
I think I find a linux bug, I have the test cases is constructed. I
can stable recurring problems in fedora22(4.0.4) kernel version,
arch for x86_64. I construct transparent huge page, when the parent
and child process with MAP_SHARE, MAP_PRIVATE way to access the same
huge page area, it has the opportunity to lead to huge page copy on
write failure, and then it will munmap the child corresponding mmap
area, but then the child mmap area with VM_MAYSHARE attributes, child
process munmap this area can trigger VM_BUG_ON in set_vma_resv_flags
functions (vma - > vm_flags & VM_MAYSHARE).
There were a number of problems with the report (e.g. it's hugetlbfs that
triggers this, not transparent huge pages) but it was fundamentally
correct in that a VM_BUG_ON in set_vma_resv_flags() can be triggered that
looks like this
vma ffff8804651fd0d0 start 00007fc474e00000 end 00007fc475e00000
next ffff8804651fd018 prev ffff8804651fd188 mm ffff88046b1b1800
prot 8000000000000027 anon_vma (null) vm_ops ffffffff8182a7a0
pgoff 0 file ffff88106bdb9800 private_data (null)
flags:
0x84400fb(read|write|shared|mayread|maywrite|mayexec|mayshare|dontexpand|hugetlb)
------------
kernel BUG at mm/hugetlb.c:462!
SMP
Modules linked in: xt_pkttype xt_LOG xt_limit [..]
CPU: 38 PID: 26839 Comm: map Not tainted 4.0.4-default #1
Hardware name: Dell Inc. PowerEdge R810/0TT6JF, BIOS 2.7.4 04/26/2012
set_vma_resv_flags+0x2d/0x30
The VM_BUG_ON is correct because private and shared mappings have
different reservation accounting but the warning clearly shows that the
VMA is shared.
When a private COW fails to allocate a new page then only the process
that created the VMA gets the page -- all the children unmap the page.
If the children access that data in the future then they get killed.
The problem is that the same file is mapped shared and private. During
the COW, the allocation fails, the VMAs are traversed to unmap the other
private pages but a shared VMA is found and the bug is triggered. This
patch identifies such VMAs and skips them.
Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Reported-by: SunDong <sund_sky@xxxxxxx>
Reviewed-by: Michal Hocko <mhocko@xxxxxxxx>
Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 03a2d2a3eafe4015412cf4e9675ca0e2d9204074
Author: Joonsoo Kim <js1304@xxxxxxxxx>
Date: Thu Oct 1 15:36:54 2015 -0700
mm/slab: fix unexpected index mapping result of kmalloc_size(INDEX_NODE+1)
Commit description is copied from the original post of this bug:
http://comments.gmane.org/gmane.linux.kernel.mm/135349
Kernels after v3.9 use kmalloc_size(INDEX_NODE + 1) to get the next
larger cache size than the size index INDEX_NODE mapping. In kernels
3.9 and earlier we used malloc_sizes[INDEX_L3 + 1].cs_size.
However, sometimes we can't get the right output we expected via
kmalloc_size(INDEX_NODE + 1), causing a BUG().
The mapping table in the latest kernel is like:
index = {0, 1, 2 , 3, 4, 5, 6, n}
size = {0, 96, 192, 8, 16, 32, 64, 2^n}
The mapping table before 3.10 is like this:
index = {0 , 1 , 2, 3, 4 , 5 , 6, n}
size = {32, 64, 96, 128, 192, 256, 512, 2^(n+3)}
The problem on my mips64 machine is as follows:
(1) When configured DEBUG_SLAB && DEBUG_PAGEALLOC && DEBUG_LOCK_ALLOC
&& DEBUG_SPINLOCK, the sizeof(struct kmem_cache_node) will be "150",
and the macro INDEX_NODE turns out to be "2": #define INDEX_NODE
kmalloc_index(sizeof(struct kmem_cache_node))
(2) Then the result of kmalloc_size(INDEX_NODE + 1) is 8.
(3) Then "if(size >= kmalloc_size(INDEX_NODE + 1)" will lead to "size
= PAGE_SIZE".
(4) Then "if ((size >= (PAGE_SIZE >> 3))" test will be satisfied and
"flags |= CFLGS_OFF_SLAB" will be covered.
(5) if (flags & CFLGS_OFF_SLAB)" test will be satisfied and will go to
"cachep->slabp_cache = kmalloc_slab(slab_size, 0u)", and the result
here may be NULL while kernel bootup.
(6) Finally,"BUG_ON(ZERO_OR_NULL_PTR(cachep->slabp_cache));" causes the
BUG info as the following shows (may be only mips64 has this problem):
This patch fixes the problem of kmalloc_size(INDEX_NODE + 1) and removes
the BUG by adding 'size >= 256' check to guarantee that all necessary
small sized slabs are initialized regardless sequence of slab size in
mapping table.
Fixes: e33660165c90 ("slab: Use common kmalloc_index/kmalloc_size...")
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Reported-by: Liuhailong <liu.hailong6@xxxxxxxxxx>
Acked-by: Christoph Lameter <cl@xxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 9ff42d10c3b3e26d9555878f31b9a2e5c24efa57
Author: Andre Przywara <andre.przywara@xxxxxxx>
Date: Thu Oct 1 15:36:51 2015 -0700
userfaultfd: remove kernel header include from uapi header
As include/uapi/linux/userfaultfd.h is a user visible header file, it
should not include kernel-exclusive header files.
So trying to build the userfaultfd test program from the selftests
directory fails, since it contains a reference to linux/compiler.h. As
it turns out, that header is not really needed there, so we can simply
remove it to fix that issue.
Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx>
Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit a523841ee4e506fa1f05ff3a85b1e6d8176a3d4d
Author: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Date: Thu Oct 1 15:36:48 2015 -0700
arch/x86/include/asm/efi.h: fix build failure
With KMEMCHECK=y, KASAN=n:
arch/x86/platform/efi/efi.c:673:3: error: implicit declaration of
function `memcpy' [-Werror=implicit-function-declaration]
arch/x86/platform/efi/efi_64.c:139:2: error: implicit declaration of
function `memcpy' [-Werror=implicit-function-declaration]
arch/x86/include/asm/desc.h:121:2: error: implicit declaration of
function `memcpy' [-Werror=implicit-function-declaration]
Don't #undef memcpy if KASAN=n.
Fixes: 769a8089c1fd ("x86, efi, kasan: #undef memset/memcpy/memmove per
arch")
Signed-off-by: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Reported-by: Ingo Molnar <mingo@xxxxxxxxxx>
Reported-by: Sedat Dilek <sedat.dilek@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ec403b89e3152f93199b7b1813148bcdf6829311
Merge: 62886a3 b94be97
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Oct 2 10:47:29 2015 +1000
Merge tag 'drm-intel-fixes-2015-10-01' of
git://anongit.freedesktop.org/drm-intel into drm-fixes
a few i915 fixes for v4.3.
* tag 'drm-intel-fixes-2015-10-01' of
git://anongit.freedesktop.org/drm-intel:
drm/i915: Call non-locking version of drm_kms_helper_poll_enable(), v2
drm: Add a non-locking version of drm_kms_helper_poll_enable(), v2
drm/i915: Consider HW CSB write pointer before resetting the sw read
pointer
drm/i915/skl: Don't call intel_prepare_ddi when encoder list isn't yet
initialized.
commit 62886a367b59d7740f9db89fd418ab3e450ab7c7
Merge: 8e592ea 575f9c8
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Oct 2 10:46:51 2015 +1000
Merge tag 'vmwgfx-fixes-4.3-151001' of
git://people.freedesktop.org/~thomash/linux into drm-fixes
A single commit to fix a command submission hang regression.
Pull request of 2015-10-01
* tag 'vmwgfx-fixes-4.3-151001' of
git://people.freedesktop.org/~thomash/linux:
drm/vmwgfx: Fix a command submission hang regression
commit 8e592eab0401bd70a8ba8534b903145855a7b703
Merge: 5b63864 cda3742
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Oct 2 10:46:18 2015 +1000
Merge branch 'exynos-drm-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-fixes
This pull request includes regression fixups, build warnings, and
trivial cleanups which mostly remove some codes not used anymore.
* 'exynos-drm-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
drm/exynos: Staticize local function in exynos_drm_gem.c
drm/exynos: fimd: actually disable dp clock
drm/exynos: dp: remove suspend/resume functions
drm/exynos: remove unused mode_fixup() code
drm/exynos: remove decon_mode_fixup()
drm/exynos: remove fimd_mode_fixup()
drm/exynos: rotator: Clock control is unused if !PM
drm/exynos: fimc: Clock control is unused if !PM
drm/exynos: Suspend/resume is unused if !PM
drm/exynos: create a fake mmap offset with gem creation
drm/exynos: remove call to drm_gem_free_mmap_offset()
drm/exynos: Remove useless EXPORT_SYMBOL_GPLs
drm/exynos: cleanup line feed in exynos_drm_gem_get_ioctl
drm/exynos: cleanup function calling written twice
drm/exynos: staticize exynos_drm_gem_init()
drm/exynos: remove unnecessary NULL assignment
drm/exynos: fix missed calling of drm_prime_gem_destroy()
drm/exynos: fix layering violation of address
commit 5b6386419c4f78526afe1615668b6444d7b66fd7
Merge: 8d0d940 3e4e380
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Oct 2 10:35:22 2015 +1000
Merge branch 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux
into drm-fixes
radeon and amdgpu fixes for 4.3.
- backlight s/r fixes
- typo fix from Dan
- vm debugging fix
- remove import_gpu_mem after discussion with Daniel
* 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux:
drm/amdgpu: only print meaningful VM faults
drm/amdgpu/cgs: remove import_gpu_mem
drm/amdgpu: Restore LCD backlight level on resume
drm/radeon: Restore LCD backlight level on resume (>= R5xx)
drm/amdgpu: signedness bug in amdgpu_cs_parser_init()
commit ccf70ddcbe9984cee406be2bacfedd5e4776919d
Merge: 46c8217 d292242
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Oct 1 16:43:25 2015 -0400
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM fixes from Paolo Bonzini:
"(Relatively) a lot of reverts, mostly.
Bugs have trickled in for a new feature in 4.2 (MTRR support in
guests) so I'm reverting it all; let's not make this -rc period busier
for KVM than it's been so far. This covers the four reverts from me.
The fifth patch is being reverted because Radim found a bug in the
implementation of stable scheduler clock, *but* also managed to
implement the feature entirely without hypervisor support. So instead
of fixing the hypervisor side we can remove it completely; 4.4 will
get the new implementation"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
Use WARN_ON_ONCE for missing X86_FEATURE_NRIPS
Update KVM homepage Url
Revert "KVM: SVM: use NPT page attributes"
Revert "KVM: svm: handle KVM_X86_QUIRK_CD_NW_CLEARED in svm_get_mt_mask"
Revert "KVM: SVM: Sync g_pat with guest-written PAT value"
Revert "KVM: x86: apply guest MTRR virtualization on host reserved
pages"
Revert "KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock
system MSR"
commit 46c8217c4a54c17dd4c000ad804fa1e223a10578
Merge: f97b870 2866196
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Oct 1 16:38:52 2015 -0400
Merge tag 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
Pull rdma fixes from Doug Ledford:
- Fixes for mlx5 related issues
- Fixes for ipoib multicast handling
* tag 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
IB/ipoib: increase the max mcast backlog queue
IB/ipoib: Make sendonly multicast joins create the mcast group
IB/ipoib: Expire sendonly multicast joins
IB/mlx5: Remove pa_lkey usages
IB/mlx5: Remove support for IB_DEVICE_LOCAL_DMA_LKEY
IB/iser: Add module parameter for always register memory
xprtrdma: Replace global lkey with lkey local to PD
commit eb6d1c287ae1f7221248d5be26a5b1560073c09e
Merge: 01351eb e9a7bed e1a2d49 a9062dc
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Thu Oct 1 22:30:47 2015 +0200
Merge branches 'pm-cpuidle', 'pm-opp' and 'pm-tools'
* pm-cpuidle:
intel_idle: Skylake Client Support - updated
* pm-opp:
PM / OPP: Fix typo modifcation -> modification
PM / OPP: of_property_count_u32_elems() can return errors
* pm-tools:
tools/power turbosat: update version number
tools/power turbostat: SKL: Adjust for TSC difference from base
frequency
tools/power turbostat: KNL workaround for %Busy and Avg_MHz
tools/power turbostat: IVB Xeon: fix --debug regression
commit 01351eb23c5047895c14c91a898546c289a3c35c
Merge: dd953d3 15b94fa
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Thu Oct 1 22:30:35 2015 +0200
Merge branch 'acpi-ec'
* acpi-ec:
ACPI / EC: Fix a memory leak issue in acpi_ec_query()
commit dd953d318daad9a3c1f9a6bf31430bf40163051e
Merge: 9ffecb1 a836006 d323efc
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Thu Oct 1 22:30:12 2015 +0200
Merge branches 'pm-pci' and 'acpi-pci'
* pm-pci:
PCI / PM: Update runtime PM documentation for PCI devices
* acpi-pci:
ACPI / PCI: Remove duplicated penalty on SCI IRQ
ACPI, PCI, irq: Do not share PCI IRQ with ISA IRQ
commit 1a541b4e3cd6f5795022514114854b3e1345f24e
Author: Steve Capper <steve.capper@xxxxxxxxxx>
Date: Thu Oct 1 13:06:07 2015 +0100
arm64: Fix THP protection change logic
6910fa1 ("arm64: enable PTE type bit in the mask for pte_modify") fixes
a problem whereby a large block of PROT_NONE mapped memory is
incorrectly mapped as block descriptors when mprotect is called.
Unfortunately, a subtle bug was introduced by this fix to the THP logic.
If one mmaps a large block of memory, then faults it such that it is
collapsed into THPs; resulting calls to mprotect on this area of memory
will lead to incorrect table descriptors being written instead of block
descriptors. This is because pmd_modify calls pte_modify which is now
allowed to modify the type of the page table entry.
This patch reverts commit 6910fa16dbe142f6a0fd0fd7c249f9883ff7fc8a, and
fixes the problem it was trying to address by adjusting PAGE_NONE to
represent a table entry. Thus no change in pte type is required when
moving from PROT_NONE to a different protection.
Fixes: 6910fa16dbe1 ("arm64: enable PTE type bit in the mask for
pte_modify")
Cc: <stable@xxxxxxxxxxxxxxx> # 4.0+
Cc: Feng Kan <fkan@xxxxxxx>
Reported-by: Ganapatrao Kulkarni <Ganapatrao.Kulkarni@xxxxxxxxxxxxxxxxxx>
Tested-by: Ganapatrao Kulkarni <gkulkarni@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Signed-off-by: Steve Capper <steve.capper@xxxxxxxxxx>
Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx>
commit 1e16a8f11669c98a0adf5fb5f8522aebc1f69f71
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Thu Oct 1 15:45:44 2015 +0200
MIPS: BPF: Do all exports of symbols with FEXPORT().
FEXPORT also marks the symbol as code using .type symbol, @function.
Without objdump -d will output only a hexdump for code following the
affected symbols.
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit d2922422c48df93f3edff7d872ee4f3191fefb08
Author: Dirk Müller <dmueller@xxxxxxxx>
Date: Thu Oct 1 13:43:42 2015 +0200
Use WARN_ON_ONCE for missing X86_FEATURE_NRIPS
The cpu feature flags are not ever going to change, so warning
everytime can cause a lot of kernel log spam
(in our case more than 10GB/hour).
The warning seems to only occur when nested virtualization is
enabled, so it's probably triggered by a KVM bug. This is a
sensible and safe change anyway, and the KVM bug fix might not
be suitable for stable releases anyway.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Dirk Mueller <dmueller@xxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 038161dea1eaeee80341134e2675b24656a71b59
Author: Dirk Müller <dmueller@xxxxxxxx>
Date: Thu Oct 1 13:46:01 2015 +0200
Update KVM homepage Url
The old one appears to be a generic catch all page, which
is unhelpful.
Signed-off-by: Dirk Mueller <dmueller@xxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit f97b870eced0ec562f953d32eda03906c7dacad6
Merge: 9522f47 7c7feb2
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Oct 1 07:57:27 2015 -0400
Merge tag 'upstream-4.3-rc4' of git://git.infradead.org/linux-ubifs
Pull UBI/UBIFS fixes from Richard Weinberger:
"This contains three bug fixes for both UBI and UBIFS"
* tag 'upstream-4.3-rc4' of git://git.infradead.org/linux-ubifs:
UBI: return ENOSPC if no enough space available
UBI: Validate data_size
UBIFS: Kill unneeded locking in ubifs_init_security
commit 9522f476d932eb23ebf8dbbc6b4e2f966f3fe911
Merge: dd36d73 0266715
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Oct 1 07:50:08 2015 -0400
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
Pull key signing fixes from James Morris:
"Keyrings and modsign fixes from David Howells"
* 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
MODSIGN: Change from CMS to PKCS#7 signing if the openssl is too old
X.509: Don't strip leading 00's from key ID when constructing key
description
KEYS: Remove unnecessary header #inclusions from extract-cert.c
KEYS: Fix race between key destruction and finding a keyring by name
commit fc07e76ac7ffa3afd621a1c3858a503386a14281
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Thu Oct 1 13:20:22 2015 +0200
Revert "KVM: SVM: use NPT page attributes"
This reverts commit 3c2e7f7de3240216042b61073803b61b9b3cfb22.
Initializing the mapping from MTRR to PAT values was reported to
fail nondeterministically, and it also caused extremely slow boot
(due to caching getting disabled---bug 103321) with assigned devices.
Reported-by: Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx>
Reported-by: Sebastian Schuette <dracon@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # 4.2+
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit bcf166a9942c3aabd8b752a7c38a49f57c54cfb8
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Thu Oct 1 13:19:55 2015 +0200
Revert "KVM: svm: handle KVM_X86_QUIRK_CD_NW_CLEARED in svm_get_mt_mask"
This reverts commit 5492830370171b6a4ede8a3bfba687a8d0f25fa5.
It builds on the commit that is being reverted next.
Cc: stable@xxxxxxxxxxxxxxx # 4.2+
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 625422f60c55bbc368b8568ff925770b36bfc189
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Thu Oct 1 13:28:15 2015 +0200
Revert "KVM: SVM: Sync g_pat with guest-written PAT value"
This reverts commit e098223b789b4a618dacd79e5e0dad4a9d5018d1,
which has a dependency on other commits being reverted.
Cc: stable@xxxxxxxxxxxxxxx # 4.2+
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 606decd67049217684e3cb5a54104d51ddd4ef35
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Thu Oct 1 13:12:47 2015 +0200
Revert "KVM: x86: apply guest MTRR virtualization on host reserved pages"
This reverts commit fd717f11015f673487ffc826e59b2bad69d20fe5.
It was reported to cause Machine Check Exceptions (bug 104091).
Reported-by: harn-solo@xxxxxx
Cc: stable@xxxxxxxxxxxxxxx # 4.2+
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 0ce3cc008ec04258b6a6314b09f1a6012810881a
Author: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Date: Fri Sep 25 23:02:19 2015 +0100
arm64/efi: Fix boot crash by not padding between EFI_MEMORY_RUNTIME
regions
The new Properties Table feature introduced in UEFIv2.5 may
split memory regions that cover PE/COFF memory images into
separate code and data regions. Since these regions only differ
in the type (runtime code vs runtime data) and the permission
bits, but not in the memory type attributes (UC/WC/WT/WB), the
spec does not require them to be aligned to 64 KB.
Since the relative offset of PE/COFF .text and .data segments
cannot be changed on the fly, this means that we can no longer
pad out those regions to be mappable using 64 KB pages.
Unfortunately, there is no annotation in the UEFI memory map
that identifies data regions that were split off from a code
region, so we must apply this logic to all adjacent runtime
regions whose attributes only differ in the permission bits.
So instead of rounding each memory region to 64 KB alignment at
both ends, only round down regions that are not directly
preceded by another runtime region with the same type
attributes. Since the UEFI spec does not mandate that the memory
map be sorted, this means we also need to sort it first.
Note that this change will result in all EFI_MEMORY_RUNTIME
regions whose start addresses are not aligned to the OS page
size to be mapped with executable permissions (i.e., on kernels
compiled with 64 KB pages). However, since these mappings are
only active during the time that UEFI Runtime Services are being
invoked, the window for abuse is rather small.
Tested-by: Mark Salter <msalter@xxxxxxxxxx>
Tested-by: Mark Rutland <mark.rutland@xxxxxxx> [UEFI 2.4 only]
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Signed-off-by: Matt Fleming <matt.fleming@xxxxxxxxx>
Reviewed-by: Mark Salter <msalter@xxxxxxxxxx>
Reviewed-by: Mark Rutland <mark.rutland@xxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # v4.0+
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Leif Lindholm <leif.lindholm@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1443218539-7610-3-git-send-email-matt@xxxxxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit a5caa209ba9c29c6421292e7879d2387a2ef39c9
Author: Matt Fleming <matt.fleming@xxxxxxxxx>
Date: Fri Sep 25 23:02:18 2015 +0100
x86/efi: Fix boot crash by mapping EFI memmap entries bottom-up at
runtime, instead of top-down
Beginning with UEFI v2.5 EFI_PROPERTIES_TABLE was introduced
that signals that the firmware PE/COFF loader supports splitting
code and data sections of PE/COFF images into separate EFI
memory map entries. This allows the kernel to map those regions
with strict memory protections, e.g. EFI_MEMORY_RO for code,
EFI_MEMORY_XP for data, etc.
Unfortunately, an unwritten requirement of this new feature is
that the regions need to be mapped with the same offsets
relative to each other as observed in the EFI memory map. If
this is not done crashes like this may occur,
BUG: unable to handle kernel paging request at fffffffefe6086dd
IP: [<fffffffefe6086dd>] 0xfffffffefe6086dd
Call Trace:
[<ffffffff8104c90e>] efi_call+0x7e/0x100
[<ffffffff81602091>] ? virt_efi_set_variable+0x61/0x90
[<ffffffff8104c583>] efi_delete_dummy_variable+0x63/0x70
[<ffffffff81f4e4aa>] efi_enter_virtual_mode+0x383/0x392
[<ffffffff81f37e1b>] start_kernel+0x38a/0x417
[<ffffffff81f37495>] x86_64_start_reservations+0x2a/0x2c
[<ffffffff81f37582>] x86_64_start_kernel+0xeb/0xef
Here 0xfffffffefe6086dd refers to an address the firmware
expects to be mapped but which the OS never claimed was mapped.
The issue is that included in these regions are relative
addresses to other regions which were emitted by the firmware
toolchain before the "splitting" of sections occurred at
runtime.
Needless to say, we don't satisfy this unwritten requirement on
x86_64 and instead map the EFI memory map entries in reverse
order. The above crash is almost certainly triggerable with any
kernel newer than v3.13 because that's when we rewrote the EFI
runtime region mapping code, in commit d2f7cbe7b26a ("x86/efi:
Runtime services virtual mapping"). For kernel versions before
v3.13 things may work by pure luck depending on the
fragmentation of the kernel virtual address space at the time we
map the EFI regions.
Instead of mapping the EFI memory map entries in reverse order,
where entry N has a higher virtual address than entry N+1, map
them in the same order as they appear in the EFI memory map to
preserve this relative offset between regions.
This patch has been kept as small as possible with the intention
that it should be applied aggressively to stable and
distribution kernels. It is very much a bugfix rather than
support for a new feature, since when EFI_PROPERTIES_TABLE is
enabled we must map things as outlined above to even boot - we
have no way of asking the firmware not to split the code/data
regions.
In fact, this patch doesn't even make use of the more strict
memory protections available in UEFI v2.5. That will come later.
Suggested-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Reported-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Signed-off-by: Matt Fleming <matt.fleming@xxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: Chun-Yi <jlee@xxxxxxxx>
Cc: Dave Young <dyoung@xxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: James Bottomley <JBottomley@xxxxxxxx>
Cc: Lee, Chun-Yi <jlee@xxxxxxxx>
Cc: Leif Lindholm <leif.lindholm@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Matthew Garrett <mjg59@xxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Jones <pjones@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1443218539-7610-2-git-send-email-matt@xxxxxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 95c2b17534654829db428f11bcf4297c059a2a7e
Author: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
Date: Sat Sep 26 12:23:56 2015 +0100
genirq: Fix race in register_irq_proc()
Per-IRQ directories in procfs are created only when a handler is first
added to the irqdesc, not when the irqdesc is created. In the case of
a shared IRQ, multiple tasks can race to create a directory. This
race condition seems to have been present forever, but is easier to
hit with async probing.
Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/1443266636.2004.2.camel@xxxxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 0bf6cd5b9531bcc29c0a5e504b6ce2984c6fd8d8
Author: Christoph Hellwig <hch@xxxxxx>
Date: Sun Sep 27 21:01:51 2015 +0200
blk-mq: factor out a helper to iterate all tags for a request_queue
And replace the blk_mq_tag_busy_iter with it - the driver use has been
replaced with a new helper a while ago, and internal to the block we
only need the new version.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit f4829a9b7a61e159367350008a608b062c4f6840
Author: Christoph Hellwig <hch@xxxxxx>
Date: Sun Sep 27 21:01:50 2015 +0200
blk-mq: fix racy updates of rq->errors
blk_mq_complete_request may be a no-op if the request has already
been completed by others means (e.g. a timeout or cancellation), but
currently drivers have to set rq->errors before calling
blk_mq_complete_request, which might leave us with the wrong error value.
Add an error parameter to blk_mq_complete_request so that we can
defer setting rq->errors until we known we won the race to complete the
request.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 5b235dc2647e4977b17b5c41d959d0f455831c3f
Author: Alban Bedel <albeu@xxxxxxx>
Date: Fri Sep 4 14:29:16 2015 +0200
MIPS: Fix the build on jz4740 after removing the custom gpio.h
Somehow the wrong version of the patch to remove the use of custom
gpio.h on mips has been merged. This patch add the missing fixes for a
build error on jz4740 because linux/gpio.h doesn't provide any machine
specfics definitions anymore.
Signed-off-by: Alban Bedel <albeu@xxxxxxx>
Cc: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: Lars-Peter Clausen <lars@xxxxxxxxxx>
Cc: Brian Norris <computersforpeace@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11089/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 95c632f4e4e6365a20397f4fd04dcf27aab02958
Merge: 4ac86a6 7ba7805
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Thu Oct 1 09:02:11 2015 +0200
Merge remote-tracking branch 'tglx/x86/urgent' into x86/urgent
Pick up the WCHAN fixes from Thomas.
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit cda374253f862bd0f43edda6935a48294fe8ed3e
Author: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Date: Thu Oct 1 14:21:40 2015 +0900
drm/exynos: Staticize local function in exynos_drm_gem.c
The exynos_drm_gem_mmap_buffer() is not used outside so make it static.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 3c79fb8c9424a24bf812b9a8cb4f19b781052b0b
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Wed Sep 30 18:40:54 2015 -0300
drm/exynos: fimd: actually disable dp clock
fimd_dp_clock_enable() was setting the always to enabled,
this patch fix this to actually use the value that is set to 'val'.
Reported-by: Emilio López <emilio.lopez@xxxxxxxxxxxxxxx>
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 148ba09c465cc54d8e68f041bf9a30332b315c39
Author: Inki Dae <inki.dae@xxxxxxxxxxx>
Date: Wed Sep 30 20:12:29 2015 +0900
drm/exynos: dp: remove suspend/resume functions
This patch removes unnecessary pm suspend/resume functions.
All kms sub drivers will be controlled by top of Exynos drm driver
and connector dpms so these sub drivers shouldn't have their own
pm interfaces.
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
Reviewed-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
commit 8d0d94015e96b8853c4f7f06eac3f269e1b3d866
Author: Fabiano Fidêncio <fidencio@xxxxxxxxxx>
Date: Thu Sep 24 15:18:34 2015 +0200
drm/qxl: recreate the primary surface when the bo is not primary
When disabling/enabling a crtc the primary area must be updated
independently of which crtc has been disabled/enabled.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1264735
Signed-off-by: Fabiano Fidêncio <fidencio@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 7b09a1bba4091a9d208481d7831682a1f3061ab9
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Wed Sep 30 19:42:15 2015 +0200
dmaengine: pxa_dma: fix residue corner case
A very tiny temporal window exists in the residue calculation where :
- upon entering residue calculation, the transfer is ongoing
- when reading the current transfer pointer, it just changed to
the "finisher/linker" descriptor
In this case, the residue returned is the whole transfer length instead
of 0. Fix it.
This appears almost in one extreme case, where the driver is used
by older clients which inquire for residue in interrupt context, such
as the smsc91x ethernet driver, in a tight loop :
interrupt_handler()
dmaengine_submit()
do {
dmaengine_tx_status()
} while (residue > 0 || status != DMA_ERROR)
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit e87ffbdf06971a80ad2a11217200bdd936195af1
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Wed Sep 30 19:42:14 2015 +0200
dmaengine: pxa_dma: fix the no-requestor case
A very small number of devices don't use the flow control offered by
requestor lines. In these specific cases, the pxa dma driver should be
aware of that and not try to use a requestor line.
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit aa3ee5f569fda51e54c224c0df60e187e9c5e582
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Sat Sep 26 17:15:47 2015 +0800
dmaengine: zxdma: Fix off-by-one for testing valid pchan request
The valid pchan range is 0 ~ d->dma_requests - 1.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Reviewed-by: Jun Nie <jun.nie@xxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 0be2136b67067617b36c70e525d7534108361e36
Author: Ludovic Desroches <ludovic.desroches@xxxxxxxxx>
Date: Tue Sep 15 15:39:11 2015 +0200
dmaengine: at_xdmac: clean used descriptor
When putting back a descriptor to the free descs list, some fields are
not set to 0, it can cause bugs if someone uses it without having this
in mind.
Descriptor are not put back one by one so it is easier to clean
descriptors when we request them.
Signed-off-by: Ludovic Desroches <ludovic.desroches@xxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx #4.2
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit a1cf09031e641d3cceaca4a4dd20ef6a785bc9b3
Author: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
Date: Tue Sep 15 15:36:00 2015 +0200
dmaengine: at_xdmac: change block increment addressing mode
The addressing mode we were using was not only incrementing the address at
each microblock, but also at each data boundary, which was severely
slowing
the transfer, without any benefit since we were not using the data stride.
Switch to the micro block increment only in order to get back to an
acceptable performance level.
Signed-off-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Ludovic Desroches <ludovic.desroches@xxxxxxxxx>
Fixes: 6007ccb57744 ("dmaengine: xdmac: Add interleaved transfer support")
Cc: stable@xxxxxxxxxxxxxxx #4.2
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 7ba78053aacb89998a052843e3c56983c31d57f0
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Wed Sep 30 08:38:23 2015 +0000
x86/process: Unify 32bit and 64bit implementations of get_wchan()
The stack layout and the functionality is identical. Use the 64bit
version for all of x86.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Reviewed-by: Borislav Petkov <bp@xxxxxxxxx>
Reviewed-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
Cc: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Andrey Konovalov <andreyknvl@xxxxxxxxxx>
Cc: Kostya Serebryany <kcc@xxxxxxxxxx>
Cc: Alexander Potapenko <glider@xxxxxxxxxx>
Cc: kasan-dev <kasan-dev@xxxxxxxxxxxxxxxx>
Cc: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Sasha Levin <sasha.levin@xxxxxxxxxx>
Cc: Wolfram Gloger <wmglo@xxxxxxxxxxxxxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/20150930083302.779694618@xxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit eddd3826a1a0190e5235703d1e666affa4d13b96
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Wed Sep 30 08:38:22 2015 +0000
x86/process: Add proper bound checks in 64bit get_wchan()
Dmitry Vyukov reported the following using trinity and the memory
error detector AddressSanitizer
(https://code.google.com/p/address-sanitizer/wiki/AddressSanitizerForKernel).
[ 124.575597] ERROR: AddressSanitizer: heap-buffer-overflow on
address ffff88002e280000
[ 124.576801] ffff88002e280000 is located 131938492886538 bytes to
the left of 28857600-byte region [ffffffff81282e0a, ffffffff82e0830a)
[ 124.578633] Accessed by thread T10915:
[ 124.579295] inlined in describe_heap_address
./arch/x86/mm/asan/report.c:164
[ 124.579295] #0 ffffffff810dd277 in asan_report_error
./arch/x86/mm/asan/report.c:278
[ 124.580137] #1 ffffffff810dc6a0 in asan_check_region
./arch/x86/mm/asan/asan.c:37
[ 124.581050] #2 ffffffff810dd423 in __tsan_read8 ??:0
[ 124.581893] #3 ffffffff8107c093 in get_wchan
./arch/x86/kernel/process_64.c:444
The address checks in the 64bit implementation of get_wchan() are
wrong in several ways:
- The lower bound of the stack is not the start of the stack
page. It's the start of the stack page plus sizeof (struct
thread_info)
- The upper bound must be:
top_of_stack - TOP_OF_KERNEL_STACK_PADDING - 2 * sizeof(unsigned
long).
The 2 * sizeof(unsigned long) is required because the stack pointer
points at the frame pointer. The layout on the stack is: ... IP FP
... IP FP. So we need to make sure that both IP and FP are in the
bounds.
Fix the bound checks and get rid of the mix of numeric constants, u64
and unsigned long. Making all unsigned long allows us to use the same
function for 32bit as well.
Use READ_ONCE() when accessing the stack. This does not prevent a
concurrent wakeup of the task and the stack changing, but at least it
avoids TOCTOU.
Also check task state at the end of the loop. Again that does not
prevent concurrent changes, but it avoids walking for nothing.
Add proper comments while at it.
Reported-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
Reported-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Based-on-patch-from: Wolfram Gloger <wmglo@xxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Reviewed-by: Borislav Petkov <bp@xxxxxxxxx>
Reviewed-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
Cc: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Andrey Konovalov <andreyknvl@xxxxxxxxxx>
Cc: Kostya Serebryany <kcc@xxxxxxxxxx>
Cc: Alexander Potapenko <glider@xxxxxxxxxx>
Cc: kasan-dev <kasan-dev@xxxxxxxxxxxxxxxx>
Cc: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Wolfram Gloger <wmglo@xxxxxxxxxxxxxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Link: http://lkml.kernel.org/r/20150930083302.694788319@xxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit dd36d7393d6310b0c1adefb22fba79c3cf8a577c
Merge: d4e842b 3cef072
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 30 13:13:55 2015 -0400
Merge git://www.linux-watchdog.org/linux-watchdog
Pull watchdog fixes from Wim Van Sebroeck:
"This fixes:
- module autoload for 3 OF platform drivers
- poweroff behaviour on bcm2835 watchdog device
- I2C dependencies for iTCO_wdt.c"
* git://www.linux-watchdog.org/linux-watchdog:
watchdog: iTCO: Fix dependencies on I2C
watchdog: bcm2835: Fix poweroff behaviour
watchdog: Fix module autoload for OF platform driver
commit d4e842be2b697eb61c8863fe4b080bf0688198a2
Merge: 70c8a00 f491e70
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 30 13:11:42 2015 -0400
Merge tag 'hwmon-for-linus-v4.3-rc4' of
git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
Pull hwmin fixes from Guenter Roeck:
"Fix module autoload for various drivers"
* tag 'hwmon-for-linus-v4.3-rc4' of
git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
hwmon: (pwm-fan) Fix module autoload for OF platform driver
hwmon: (gpio-fan) Fix module autoload for OF platform driver
hwmon: (abx500) Fix module autoload for OF platform driver
commit 70c8a00a09076ca2683ef24356fad2e55f93a427
Merge: b9a5322 7c4f1c6
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 30 13:01:35 2015 -0400
Merge branch 'core-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull RCU fixes from Ingo Molnar:
"Two RCU fixes:
- work around bug with recent GCC versions.
- fix false positive lockdep splat"
* 'core-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
rcu: Suppress lockdep false positive for rcp->exp_funnel_mutex
rcu: Change _wait_rcu_gp() to work around GCC bug 67055
commit b9a532277938798b53178d5a66af6e2915cb27cf
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 30 12:48:40 2015 -0400
Initialize msg/shm IPC objects before doing ipc_addid()
As reported by Dmitry Vyukov, we really shouldn't do ipc_addid() before
having initialized the IPC object state. Yes, we initialize the IPC
object in a locked state, but with all the lockless RCU lookup work,
that IPC object lock no longer means that the state cannot be seen.
We already did this for the IPC semaphore code (see commit e8577d1f0329:
"ipc/sem.c: fully initialize sem_array before making it visible") but we
clearly forgot about msg and shm.
Reported-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
Cc: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx>
Cc: Davidlohr Bueso <dbueso@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3e4e3805643445b71b7ee1b84892e43d004e24e2
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Sep 10 15:00:39 2015 +0200
drm/amdgpu: only print meaningful VM faults
Port of radeon commit 9b7d786b900baf7c0d1a7e211570aef1cb27590f.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 2392eec65c493c3f49a1f23f4af713e3c68cf6f5
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Tue Sep 29 10:35:45 2015 -0400
drm/amdgpu/cgs: remove import_gpu_mem
It was added for completeness, but we don't have any users
for it yet. Daniel noted that it may be racy. Remove it.
Change-Id: I5f5546f8911a4f294008a62dc86a73f3face38d1
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 7a63076d9a31a6c2073da45021eeb4f89d2a8b56
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Wed Aug 5 15:42:38 2015 -0700
MIPS: CPS: #ifdef on CONFIG_MIPS_MT_SMP rather than CONFIG_MIPS_MT
The CONFIG_MIPS_MT symbol can be selected by CONFIG_MIPS_VPE_LOADER in
addition to CONFIG_MIPS_MT_SMP. We only want MT code in the CPS SMP boot
vector if we're using MT for SMP. Thus switch the config symbol we ifdef
against to CONFIG_MIPS_MT_SMP.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # 3.16+
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10867/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit a5b0f6db0e6cf6224e50f6585e9c8f0c2d38a8f8
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Wed Aug 5 15:42:37 2015 -0700
MIPS: CPS: Don't include MT code in non-MT kernels.
The MT-specific code in mips_cps_boot_vpes can safely be omitted from
kernels which don't support MT, with the default VPE==0 case being used
as it would be after the has_mt (Config3.MT) check failed at runtime.
Discarding the code entirely will save us a few bytes & allow cleaner
handling of MT ASE instructions by later patches.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # 3.16+
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10866/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 1e5fb282f8eda889776ee83f9214d5df9edaa26d
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Wed Aug 5 15:42:36 2015 -0700
MIPS: CPS: Stop dangling delay slot from has_mt.
The has_mt macro ended with a branch, leaving its callers with a delay
slot that would be executed if Config3.MT is not set. However it would
not be executed if Config3 (or earlier Config registers) don't exist
which makes it somewhat inconsistent at best. Fill the delay slot in the
macro & fix the mips_cps_boot_vpes caller appropriately.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # 3.16+
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10865/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 53960059d56ecef67d4ddd546731623641a3d2d1
Author: James Hogan <james.hogan@xxxxxxxxxx>
Date: Fri Mar 27 08:33:43 2015 +0000
MIPS: dma-default: Fix 32-bit fall back to GFP_DMA
If there is a DMA zone (usually 24bit = 16MB I believe), but no DMA32
zone, as is the case for some 32-bit kernels, then massage_gfp_flags()
will cause DMA memory allocated for devices with a 32..63-bit
coherent_dma_mask to fall back to using __GFP_DMA, even though there may
only be 32-bits of physical address available anyway.
Correct that case to compare against a mask the size of phys_addr_t
instead of always using a 64-bit mask.
Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
Fixes: a2e715a86c6d ("MIPS: DMA: Fix computation of DMA flags from
device's coherent_dma_mask.")
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: <stable@xxxxxxxxxxxxxxx> # 2.6.36+
Patchwork: https://patchwork.linux-mips.org/patch/9610/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit b94be972538f4523f09243af7c726158f0bfae33
Author: Egbert Eich <eich@xxxxxxx>
Date: Wed Sep 23 16:13:01 2015 +0200
drm/i915: Call non-locking version of drm_kms_helper_poll_enable(), v2
drm_kms_helper_poll_enable() is called from a context in
intel_hpd_irq_storm_disable() where the the mode_config mutex is
already locked.
When this function was converted to lock this mutex in
commit 8c4ccc4ab6f6 ("drm/probe-helper: Grab mode_config.mutex
in poll_init/enable") a deadlock occurred.
Call the newly implemented non-locking version of this function.
Changes since v1:
- use function name suffix '_locked' for the function that
is to be called from a locked context.
Signed-off-by: Egbert Eich <eich@xxxxxxx>
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 4ad640e99e5e5514d623210bc937e665ffd8f43f
Author: Egbert Eich <eich@xxxxxxx>
Date: Wed Sep 23 16:13:00 2015 +0200
drm: Add a non-locking version of drm_kms_helper_poll_enable(), v2
drm_kms_helper_poll_enable() was converted to lock the mode_config
mutex in commit 8c4ccc4ab6f64e859d4ff8d7c02c2ed2e956e07f
("drm/probe-helper: Grab mode_config.mutex in poll_init/enable").
This disregarded the cases where this function is called from a context
where this mutex is already locked.
Add a non-locking version as well.
Changes since v1:
- use function name suffix '_locked' for the function that
is to be called from a locked context.
Signed-off-by: Egbert Eich <eich@xxxxxxx>
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 031277d4d33d33f0174fbb569ca8f68238175617
Author: Chaotian Jing <chaotian.jing@xxxxxxxxxxxx>
Date: Wed Sep 30 17:37:18 2015 +0800
mmc: core: fix dead loop of mmc_retune
When get a CRC error, start the mmc_retune, it will issue CMD19/CMD21
to do tune, assume there were 10 clock phase need to try, phase 0 to
phase 6 is ok, phase 7 to phase 9 is NG, we try it from 0 to 9, so
the last CMD19/CMD21 will get CRC error, host->need_retune was set and
cause mmc_retune was called, then dead loop of mmc_retune
Signed-off-by: Chaotian Jing <chaotian.jing@xxxxxxxxxxxx>
Acked-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Fixes: bd11e8bd03ca ("mmc: core: Flag re-tuning is needed on CRC errors")
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 575f9c8604e0b4c7b36fb41fc5fd280a3c336906
Author: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Date: Tue Sep 29 07:49:56 2015 -0700
drm/vmwgfx: Fix a command submission hang regression
When we're out of command buffer space, we turn on the command buffer
processed irq without re-checking for finished command buffers afterwards.
This might lead to a missed irq and the command submission process waiting
forever for space.
Fix this by rerunning the command buffer submission handler whenever we're
out of command space. This ensures both that we don't needlessly turn on
the irq, and that if we decide to turn on the irq, we recheck for finished
command buffers before going to sleep.
Reported-and-tested-by: Bryan Li <ldexin@xxxxxxxxxx>
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
commit 96fc7a9cee671f10e14aaca44833696a71f1ebdb
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Wed Sep 30 14:24:31 2015 +0200
MIPS: Wire up userfaultfd and membarrier syscalls.
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 6bea0f6d1c47b07be88dfd93f013ae05fcb3d8bf
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Mon Sep 28 18:57:03 2015 +0300
dmaengine: dw: properly read DWC_PARAMS register
In case we have less than maximum allowed channels (8) and
autoconfiguration is
enabled the DWC_PARAMS read is wrong because it uses different arithmetic
to
what is needed for channel priority setup.
Re-do the caclulations properly. This now works on AVR32 board well.
Fixes: fed2574b3c9f (dw_dmac: introduce software emulation of LLP
transfers)
Cc: yitian.bu@xxxxxxxxxxxxxx
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 10d97d5869f9a50eb3142c7ee562ecc5b5b33f5b
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Tue Sep 29 17:59:19 2015 -0300
drm/exynos: remove unused mode_fixup() code
CRTC's mode_fixup() isn't used anymore in exynos, remove it.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 208d7ee3c89e5e94627aa33331b15dd4df814707
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Tue Sep 29 17:59:18 2015 -0300
drm/exynos: remove decon_mode_fixup()
The only thing mode_fixup was doing was set the adjusted_mode->vrefresh to
60, but it already has the value of 60 when the decon_mode_fixup() is
called. That means this call is actually pointless and can be removed.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 50bbfbffa5c894def440ce8157dfe53e60960d35
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Tue Sep 29 17:59:17 2015 -0300
drm/exynos: remove fimd_mode_fixup()
The only thing mode_fixup was doing was set the adjusted_mode->vrefresh to
60, but it already has the value of 60 when the fimd_mode_fixup() is
called. That means this call is actually pointless and can be removed.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit ee08b59d47d859ed0a11ab331a3fbc5ab3b56100
Author: Rameshwar Prasad Sahu <rsahu@xxxxxxx>
Date: Wed Sep 16 13:33:23 2015 +0530
dmaengine: xgene-dma: Fix overwritting DMA tx ring
This patch fixes an over flow issue with the TX ring descriptor. Each
descriptor is 32B in size and an operation requires 2 of these
descriptors.
Signed-off-by: Rameshwar Prasad Sahu <rsahu@xxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 214fc4e423ff38b41b60db2209cf49b4e9a7209b
Author: Peter Ujfalusi <peter.ujfalusi@xxxxxx>
Date: Thu Sep 24 12:03:35 2015 +0300
dmaengine: fix balance of privatecnt
dma_release_channel() decrements privatecnt counter and almost all
dma_get*
function increments it with the exception of dma_get_slave_channel().
In most cases this does not cause issue since normally the channel is not
requested and released, but if a driver requests DMA channel via
dma_get_slave_channel() and releases the channel the privatecnt will be
unbalanced and this will prevent for example getting channel for memcpy.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 85a82038b2744f87cb297f93ddecd04a8c2979bd
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Thu Sep 24 12:14:15 2015 +0200
drm/exynos: rotator: Clock control is unused if !PM
Protect the rotator_clk_crtl() function with an #ifdef CONFIG_PM guard
to avoid "defined but not used" warnings.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Reviewed-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 641a2fef39369c27df887e82cd63aee3de93f511
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Thu Sep 24 12:14:14 2015 +0200
drm/exynos: fimc: Clock control is unused if !PM
Protect the fimc_clk_ctrl() function with an #ifdef CONFIG_PM guard to
avoid "defined but not used" warnings.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Reviewed-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 7082947eff3b1ddbb5d320331c846a5a2fc88261
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Thu Sep 24 12:14:13 2015 +0200
drm/exynos: Suspend/resume is unused if !PM
Protect the suspend and resume callbacks with an #ifdef CONFIG_PM_SLEEP
guard to avoid "defined but not used" warnings.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 48cf53f4343ae12ddc1c60dbe116161ecf7a2885
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Jul 28 17:53:23 2015 +0900
drm/exynos: create a fake mmap offset with gem creation
Don't create a fake mmap offset in exynos_drm_gem_dumb_map_offset. If
not, it will call drm_gem_create_mmap_offset whenever user requests
DRM_IOCTL_MODE_MAP_DUMB ioctl.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 8755556fbbdd1a6af21a3c4d9ce8f451e999e457
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Fri Sep 25 18:10:32 2015 +0900
drm/exynos: remove call to drm_gem_free_mmap_offset()
The drm_gem_object_release() function already performs this cleanup,
so there is no reason to do it explicitly.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit b9e71911f34616276399da3dc1abc47797be2396
Author: Daniel Kurtz <djkurtz@xxxxxxxxxxxx>
Date: Wed Sep 9 12:55:25 2015 -0300
drm/exynos: Remove useless EXPORT_SYMBOL_GPLs
All the user of these functions are inside exynos-drm driver and
you don't need to export the symbols for that case.
Signed-off-by: Daniel Kurtz <djkurtz@xxxxxxxxxxxx>
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit b4cfd4ddfb555c8cda7b0aa55c0e37522f8e01e4
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Wed Sep 16 14:29:35 2015 +0900
drm/exynos: cleanup line feed in exynos_drm_gem_get_ioctl
The beginning of statement in function is next line of a brace.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 333e8e58b0bed137e940ac92c2af3f3aa4603504
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Wed Sep 16 14:29:34 2015 +0900
drm/exynos: cleanup function calling written twice
By if statment, some function callings are written twice. It needs
several line feed by indentation in if statment. Make to one function
calling from outside if statment.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit b319dc6a61518cc02ae21afb383901236009aab1
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Wed Sep 16 14:29:33 2015 +0900
drm/exynos: staticize exynos_drm_gem_init()
The exynos_drm_gem_init() is used only in exynos_drm_gem.c file. Make it
static and don't export it.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 0269b1a17f8f887c02ae37affef884e1ffda3df6
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Wed Sep 16 14:29:32 2015 +0900
drm/exynos: remove unnecessary NULL assignment
They will be freed right or was freed already, so NULL assignment is
unnecessary.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 7c93537a47e15e04064158ccdbe28f88ee61170c
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Wed Sep 16 14:14:54 2015 +0900
drm/exynos: fix missed calling of drm_prime_gem_destroy()
When obj->import_attach is existed, code calling drm_prime_gem_destroy()
was removed from commit 67e93c808b48 ("drm/exynos: stop copying sg
table"), and it's a fault.
The drm_prime_gem_destroy() is cleanup function which GEM drivers need
to call when they use drm_gem_prime_import() to import dma-bufs, so
exynos-drm driver using drm_gem_prime_import() needs calling
drm_prime_gem_destroy().
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 5e0fb1f9eb754eed8432392bfdc100ef295676cd
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Wed Sep 16 14:16:45 2015 +0900
drm/exynos: fix layering violation of address
There is no guarantee that DMA addresses are the same as physical
addresses, but dma_to_pfn() knows how to convert a dma_addr_t to a PFN
which can then be converted to a struct page.
Suggested-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 4ac86a6dcec1c3878de9747bf5a2aa4455be69e3
Author: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Date: Tue Sep 29 19:40:14 2015 +0300
x86, efi, kasan: Fix build failure on !KASAN && KMEMCHECK=y kernels
With KMEMCHECK=y, KASAN=n we get this build failure:
arch/x86/platform/efi/efi.c:673:3: error: implicit declaration of
function â??memcpyâ?? [-Werror=implicit-function-declaration]
arch/x86/platform/efi/efi_64.c:139:2: error: implicit declaration of
function â??memcpyâ?? [-Werror=implicit-function-declaration]
arch/x86/include/asm/desc.h:121:2: error: implicit declaration of
function â??memcpyâ?? [-Werror=implicit-function-declaration]
Don't #undef memcpy if KASAN=n.
Reported-by: Ingo Molnar <mingo@xxxxxxxxxx>
Reported-by: Sedat Dilek <sedat.dilek@xxxxxxxxx>
Signed-off-by: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Matt Fleming <matt.fleming@xxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Fixes: 769a8089c1fd ("x86, efi, kasan: #undef memset/memcpy/memmove per
arch")
Link:
http://lkml.kernel.org/r/1443544814-20122-1-git-send-email-ryabinin.a.a@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit ccf79c238f1a06a801b4c4449b9bc8a42be2c7bc
Merge: 1e03474 9ffecb1
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Wed Sep 30 09:29:27 2015 +0200
Merge tag 'v4.3-rc3' into x86/urgent, before applying dependent fix
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 40482e64b0b84388561b00b880eeca7000f72d38
Author: Emilio López <emilio@xxxxxxxxxxxxx>
Date: Sun Sep 13 17:15:53 2015 -0300
dmaengine: sun4i: fix unsafe list iteration
Currently, sun4i_dma_free_contract iterates over lists and frees memory
as it goes through them, causing reads to recently freed memory to
be performed. Fix this by using the safe version of the iterator, so
freed memory is not referenced at all.
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Emilio López <emilio@xxxxxxxxxxxxx>
Acked-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 1e034743e918d195d339af340ae933727c072bce
Author: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
Date: Wed Sep 23 12:02:57 2015 +0200
x86/hyperv: Fix the build in the !CONFIG_KEXEC_CORE case
Recent changes in the Hyper-V driver:
b4370df2b1f5 ("Drivers: hv: vmbus: add special crash handler")
broke the build when CONFIG_KEXEC_CORE is not set:
arch/x86/built-in.o: In function `hv_machine_crash_shutdown':
arch/x86/kernel/cpu/mshyperv.c:112: undefined reference to
`native_machine_crash_shutdown'
Decorate all kexec related code with #ifdef CONFIG_KEXEC_CORE.
Reported-by: Jim Davis <jim.epost@xxxxxxxxx>
Reported-by: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxxxx
Cc: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Cc: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1443002577-25370-1-git-send-email-vkuznets@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit b84f78782052ee4516903e5d0566a5eee365b771
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 29 19:07:07 2015 -0700
net: Initialize flow flags in input path
The fib_table_lookup tracepoint found 2 places where the flowi4_flags is
not initialized.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 57a47532c4312159935c98b7f1cf0e62296b9171
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 29 14:17:54 2015 -0400
net: dsa: fix preparation of a port STP update
Because of the default 0 value of ret in dsa_slave_port_attr_set, a
driver may return -EOPNOTSUPP from the commit phase of a STP state,
which triggers a WARN() from switchdev.
This happened on a 6185 switch which does not support hardware bridging.
Fixes: 3563606258cf ("switchdev: convert STP update to switchdev attr
set")
Reported-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9ae6d4935e3df35a23bbbe531c6b9ff314e7fd0f
Author: Thomas Huth <thuth@xxxxxxxxxx>
Date: Tue Sep 29 17:45:28 2015 +0200
testptp: Silence compiler warnings on ppc64
When compiling Documentation/ptp/testptp.c the following compiler
warnings are printed out:
Documentation/ptp/testptp.c: In function â??mainâ??:
Documentation/ptp/testptp.c:367:11: warning: format â??%lldâ?? expects
argument
of type â??long long intâ??, but argument 3 has type â??__s64â??
[-Wformat=]
event.t.sec, event.t.nsec);
^
Documentation/ptp/testptp.c:505:5: warning: format â??%lldâ?? expects
argument
of type â??long long intâ??, but argument 2 has type â??__s64â??
[-Wformat=]
(pct+2*i)->sec, (pct+2*i)->nsec);
^
Documentation/ptp/testptp.c:507:5: warning: format â??%lldâ?? expects
argument
of type â??long long intâ??, but argument 2 has type â??__s64â??
[-Wformat=]
(pct+2*i+1)->sec, (pct+2*i+1)->nsec);
^
Documentation/ptp/testptp.c:509:5: warning: format â??%lldâ?? expects
argument
of type â??long long intâ??, but argument 2 has type â??__s64â??
[-Wformat=]
(pct+2*i+2)->sec, (pct+2*i+2)->nsec);
This happens because __s64 is by default defined as "long" on ppc64,
not as "long long". However, to fix these warnings, it's possible to
define the __SANE_USERSPACE_TYPES__ so that __s64 gets defined to
"long long" on ppc64, too.
Signed-off-by: Thomas Huth <thuth@xxxxxxxxxx>
Acked-by: Richard Cochran <richardcochran@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 23860f103b53e764a3cbbf615d08f88362a28295
Author: Robb Manes <rmanes@xxxxxxxxxx>
Date: Tue Sep 29 11:03:37 2015 -0400
net/mlx4: Handle return codes in mlx4_qp_attach_common
Both new_steering_entry() and existing_steering_entry() return values
based on their success or failure, but currently they fall through
silently. This can make troubleshooting difficult, as we were unable
to tell which one of these two functions returned errors or
specifically what code was returned. This patch remedies that
situation by passing the return codes to err, which is returned by
mlx4_qp_attach_common() itself.
This also addresses a leak in the call to mlx4_bitmap_free() as well.
Signed-off-by: Robb Manes <rmanes@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c047a1f918af75e572a19ba0581c3e3e202ed698
Author: Andrew Lunn <andrew@xxxxxxx>
Date: Tue Sep 29 01:50:56 2015 +0200
dsa: mv88e6xxx: Enable forwarding for unknown to the CPU port
Frames destined to an unknown address must be forwarded to the CPU
port. Otherwise incoming ARP, dhcp leases, etc, do not work.
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 31b33dfb0a144469dd805514c9e63f4993729a48
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Mon Sep 28 17:24:25 2015 -0700
skbuff: Fix skb checksum partial check.
Earlier patch 6ae459bda tried to detect void ckecksum partial
skb by comparing pull length to checksum offset. But it does
not work for all cases since checksum-offset depends on
updates to skb->data.
Following patch fixes it by validating checksum start offset
after skb-data pointer is updated. Negative value of checksum
offset start means there is no need to checksum.
Fixes: 6ae459bda ("skbuff: Fix skb checksum flag on skb pull")
Reported-by: Andrew Vagin <avagin@xxxxxxxx>
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 218c1f76b8b25d6dc9d01443f071cb618e206b0c
Author: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
Date: Tue Sep 29 15:54:58 2015 -0700
Input: psmouse - fix data race in __ps2_command
The data race happens on ps2dev->cmdcnt and ps2dev->cmdbuf contents.
__ps2_command reads that data concurrently with the interrupt handler. As
the result, for example, if a response arrives just after the timeout,
__ps2_command can copy out garbage from ps2dev->cmdbuf but then see that
ps2dev->cmdcnt is 0 and return success.
Stop the interrupt handler with serio_pause_rx() before reading the
results.
The data race was found with KernelThreadSanitizer (KTSAN).
Signed-off-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 741a11d9e4103a8e1c590ef1280143fe654e4e33
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 28 10:12:13 2015 -0700
net: ipv6: Add RT6_LOOKUP_F_IFACE flag if oif is set
Wolfgang reported that IPv6 stack is ignoring oif in output route lookups:
With ipv6, ip -6 route get always returns the specific route.
$ ip -6 r
2001:db8:e2::1 dev enp2s0 proto kernel metric 256
2001:db8:e2::/64 dev enp2s0 metric 1024
2001:db8:e3::1 dev enp3s0 proto kernel metric 256
2001:db8:e3::/64 dev enp3s0 metric 1024
fe80::/64 dev enp3s0 proto kernel metric 256
default via 2001:db8:e3::255 dev enp3s0 metric 1024
$ ip -6 r get 2001:db8:e2::100
2001:db8:e2::100 from :: dev enp2s0 src 2001:db8:e3::1 metric 0
cache
$ ip -6 r get 2001:db8:e2::100 oif enp3s0
2001:db8:e2::100 from :: dev enp2s0 src 2001:db8:e3::1 metric 0
cache
The stack does consider the oif but a mismatch in rt6_device_match is not
considered fatal because RT6_LOOKUP_F_IFACE is not set in the flags.
Cc: Wolfgang Nothdurft <netdev@xxxxxxxxxxxxx>
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 75c261b51ba19f0791de608f0acfb94956f78c76
Author: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 28 15:05:33 2015 +0200
net sysfs: Print link speed as signed integer
Otherwise 4294967295 (MBit/s) (-1) will be printed when there is no link.
Documentation/ABI/testing/sysfs-class-net does not state if this shall be
signed or unsigned.
Also remove the now unused variable fmt_udec.
Signed-off-by: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4c52b1da538800a30f030eeb697366c23daf2ef3
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Mon Sep 28 10:49:48 2015 +0200
bna: fix error handling
Several functions can return negative value in case of error,
so their return type should be fixed as well as type of variables
to which this value is assigned.
The problem has been detected using proposed semantic patch
scripts/coccinelle/tests/assign_signed_to_unsigned.cocci [1].
[1]: http://permalink.gmane.org/gmane.linux.kernel/2046107
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3504bb639ec793c181de6e33a205fc8ca6cf32bf
Merge: 2103d6b 9f389e3
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Sep 29 13:47:08 2015 -0700
Merge branch 'af_unix_MSG_PEEK'
Aaron Conole says:
====================
af_unix: return data from multiple SKBs on recv() with MSG_PEEK flag
This patch set implements a bugfix for kernel.org bugzilla #12323,
allowing
MSG_PEEK to return all queued data on the unix domain socket, not just the
data contained in a single SKB.
This is the v3 version of this patch, which includes a suggested
modification
by Eric Dumazet to convert the unix_sk() conversion macro to a static
inline
function. These patches are independent and can be applied separately.
This set was tested over a 24-hour period, utilizing a loop continually
executing the bugzilla issue attached python code. It was instrumented
with
a pr_err_once() ([ 13.798683] unix: went there at least one time).
v2->v3:
- Added Eric Dumazet's suggestion for #define to static inline
- Fixed an issue calling unix_state_lock() with an invalid argument
v3->v4:
- Eliminated an XXX comment
- Changed from goto unlock to explicit unix_state_unlock() and break
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9f389e35674f5b086edd70ed524ca0f287259725
Author: Aaron Conole <aconole@xxxxxxxxxx>
Date: Sat Sep 26 18:50:43 2015 -0400
af_unix: return data from multiple SKBs on recv() with MSG_PEEK flag
AF_UNIX sockets now return multiple skbs from recv() when MSG_PEEK flag
is set.
This is referenced in kernel bugzilla #12323 @
https://bugzilla.kernel.org/show_bug.cgi?id=12323
As described both in the BZ and lkml thread @
http://lkml.org/lkml/2008/1/8/444 calling recv() with MSG_PEEK on an
AF_UNIX socket only reads a single skb, where the desired effect is
to return as much skb data has been queued, until hitting the recv
buffer size (whichever comes first).
The modified MSG_PEEK path will now move to the next skb in the tree
and jump to the again: label, rather than following the natural loop
structure. This requires duplicating some of the loop head actions.
This was tested using the python socketpair python code attached to
the bugzilla issue.
Signed-off-by: Aaron Conole <aconole@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4613012db1d911f80897f9446a49de817b2c4c47
Author: Aaron Conole <aconole@xxxxxxxxxx>
Date: Sat Sep 26 18:50:42 2015 -0400
af_unix: Convert the unix_sk macro to an inline function for type safety
As suggested by Eric Dumazet this change replaces the
#define with a static inline function to enjoy
complaints by the compiler when misusing the API.
Signed-off-by: Aaron Conole <aconole@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 74b3112e95073b351e3b0b9799795bc76f8415fa
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Tue Sep 29 13:53:30 2015 -0400
drm/amdgpu: Restore LCD backlight level on resume
Instead of only enabling the backlight (which seems to set it to max
brightness), just re-set the current backlight level, which also takes
care of enabling the backlight if necessary.
Port of radeon commit:
drm/radeon: Restore LCD backlight level on resume (>= R5xx)
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 4281f46ef839050d2ef60348f661eb463c21cc2e
Author: Michel Dänzer <michel.daenzer@xxxxxxx>
Date: Mon Sep 28 18:16:31 2015 +0900
drm/radeon: Restore LCD backlight level on resume (>= R5xx)
Instead of only enabling the backlight (which seems to set it to max
brightness), just re-set the current backlight level, which also takes
care of enabling the backlight if necessary.
Only the radeon_atom_encoder_dpms_dig part tested on a Kaveri laptop,
the radeon_atom_encoder_dpms_avivo part is only compile tested.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Michel Dänzer <michel.daenzer@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 54313503f9a3c34a9e45aad7654976b7f50b9ae7
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Fri Sep 25 14:36:55 2015 +0300
drm/amdgpu: signedness bug in amdgpu_cs_parser_init()
The "i" variable should be signed or it leads to a crash in the error
handling code.
Fixes: 1d263474c441 ('drm/amdgpu: unwind properly in
amdgpu_cs_parser_init()')
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 60de074ba1e8f327db19bc33d8530131ac01695d
Author: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Date: Sun Sep 27 02:09:25 2015 +0900
blk-mq: fix deadlock when reading cpu_list
CPU hotplug handling for blk-mq (blk_mq_queue_reinit) acquires
all_q_mutex in blk_mq_queue_reinit_notify() and then removes sysfs
entries by blk_mq_sysfs_unregister(). Removing sysfs entry needs to
be blocked until the active reference of the kernfs_node to be zero.
On the other hand, reading blk_mq_hw_sysfs_cpu sysfs entry (e.g.
/sys/block/nullb0/mq/0/cpu_list) acquires all_q_mutex in
blk_mq_hw_sysfs_cpus_show().
If these happen at the same time, a deadlock can happen. Because one
can wait for the active reference to be zero with holding all_q_mutex,
and the other tries to acquire all_q_mutex with holding the active
reference.
The reason that all_q_mutex is acquired in blk_mq_hw_sysfs_cpus_show()
is to avoid reading an imcomplete hctx->cpumask. Since reading sysfs
entry for blk-mq needs to acquire q->sysfs_lock, we can avoid deadlock
and reading an imcomplete hctx->cpumask by protecting q->sysfs_lock
while hctx->cpumask is being updated.
Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Reviewed-by: Ming Lei <tom.leiming@xxxxxxxxx>
Cc: Ming Lei <tom.leiming@xxxxxxxxx>
Cc: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 5778322e67ed34dc9f391a4a5cbcbb856071ceba
Author: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Date: Sun Sep 27 02:09:23 2015 +0900
blk-mq: avoid inserting requests before establishing new mapping
Notifier callbacks for CPU_ONLINE action can be run on the other CPU
than the CPU which was just onlined. So it is possible for the
process running on the just onlined CPU to insert request and run
hw queue before establishing new mapping which is done by
blk_mq_queue_reinit_notify().
This can cause a problem when the CPU has just been onlined first time
since the request queue was initialized. At this time ctx->index_hw
for the CPU, which is the index in hctx->ctxs[] for this ctx, is still
zero before blk_mq_queue_reinit_notify() is called by notifier
callbacks for CPU_ONLINE action.
For example, there is a single hw queue (hctx) and two CPU queues
(ctx0 for CPU0, and ctx1 for CPU1). Now CPU1 is just onlined and
a request is inserted into ctx1->rq_list and set bit0 in pending
bitmap as ctx1->index_hw is still zero.
And then while running hw queue, flush_busy_ctxs() finds bit0 is set
in pending bitmap and tries to retrieve requests in
hctx->ctxs[0]->rq_list. But htx->ctxs[0] is a pointer to ctx0, so the
request in ctx1->rq_list is ignored.
Fix it by ensuring that new mapping is established before onlined cpu
starts running.
Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Reviewed-by: Ming Lei <tom.leiming@xxxxxxxxx>
Cc: Jens Axboe <axboe@xxxxxxxxx>
Cc: Ming Lei <tom.leiming@xxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 0e6263682014d480b8d7b8c10287f4536066b54f
Author: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Date: Sun Sep 27 02:09:22 2015 +0900
blk-mq: fix q->mq_usage_counter access race
CPU hotplug handling for blk-mq (blk_mq_queue_reinit) accesses
q->mq_usage_counter while freezing all request queues in all_q_list.
On the other hand, q->mq_usage_counter is deinitialized in
blk_mq_free_queue() before deleting the queue from all_q_list.
So if CPU hotplug event occurs in the window, percpu_ref_kill() is
called with q->mq_usage_counter which has already been marked dead,
and it triggers warning. Fix it by deleting the queue from all_q_list
earlier than destroying q->mq_usage_counter.
Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Reviewed-by: Ming Lei <tom.leiming@xxxxxxxxx>
Cc: Ming Lei <tom.leiming@xxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit a723bab3d7529133f71fc8a5e96f86e3639a0d13
Author: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Date: Sun Sep 27 02:09:21 2015 +0900
blk-mq: Fix use after of free q->mq_map
CPU hotplug handling for blk-mq (blk_mq_queue_reinit) updates
q->mq_map by blk_mq_update_queue_map() for all request queues in
all_q_list. On the other hand, q->mq_map is released before deleting
the queue from all_q_list.
So if CPU hotplug event occurs in the window, invalid memory access
can happen. Fix it by releasing q->mq_map in blk_mq_release() to make
it happen latter than removal from all_q_list.
Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Suggested-by: Ming Lei <tom.leiming@xxxxxxxxx>
Reviewed-by: Ming Lei <tom.leiming@xxxxxxxxx>
Cc: Ming Lei <tom.leiming@xxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 4593fdbe7a2f44d5e64c627c715dd0bcec9bdf14
Author: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Date: Sun Sep 27 02:09:20 2015 +0900
blk-mq: fix sysfs registration/unregistration race
There is a race between cpu hotplug handling and adding/deleting
gendisk for blk-mq, where both are trying to register and unregister
the same sysfs entries.
null_add_dev
--> blk_mq_init_queue
--> blk_mq_init_allocated_queue
--> add to 'all_q_list' (*)
--> add_disk
--> blk_register_queue
--> blk_mq_register_disk (++)
null_del_dev
--> del_gendisk
--> blk_unregister_queue
--> blk_mq_unregister_disk (--)
--> blk_cleanup_queue
--> blk_mq_free_queue
--> del from 'all_q_list' (*)
blk_mq_queue_reinit
--> blk_mq_sysfs_unregister (-)
--> blk_mq_sysfs_register (+)
While the request queue is added to 'all_q_list' (*),
blk_mq_queue_reinit() can be called for the queue anytime by CPU
hotplug callback. But blk_mq_sysfs_unregister (-) and
blk_mq_sysfs_register (+) in blk_mq_queue_reinit must not be called
before blk_mq_register_disk (++) and after blk_mq_unregister_disk (--)
is finished. Because '/sys/block/*/mq/' is not exists.
There has already been BLK_MQ_F_SYSFS_UP flag in hctx->flags which can
be used to track these sysfs stuff, but it is only fixing this issue
partially.
In order to fix it completely, we just need per-queue flag instead of
per-hctx flag with appropriate locking. So this introduces
q->mq_sysfs_init_done which is properly protected with all_q_mutex.
Also, we need to ensure that blk_mq_map_swqueue() is called with
all_q_mutex is held. Since hctx->nr_ctx is reset temporarily and
updated in blk_mq_map_swqueue(), so we should avoid
blk_mq_register_hctx() seeing the temporary hctx->nr_ctx value
in CPU hotplug handling or adding/deleting gendisk .
Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Reviewed-by: Ming Lei <tom.leiming@xxxxxxxxx>
Cc: Ming Lei <tom.leiming@xxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 1356aae08338f1c19ce1c67bf8c543a267688fc3
Author: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Date: Sun Sep 27 02:09:19 2015 +0900
blk-mq: avoid setting hctx->tags->cpumask before allocation
When unmapped hw queue is remapped after CPU topology is changed,
hctx->tags->cpumask has to be set after hctx->tags is setup in
blk_mq_map_swqueue(), otherwise it causes null pointer dereference.
Fixes: f26cdc8536 ("blk-mq: Shared tag enhancements")
Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Cc: Keith Busch <keith.busch@xxxxxxxxx>
Cc: Ming Lei <tom.leiming@xxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit bdf7344e14d826d0df438a55fc51146d179e198d
Author: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Date: Sun Sep 20 07:00:35 2015 -0700
clocksource/drivers/keystone: Fix bad NO_IRQ usage
The current code assumes the 'irq_of_parse_and_map' will return NO_IRQ in
case
of failure. Unfortunately, the NO_IRQ is not consistent across the
different
architectures and we must not rely on it.
NO_IRQ is equal to '-1' on ARM and 'irq_of_parse_and_map' returns '0' in
case
of an error. Hence, the latter won't be detected and will lead to a crash.
Fix this by just checking 'irq' is different from zero.
Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
commit ccc42592d436d021d17f86729d24806f30dbad25
Author: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Date: Sun Sep 20 07:00:10 2015 -0700
clocksource/drivers/rockchip: Fix bad NO_IRQ usage
The current code assumes the 'irq_of_parse_and_map' will return NO_IRQ in
case
of failure. Unfortunately, the NO_IRQ is not consistent across the
different
architectures and we must not rely on it.
NO_IRQ is equal to '-1' on ARM and 'irq_of_parse_and_map' returns '0' in
case
of an error. Hence, the latter won't be detected and will lead to a crash.
Fix this by just checking 'irq' is different from zero.
Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
commit 7c7feb2ebfc9c0552c51f0c050db1d1a004faac5
Author: shengyong <shengyong1@xxxxxxxxxx>
Date: Mon Sep 28 17:57:19 2015 +0000
UBI: return ENOSPC if no enough space available
UBI: attaching mtd1 to ubi0
UBI: scanning is finished
UBI error: init_volumes: not enough PEBs, required 706, available 686
UBI error: ubi_wl_init: no enough physical eraseblocks (-20, need 1)
UBI error: ubi_attach_mtd_dev: failed to attach mtd1, error -12 <= NOT
ENOMEM
UBI error: ubi_init: cannot attach mtd1
If available PEBs are not enough when initializing volumes, return -ENOSPC
directly. If available PEBs are not enough when initializing WL, return
-ENOSPC instead of -ENOMEM.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Sheng Yong <shengyong1@xxxxxxxxxx>
Signed-off-by: Richard Weinberger <richard@xxxxxx>
Reviewed-by: David Gstir <david@xxxxxxxxxxxxx>
commit 281fda27673f833a01d516658a64d22a32c8e072
Author: Richard Weinberger <richard@xxxxxx>
Date: Tue Sep 22 23:58:07 2015 +0200
UBI: Validate data_size
Make sure that data_size is less than LEB size.
Otherwise a handcrafted UBI image is able to trigger
an out of bounds memory access in ubi_compare_lebs().
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Richard Weinberger <richard@xxxxxx>
Reviewed-by: David Gstir <david@xxxxxxxxxxxxx>
commit cf6f54e3f133229f02a90c04fe0ff9dd9d3264b4
Author: Richard Weinberger <richard@xxxxxx>
Date: Wed Jul 8 11:46:36 2015 +0200
UBIFS: Kill unneeded locking in ubifs_init_security
Fixes the following lockdep splat:
[ 1.244527] =============================================
[ 1.245193] [ INFO: possible recursive locking detected ]
[ 1.245193] 4.2.0-rc1+ #37 Not tainted
[ 1.245193] ---------------------------------------------
[ 1.245193] cp/742 is trying to acquire lock:
[ 1.245193] (&sb->s_type->i_mutex_key#9){+.+.+.}, at:
[<ffffffff812b3f69>] ubifs_init_security+0x29/0xb0
[ 1.245193]
[ 1.245193] but task is already holding lock:
[ 1.245193] (&sb->s_type->i_mutex_key#9){+.+.+.}, at:
[<ffffffff81198e7f>] path_openat+0x3af/0x1280
[ 1.245193]
[ 1.245193] other info that might help us debug this:
[ 1.245193] Possible unsafe locking scenario:
[ 1.245193]
[ 1.245193] CPU0
[ 1.245193] ----
[ 1.245193] lock(&sb->s_type->i_mutex_key#9);
[ 1.245193] lock(&sb->s_type->i_mutex_key#9);
[ 1.245193]
[ 1.245193] *** DEADLOCK ***
[ 1.245193]
[ 1.245193] May be due to missing lock nesting notation
[ 1.245193]
[ 1.245193] 2 locks held by cp/742:
[ 1.245193] #0: (sb_writers#5){.+.+.+}, at: [<ffffffff811ad37f>]
mnt_want_write+0x1f/0x50
[ 1.245193] #1: (&sb->s_type->i_mutex_key#9){+.+.+.}, at:
[<ffffffff81198e7f>] path_openat+0x3af/0x1280
[ 1.245193]
[ 1.245193] stack backtrace:
[ 1.245193] CPU: 2 PID: 742 Comm: cp Not tainted 4.2.0-rc1+ #37
[ 1.245193] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
BIOS rel-1.7.5-0-ge51488c-20140816_022509-build35 04/01/2014
[ 1.245193] ffffffff8252d530 ffff88007b023a38 ffffffff814f6f49
ffffffff810b56c5
[ 1.245193] ffff88007c30cc80 ffff88007b023af8 ffffffff810a150d
ffff88007b023a68
[ 1.245193] 000000008101302a ffff880000000000 00000008f447e23f
ffffffff8252d500
[ 1.245193] Call Trace:
[ 1.245193] [<ffffffff814f6f49>] dump_stack+0x4c/0x65
[ 1.245193] [<ffffffff810b56c5>] ? console_unlock+0x1c5/0x510
[ 1.245193] [<ffffffff810a150d>] __lock_acquire+0x1a6d/0x1ea0
[ 1.245193] [<ffffffff8109fa78>] ? __lock_is_held+0x58/0x80
[ 1.245193] [<ffffffff810a1a93>] lock_acquire+0xd3/0x270
[ 1.245193] [<ffffffff812b3f69>] ? ubifs_init_security+0x29/0xb0
[ 1.245193] [<ffffffff814fc83b>] mutex_lock_nested+0x6b/0x3a0
[ 1.245193] [<ffffffff812b3f69>] ? ubifs_init_security+0x29/0xb0
[ 1.245193] [<ffffffff812b3f69>] ? ubifs_init_security+0x29/0xb0
[ 1.245193] [<ffffffff812b3f69>] ubifs_init_security+0x29/0xb0
[ 1.245193] [<ffffffff8128e286>] ubifs_create+0xa6/0x1f0
[ 1.245193] [<ffffffff81198e7f>] ? path_openat+0x3af/0x1280
[ 1.245193] [<ffffffff81195d15>] vfs_create+0x95/0xc0
[ 1.245193] [<ffffffff8119929c>] path_openat+0x7cc/0x1280
[ 1.245193] [<ffffffff8109ffe3>] ? __lock_acquire+0x543/0x1ea0
[ 1.245193] [<ffffffff81088f20>] ? sched_clock_cpu+0x90/0xc0
[ 1.245193] [<ffffffff81088c00>] ? calc_global_load_tick+0x60/0x90
[ 1.245193] [<ffffffff81088f20>] ? sched_clock_cpu+0x90/0xc0
[ 1.245193] [<ffffffff811a9cef>] ? __alloc_fd+0xaf/0x180
[ 1.245193] [<ffffffff8119ac55>] do_filp_open+0x75/0xd0
[ 1.245193] [<ffffffff814ffd86>] ? _raw_spin_unlock+0x26/0x40
[ 1.245193] [<ffffffff811a9cef>] ? __alloc_fd+0xaf/0x180
[ 1.245193] [<ffffffff81189bd9>] do_sys_open+0x129/0x200
[ 1.245193] [<ffffffff81189cc9>] SyS_open+0x19/0x20
[ 1.245193] [<ffffffff81500717>] entry_SYSCALL_64_fastpath+0x12/0x6f
While the lockdep splat is a false positive, becuase path_openat holds
i_mutex
of the parent directory and ubifs_init_security() tries to acquire i_mutex
of a new inode, it reveals that taking i_mutex in ubifs_init_security() is
in vain because it is only being called in the inode allocation path
and therefore nobody else can see the inode yet.
Cc: stable@xxxxxxxxxxxxxxx # 3.20-
Reported-and-tested-by: Boris Brezillon
<boris.brezillon@xxxxxxxxxxxxxxxxxx>
Reviewed-and-tested-by: Dongsheng Yang <yangds.fnst@xxxxxxxxxxxxxx>
Signed-off-by: Richard Weinberger <richard@xxxxxx>
Signed-off-by: dedekind1@xxxxxxxxx
commit fd546ee6a7dc4b71ebc6d1205bf72ea3c1c7030a
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Sat Sep 26 21:41:01 2015 +0200
mmc: pxamci: fix card detect with slot-gpio API
Move pxamci to mmc slot-gpio API to fix interrupt request.
It fixes the case where the card detection is on a gpio expander, on I2C
for example on zylonite board. In this case, the card detect netsted
interrupt is called from a threaded interrupt. The request_irq() fails,
because a hard irq cannot be a nested interrupt from a threaded
interrupt (set __setup_irq()).
This was tested on zylonite and mioa701 boards.
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Cc: Petr Cvek <petr.cvek@xxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 51424b2860670ec20e1dd5177fe70ab4b6fd7a5b
Author: Hans de Goede <hdegoede@xxxxxxxxxx>
Date: Wed Sep 23 22:06:48 2015 +0200
mmc: sunxi: Fix clk-delay settings
In recent allwinner kernel sources the mmc clk-delay settings have been
slightly tweaked, and for sun9i they are completely different then what
we are using.
This commit brings us in sync with what allwinner does, fixing problems
accessing sdcards on some A33 devices (and likely others).
For pre sun9i hardware this makes the following changes:
-At 400Khz change the sample delay from 7 to 0 (introduced in A31 sdk)
-At 50 Mhz change the sample delay from 5 to 4 (introduced in A23 sdk)
This also drops the clk-delay calculation for clocks > 50 MHz, we do
not need this as we've: mmc->f_max = 50000000, and the delays in the
old code were not correct (at 100 MHz the delay must be a multiple of 60,
at 200 MHz a multiple of 120).
Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 43934ece2ea72c1dd279c0b0478c1a036d5d77ee
Author: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Date: Mon Sep 14 12:18:55 2015 +0200
mmc: core: Don't return an error for CD/WP GPIOs when GPIOLIB is unset
When CONFIG_GPIOLIB is unset, its stubs will return -ENOSYS. That means
when the mmc core parses DT for CD/WP GPIOs via mmc_of_parse(), -ENOSYS
becomes propagated to the caller. Typically this means that the mmc host
driver fails to probe.
As the CD/WP GPIOs are already treated as optional, let's extend that to
cover the case when CONFIG_GPIOLIB is unset.
Reported-by: Michal Simek <michal.simek@xxxxxxxxxx>
Fixes: 16b23787fc70 ("mmc: sdhci-of-arasan: Call OF parsing for MMC")
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Tested-by: Michal Simek <michal.simek@xxxxxxxxxx>
Acked-by: Venu Byravarasu <vbyravarasu@xxxxxxxxxx>
commit 0266715155379820c5c626e2cd4b8c91751036bc
Merge: 3225031 283e8ba
Author: James Morris <james.l.morris@xxxxxxxxxx>
Date: Tue Sep 29 19:19:09 2015 +1000
Merge tag 'keys-fixes-20150925' of
git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs into for-linus
Keyrings fixes from David Howells, for current Linus.
commit 2103d6b818fcdae15ffa04cf385f770e6c3892c3
Author: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
Date: Mon Sep 28 14:34:04 2015 +0200
net: sctp: Don't use 64 kilobyte lookup table for four elements
Seemingly innocuous sctp_trans_state_to_prio_map[] array
is way bigger than it looks, since
"[SCTP_UNKNOWN] = 2" expands into "[0xffff] = 2" !
This patch replaces it with switch() statement.
Signed-off-by: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
CC: Vlad Yasevich <vyasevich@xxxxxxxxx>
CC: Neil Horman <nhorman@xxxxxxxxxxxxx>
CC: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
CC: linux-sctp@xxxxxxxxxxxxxxx
CC: netdev@xxxxxxxxxxxxxxx
CC: linux-kernel@xxxxxxxxxxxxxxx
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Acked-by: Neil Horman <nhorman@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 06a15f51cf3618e32a73871ee6a547ef7fd902b5
Author: Alexander Couzens <lynxis@xxxxxxx>
Date: Mon Sep 28 11:32:42 2015 +0200
l2tp: protect tunnel->del_work by ref_count
There is a small chance that tunnel_free() is called before
tunnel->del_work scheduled
resulting in a zero pointer dereference.
Signed-off-by: Alexander Couzens <lynxis@xxxxxxx>
Acked-by: James Chapman <jchapman@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 661dfc65f7981481ba2e31aaa702371e82336e56
Author: Ivan Mikhaylov <ivan@xxxxxxxxxx>
Date: Fri Sep 25 11:52:27 2015 +0400
net/ibm/emac: bump version numbers for correct work with ethtool
The size of the MAC register dump used to be the size specified by the
reg property in the device tree. Userland has no good way of finding
out that size, and it was not specified consistently for each MAC type,
so ethtool would end up printing junk at the end of the register dump
if the device tree didn't match the size it assumed.
Using the new version numbers indicates unambiguously that the size of
the MAC register dump is dependent only on the MAC type.
Fixes: 5369c71f7ca2 ("net/ibm/emac: fix size of emac dump memory areas")
Signed-off-by: Ivan Mikhaylov <ivan@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 51359bfc5b7111cada4d10e71b4dcdd1085e1a8f
Merge: 43ae93a 635682a
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Sep 28 21:03:40 2015 -0700
Merge branch 'sctp-accept-deadlock'
Karl Heiss says:
====================
sctp: Fix SCTP deadlock
These patches fix a deadlock during accept() of an SCTP connection.
The first patch fixes whitespace issues.
The second patch actually fixes the deadlock race.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 635682a14427d241bab7bbdeebb48a7d7b91638e
Author: Karl Heiss <kheiss@xxxxxxxxx>
Date: Thu Sep 24 12:15:07 2015 -0400
sctp: Prevent soft lockup when sctp_accept() is called during a timeout
event
A case can occur when sctp_accept() is called by the user during
a heartbeat timeout event after the 4-way handshake. Since
sctp_assoc_migrate() changes both assoc->base.sk and assoc->ep, the
bh_sock_lock in sctp_generate_heartbeat_event() will be taken with
the listening socket but released with the new association socket.
The result is a deadlock on any future attempts to take the listening
socket lock.
Note that this race can occur with other SCTP timeouts that take
the bh_lock_sock() in the event sctp_accept() is called.
BUG: soft lockup - CPU#9 stuck for 67s! [swapper:0]
...
RIP: 0010:[<ffffffff8152d48e>] [<ffffffff8152d48e>] _spin_lock+0x1e/0x30
RSP: 0018:ffff880028323b20 EFLAGS: 00000206
RAX: 0000000000000002 RBX: ffff880028323b20 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffff880028323be0 RDI: ffff8804632c4b48
RBP: ffffffff8100bb93 R08: 0000000000000000 R09: 0000000000000000
R10: ffff880610662280 R11: 0000000000000100 R12: ffff880028323aa0
R13: ffff8804383c3880 R14: ffff880028323a90 R15: ffffffff81534225
FS: 0000000000000000(0000) GS:ffff880028320000(0000)
knlGS:0000000000000000
CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 00000000006df528 CR3: 0000000001a85000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 0, threadinfo ffff880616b70000, task
ffff880616b6cab0)
Stack:
ffff880028323c40 ffffffffa01c2582 ffff880614cfb020 0000000000000000
<d> 0100000000000000 00000014383a6c44 ffff8804383c3880 ffff880614e93c00
<d> ffff880614e93c00 0000000000000000 ffff8804632c4b00 ffff8804383c38b8
Call Trace:
<IRQ>
[<ffffffffa01c2582>] ? sctp_rcv+0x492/0xa10 [sctp]
[<ffffffff8148c559>] ? nf_iterate+0x69/0xb0
[<ffffffff814974a0>] ? ip_local_deliver_finish+0x0/0x2d0
[<ffffffff8148c716>] ? nf_hook_slow+0x76/0x120
[<ffffffff814974a0>] ? ip_local_deliver_finish+0x0/0x2d0
[<ffffffff8149757d>] ? ip_local_deliver_finish+0xdd/0x2d0
[<ffffffff81497808>] ? ip_local_deliver+0x98/0xa0
[<ffffffff81496ccd>] ? ip_rcv_finish+0x12d/0x440
[<ffffffff81497255>] ? ip_rcv+0x275/0x350
[<ffffffff8145cfeb>] ? __netif_receive_skb+0x4ab/0x750
...
With lockdep debugging:
=====================================
[ BUG: bad unlock balance detected! ]
-------------------------------------
CslRx/12087 is trying to release lock (slock-AF_INET) at:
[<ffffffffa01bcae0>] sctp_generate_timeout_event+0x40/0xe0 [sctp]
but there are no more locks to release!
other info that might help us debug this:
2 locks held by CslRx/12087:
#0: (&asoc->timers[i]){+.-...}, at: [<ffffffff8108ce1f>]
run_timer_softirq+0x16f/0x3e0
#1: (slock-AF_INET){+.-...}, at: [<ffffffffa01bcac3>]
sctp_generate_timeout_event+0x23/0xe0 [sctp]
Ensure the socket taken is also the same one that is released by
saving a copy of the socket before entering the timeout event
critical section.
Signed-off-by: Karl Heiss <kheiss@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f05940e61845951517eda02a28ccc091888aaab9
Author: Karl Heiss <kheiss@xxxxxxxxx>
Date: Thu Sep 24 12:15:06 2015 -0400
sctp: Whitespace fix
Fix indentation in sctp_generate_heartbeat_event.
Signed-off-by: Karl Heiss <kheiss@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 43ae93a93e8c95c5e6389dc8e11704712b1ab2e9
Author: Mitch Williams <mitch.a.williams@xxxxxxxxx>
Date: Mon Sep 28 17:31:26 2015 -0700
i40e/i40evf: check for stopped admin queue
It's possible that while we are waiting for the spinlock, another
entity (that owns the spinlock) has shut down the admin queue.
If we then attempt to use the queue, we will panic.
Add a check for this condition on the receive side. This matches
an existing check on the send queue side.
Signed-off-by: Mitch Williams <mitch.a.williams@xxxxxxxxx>
Acked-by: Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c4bbac3913c0d649898a0d767728a585869a7d7d
Author: Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx>
Date: Mon Sep 28 11:21:48 2015 -0700
i40e: fix VLAN inside VXLAN
Previously to this patch, the hardware was removing
VLAN tags from the inner header of VXLAN packets. The
hardware configuration can be changed to leave the
packet alone since that is what the linux stack
expects for this type of VLAN in VXLAN packet.
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 22ef28b43f2c70edf5618918a49cbda84795c0a5
Author: duson <dusonlin@xxxxxxxxxx>
Date: Mon Sep 28 17:17:01 2015 -0700
Input: elan_i2c - add all valid ic type for i2c/smbus
Signed-off-by: Duson Lin <dusonlin@xxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit d3b367bc26ea2e07a83fe73f0ccbddd729cb1f9a
Author: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 28 16:38:07 2015 -0700
Input: zhenhua - ensure we have BITREVERSE
It uses bitrev8(), so it must ensure that lib/bitrev.o gets included in
vmlinux.
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit d79bdc7f004404204a6ac07785f8d6717070ecdb
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Mon Sep 28 15:59:22 2015 -0700
Input: omap4-keypad - fix memory leak
If omap4_keypad_parse_dt() fails we returned the error code but we
missed releasing keypad_data.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 3225031fbeb1e32b269a82eccd815128267a4bfe
Merge: 097f70b 3a48d13
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 28 12:27:18 2015 -0400
Merge branch 'stable' of
git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
Pull arch/tile bugfix from Chris Metcalf:
"This fixes a bug in 'make allmodconfig'"
* 'stable' of
git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
tile: fix build failure
commit 3a48d13d76c0088a988a2e4f5b4d94872bdf58f3
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Mon Sep 7 20:06:57 2015 +0530
tile: fix build failure
When building with allmodconfig the build was failing with the error:
arch/tile/kernel/usb.c:70:1: warning: data definition has no type or
storage class [enabled by default]
arch/tile/kernel/usb.c:70:1: error: type defaults to 'int' in declaration
of 'arch_initcall' [-Werror=implicit-int]
arch/tile/kernel/usb.c:70:1: warning: parameter names (without types) in
function declaration [enabled by default]
arch/tile/kernel/usb.c:63:19: warning: 'tilegx_usb_init' defined but not
used [-Wunused-function]
Include linux/module.h to resolve the build failure.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Signed-off-by: Chris Metcalf <cmetcalf@xxxxxxxxxx>
commit dfc53c5e73f8b73abf920241e45eab87335ae742
Author: Michel Thierry <michel.thierry@xxxxxxxxx>
Date: Mon Sep 28 13:25:12 2015 +0100
drm/i915: Consider HW CSB write pointer before resetting the sw read
pointer
A previous commit resets the Context Status Buffer (CSB) read pointer in
ring init
commit c0a03a2e4c4e ("drm/i915: Reset CSB read pointer in ring init")
This is generally correct, but this pointer is not reset after
suspend/resume in some platforms (cht). In this case, the driver should
read the register value instead of resetting the sw read counter to 0.
Otherwise we process old events, leading to unwanted pre-emptions or
something worse.
But in other platforms (bdw) and also during GPU reset or power up, the
CSBWP is reset to 0x7 (an invalid number), and in this case the read
pointer should be set to 5 (the interrupt code will increment this
counter one more time, and will start reading from CSB[0]).
v2: When the CSB registers are reset, the read pointer needs to be set
to 5, otherwise the first write (CSB[0]) won't be read (Mika).
Replace magic numbers with GEN8_CSB_ENTRIES (6) and GEN8_CSB_PTR_MASK
(0x07).
Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v4.0+
Signed-off-by: Lei Shen <lei.shen@xxxxxxxxx>
Signed-off-by: Deepak S <deepak.s@xxxxxxxxx>
Signed-off-by: Michel Thierry <michel.thierry@xxxxxxxxx>
Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 9bac175d8ed0b1dd3d3611c0713666b724eeace3
Author: Radim KrÄ?máÅ? <rkrcmar@xxxxxxxxxx>
Date: Fri Sep 18 17:54:30 2015 +0200
Revert "KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock
system MSR"
Shifting pvclock_vcpu_time_info.system_time on write to KVM system time
MSR is a change of ABI. Probably only 2.6.16 based SLES 10 breaks due
to its custom enhancements to kvmclock, but KVM never declared the MSR
only for one-shot initialization. (Doc says that only one write is
needed.)
This reverts commit b7e60c5aedd2b63f16ef06fde4f81ca032211bc5.
And adds a note to the definition of PVCLOCK_COUNTS_FROM_ZERO.
Signed-off-by: Radim KrÄ?máÅ? <rkrcmar@xxxxxxxxxx>
Acked-by: Marcelo Tosatti <mtosatti@xxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 3cef072d3bbd4344823545e50d8cb240a6d4635d
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Fri Sep 11 06:28:08 2015 -0700
watchdog: iTCO: Fix dependencies on I2C
If I2C is built as module, the iTCO watchdog driver must be built as
module
as well. I2C_I801 must only be selected if I2C is configured.
This fixes the following build errors, seen if I2C=m and ITCO_WDT=y.
i2c-i801.c:(.text+0x2bf055): undefined reference to `i2c_del_adapter'
i2c-i801.c:(.text+0x2c13e0): undefined reference to `i2c_add_adapter'
i2c-i801.c:(.text+0x2c17bd): undefined reference to `i2c_new_device'
Fixes: 2a7a0e9bf7b3 ("watchdog: iTCO_wdt: Add support for TCO on Intel
Sunrisepoint")
Reviewed-by: Matt Fleming <matt.fleming@xxxxxxxxx>
Cc: Lee Jones <lee.jones@xxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 898e6861ff7cfc9f539b57859a27fbd1fe4298ae
Author: Noralf Trønnes <noralf@xxxxxxxxxxx>
Date: Wed Jun 17 16:04:04 2015 +0200
watchdog: bcm2835: Fix poweroff behaviour
Currently poweroff/halt results in a reboot on the Raspberry Pi.
The firmware uses the RSTS register to know which partiton to
boot from. The partiton value is spread into bits
0, 2, 4, 6, 8, 10. Partiton 63 is a special partition used by
the firmware to indicate halt.
The firmware made this change in 19 Aug 2013 and was matched
by the downstream commit:
Changes for new NOOBS multi partition booting from gsh
Signed-off-by: Noralf Trønnes <noralf@xxxxxxxxxxx>
Tested-by: Stephen Warren <swarren@xxxxxxxxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit c73318f43d3967e3ce810665d9c74a7d238d24d1
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 13:06:09 2015 +0200
watchdog: Fix module autoload for OF platform driver
These platform drivers have a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit bc5f2ab11ca6dda4a4826e7e78d5365d7c3e1569
Author: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Date: Wed Sep 23 11:32:36 2015 -0700
drm/i915/skl: Don't call intel_prepare_ddi when encoder list isn't yet
initialized.
In case something goes wrong with power well initialization we were
calling
intel_prepare_ddi during boot while encoder list isnt't initilized.
[ 9.618747] i915 0000:00:02.0: Invalid ROM contents
[ 9.631446] [drm] failed to find VBIOS tables
[ 9.720036] BUG: unable to handle kernel NULL pointer dereference at
00000000
00000058
[ 9.721986] IP: [<ffffffffa014eb72>] ddi_get_encoder_port+0x82/0x190
[i915]
[ 9.723736] PGD 0
[ 9.724286] Oops: 0000 [#1] PREEMPT SMP
[ 9.725386] Modules linked in: intel_powerclamp snd_hda_intel(+)
coretemp crc
32c_intel snd_hda_codec snd_hda_core serio_raw snd_pcm snd_timer i915(+)
parport
_pc parport pinctrl_sunrisepoint pinctrl_intel nfsd nfs_acl
[ 9.730635] CPU: 0 PID: 497 Comm: systemd-udevd Not tainted
4.3.0-rc2-eywa-10
967-g72de2cfd-dirty #2
[ 9.732785] Hardware name: Intel Corporation Cannonlake Client
platform/Skyla
ke DT DDR4 RVP8, BIOS CNLSE2R1.R00.X021.B00.1508040310 08/04/2015
[ 9.735785] task: ffff88008a704700 ti: ffff88016a1ac000 task.ti:
ffff88016a1a
c000
[ 9.737584] RIP: 0010:[<ffffffffa014eb72>] [<ffffffffa014eb72>]
ddi_get_enco
der_port+0x82/0x190 [i915]
[ 9.739934] RSP: 0000:ffff88016a1af710 EFLAGS: 00010296
[ 9.741184] RAX: 000000000000004e RBX: ffff88008a9edc98 RCX:
0000000000000001
[ 9.742934] RDX: 000000000000004e RSI: ffffffff81fc1e82 RDI:
00000000ffffffff
[ 9.744634] RBP: ffff88016a1af730 R08: 0000000000000000 R09:
0000000000000578
[ 9.746333] R10: 0000000000001065 R11: 0000000000000578 R12:
fffffffffffffff8
[ 9.748033] R13: ffff88016a1af7a8 R14: ffff88016a1af794 R15:
0000000000000000
[ 9.749733] FS: 00007eff2e1e07c0(0000) GS:ffff88016fc00000(0000)
knlGS:00000
00000000000
[ 9.751683] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 9.753083] CR2: 0000000000000058 CR3: 000000016922b000 CR4:
00000000003406f0
[ 9.754782] Stack:
[ 9.755332] ffff88008a9edc98 ffff88008a9ed800 ffffffffa01d07b0
00000000fffb9
09e
[ 9.757232] ffff88016a1af7d8 ffffffffa0154ea7 0000000000000246
ffff88016a370
080
[ 9.759182] ffff88016a370080 ffff88008a9ed800 0000000000000246
ffff88008a9ed
c98
[ 9.761132] Call Trace:
[ 9.761782] [<ffffffffa0154ea7>] intel_prepare_ddi+0x67/0x860 [i915]
[ 9.763332] [<ffffffff81a56996>] ?
_raw_spin_unlock_irqrestore+0x26/0x40
[ 9.765031] [<ffffffffa00fad01>] ? gen9_read32+0x141/0x360 [i915]
[ 9.766531] [<ffffffffa00b43e1>] skl_set_power_well+0x431/0xa80 [i915]
[ 9.768181] [<ffffffffa00b4a63>] skl_power_well_enable+0x13/0x20
[i915]
[ 9.769781] [<ffffffffa00b2188>] intel_power_well_enable+0x28/0x50
[i915]
[ 9.771481] [<ffffffffa00b4d52>] intel_display_power_get+0x92/0xc0
[i915]
[ 9.773180] [<ffffffffa00b4fcb>]
intel_display_set_init_power+0x3b/0x40 [i91
5]
[ 9.774980] [<ffffffffa00b5170>]
intel_power_domains_init_hw+0x120/0x520 [i9
15]
[ 9.776780] [<ffffffffa0194c61>] i915_driver_load+0xb21/0xf40 [i915]
So let's protect this case.
My first attempt was to remove the intel_prepare_ddi, but Daniel had
pointed out
this is really needed to restore those registers values. And Imre pointed
out
that this case was without the flag protection and this was actually
where things
were going bad. So I've just checked and this indeed solves my issue.
The regressing intel_prepare_ddi call was added in
commit 1d2b9526a790d55b7ae870934a74937081f62de2
Author: Damien Lespiau <damien.lespiau@xxxxxxxxx>
Date: Fri Mar 6 18:50:53 2015 +0000
drm/i915/skl: Restore the DDI translation tables when enabling PW1
Cc: Imre Deak <imre.deak@xxxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Reviewed-by: Imre Deak <imre.deak@xxxxxxxxx>
[Jani: regression reference]
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 95bc06ef049b808a067327bd8490b608b47e3870
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Sun Sep 13 11:24:02 2015 +0200
m68k/defconfig: Update defconfigs for v4.3-rc1
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
commit 8474ba74193d302e8340dddd1e16c85cc4b98caf
Author: Andreas Schwab <schwab@xxxxxxxxxxxxxx>
Date: Wed Sep 23 23:12:09 2015 +0200
m68k: Define asmlinkage_protect
Make sure the compiler does not modify arguments of syscall functions.
This can happen if the compiler generates a tailcall to another
function. For example, without asmlinkage_protect sys_openat is compiled
into this function:
sys_openat:
clr.l %d0
move.w 18(%sp),%d0
move.l %d0,16(%sp)
jbra do_sys_open
Note how the fourth argument is modified in place, modifying the register
%d4 that gets restored from this stack slot when the function returns to
user-space. The caller may expect the register to be unmodified across
system calls.
Signed-off-by: Andreas Schwab <schwab@xxxxxxxxxxxxxx>
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 7f843dab134b7ce8804b67cca2271267d3a0213d
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Sun Sep 13 11:49:13 2015 +0200
m68k: Wire up membarrier
$ ./membarrier_test
membarrier MEMBARRIER_CMD_QUERY syscall available.
membarrier: MEMBARRIER_CMD_SHARED success.
membarrier: tests done!
$
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Acked-by: Greg Ungerer <gerg@xxxxxxxxxxx>
commit b92858f2be96f49c483436e851a4667543ab5768
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Sun Sep 6 12:01:40 2015 +0200
m68k: Wire up userfaultfd
$ ./userfaultfd 10 99
nr_pages: 2560, nr_pages_per_cpu: 2560
bounces: 98, mode: racing, userfaults: 1121
bounces: 97, mode: rnd, userfaults: 977
bounces: 96, mode:, userfaults: 1119
bounces: 95, mode: rnd racing ver poll, userfaults: 1040
bounces: 94, mode: racing ver poll, userfaults: 1022
bounces: 93, mode: rnd ver poll, userfaults: 946
bounces: 92, mode: ver poll, userfaults: 1115
bounces: 91, mode: rnd racing poll, userfaults: 977
bounces: 90, mode: racing poll, userfaults: 899
bounces: 89, mode: rnd poll, userfaults: 881
bounces: 88, mode: poll, userfaults: 1069
bounces: 87, mode: rnd racing ver, userfaults: 1114
bounces: 86, mode: racing ver, userfaults: 1109
bounces: 85, mode: rnd ver, userfaults: 1165
bounces: 84, mode: ver, userfaults: 1107
bounces: 83, mode: rnd racing, userfaults: 1134
bounces: 82, mode: racing, userfaults: 1105
bounces: 81, mode: rnd, userfaults: 1323
bounces: 80, mode:, userfaults: 1103
bounces: 79, mode: rnd racing ver poll, userfaults: 909
bounces: 78, mode: racing ver poll, userfaults: 1095
bounces: 77, mode: rnd ver poll, userfaults: 951
bounces: 76, mode: ver poll, userfaults: 1099
bounces: 75, mode: rnd racing poll, userfaults: 1035
bounces: 74, mode: racing poll, userfaults: 1097
bounces: 73, mode: rnd poll, userfaults: 1159
bounces: 72, mode: poll, userfaults: 1042
bounces: 71, mode: rnd racing ver, userfaults: 848
bounces: 70, mode: racing ver, userfaults: 1093
bounces: 69, mode: rnd ver, userfaults: 892
bounces: 68, mode: ver, userfaults: 1091
bounces: 67, mode: rnd racing, userfaults: 1219
bounces: 66, mode: racing, userfaults: 1089
bounces: 65, mode: rnd, userfaults: 988
bounces: 64, mode:, userfaults: 1087
bounces: 63, mode: rnd racing ver poll, userfaults: 882
bounces: 62, mode: racing ver poll, userfaults: 984
bounces: 61, mode: rnd ver poll, userfaults: 701
bounces: 60, mode: ver poll, userfaults: 1071
bounces: 59, mode: rnd racing poll, userfaults: 1137
bounces: 58, mode: racing poll, userfaults: 1032
bounces: 57, mode: rnd poll, userfaults: 911
bounces: 56, mode: poll, userfaults: 1079
bounces: 55, mode: rnd racing ver, userfaults: 1106
bounces: 54, mode: racing ver, userfaults: 1077
bounces: 53, mode: rnd ver, userfaults: 886
bounces: 52, mode: ver, userfaults: 1075
bounces: 51, mode: rnd racing, userfaults: 1101
bounces: 50, mode: racing, userfaults: 1073
bounces: 49, mode: rnd, userfaults: 1070
bounces: 48, mode:, userfaults: 1071
bounces: 47, mode: rnd racing ver poll, userfaults: 1077
bounces: 46, mode: racing ver poll, userfaults: 910
bounces: 45, mode: rnd ver poll, userfaults: 1063
bounces: 44, mode: ver poll, userfaults: 1028
bounces: 43, mode: rnd racing poll, userfaults: 1043
bounces: 42, mode: racing poll, userfaults: 1065
bounces: 41, mode: rnd poll, userfaults: 912
bounces: 40, mode: poll, userfaults: 1063
bounces: 39, mode: rnd racing ver, userfaults: 880
bounces: 38, mode: racing ver, userfaults: 1061
bounces: 37, mode: rnd ver, userfaults: 1144
bounces: 36, mode: ver, userfaults: 1059
bounces: 35, mode: rnd racing, userfaults: 967
bounces: 34, mode: racing, userfaults: 1057
bounces: 33, mode: rnd, userfaults: 1076
bounces: 32, mode:, userfaults: 1055
bounces: 31, mode: rnd racing ver poll, userfaults: 997
bounces: 30, mode: racing ver poll, userfaults: 1053
bounces: 29, mode: rnd ver poll, userfaults: 968
bounces: 28, mode: ver poll, userfaults: 978
bounces: 27, mode: rnd racing poll, userfaults: 1008
bounces: 26, mode: racing poll, userfaults: 1049
bounces: 25, mode: rnd poll, userfaults: 900
bounces: 24, mode: poll, userfaults: 1047
bounces: 23, mode: rnd racing ver, userfaults: 988
bounces: 22, mode: racing ver, userfaults: 1045
bounces: 21, mode: rnd ver, userfaults: 1027
bounces: 20, mode: ver, userfaults: 1043
bounces: 19, mode: rnd racing, userfaults: 1017
bounces: 18, mode: racing, userfaults: 1041
bounces: 17, mode: rnd, userfaults: 979
bounces: 16, mode:, userfaults: 1039
bounces: 15, mode: rnd racing ver poll, userfaults: 1134
bounces: 14, mode: racing ver poll, userfaults: 1037
bounces: 13, mode: rnd ver poll, userfaults: 1046
bounces: 12, mode: ver poll, userfaults: 1035
bounces: 11, mode: rnd racing poll, userfaults: 1060
bounces: 10, mode: racing poll, userfaults: 1033
bounces: 9, mode: rnd poll, userfaults: 1003
bounces: 8, mode: poll, userfaults: 929
bounces: 7, mode: rnd racing ver, userfaults: 964
bounces: 6, mode: racing ver, userfaults: 1029
bounces: 5, mode: rnd ver, userfaults: 1053
bounces: 4, mode: ver, userfaults: 1027
bounces: 3, mode: rnd racing, userfaults: 863
bounces: 2, mode: racing, userfaults: 1025
bounces: 1, mode: rnd, userfaults: 1043
bounces: 0, mode:, userfaults: 950
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Acked-by: Greg Ungerer <gerg@xxxxxxxxxxx>
commit 5b3f33eb408ad06acf59b09fe0550bf3756e320a
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Sun Sep 6 11:59:27 2015 +0200
m68k: Wire up direct socket calls
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Acked-by: Greg Ungerer <gerg@xxxxxxxxxxx>
commit 7c4f1c694bf84eac538bee3e411aed10ae617d46
Merge: 9ffecb1 19a5ecd
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Mon Sep 28 08:03:52 2015 +0200
Merge branch 'for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/urgent
Pull RCU fixes from Paul E. McKenney, for two regressions
introduced in this merge window:
- Fix bug with recent GCCs.
- Fix false positive lockdep splat.
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 1a5e251996e1b602f2ddc9261ee9de0ca1875bfa
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Sun Sep 27 17:13:55 2015 -0700
Input: serio - fix blocking of parport
If parkbd_allocate_serio() fails to allocate memory we are releasing the
parport but we missed unregistering the device. As a result this device
with exclusive access to that parport remains registered. And no other
device will be able to use that parport even though this driver has
failed to load.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 097f70b3c4d84ffccca15195bdfde3a37c0a7c0f
Merge: e3be426 e060f6e
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Sep 27 18:22:34 2015 -0400
Merge branch 'upstream' of
git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS fixes from Ralf Baechle:
- Properly setup irq handling for ATH79 platforms
- Fix bootmem mapstart calculation for contiguous maps
- Handle little endian and older CPUs correct in BPF
- Fix console for Fulong 2E systems
- Handle FTLB correctly on R6 CPUs
- Fixes for CM, GIC and MAAR support code
* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
MIPS: Initialise MAARs on secondary CPUs
MIPS: print MAAR configuration during boot
MIPS: mm: compile maar_init unconditionally
irqchip: mips-gic: Fix pending & mask reads for MIPS64 with 32b GIC.
irqchip: mips-gic: Convert CPU numbers to VP IDs.
MIPS: CM: Provide a function to map from CPU to VP ID.
MIPS: Fix FTLB detection for R6
MIPS: cpu-features: Add cpu_has_ftlb
MIPS: ATH79: Add irq chip ar7240-misc-intc
MIPS: ATH79: Set missing irq ack handler for ar7100-misc-intc irq chip
MIPS: BPF: Fix build on pre-R2 little endian CPUs
MIPS: BPF: Avoid unreachable code on little endian
MIPS: bootmem: Fix mapstart calculation for contiguous maps
MIPS: Fix console output for Fulong2e system
commit e3be4266d3488cbbaddf7fcc661f4473db341e46
Merge: 73f479b 2530e39
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Sep 27 12:51:39 2015 -0400
Merge branch 'perf-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fixes from Thomas Gleixner:
"Another pile of fixes for perf:
- Plug overflows and races in the core code
- Sanitize the flow of the perf syscall so we error out before
handling the more complex and hard to undo setups
- Improve and fix Broadwell and Skylake hardware support
- Revert a fix which broke what it tried to fix in perf tools
- A couple of smaller fixes in various places of perf tools"
* 'perf-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf tools: Fix copying of /proc/kcore
perf intel-pt: Remove no_force_psb from documentation
perf probe: Use existing routine to look for a kernel module by
dso->short_name
perf/x86: Change test_aperfmperf() and test_intel() to static
tools lib traceevent: Fix string handling in heterogeneous arch
environments
perf record: Avoid infinite loop at buildid processing with no samples
perf: Fix races in computing the header sizes
perf: Fix u16 overflows
perf: Restructure perf syscall point of no return
perf/x86/intel: Fix Skylake FRONTEND MSR extrareg mask
perf/x86/intel/pebs: Add PEBS frontend profiling for Skylake
perf/x86/intel: Make the CYCLE_ACTIVITY.* constraint on Broadwell more
specific
perf tools: Bool functions shouldn't return -1
tools build: Add test for presence of __get_cpuid() gcc builtin
tools build: Add test for presence of numa_num_possible_cpus() in
libnuma
Revert "perf symbols: Fix mismatched declarations for elf_getphdrnum"
perf stat: Fix per-pkg event reporting bug
commit 73f479b243fe71a0fa82d21a21ac25d8932b88d5
Merge: fc11a9c de9b8f5
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Sep 27 12:50:27 2015 -0400
Merge branch 'sched-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler fix from Thomas Gleixner:
"A single bug fix for the scheduler to prevent dequeueing of the idle
task when setting the cpus allowed mask"
* 'sched-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched: Fix crash trying to dequeue/enqueue the idle thread
commit fc11a9c5dad78d2c9e8a4b7d4b386bff724d9ec3
Merge: 9ffecb1 21199f2
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Sep 27 12:47:20 2015 -0400
Merge branch 'locking-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull locking fix from Thomas Gleixner:
"A single bugfix for lockdep to preserve the pinning counter when
rebuilding the lock stack"
* 'locking-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
locking/lockdep: Fix hlock->pin_count reset on lock stack rebuilds
commit a9062dcec3697db5bdf064311ad097c469fd87ec
Merge: 9ffecb1 af71b98
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Sun Sep 27 15:25:22 2015 +0200
Merge branch 'turbostat' of
https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux into pm-tools
Pull turbostat updates for v4.3 from Len Brown.
* 'turbostat' of
https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
tools/power turbosat: update version number
tools/power turbostat: SKL: Adjust for TSC difference from base
frequency
tools/power turbostat: KNL workaround for %Busy and Avg_MHz
tools/power turbostat: IVB Xeon: fix --debug regression
commit e9a7bed40cbc09eee4b7a15509726a44565805be
Merge: 9ffecb1 135919a
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Sun Sep 27 15:24:27 2015 +0200
Merge branch 'cpuidle' of
https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux into pm-cpuidle
Pull an intel_idle update for v4.3 from Len Brown.
* 'cpuidle' of https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
intel_idle: Skylake Client Support - updated
commit e060f6ed281669b6d2f22d8dafd664b532386918
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Fri Sep 25 08:59:38 2015 -0700
MIPS: Initialise MAARs on secondary CPUs
MAARs should be initialised on each CPU (or rather, core) in the system
in order to achieve consistent behaviour & performance. Previously they
have only been initialised on the boot CPU which leads to performance
problems if tasks are later scheduled on a secondary CPU, particularly
if those tasks make use of unaligned vector accesses where some CPUs
don't handle any cases in hardware for non-speculative memory regions.
Fix this by recording the MAAR configuration from the boot CPU and
applying it to secondary CPUs as part of their bringup.
Reported-by: Doug Gilmore <doug.gilmore@xxxxxxxxxx>
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Cc: Steven J. Hill <Steven.Hill@xxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: David Hildenbrand <dahi@xxxxxxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Aaro Koskinen <aaro.koskinen@xxxxxx>
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Hemmo Nieminen <hemmo.nieminen@xxxxxx>
Cc: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/11239/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 651ca7f4dab77f07fdac9cfb68bcab6bd2b7f827
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Fri Sep 25 08:59:37 2015 -0700
MIPS: print MAAR configuration during boot
Verifying that the MAAR configuration is as expected is useful when
debugging the performance of a system. Print out the memory regions
configured via MAAR along with their attributes.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Steven J. Hill <Steven.Hill@xxxxxxxxxx>
Cc: David Hildenbrand <dahi@xxxxxxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/11238/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit def3ab5d0a0fe53026c2495b054dcc46cf923dac
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Fri Sep 25 08:59:36 2015 -0700
MIPS: mm: compile maar_init unconditionally
maar_init was previously only compiled when CONFIG_NEED_MULTIPLE_NODES
was not set, which has been fine since it is only called from the
standard implementation of mem_init which has the same condition. In
preparation for calling it from the SMP startup code on secondary CPUs,
move maar_init outside of the #ifndef such that it is always compiled.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Steven J. Hill <Steven.Hill@xxxxxxxxxx>
Cc: David Hildenbrand <dahi@xxxxxxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/11237/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit d77d5ac9c9b5abf45aeb6e12930fab832e5c81d1
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Tue Sep 22 11:29:11 2015 -0700
irqchip: mips-gic: Fix pending & mask reads for MIPS64 with 32b GIC.
gic_handle_shared_int reads the GIC interrupt pending & mask registers
directly into a bitmap, which is defined as an array of unsigned longs.
The GIC pending registers may be 32 bits wide if the CM is older than
CM3, regardless of the bit width of the CPU, but for MIPS64 kernels
the unsigned longs in the bitmap will be 64 bits wide. In this case we
need to perform 2 x 32 bit reads per 64 bit unsigned long in order to
avoid missing interrupts.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11213/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit ab41f6c8620a6e65df4ee19d284c97efdd3d9b63
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Tue Sep 22 11:29:10 2015 -0700
irqchip: mips-gic: Convert CPU numbers to VP IDs.
Make use of the mips_cm_vp_id function to convert from Linux CPU numbers
to the VP IDs used by hardware, which are not identical in all systems.
Without doing so we map interrupts to incorrect VP(E)s.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11212/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 7573b94e08aeb5b814e2f277210bdcdf21a83869
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Tue Sep 22 11:29:09 2015 -0700
MIPS: CM: Provide a function to map from CPU to VP ID.
The VP ID of a given CPU may not match up with the CPU number used by
Linux. For example, if the width of the VP part of the VP ID is wider
than log2(number of VPs per core) and the system has multiple cores then
this will be the case. Alternatively, if a pre-r6 system implements the
MT ASE with multiple VPEs per core and Linux is built without support
for the MT ASE then the numbers won't match up either. Provide a
function to convert from CPU number to VP ID.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/11211/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 9ffecb10283508260936b96022d4ee43a7798b4c
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Sep 27 07:50:08 2015 -0400
Linux 4.3-rc3
commit 162e6df47c4f80c87cb617ec473eca015df454ca
Merge: 5a6bdf0 83c133c
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Sep 27 06:51:42 2015 -0400
Merge branch 'x86-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Thomas Gleixner:
"Two bugfixes from Andy addressing at least some of the subtle NMI
related wreckage which has been reported by Sasha Levin"
* 'x86-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/nmi/64: Fix a paravirt stack-clobbering bug in the NMI code
x86/paravirt: Replace the paravirt nop with a bona fide empty function
commit 5a6bdf06bbd022db25d9935273b409c337c48a6b
Merge: c905929 d32dc9a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Sep 27 06:50:23 2015 -0400
Merge branch 'irq-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fix from Thomass Gleixner:
"A bugfix for the atmel aic5 irq chip driver which caches the wrong
data and thereby breaking resume"
* 'irq-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
irqchip/atmel-aic5: Use per chip mask caches in mask/unmask()
commit c905929ac9b94061b2c8226c5e47a26d30ed7ea1
Merge: 685b5f1 274e91b
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Sep 27 06:48:48 2015 -0400
Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Pull ARM fixes from Russell King:
"Just two fixes: wire up the new system calls added during the last
merge window, and fix another user access site"
* 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
ARM: alignment: fix alignment handling for uaccess changes
ARM: wire up new syscalls
commit 685b5f1de6405bf87e38fed7c893a1de0a8d3218
Merge: 69ea8b8 e46fc90
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Sep 27 06:45:18 2015 -0400
Merge tag 'armsoc-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Olof Johansson:
"Our first real batch of fixes this release cycle. Nothing really
concerning, and diffstat is a bit inflated due to some DT contents
moving around on STi platforms.
There's a collection of them here:
- A fixup for a build breakage that hits on arm64 allmodconfig in
QCOM SCM firmware drivers
- MMC fixes for OMAP that had quite a bit of breakage this merge
window.
- Misc build/warning fixes on PXA and OMAP
- A couple of minor fixes for Beagleboard X15 which is now starting
to see a few more users in the wild"
* tag 'armsoc-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (31 commits)
ARM: sti: dt: adapt DT to fix probe/bind issues in DRM driver
ARM: dts: fix omap2+ address translation for pbias
firmware: qcom: scm: Add function stubs for ARM64
ARM: dts: am57xx-beagle-x15: use palmas-usb for USB2
ARM: omap2plus_defconfig: enable GPIO_PCA953X
ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets
ARM: OMAP2+: AM43XX: Enable autoidle for clks in am43xx_init_late
ARM: dts: am57xx-beagle-x15: Update Phy supplies
ARM: pxa: balloon3: Fix build error
ARM: dts: Fixup model name for HP t410 dts
ARM: dts: DRA7: fix a typo in ethernet
ARM: omap2plus_defconfig: make PCF857x built-in
ARM: dts: Use ti,pbias compatible string for pbias
ARM: OMAP5: Cleanup options for SoC only build
ARM: DRA7: Select missing options for SoC only build
ARM: OMAP2+: board-generic: Remove stale of_irq macros
ARM: OMAP4+: PM: erratum is used by OMAP5 and DRA7 as well
ARM: dts: omap3-igep: Move eth IRQ pinmux to IGEPv2 common dtsi
ARM: dts: am57xx-beagle-x15: Add wakeup irq for mcp79410
ARM: dts: am335x-phycore-som: Fix mpu voltage
...
commit 69ea8b857782ea56d9db01e2f57f9067abd3f013
Merge: d8cc397 8862714
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Sep 27 06:42:54 2015 -0400
Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6
Pull CIFS fixes from Steve French:
"Four fixes from testing at the recent SMB3 Plugfest including two
important authentication ones (one fixes authentication problems to
some popular servers when clock times differ more than two hours
between systems, the other fixes Kerberos authentication for SMB3)"
* 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
fix encryption error checks on mount
[SMB3] Fix sec=krb5 on smb3 mounts
cifs: use server timestamp for ntlmv2 authentication
disabling oplocks/leases via module parm enable_oplocks broken for SMB3
commit 72521ea07c0af37b8cb21228368128191c3f1a58
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Sep 24 16:00:24 2015 +0200
r8169: fix handling rtl_readphy result
The function can return negative value.
The problem has been detected using proposed semantic patch
scripts/coccinelle/tests/assign_signed_to_unsigned.cocci [1].
[1]: http://permalink.gmane.org/gmane.linux.kernel/2046107
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f26bf06beae70175eda91e893190784bd1bcc7c0
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Sep 24 16:00:15 2015 +0200
net: hisilicon: fix handling platform_get_irq result
The function can return negative value.
The problem has been detected using proposed semantic patch
scripts/coccinelle/tests/assign_signed_to_unsigned.cocci [1].
[1]: http://permalink.gmane.org/gmane.linux.kernel/2046107
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e46fc90ec2612ef7578c6e3e28ad477a116e24da
Merge: b8ba826 385877c
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Sat Sep 26 22:23:26 2015 -0700
Merge tag 'pxa-fixes-v4.3' of https://github.com/rjarzmik/linux into fixes
ARM: pxa: fixes for v4.3
These fixes are mainly regression fixes triggered by irq changes,
common clock framework introduction and sound side-effect of
other platforms.
* tag 'pxa-fixes-v4.3' of https://github.com/rjarzmik/linux:
ARM: pxa: balloon3: Fix build error
ARM: pxa: ssp: Fix build error by removing originally incorrect DT
binding
ARM: pxa: fix DFI bus lockups on startup
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit b8ba826f8d9587fe830d29a0d03abb5b1e0a76e5
Merge: fe5b275 9a5e3f2
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Sat Sep 26 22:22:31 2015 -0700
Merge tag 'omap-for-v4.3/fixes-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
Fixes for omaps for v4.3-rc cycle:
- Two more patches to fix most of the MMC regressions with the
PBIAS regulator changes. At least two MMC driver related issues
still seems to remain for omap3 legacy booting and omap4 duovero.
Note that the dts changes depend on a recent regulator fix, and
are based on the regulator commit now in mainline kernel
- Enable autoidle for am43xx clocks to prevent clocks from staying
always on
- Fix i2c5 pinctrl offsets for omap5-uevm
- Enable PCA953X as that's needed for HDMI to work on omap5
- Update phy supplies for beagle x15 beta board
- Use palmas-usb for on beagle x15 to start using the related
driver that recently got merged
* tag 'omap-for-v4.3/fixes-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: dts: fix omap2+ address translation for pbias
ARM: dts: am57xx-beagle-x15: use palmas-usb for USB2
ARM: omap2plus_defconfig: enable GPIO_PCA953X
ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets
ARM: OMAP2+: AM43XX: Enable autoidle for clks in am43xx_init_late
ARM: dts: am57xx-beagle-x15: Update Phy supplies
regulator: pbias: program pbias register offset in pbias driver
ARM: omap2plus_defconfig: Enable MUSB DMA support
ARM: DRA752: Add ID detect for ES2.0
ARM: OMAP3: vc: fix 'or' always true warning
ARM: OMAP2+: Fix booting if no timer parent clock is available
ARM: OMAP2+: omap-device: fix race deferred probe of omap_hsmmc vs
omap_device_late_init
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit d8cc3972b2178f9fe532306330f76bf51cb0d8bd
Merge: c91d707 09185e2
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 26 21:05:23 2015 -0400
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto fixes from Herbert Xu:
"This fixes the following issues:
- check the return value of platform_get_irq as signed int in xgene.
- skip adf_dev_restore on virtual functions in qat.
- fix double-free with backlogged requests in marvell_cesa"
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
hwrng: xgene - fix handling platform_get_irq
crypto: qat - VF should never trigger SBR on PH
crypto: marvell - properly handle CRYPTO_TFM_REQ_MAY_BACKLOG-flagged
requests
commit c91d7072952993f96896c2fc9868f55924e7ba6c
Merge: bcba282 673681ca
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 26 21:02:42 2015 -0400
Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
Pull SCSI target fixes from Nicholas Bellinger:
"This includes a iser-target series from Jenny + Sagi @ Mellanox that
addresses the few remaining active I/O shutdown bugs, along with a
patch to support zero-copy for immediate data payloads that gives a
nice performance improvement for small block WRITEs.
Also included are some recent >= v4.2 regression bug-fixes. The most
notable is a RCU conversion regression for SPC-3 PR registrations, and
recent removal of obsolete RFC-3720 markers that introduced a login
regression bug with MSFT iSCSI initiators.
Thanks to everyone who has been testing + reporting bugs for v4.x"
* git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
iscsi-target: Avoid OFMarker + IFMarker negotiation
target: Make TCM_WRITE_PROTECT failure honor D_SENSE bit
target: Fix target_sense_desc_format NULL pointer dereference
target: Propigate backend read-only to core_tpg_add_lun
target: Fix PR registration + APTPL RCU conversion regression
iser-target: Skip data copy if all the command data comes as immediate
iser-target: Change the recv buffers posting logic
iser-target: Fix pending connections handling in target stack shutdown
sequnce
iser-target: Remove np_ prefix from isert_np members
iser-target: Remove unused variables
iser-target: Put the reference on commands waiting for unsol data
iser-target: remove command with state ISTATE_REMOVE
commit bcba282ab399eec1c8b8dcb49c43a33813971913
Merge: fb740f9 b473197
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 26 21:00:28 2015 -0400
Merge tag 'usb-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB fixes from Greg KH:
"Here are some USB driver fixes for 4.3-rc3.
There's the usual assortment of new device ids, combined with xhci and
gadget driver fixes. Full details in the shortlog. All of these have
been in linux-next with no reported problems"
* tag 'usb-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (34 commits)
MAINTAINERS: remove amd5536udc USB gadget driver maintainer
USB: whiteheat: fix potential null-deref at probe
xhci: init command timeout timer earlier to avoid deleting it
uninitialized
xhci: change xhci 1.0 only restrictions to support xhci 1.1
usb: xhci: exit early in xhci_setup_device() if we're halted or dying
usb: xhci: stop everything on the first call to xhci_stop
usb: xhci: Clear XHCI_STATE_DYING on start
usb: xhci: lock mutex on xhci_stop
xhci: Move xhci_pme_quirk() behind #ifdef CONFIG_PM
xhci: give command abortion one more chance before killing xhci
usb: Use the USB_SS_MULT() macro to get the burst multiplier.
usb: dwc3: gadget: Fix BUG in RT config
usb: musb: fix cppi channel teardown for isoch transfer
usb: phy: isp1301: Export I2C module alias information
usb: gadget: drop null test before destroy functions
usb: gadget: dummy_hcd: in transfer(), return data sent, not limit
usb: gadget: dummy_hcd: fix rescan logic for transfer
usb: gadget: dummy_hcd: fix unneeded else-if condition
usb: gadget: dummy_hcd: emulate sending zlp in packet logic
usb: musb: dsps: fix polling in device-only mode
...
commit fb740f9bab3b3c049d6207b148e45de05163b6e5
Merge: b11e7b8 f7a7651
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 26 20:58:38 2015 -0400
Merge tag 'tty-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull serial driver fix from Greg KH:
"Here is one serial driver fix for 4.3-rc3 that resolves a module
loading issue due to splitting up of the 8250 driver into smaller
pieces. It's been in linux-next with no reported problems"
* tag 'tty-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
tty: serial: Add missing module license for 8250_base.ko
commit b11e7b81bf94f633ae44f12a3d2e198277781952
Merge: 7c1efea 74c600e
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 26 20:56:50 2015 -0400
Merge tag 'staging-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
Pull staging driver fixes from Greg KH:
"Here are some tiny staging driver and documentation fixes for 4.3-rc3.
All of these resolve reported issues that people have found and have
been in the linux-next tree for a while with no problems"
* tag 'staging-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
MAINTAINERS: Update email address for Martyn Welch
staging: ion: fix corruption of ion_import_dma_buf
staging: dgap: Remove myself from the MAINTAINERS file
staging: most: Add dependency to HAS_IOMEM
staging: unisys: remove reference of visorutil
staging: unisys: visornic: handle error return from device registration
staging: unisys: stop device registration before visorbus registration
staging: unisys: visorbus: Unregister driver on error
staging: unisys: visornic: Fix receive bytes statistics
staging: unisys: unregister netdev when create debugfs fails
staging: fbtft: replace master->setup() with spi_setup()
staging: fbtft: fix 9-bit SPI support detection
staging/lustre: change Lustre URLs and mailing list
staging/android: Update ION TODO per LPC discussion
Staging: most: MOST and MOSTCORE should depend on HAS_DMA
staging: most: fix HDM_USB dependencies and build errors
commit 7c1efeae6d7d7b1ba10453e35ee4c2de1d814c2b
Merge: 64b796e 2110d70
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 26 20:54:53 2015 -0400
Merge tag 'driver-core-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core fix from Greg KH:
"Here is one driver core fix for 4.3-rc3 that resolves a reported oops"
* tag 'driver-core-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
cpu/cacheinfo: Fix teardown path
commit 64b796e23172850cab313e2e411b58fd391eec95
Merge: 518a7cb 5031403
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 26 20:53:15 2015 -0400
Merge tag 'char-misc-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc driver fixes from Greg KH:
"Here's some tiny char and misc driver fixes that resolve some reported
errors for 4.3-rc3.
All of these have been in linux-next with no problems for a while"
* tag 'char-misc-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
extcon: Fix attached value returned by is_extcon_changed
Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc
mei: fix debugfs files leak on error path
thunderbolt: Allow loading of module on recent Apple MacBooks with
thunderbolt 2 controller
commit af71b980c0d20586cc331b617c47094a8ec7e1db
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Sat Sep 26 09:49:55 2015 -0400
tools/power turbosat: update version number
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
commit 518a7cb6980cd640c7f979d29021ad870f60d7d7
Merge: d4a748a bdb06cb
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 26 06:01:33 2015 -0400
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller:
1) When we run a tap on netlink sockets, we have to copy mmap'd SKBs
instead of cloning them. From Daniel Borkmann.
2) When converting classical BPF into eBPF, fix the setting of the
source reg to BPF_REG_X. From Tycho Andersen.
3) Fix igmpv3/mldv2 report parsing in the bridge multicast code, from
Linus Lussing.
4) Fix dst refcounting for ipv6 tunnels, from Martin KaFai Lau.
5) Set NLM_F_REPLACE flag properly when replacing ipv6 routes, from
Roopa Prabhu.
6) Add some new cxgb4 PCI device IDs, from Hariprasad Shenai.
7) Fix headroom tests and SKB leaks in ipv6 fragmentation code, from
Florian Westphal.
8) Check DMA mapping errors in bna driver, from Ivan Vecera.
9) Several 8139cp bug fixes (dev_kfree_skb_any in interrupt context,
misclearing of interrupt status in TX timeout handler, etc.) from
David Woodhouse.
10) In tipc, reset SKB header pointer after skb_linearize(), from Erik
Hugne.
11) Fix autobind races et al. in netlink code, from Herbert Xu with
help from Tejun Heo and others.
12) Missing SET_NETDEV_DEV in sunvnet driver, from Sowmini Varadhan.
13) Fix various races in timewait timer and reqsk_queue_hadh_req, from
Eric Dumazet.
14) Fix array overruns in mac80211, from Johannes Berg and Dan
Carpenter.
15) Fix data race in rhashtable_rehash_one(), from Dmitriy Vyukov.
16) Fix race between poll_one_napi and napi_disable, from Neil Horman.
17) Fix byte order in geneve tunnel port config, from John W Linville.
18) Fix handling of ARP replies over lightweight tunnels, from Jiri
Benc.
19) We can loop when fib rule dumps cross multiple SKBs, fix from Wilson
Kok and Roopa Prabhu.
20) Several reference count handling bug fixes in the PHY/MDIO layer
from Russel King.
21) Fix lockdep splat in ppp_dev_uninit(), from Guillaume Nault.
22) Fix crash in icmp_route_lookup(), from David Ahern.
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (116 commits)
net: Fix panic in icmp_route_lookup
net: update docbook comment for __mdiobus_register()
ppp: fix lockdep splat in ppp_dev_uninit()
net: via/Kconfig: GENERIC_PCI_IOMAP required if PCI not selected
phy: marvell: add link partner advertised modes
net: fix net_device refcounting
phy: add phy_device_remove()
phy: fixed-phy: properly validate phy in fixed_phy_update_state()
net: fix phy refcounting in a bunch of drivers
of_mdio: fix MDIO phy device refcounting
phy: add proper phy struct device refcounting
phy: fix mdiobus module safety
net: dsa: fix of_mdio_find_bus() device refcount leak
phy: fix of_mdio_find_bus() device refcount leak
ip6_tunnel: Reduce log level in ip6_tnl_err() to debug
ip6_gre: Reduce log level in ip6gre_err() to debug
fib_rules: fix fib rule dumps across multiple skbs
bnx2x: byte swap rss_key to comply to Toeplitz specs
net: revert "net_sched: move tp->root allocation into fw_init()"
lwtunnel: remove source and destination UDP port config option
...
commit 2530e39947d80901e8c56f1c1950437eb9f48354
Merge: 7e5560a b5cabbc
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Sat Sep 26 08:15:52 2015 +0200
Merge tag 'perf-urgent-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
- Fix copying of /proc/kcore made to the ~/.debug/ DSO cache to allow
using
objdump with kcore files. (Adrian Hunter)
- Fix adding perf probes in kernel module functions. (Arnaldo Carvalho
de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit a2b7b74945dbfe5d734eafe8aa52f9f1f8bc6931
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Sat Sep 26 00:12:38 2015 -0400
tools/power turbostat: SKL: Adjust for TSC difference from base frequency
On a Skylake with 1500MHz base frequency,
the TSC runs at 1512MHz.
This is because the TSC is no longer in the n*100 MHz BCLK domain,
but is now in the m*24MHz crystal clock domain. (24 MHz * 63 = 1512 MHz)
This adds error to several calculations in turbostat,
unless the TSC sample sizes are adjusted for this difference.
Note that calculations in the time domain are immune
from this issue, as the timing sub-system has already
calibrated the TSC against a known wall clock.
AVG_MHz = APERF_delta/measurement_interval
need no adjustment. APERF_delta is in the BCLK domain,
and measurement_interval is in the time domain.
TSC_MHz = TSC_delta/measurement_interval
needs no adjustment -- as we really do want to report
the actual measured TSC delta here, and measurement_interval
is in the accurate time domain.
%Busy = MPERF_delta/TSC_delta
needs adjustment to use TSC_BCLK_DOMAIN_delta.
TSC_BCLK_DOMAIN_delta = TSC_delta * base_hz / tsc_hz
Bzy_MHz = TSC_delta/APERF_delta/MPERF_delta/measurement_interval
need adjustment as above.
No other metrics in turbostat need to be adjusted.
Before:
CPU Avg_MHz %Busy Bzy_MHz TSC_MHz
- 550 24.84 2216 1512
0 2191 98.73 2219 1514
2 0 0.01 2130 1512
1 9 0.43 2016 1512
3 2 0.08 2016 1512
After:
CPU Avg_MHz %Busy Bzy_MHz TSC_MHz
- 550 25.05 2198 1512
0 2190 99.62 2199 1512
2 0 0.01 2152 1512
1 9 0.46 2000 1512
3 2 0.10 2000 1512
Note that in this example, the "Before" Bzy_MHz
was reported as exceeding the 2200 max turbo rate.
Also, even a pinned spin loop would not be reported
as over 99% busy.
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
commit b2b34dfe4d9aa4c468fc363b3b666974783ed1f9
Author: Hubert Chrzaniuk <hubert.chrzaniuk@xxxxxxxxx>
Date: Mon Sep 14 13:31:00 2015 +0200
tools/power turbostat: KNL workaround for %Busy and Avg_MHz
KNL increments APERF and MPERF every 1024 clocks.
This is compliant with the architecture specification,
which requires that only the ratio of APERF/MPERF need be valid.
However, turbostat takes advantage of the fact that these
two MSRs increment every un-halted clock
at the actual and base frequency:
AVG_MHz = APERF_delta/measurement_interval
%Busy = MPERF_delta/TSC_delta
This quirk is needed for these calculations to also work on KNL,
which would otherwise show a value 1024x smaller than expected.
Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@xxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
commit 756357b8e4b072fd5ee86421f794e071a348802b
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Fri Sep 25 21:12:39 2015 -0400
tools/power turbostat: IVB Xeon: fix --debug regression
Staring in Linux-4.3-rc1,
commit 6fb3143b561c ("tools/power turbostat: dump CONFIG_TDP")
touches MSR 0x648, which is not supported on IVB-Xeon.
This results in "turbostat --debug" exiting on those systems:
turbostat: /dev/cpu/2/msr offset 0x648 read failed: Input/output error
Remove IVB-Xeon from the list of machines supporting with that MSR.
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
commit bdb06cbf77cb01911694cc9076ffa8196b7b9b61
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 24 15:31:29 2015 -0600
net: Fix panic in icmp_route_lookup
Andrey reported a panic:
[ 7249.865507] BUG: unable to handle kernel pointer dereference at
000000b4
[ 7249.865559] IP: [<c16afeca>] icmp_route_lookup+0xaa/0x320
[ 7249.865598] *pdpt = 0000000030f7f001 *pde = 0000000000000000
[ 7249.865637] Oops: 0000 [#1]
...
[ 7249.866811] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
4.3.0-999-generic #201509220155
[ 7249.866876] Hardware name: MSI MS-7250/MS-7250, BIOS 080014 08/02/2006
[ 7249.866916] task: c1a5ab00 ti: c1a52000 task.ti: c1a52000
[ 7249.866949] EIP: 0060:[<c16afeca>] EFLAGS: 00210246 CPU: 0
[ 7249.866981] EIP is at icmp_route_lookup+0xaa/0x320
[ 7249.867012] EAX: 00000000 EBX: f483ba48 ECX: 00000000 EDX: f2e18a00
[ 7249.867045] ESI: 000000c0 EDI: f483ba70 EBP: f483b9ec ESP: f483b974
[ 7249.867077] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[ 7249.867108] CR0: 8005003b CR2: 000000b4 CR3: 36ee07c0 CR4: 000006f0
[ 7249.867141] Stack:
[ 7249.867165] 320310ee 00000000 00000042 320310ee 00000000 c1aeca00
f3920240 f0c69180
[ 7249.867268] f483ba04 f855058b a89b66cd f483ba44 f8962f4b 00000000
e659266c f483ba54
[ 7249.867361] 8004753c f483ba5c f8962f4b f2031140 000003c1 ffbd8fa0
c16b0e00 00000064
[ 7249.867448] Call Trace:
[ 7249.867494] [<f855058b>] ? e1000_xmit_frame+0x87b/0xdc0 [e1000e]
[ 7249.867534] [<f8962f4b>] ? tcp_in_window+0xeb/0xb10 [nf_conntrack]
[ 7249.867576] [<f8962f4b>] ? tcp_in_window+0xeb/0xb10 [nf_conntrack]
[ 7249.867615] [<c16b0e00>] ? icmp_send+0xa0/0x380
[ 7249.867648] [<c16b102f>] icmp_send+0x2cf/0x380
[ 7249.867681] [<f89c8126>] nf_send_unreach+0xa6/0xc0 [nf_reject_ipv4]
[ 7249.867714] [<f89cd0da>] reject_tg+0x7a/0x9f [ipt_REJECT]
[ 7249.867746] [<f88c29a7>] ipt_do_table+0x317/0x70c [ip_tables]
[ 7249.867780] [<f895e0a6>] ? __nf_conntrack_find_get+0x166/0x3b0
[nf_conntrack]
[ 7249.867838] [<f895eea8>] ? nf_conntrack_in+0x398/0x600 [nf_conntrack]
[ 7249.867889] [<f84c0035>] iptable_filter_hook+0x35/0x80
[iptable_filter]
[ 7249.867933] [<c16776a1>] nf_iterate+0x71/0x80
[ 7249.867970] [<c1677715>] nf_hook_slow+0x65/0xc0
[ 7249.868002] [<c1681811>] __ip_local_out_sk+0xc1/0xd0
[ 7249.868034] [<c1680f30>] ? ip_forward_options+0x1a0/0x1a0
[ 7249.868066] [<c1681836>] ip_local_out_sk+0x16/0x30
[ 7249.868097] [<c1684054>] ip_send_skb+0x14/0x80
[ 7249.868129] [<c16840f4>] ip_push_pending_frames+0x34/0x40
[ 7249.868163] [<c16844a2>] ip_send_unicast_reply+0x282/0x310
[ 7249.868196] [<c16a0863>] tcp_v4_send_reset+0x1b3/0x380
[ 7249.868227] [<c16a1b63>] tcp_v4_rcv+0x323/0x990
[ 7249.868257] [<c16776a1>] ? nf_iterate+0x71/0x80
[ 7249.868289] [<c167dc2b>] ip_local_deliver_finish+0x8b/0x230
[ 7249.868322] [<c167df4c>] ip_local_deliver+0x4c/0xa0
[ 7249.868353] [<c167dba0>] ? ip_rcv_finish+0x390/0x390
[ 7249.868384] [<c167d88c>] ip_rcv_finish+0x7c/0x390
[ 7249.868415] [<c167e280>] ip_rcv+0x2e0/0x420
...
Prior to the VRF change the oif was not set in the flow struct, so the
VRF support should really have only added the vrf_master_ifindex lookup.
Fixes: 613d09b30f8b ("net: Use VRF device index for lookups on TX")
Cc: Andrey Melnikov <temnota.am@xxxxxxxxx>
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 59f069789c98678710ed30a4be0daa3546ec82c7
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Sep 25 11:56:56 2015 +0100
net: update docbook comment for __mdiobus_register()
Update the docbook comment for __mdiobus_register() to include the new
module owner argument. This resolves a warning found by the 0-day
builder.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b4731977243c1ae9cfd8b3971ffc15425b7d7545
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 25 20:45:27 2015 -0700
MAINTAINERS: remove amd5536udc USB gadget driver maintainer
Thomas can no longer work on the driver, so he asked me to mark the
MAINTAINER entry as "Orphan" with the hope that someone else would
someday pick it up.
Cc: Thomas Dahlmann <dahlmann.thomas@xxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 2866196f294954ce9fa226825c8c1eaa64c7da8a
Author: Doug Ledford <dledford@xxxxxxxxxx>
Date: Fri Sep 25 22:30:24 2015 -0400
IB/ipoib: increase the max mcast backlog queue
When performing sendonly joins, we queue the packets that trigger
the join until the join completes. This may take on the order of
hundreds of milliseconds. It is easy to have many more than three
packets come in during that time. Expand the maximum queue depth
in order to try and prevent dropped packets during the time it
takes to join the multicast group.
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit d323efc786910bcc0c8f8b9f97780c70544ac4df
Author: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Date: Thu Sep 17 14:02:46 2015 +0800
ACPI / PCI: Remove duplicated penalty on SCI IRQ
Now we have dedicated interface acpi_penalize_sci_irq() to penalize
ISA IRQ used by ACPI SCI, so remove duplicated code to penalize ACPI SCI
in acpi_irq_penalty_init().
Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 5ebc76035303016ec41bb752bec156ea9fde7c34
Author: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Date: Thu Sep 17 14:02:45 2015 +0800
ACPI, PCI, irq: Do not share PCI IRQ with ISA IRQ
Avoid IRQs occupied by ISA IRQs when allocating IRQs for PCI link devices,
otherwise it may cause interrupt storm due to incompatible pin attributes.
This issue was triggered on a KVM virtual machine, which
1) uses IRQ9 for SCI in high level mode.
2) defines an PCI interrupt link device (LNKS) with IRQ9 as the only
possible irq.
3) has an PCI device referring to link device LNKS.
So it causes interrupt storm when enabling the PCI device because PCI IRQ
works in low level mode.
Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 15b94fa32a422f4b97dc34e4b7060ec83d10bee5
Author: Lv Zheng <lv.zheng@xxxxxxxxx>
Date: Thu Sep 24 14:54:40 2015 +0800
ACPI / EC: Fix a memory leak issue in acpi_ec_query()
When query handler is not found, "result" is actually stil 0, and
"struct acpi_ec_query" is not NULL, so the deletion code of
"struct acpi_ec_query" at the end of the function cannot be invoked.
As a consequence, memory leak can be observed.
The issue is introduced by this commit:
Commit: 02b771b64b73226052d6e731a0987db3b47281e9
Subject: ACPI / EC: Fix an issue caused by the serialized _Qxx
This patch fixes such memory leakage.
Fixes: 02b771b64b73 (ACPI / EC: Fix an issue caused by the serialized
_Qxx evaluations)
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit d4a748a10e50d95992ae67677f1a1a13e2d6ed47
Merge: 03e8f64 9badce0
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 25 16:20:55 2015 -0700
Merge branch 'for-4.3-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
Pull another cgroup fix from Tejun Heo:
"The cgroup writeback support got inadvertently enabled for traditional
hierarchies revealing two regressions which are currently being worked
on. It shouldn't have been enabled on traditional hierarchies, so
disable it on them. This is enough to make the regressions go away
for people who aren't experimenting with cgroup"
* 'for-4.3-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
cgroup, writeback: don't enable cgroup writeback on traditional
hierarchies
commit e1a2d49cd5ef551c51be95cc037033e9e582b0cd
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Sep 24 12:28:44 2015 -0700
PM / OPP: Fix typo modifcation -> modification
Reported-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 58a89ecaca53736aa465170530acea4f8be34ab4
Author: Guillaume Nault <g.nault@xxxxxxxxxxxx>
Date: Thu Sep 24 12:54:01 2015 +0200
ppp: fix lockdep splat in ppp_dev_uninit()
ppp_dev_uninit() locks all_ppp_mutex while under rtnl mutex protection.
ppp_create_interface() must then lock these mutexes in that same order
to avoid possible deadlock.
[ 120.880011] ======================================================
[ 120.880011] [ INFO: possible circular locking dependency detected ]
[ 120.880011] 4.2.0 #1 Not tainted
[ 120.880011] -------------------------------------------------------
[ 120.880011] ppp-apitest/15827 is trying to acquire lock:
[ 120.880011] (&pn->all_ppp_mutex){+.+.+.}, at: [<ffffffffa0145f56>]
ppp_dev_uninit+0x64/0xb0 [ppp_generic]
[ 120.880011]
[ 120.880011] but task is already holding lock:
[ 120.880011] (rtnl_mutex){+.+.+.}, at: [<ffffffff812e4255>]
rtnl_lock+0x12/0x14
[ 120.880011]
[ 120.880011] which lock already depends on the new lock.
[ 120.880011]
[ 120.880011]
[ 120.880011] the existing dependency chain (in reverse order) is:
[ 120.880011]
[ 120.880011] -> #1 (rtnl_mutex){+.+.+.}:
[ 120.880011] [<ffffffff81073a6f>] lock_acquire+0xcf/0x10e
[ 120.880011] [<ffffffff813ab18a>] mutex_lock_nested+0x56/0x341
[ 120.880011] [<ffffffff812e4255>] rtnl_lock+0x12/0x14
[ 120.880011] [<ffffffff812d9d94>] register_netdev+0x11/0x27
[ 120.880011] [<ffffffffa0147b17>] ppp_ioctl+0x289/0xc98
[ppp_generic]
[ 120.880011] [<ffffffff8113b367>] do_vfs_ioctl+0x4ea/0x532
[ 120.880011] [<ffffffff8113b3fd>] SyS_ioctl+0x4e/0x7d
[ 120.880011] [<ffffffff813ad7d7>]
entry_SYSCALL_64_fastpath+0x12/0x6f
[ 120.880011]
[ 120.880011] -> #0 (&pn->all_ppp_mutex){+.+.+.}:
[ 120.880011] [<ffffffff8107334e>] __lock_acquire+0xb07/0xe76
[ 120.880011] [<ffffffff81073a6f>] lock_acquire+0xcf/0x10e
[ 120.880011] [<ffffffff813ab18a>] mutex_lock_nested+0x56/0x341
[ 120.880011] [<ffffffffa0145f56>] ppp_dev_uninit+0x64/0xb0
[ppp_generic]
[ 120.880011] [<ffffffff812d5263>]
rollback_registered_many+0x19e/0x252
[ 120.880011] [<ffffffff812d5381>] rollback_registered+0x29/0x38
[ 120.880011] [<ffffffff812d53fa>]
unregister_netdevice_queue+0x6a/0x77
[ 120.880011] [<ffffffffa0146a94>] ppp_release+0x42/0x79
[ppp_generic]
[ 120.880011] [<ffffffff8112d9f6>] __fput+0xec/0x192
[ 120.880011] [<ffffffff8112dacc>] ____fput+0x9/0xb
[ 120.880011] [<ffffffff8105447a>] task_work_run+0x66/0x80
[ 120.880011] [<ffffffff81001801>]
prepare_exit_to_usermode+0x8c/0xa7
[ 120.880011] [<ffffffff81001900>]
syscall_return_slowpath+0xe4/0x104
[ 120.880011] [<ffffffff813ad931>] int_ret_from_sys_call+0x25/0x9f
[ 120.880011]
[ 120.880011] other info that might help us debug this:
[ 120.880011]
[ 120.880011] Possible unsafe locking scenario:
[ 120.880011]
[ 120.880011] CPU0 CPU1
[ 120.880011] ---- ----
[ 120.880011] lock(rtnl_mutex);
[ 120.880011] lock(&pn->all_ppp_mutex);
[ 120.880011] lock(rtnl_mutex);
[ 120.880011] lock(&pn->all_ppp_mutex);
[ 120.880011]
[ 120.880011] *** DEADLOCK ***
Fixes: 8cb775bc0a34 ("ppp: fix device unregistration upon netns deletion")
Reported-by: Sedat Dilek <sedat.dilek@xxxxxxxxx>
Tested-by: Sedat Dilek <sedat.dilek@xxxxxxxxx>
Signed-off-by: Guillaume Nault <g.nault@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 21343ac21ec7d871e94e98e288f3398a4207d9c0
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Thu Sep 24 15:46:53 2015 +0530
net: via/Kconfig: GENERIC_PCI_IOMAP required if PCI not selected
The builds of allmodconfig of avr32 is failing with:
drivers/net/ethernet/via/via-rhine.c:1098:2: error: implicit declaration
of function 'pci_iomap' [-Werror=implicit-function-declaration]
drivers/net/ethernet/via/via-rhine.c:1119:2: error: implicit declaration
of function 'pci_iounmap' [-Werror=implicit-function-declaration]
The generic empty pci_iomap and pci_iounmap is used only if CONFIG_PCI
is not defined and CONFIG_GENERIC_PCI_IOMAP is defined.
Add GENERIC_PCI_IOMAP in the dependency list for VIA_RHINE as we are
getting build failure when CONFIG_PCI and CONFIG_GENERIC_PCI_IOMAP both
are not defined.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 357cd64c18404309aabefb82019b12773de31a12
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 24 00:07:17 2015 +0100
phy: marvell: add link partner advertised modes
Read the standard link partner advertisment registers and store it in
phydev->lp_advertising, so ethtool can report this information to
userspace via ethtool. Zero it as per genphy if autonegotiation is
disabled. Tested with a Marvell 88E1512 PHY.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 03e8f644868f147e021e8660346890e731c2e435
Merge: 101688f 2b9dbef
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 25 12:08:41 2015 -0700
Merge branch 'for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs
Pull btrfs fixes from Chris Mason:
"This is an assorted set I've been queuing up:
Jeff Mahoney tracked down a tricky one where we ended up starting IO
on the wrong mapping for special files in btrfs_evict_inode. A few
people reported this one on the list.
Filipe found (and provided a test for) a difficult bug in reading
compressed extents, and Josef fixed up some quota record keeping with
snapshot deletion. Chandan killed off an accounting bug during DIO
that lead to WARN_ONs as we freed inodes"
* 'for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
Btrfs: keep dropped roots in cache until transaction commit
Btrfs: Direct I/O: Fix space accounting
btrfs: skip waiting on ordered range for special files
Btrfs: fix read corruption of compressed and shared extents
Btrfs: remove unnecessary locking of cleaner_mutex to avoid deadlock
Btrfs: don't initialize a space info as full to prevent ENOSPC
commit c3852ab0e606212de523c1fb1e15adbf9f431619
Author: Doug Ledford <dledford@xxxxxxxxxx>
Date: Fri Sep 25 14:35:01 2015 -0400
IB/ipoib: Make sendonly multicast joins create the mcast group
Since IPoIB should, as much as possible, emulate how multicast
sends work on Ethernet for regular TCP/IP apps, there should be
no requirement to subscribe to a multicast group before your
sends are properly sent. However, due to the difference in how
multicast is handled on InfiniBand, we must join the appropriate
multicast group before we can send to it. Previously we tried
not to trigger the auto-create feature of the subnet manager when
doing this because we didn't have tracking of these sendonly
groups and the auto-creation might never get undone. The previous
patch added timing to these sendonly joins and allows us to
leave them after a reasonable idle expiration time. So supply
all of the information needed to auto-create group.
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit bd99b2e05c4df2a428e5c9dd338289089d0e26df
Author: Christoph Lameter <cl@xxxxxxxxx>
Date: Thu Sep 24 12:00:05 2015 -0500
IB/ipoib: Expire sendonly multicast joins
On neighbor expiration, check to see if the neighbor was actually a
sendonly multicast join, and if so, leave the multicast group as we
expire the neighbor.
Signed-off-by: Christoph Lameter <cl@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 101688f534fd322520678a184fdfedc7a21741fc
Merge: ddff42e 500d701
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 25 11:33:52 2015 -0700
Merge tag 'nfs-for-4.3-2' of
git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull NFS client bugfixes from Trond Myklebust:
"Highlights include:
Stable patches:
- fix v4.2 SEEK on files over 2 gigs
- Fix a layout segment reference leak when pNFS I/O falls back to
inband I/O.
- Fix recovery of recalled read delegations
Bugfixes:
- Fix a case where NFSv4 fails to send CLOSE after a server reboot
- Fix sunrpc to wait for connections to complete before retrying
- Fix sunrpc races between transport connect/disconnect and shutdown
- Fix an infinite loop when layoutget fail with BAD_STATEID
- nfs/filelayout: Fix NULL reference caused by double freeing of
fh_array
- Fix a bogus WARN_ON_ONCE() in O_DIRECT when layout
commit_through_mds is set
- Fix layoutreturn/close ordering issues"
* tag 'nfs-for-4.3-2' of
git://git.linux-nfs.org/projects/trondmy/linux-nfs:
NFS41: make close wait for layoutreturn
NFS: Skip checking ds_cinfo.buckets when lseg's commit_through_mds is
set
NFSv4.x/pnfs: Don't try to recover stateids twice in layoutget
NFSv4: Recovery of recalled read delegations is broken
NFS: Fix an infinite loop when layoutget fail with BAD_STATEID
NFS: Do cleanup before resetting pageio read/write to mds
SUNRPC: xs_sock_mark_closed() does not need to trigger socket autoclose
SUNRPC: Lock the transport layer on shutdown
nfs/filelayout: Fix NULL reference caused by double freeing of fh_array
SUNRPC: Ensure that we wait for connections to complete before retrying
SUNRPC: drop null test before destroy functions
nfs: fix v4.2 SEEK on files over 2 gigs
SUNRPC: Fix races between socket connection and destroy code
nfs: fix pg_test page count calculation
Failing to send a CLOSE if file is opened WRONLY and server reboots on
a 4.x mount
commit ddff42e5926bc0fcfcbc7d035cdbc325c36351bc
Merge: 966966a 7f57d80
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 25 11:25:30 2015 -0700
Merge tag 'sound-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai:
"This ended up with a larger set of fixes than wished, unfortunately.
As diffstat shows, the majority of changes are for various ASoC
drivers (Realtek, Wolfson codec drivers, etc), in addition to a couple
of HD-audio regression fixes. All these are reasonably small and
nothing to scare much"
* tag 'sound-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (29 commits)
ALSA: hda - Disable power_save_node for Thinkpads
ALSA: hda/tegra - async probe for avoiding module loading deadlock
ASoC: rt5645: Prevent the pop sound in case of playback and the jack is
plugging
ASoC: rt5645: Increase the delay time to remove the pop sound
ASoC: rt5645: Use the type SOC_DAPM_SINGLE_AUTODISABLE to prevent the
weird sound in runtime of power up
ASoC: pxa: pxa2xx-ac97: fix dma requestor lines
MAINTAINERS: Update website and git repo for Wolfson Microelectronics
ASoC: fsl_ssi: Fix checking of dai format for AC97 mode
ASoC: wm0010: fix error path
ASoC: wm0010: fix memory leak
ASoC: wm8960: correct the max register value of mic boost pga
ASoC: wm8962: remove 64k sample rate support
ASoC: davinci-mcasp: Fix devm_kasprintf format string
ASoC: fix broken pxa SoC support
ASoC: davinci-mcasp: Set .symmetric_rates = 1 in snd_soc_dai_driver
ASoC: au1x: psc-i2s: Fix unused variable 'ret' warning
ASoC: SPEAr: Make SND_SPEAR_SOC select SND_SOC_GENERIC_DMAENGINE_PCM
ASoC: mediatek: Increase periods_min in capture
ASoC: davinci-mcasp: Revise the FIFO threshold calculation
ASoC: wm8960: correct gain value for input PGA and add microphone PGA
...
commit 966966a630d936310ebb0f9bfe9e23a662d00454
Merge: b6d980f de24c18
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 25 11:16:53 2015 -0700
Merge tag 'pci-v4.3-fixes-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI fixes from Bjorn Helgaas:
"These are fixes for things we merged for v4.3 (VPD, MSI, and bridge
window management), and a new Renesas R8A7794 SoC device ID.
Details:
Resource management:
- Revert pci_read_bridge_bases() unification (Bjorn Helgaas)
- Clear IORESOURCE_UNSET when clipping a bridge window (Bjorn
Helgaas)
MSI:
- Fix MSI IRQ domains for VFs on virtual buses (Alex Williamson)
Renesas R-Car host bridge driver:
- Add R8A7794 support (Sergei Shtylyov)
Miscellaneous:
- Fix devfn for VPD access through function 0 (Alex Williamson)
- Use function 0 VPD only for identical functions (Alex Williamson)"
* tag 'pci-v4.3-fixes-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
PCI: rcar: Add R8A7794 support
PCI: Use function 0 VPD for identical functions, regular VPD for others
PCI: Fix devfn for VPD access through function 0
PCI/MSI: Fix MSI IRQ domains for VFs on virtual buses
PCI: Clear IORESOURCE_UNSET when clipping a bridge window
PCI: Revert "PCI: Call pci_read_bridge_bases() from core instead of
arch code"
commit b6d980f49342cbf823ef72fee8a572e43d43bcf8
Merge: 57cb635 920552b
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 25 10:51:40 2015 -0700
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM fixes from Paolo Bonzini:
"AMD fixes for bugs introduced in the 4.2 merge window, and a few PPC
bug fixes too"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
KVM: disable halt_poll_ns as default for s390x
KVM: x86: fix off-by-one in reserved bits check
KVM: x86: use correct page table format to check nested page table
reserved bits
KVM: svm: do not call kvm_set_cr0 from init_vmcb
KVM: x86: trap AMD MSRs for the TSeg base and mask
KVM: PPC: Book3S: Take the kvm->srcu lock in
kvmppc_h_logical_ci_load/store()
KVM: PPC: Book3S HV: Pass the correct trap argument to
kvmhv_commence_exit
KVM: PPC: Book3S HV: Fix handling of interrupted VCPUs
kvm: svm: reset mmu on VCPU reset
commit 57cb635c5cb6eea54af02aea5edd003b6b2715a7
Merge: ced255c d6eb71a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 25 10:11:26 2015 -0700
Merge tag 'powerpc-4.3-3' of
git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
Pull powerpc fixes from Michael Ellerman:
- Wire up sys_membarrier()
- cxl: Fix lockdep warning while creating afu_err_buff from Vaibhav
* tag 'powerpc-4.3-3' of
git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
cxl: Fix lockdep warning while creating afu_err_buff attribute
powerpc: Wire up sys_membarrier()
commit 283e8ba2dfde54f8f27d7d0f459a07de79a39d55
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Fri Sep 25 16:31:46 2015 +0100
MODSIGN: Change from CMS to PKCS#7 signing if the openssl is too old
The sign-file.c program actually uses CMS rather than PKCS#7 to sign a
file
since that allows the target X.509 certificate to be specified by
subjectKeyId rather than by issuer + serialNumber.
However, older versions of the OpenSSL crypto library (such as may be
found
in CentOS 5.11) don't support CMS. Assume everything prior to
OpenSSL-1.0.0 doesn't support CMS and switch to using PKCS#7 in that case.
Further, the pre-1.0.0 OpenSSL only supports PKCS#7 signing with SHA1, so
give an error from the sign-file script if the caller requests anything
other than SHA1.
The compiler gives the following error with an OpenSSL crypto library
that's too old:
HOSTCC scripts/sign-file
scripts/sign-file.c:23:25: fatal error: openssl/cms.h: No such file or
directory
#include <openssl/cms.h>
Reported-by: Vinson Lee <vlee@xxxxxxxxxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Acked-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
commit e7c87bef7de2417b219d4dbfe8d33a0098a8df54
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Fri Sep 25 16:31:46 2015 +0100
X.509: Don't strip leading 00's from key ID when constructing key
description
Don't strip leading zeros from the crypto key ID when using it to
construct
the struct key description as the signature in kernels up to and including
4.2 matched this aspect of the key. This means that 1 in 256 keys won't
actually match if their key ID begins with 00.
The key ID is stored in the module signature as binary and so must be
converted to text in order to invoke request_key() - but it isn't stripped
at this point.
Something like this is likely to be observed in dmesg when the key is
loaded:
[ 1.572423] Loaded X.509 cert 'Build time autogenerated kernel
key: 62a7c3d2da278be024da4af8652c071f3fea33'
followed by this when we try and use it:
[ 1.646153] Request for unknown module key 'Build time autogenerated
kernel key: 0062a7c3d2da278be024da4af8652c071f3fea33' err -11
The 'Loaded' line should show an extra '00' on the front of the hex
string.
This problem should not affect 4.3-rc1 and onwards because there the key
should be matched on one of its auxiliary identities rather than the key
struct's description string.
Reported-by: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
Reported-by: Andy Whitcroft <apw@xxxxxxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
commit 292c6091353475d94e2cfb49c29906e88ee967ba
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Fri Sep 25 16:31:45 2015 +0100
KEYS: Remove unnecessary header #inclusions from extract-cert.c
Remove headers #included unnecessarily from extract-cert.c lest they cause
compilation of the tool to fail against an older OpenSSL library.
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Acked-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
commit 94c4554ba07adbdde396748ee7ae01e86cf2d8d7
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Fri Sep 25 16:30:08 2015 +0100
KEYS: Fix race between key destruction and finding a keyring by name
There appears to be a race between:
(1) key_gc_unused_keys() which frees key->security and then calls
keyring_destroy() to unlink the name from the name list
(2) find_keyring_by_name() which calls key_permission(), thus accessing
key->security, on a key before checking to see whether the key usage
is 0
(ie. the key is dead and might be cleaned up).
Fix this by calling ->destroy() before cleaning up the core key data -
including key->security.
Reported-by: Petr Matousek <pmatouse@xxxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
commit 81fb5e26a9d05674c048803a20cb8f08a1b1c9b8
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Sep 24 10:34:24 2015 +0300
IB/mlx5: Remove pa_lkey usages
Since mlx5 driver cannot rely on registration using the
reserved lkey (global_dma_lkey) it used to allocate a private
physical address lkey for each allocated pd.
Commit 96249d70dd70 ("IB/core: Guarantee that a local_dma_lkey
is available") just does it in the core layer so we can go ahead
and use that.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit c6790aa9f4fdc26b1246ba36da2fd749663beb65
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Sep 24 10:34:23 2015 +0300
IB/mlx5: Remove support for IB_DEVICE_LOCAL_DMA_LKEY
Commit 96249d70dd70 ("IB/core: Guarantee that a local_dma_lkey
is available") allows ULPs that make use of the local dma key to keep
working as before by allocating a DMA MR with local permissions and
converted these consumers to use the MR associated with the PD
rather then device->local_dma_lkey.
ConnectIB has some known issues with memory registration
using the local_dma_lkey (SEND, RDMA, RECV seems to work ok).
Thus don't expose support for it (remove device->local_dma_lkey
setting), and take advantage of the above commit such that no regression
is introduced to working systems.
The local_dma_lkey support will be restored in CX4 depending on FW
capability query.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 3cffd930171518821595839c5ce7036894ef0d74
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Sep 24 10:34:22 2015 +0300
IB/iser: Add module parameter for always register memory
This module parameter forces memory registration even for
a continuous memory region. It is true by default as sending
an all-physical rkey with remote permissions might be insecure.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit bb6c96d72879fe1f674a804eb95b891def4ace61
Author: Chuck Lever <chuck.lever@xxxxxxxxxx>
Date: Thu Sep 24 10:34:21 2015 +0300
xprtrdma: Replace global lkey with lkey local to PD
The core API has changed so that devices that do not have a global
DMA lkey automatically create an mr, per-PD, and make that lkey
available. The global DMA lkey interface is going away in favor of
the per-PD DMA lkey.
The per-PD DMA lkey is always available. Convert xprtrdma to use the
device's per-PD DMA lkey for regbufs, no matter which memory
registration scheme is in use.
Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Cc: linux-nfs <linux-nfs@xxxxxxxxxxxxxxx>
Acked-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 310b7cec8ea32dcd4e9978423717ce78dd89d45d
Merge: e116a64 1f93e4a
Author: Doug Ledford <dledford@xxxxxxxxxx>
Date: Fri Sep 25 10:46:07 2015 -0400
Merge tag 'v4.3-rc2' into k.o/for-4.3-v1
Linux 4.3-rc2
commit b5cabbcbd157a4bf5a92dfc85134999a3b55342d
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Thu Sep 24 13:05:22 2015 +0300
perf tools: Fix copying of /proc/kcore
A copy of /proc/kcore containing the kernel text can be made to the
buildid cache. e.g.
perf buildid-cache -v -k /proc/kcore
To workaround objdump limitations, a copy is also made when annotating
against /proc/kcore.
The copying process stops working from libelf about v1.62 onwards (the
problem was found with v1.63).
The cause is that a call to gelf_getphdr() in kcore__add_phdr() fails
because additional validation has been added to gelf_getphdr().
The use of gelf_getphdr() is a misguided attempt to get default
initialization of the Gelf_Phdr structure. That should not be
necessary because every member of the Gelf_Phdr structure is
subsequently assigned. So just remove the call to gelf_getphdr().
Similarly, a call to gelf_getehdr() in gelf_kcore__init() can be
removed also.
Committer notes:
Note to stable@xxxxxxxxxx, from Adrian in the cover letter for this
patchkit:
The "Fix copying of /proc/kcore" problem goes back to v3.13 if you think
it is important enough for stable.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: stable@xxxxxxxxxx
Link:
http://lkml.kernel.org/r/1443089122-19082-3-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 597ee40722bf05195f91a41e88e15b79bdab152c
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Thu Sep 24 13:05:21 2015 +0300
perf intel-pt: Remove no_force_psb from documentation
no_force_psb was dropped as a late change to the kernel driver.
Consequently, remove it from the documentation.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1443089122-19082-2-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 266fa2b22294909ddf6e7d2f8acfe07adf9fd978
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Thu Sep 24 11:24:18 2015 -0300
perf probe: Use existing routine to look for a kernel module by
dso->short_name
We have map_groups__find_by_name() to look at the list of modules that
are in place for a given machine, so use it instead of traversing the
machine dso list, which also includes DSOs for userspace.
When merging the user and kernel DSO lists a bug was introduced where
'perf probe' stopped being able to add probes to modules using its short
name:
# perf probe -m usbnet --add usbnet_start_xmit
usbnet_start_xmit is out of .text, skip it.
Error: Failed to add events.
#
With this fix it works again:
# perf probe -m usbnet --add usbnet_start_xmit
Added new event:
probe:usbnet_start_xmit (on usbnet_start_xmit in usbnet)
You can now use it in all perf tools, such as:
perf record -e probe:usbnet_start_xmit -aR sleep 1
#
Reported-by: Wang Nan <wangnan0@xxxxxxxxxx>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Fixes: 3d39ac538629 ("perf machine: No need to have two DSOs lists")
Link: http://lkml.kernel.org/r/20150924015008.GE1897@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 920552b213e3dc832a874b4e7ba29ecddbab31bc
Author: David Hildenbrand <dahi@xxxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 12:34:53 2015 +0200
KVM: disable halt_poll_ns as default for s390x
We observed some performance degradation on s390x with dynamic
halt polling. Until we can provide a proper fix, let's enable
halt_poll_ns as default only for supported architectures.
Architectures are now free to set their own halt_poll_ns
default value.
Signed-off-by: David Hildenbrand <dahi@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 58c95070da3a504fbeca7939435bbb062cb96ea3
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Tue Sep 22 10:15:59 2015 +0200
KVM: x86: fix off-by-one in reserved bits check
29ecd6601904 ("KVM: x86: avoid uninitialized variable warning",
2015-09-06) introduced a not-so-subtle problem, which probably
escaped review because it was not part of the patch context.
Before the patch, leaf was always equal to iterator.level. After,
it is equal to iterator.level - 1 in the call to is_shadow_zero_bits_set,
and when is_shadow_zero_bits_set does another "-1" the check on
reserved bits becomes incorrect. Using "iterator.level" in the call
fixes this call trace:
WARNING: CPU: 2 PID: 17000 at arch/x86/kvm/mmu.c:3385
handle_mmio_page_fault.part.93+0x1a/0x20 [kvm]()
Modules linked in: tun sha256_ssse3 sha256_generic drbg binfmt_misc ipv6
vfat fat fuse dm_crypt dm_mod kvm_amd kvm crc32_pclmul aesni_intel aes_x86_64
lrw gf128mul glue_helper ablk_helper cryptd fam15h_power amd64_edac_mod k10temp
edac_core amdkfd amd_iommu_v2 radeon acpi_cpufreq
[...]
Call Trace:
dump_stack+0x4e/0x84
warn_slowpath_common+0x95/0xe0
warn_slowpath_null+0x1a/0x20
handle_mmio_page_fault.part.93+0x1a/0x20 [kvm]
tdp_page_fault+0x231/0x290 [kvm]
? emulator_pio_in_out+0x6e/0xf0 [kvm]
kvm_mmu_page_fault+0x36/0x240 [kvm]
? svm_set_cr0+0x95/0xc0 [kvm_amd]
pf_interception+0xde/0x1d0 [kvm_amd]
handle_exit+0x181/0xa70 [kvm_amd]
? kvm_arch_vcpu_ioctl_run+0x68b/0x1730 [kvm]
kvm_arch_vcpu_ioctl_run+0x6f6/0x1730 [kvm]
? kvm_arch_vcpu_ioctl_run+0x68b/0x1730 [kvm]
? preempt_count_sub+0x9b/0xf0
? mutex_lock_killable_nested+0x26f/0x490
? preempt_count_sub+0x9b/0xf0
kvm_vcpu_ioctl+0x358/0x710 [kvm]
? __fget+0x5/0x210
? __fget+0x101/0x210
do_vfs_ioctl+0x2f4/0x560
? __fget_light+0x29/0x90
SyS_ioctl+0x4c/0x90
entry_SYSCALL_64_fastpath+0x16/0x73
---[ end trace 37901c8686d84de6 ]---
Reported-by: Borislav Petkov <bp@xxxxxxxxx>
Tested-by: Borislav Petkov <bp@xxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 6fec21449a62702a582cecbb0b351363e039c95e
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Tue Sep 22 23:02:14 2015 +0200
KVM: x86: use correct page table format to check nested page table
reserved bits
Intel CPUID on AMD host or vice versa is a weird case, but it can
happen. Handle it by checking the host CPU vendor instead of the
guest's in reset_tdp_shadow_zero_bits_mask. For speed, the
check uses the fact that Intel EPT has an X (executable) bit while
AMD NPT has NX.
Reported-by: Borislav Petkov <bp@xxxxxxxxx>
Tested-by: Borislav Petkov <bp@xxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 79a8059d244e99454e474902e4325ee9b50e9178
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Mon Sep 21 07:46:55 2015 +0200
KVM: svm: do not call kvm_set_cr0 from init_vmcb
kvm_set_cr0 may want to call kvm_zap_gfn_range and thus access the
memslots array (SRCU protected). Using a mini SRCU critical section
is ugly, and adding it to kvm_arch_vcpu_create doesn't work because
the VMX vcpu_create callback calls synchronize_srcu.
Fixes this lockdep splat:
===============================
[ INFO: suspicious RCU usage. ]
4.3.0-rc1+ #1 Not tainted
-------------------------------
include/linux/kvm_host.h:488 suspicious rcu_dereference_check() usage!
other info that might help us debug this:
rcu_scheduler_active = 1, debug_locks = 0
1 lock held by qemu-system-i38/17000:
#0: (&(&kvm->mmu_lock)->rlock){+.+...}, at:
kvm_zap_gfn_range+0x24/0x1a0 [kvm]
[...]
Call Trace:
dump_stack+0x4e/0x84
lockdep_rcu_suspicious+0xfd/0x130
kvm_zap_gfn_range+0x188/0x1a0 [kvm]
kvm_set_cr0+0xde/0x1e0 [kvm]
init_vmcb+0x760/0xad0 [kvm_amd]
svm_create_vcpu+0x197/0x250 [kvm_amd]
kvm_arch_vcpu_create+0x47/0x70 [kvm]
kvm_vm_ioctl+0x302/0x7e0 [kvm]
? __lock_is_held+0x51/0x70
? __fget+0x101/0x210
do_vfs_ioctl+0x2f4/0x560
? __fget_light+0x29/0x90
SyS_ioctl+0x4c/0x90
entry_SYSCALL_64_fastpath+0x16/0x73
Reported-by: Borislav Petkov <bp@xxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 7e5560a5648ab2bce7199c73b9c2a51b846f5541
Author: Geliang Tang <geliangtang@xxxxxxx>
Date: Thu Sep 24 04:48:53 2015 -0700
perf/x86: Change test_aperfmperf() and test_intel() to static
Fixes the following sparse warnings:
arch/x86/kernel/cpu/perf_event_msr.c:13:6: warning: symbol
'test_aperfmperf' was not declared. Should it be static?
arch/x86/kernel/cpu/perf_event_msr.c:18:6: warning: symbol
'test_intel' was not declared. Should it be static?
Signed-off-by: Geliang Tang <geliangtang@xxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/4588e8ab09638458f2451af572827108be3b4a36.1443123796.git.geliangtang@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 673681cafa99776e334c3e61cafa2cf115950c32
Author: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
Date: Tue Sep 22 22:32:14 2015 -0700
iscsi-target: Avoid OFMarker + IFMarker negotiation
This patch fixes a v4.2+ regression introduced by commit c04a6091
that removed support for obsolete sync-and-steering markers usage
as originally defined in RFC-3720.
The regression would involve attempting to send OFMarker=No +
IFMarker=No keys during opertional negotiation login phase,
including when initiators did not actually propose these keys.
The result for MSFT iSCSI initiators would be random junk in
TCP stream after the last successful login request was been sent
signaling the move to full feature phase (FFP) operation.
To address this bug, go ahead and avoid negotiating these keys
by default unless the initiator explicitly proposes them, but
still respond to them with 'No' if they are proposed.
Reported-by: Dragan MilivojeviÄ? <galileo@xxxxxxxxxxx>
Bisected-by: Christophe Vu-Brugier <cvubrugier@xxxxxxxxxxx>
Tested-by: Christophe Vu-Brugier <cvubrugier@xxxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 8fa3a867486f85df66eba8c4df85804d3309c6ad
Author: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
Date: Wed Sep 16 20:23:53 2015 -0700
target: Make TCM_WRITE_PROTECT failure honor D_SENSE bit
This patch changes transport_lookup_cmd_lun() to obtain
se_lun->lun_ref + se_cmd->se_device rcu_dereference during
TCM_WRITE_PROTECT -> CHECK_CONDITION failure status.
Do this to ensure the active control D_SENSE mode page bit
is being honored.
Reported-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Reviewed-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit f3bb467ff64b2598d023b3a07592748fa7768b6a
Author: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
Date: Tue Sep 15 23:07:45 2015 -0700
target: Fix target_sense_desc_format NULL pointer dereference
This patch allows target_sense_desc_format() to be called without a
valid se_device pointer, which can occur during an early exception
ahead of transport_lookup_cmd_lun() setting up se_cmd->se_device.
This addresses a v4.3-rc1 specific NULL pointer dereference
regression introduced by commit 4e4937e8.
Cc: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Cc: Hannes Reinecke <hare@xxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit eeeb9522231118138be418ff527dc8c9050f4707
Author: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
Date: Tue Sep 15 17:27:35 2015 -0700
target: Propigate backend read-only to core_tpg_add_lun
This patch adds a DF_READ_ONLY flag that is used by IBLOCK to
signal when a backend has been set to read-only mode, in order
to propigate read-only status up to core_tpg_add_lun() for all
future LUN fabric exports.
With this is place, existing emulation for reporting read-only
in spc_emulate_modesense() and normal transport_lookup_cmd_lun()
TCM_WRITE_PROTECTED status checking just works as expected.
Reported-by: Joeue Deng <joeue404@xxxxxxxxx>
Reported-by: Andy Grover <agrover@xxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 3ccd6e83df8a0d4a664edeecc453c4fa046395fb
Author: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
Date: Sun Sep 13 02:30:46 2015 -0700
target: Fix PR registration + APTPL RCU conversion regression
This patch fixes a v4.2+ regression introduced by commit 79dc9c9e86
where lookup of t10_pr_registration->pr_reg_deve and associated
->pr_kref get was missing from __core_scsi3_do_alloc_registration(),
which is responsible for setting DEF_PR_REG_ACTIVE.
This would result in REGISTER operations completing successfully,
but subsequent core_scsi3_pr_seq_non_holder() checking would fail
with !DEF_PR_REG_ACTIVE -> RESERVATION CONFLICT status.
Update __core_scsi3_add_registration() to drop ->pr_kref reference
after registration and any optional ALL_TG_PT=1 processing has
completed. Update core_scsi3_decode_spec_i_port() to release
the new parent local_pr_reg->pr_kref as well.
Also, update __core_scsi3_check_aptpl_registration() to perform
the same target_nacl_find_deve() lookup + ->pr_kref get, now that
__core_scsi3_add_registration() expects to drop the reference.
Finally, since there are cases when se_dev_entry->se_lun_acl can
still be dereferenced in core_scsi3_lunacl_undepend_item() while
holding ->pr_kref, go ahead and move explicit rcu_assign_pointer()
NULL assignments within core_disable_device_list_for_node() until
after orig->pr_comp finishes.
Reported-by: Scott L. Lykens <scott@xxxxxxxxxx>
Tested-by: Scott L. Lykens <scott@xxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Cc: Hannes Reinecke <hare@xxxxxxx>
Cc: Lee Duncan <lduncan@xxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # v4.2+
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit b626ef0128d254d33ee43c51d68f577bbec370ac
Merge: 17a10c9 9861f72
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Sep 24 23:04:53 2015 -0700
Merge branch 'phy-mdio-refcnt'
Russell King says:
====================
Phy, mdiobus, and netdev struct device fixes
The third version of this series fixes the build error which David
identified, and drops the broken changes for the Cavium Thunger BGX
ethernet driver as this driver requires some complex changes to
resolve the leakage - and this is best done by people who can test
the driver.
Compared to v2, the only patch which has changed is patch 6
"net: fix phy refcounting in a bunch of drivers"
I _think_ I've been able to build-test all the drivers touched by
that patch to some degree now, though several of them needed the
Kconfig hacked to allow it (not all had || COMPILE_TEST clause on
their dependencies.)
Previous cover letters below:
This is the second version of the series, with the comments David had
on the first patch fixed up. Original series description with updated
diffstat below.
While looking at the DSA code, I noticed we have a
of_find_net_device_by_node(), and it looks like users of that are
similarly buggy - it looks like net/dsa/dsa.c is the only user. Fix
that too.
Hi,
While looking at the phy code, I identified a number of weaknesses
where refcounting on device structures was being leaked, where
modules could be removed while in-use, and where the fixed-phy could
end up having unintended consequences caused by incorrect calls to
fixed_phy_update_state().
This patch series resolves those issues, some of which were discovered
with testing on an Armada 388 board. Not all patches are fully tested,
particularly the one which touches several network drivers.
When resolving the struct device refcounting problems, several different
solutions were considered before settling on the implementation here -
one of the considerations was to avoid touching many network drivers.
The solution here is:
phy_attach*() - takes a refcount
phy_detach*() - drops the phy_attach refcount
Provided drivers always attach and detach their phys, which they should
already be doing, this should change nothing, even if they leak a
refcount.
of_phy_find_device() and of_* functions which use that take
a refcount. Arrange for this refcount to be dropped once
the phy is attached.
This is the reason why the previous change is important - we can't drop
this refcount taken by of_phy_find_device() until something else holds
a reference on the device. This resolves the leaked refcount caused by
using of_phy_connect() or of_phy_attach().
Even without the above changes, these drivers are leaking by calling
of_phy_find_device(). These drivers are addressed by adding the
appropriate release of that refcount.
The mdiobus code also suffered from the same kind of leak, but thankfully
this only happened in one place - the mdio-mux code.
I also found that the try_module_get() in the phy layer code was utterly
useless: phydev->dev.driver was guaranteed to always be NULL, so
try_module_get() was always being called with a NULL argument. I proved
this with my SFP code, which declares its own MDIO bus - the module use
count was never incremented irrespective of how I set the MDIO bus up.
This allowed the MDIO bus code to be removed from the kernel while there
were still PHYs attached to it.
One other bug was discovered: while using in-band-status with mvneta, it
was found that if a real phy is attached with in-band-status enabled,
and another ethernet interface is using the fixed-phy infrastructure, the
interface using the fixed-phy infrastructure is configured according to
the other interface using the in-band-status - which is caused by the
fixed-phy code not verifying that the phy_device passed in is actually
a fixed-phy device, rather than a real MDIO phy.
Lastly, having mdio_bus reversing phy_device_register() internals seems
like a layering violation - it's trivial to move that code to the phy
device layer.
====================
Tested-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9861f72074c77a8a065622c1be7e9c4277e600eb
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 24 20:36:33 2015 +0100
net: fix net_device refcounting
of_find_net_device_by_node() uses class_find_device() internally to
lookup the corresponding network device. class_find_device() returns
a reference to the embedded struct device, with its refcount
incremented.
Add a comment to the definition in net/core/net-sysfs.c indicating the
need to drop this refcount, and fix the DSA code to drop this refcount
when the OF-generated platform data is cleaned up and freed. Also
arrange for the ref to be dropped when handling errors.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 38737e490d4ea91660d3cec83ef88c4e6d360ae4
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 24 20:36:28 2015 +0100
phy: add phy_device_remove()
Add a phy_device_remove() function to complement phy_device_register(),
which undoes the effects of phy_device_register() by removing the phy
device from visibility, but not freeing it.
This allows these details to be moved out of the mdio bus code into
the phy code where this action belongs.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d618bf2bfd2a095644c852ebea16f5a981f9d875
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 24 20:36:23 2015 +0100
phy: fixed-phy: properly validate phy in fixed_phy_update_state()
Validate that the phy_device passed into fixed_phy_update_state() is a
fixed-phy device before walking the list of phys for a fixed phy at the
same address.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 04d53b20fe44afe635b3d4438b437f7a12927e9a
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 24 20:36:18 2015 +0100
net: fix phy refcounting in a bunch of drivers
of_phy_find_device() increments the phy struct device refcount, which
we need to properly balance. Add code to network drivers using this
function to ensure that the struct device refcount is correctly
balanced.
For xgene, looking back in the history, we should be able to use
of_phy_connect() with a zero flags argument for the DT case as this is
how the driver used to operate prior to de7b5b3d790a ("net: eth: xgene:
change APM X-Gene SoC platform ethernet to support ACPI").
This leaves the Cavium Thunder BGX unfixed; fixing this driver is a
complicated task, one which the maintainers need to be involved with.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f018ae7a8c576345d56a0cd40d86c0574a2eb360
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 24 20:36:13 2015 +0100
of_mdio: fix MDIO phy device refcounting
bus_find_device() is defined as:
* This is similar to the bus_for_each_dev() function above, but it
* returns a reference to a device that is 'found' for later use, as
* determined by the @match callback.
and it does indeed return a reference-counted pointer to the device:
while ((dev = next_device(&i)))
if (match(dev, data) && get_device(dev))
^^^^^^^^^^^^^^^
break;
klist_iter_exit(&i);
return dev;
What that means is that when we're done with the struct device, we must
drop that reference. Neither of_phy_connect() nor of_phy_attach() did
this when phy_connect_direct() or phy_attach_direct() failed.
With our previous patch, phy_connect_direct() and phy_attach_direct()
take a new refcount on the phy device when successful, so we can drop
our local reference immediatley after these functions, whether or not
they succeeded.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Acked-by: Rob Herring <robh@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7322967bc1bd97ac9c49ecea19e5a1f681ca27ee
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 24 20:36:08 2015 +0100
phy: add proper phy struct device refcounting
Take a refcount on the phy struct device when the phy device is attached
to a network device, and drop it after it's detached. This ensures that
a refcount is held on the phy device while the device is being used by
a network device, thereby preventing the phy_device from being
unexpectedly kfree()'d by phy_device_release().
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3e3aaf649416988ca8be4ad2c52dc24d8be7b46e
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 24 20:36:02 2015 +0100
phy: fix mdiobus module safety
Re-implement the mdiobus module refcounting to ensure that we actually
ensure that the mdiobus module code does not go away while we might call
into it.
The old scheme using bus->dev.driver was buggy, because bus->dev is a
class device which never has a struct device_driver associated with it,
and hence the associated code trying to obtain a refcount did nothing
useful.
Instead, take the approach that other subsystems do: pass the module
when calling mdiobus_register(), and record that in the mii_bus struct.
When we need to increment the module use count in the phy code, use
this stored pointer. When the phy is deteched, drop the module
refcount, remembering that the phy device might go away at that point.
This doesn't stop the mii_bus going away while there are in-use phys -
it merely stops the underlying code vanishing.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e496ae690b2faff751e1849fb97b060615e21f28
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 24 20:35:57 2015 +0100
net: dsa: fix of_mdio_find_bus() device refcount leak
Current users of of_mdio_find_bus() leak a struct device refcount, as
they fail to clean up the reference obtained inside class_find_device().
Fix the DSA code to properly refcount the returned MDIO bus by:
1. taking a reference on the struct device whenever we assign it to
pd->chip[x].host_dev.
2. dropping the reference when we overwrite the existing reference.
3. dropping the reference when we free the data structure.
4. dropping the initial reference we obtained after setting up the
platform data structure, or on failure.
In step 2 above, where we obtain a new MDIO bus, there is no need to
take a reference on it as we would only have to drop it immediately
after assignment again, iow:
put_device(cd->host_dev); /* drop original assignment ref */
cd->host_dev = get_device(&mdio_bus_switch->dev); /* get our ref */
put_device(&mdio_bus_switch->dev); /* drop of_mdio_find_bus ref */
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a136442131443d929d2d8d243157824de4dfbae8
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 24 20:35:52 2015 +0100
phy: fix of_mdio_find_bus() device refcount leak
of_mdio_find_bus() leaks a struct device refcount, caused by using
class_find_device() and not realising that the device reference has
its refcount incremented:
* Note, you will need to drop the reference with put_device() after use.
...
while ((dev = class_dev_iter_next(&iter))) {
if (match(dev, data)) {
get_device(dev);
break;
}
Update the comment, and arrange for the phy code to drop this refcount
when disposing of a reference to it.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ced255c0c5fb9ab52c9465982f23b1c14005ef8b
Merge: 4401555 97584d1
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 24 20:14:26 2015 -0700
Merge branch 'next' of
git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
Pull thermal management fixes from Zhang Rui:
- Power allocator governor changes to allow binding on thermal zones
with missing power estimates information. From Javi Merino.
- Add compile test flags on thermal drivers that allow it without
producing compilation errors. From Eduardo Valentin.
- Fixes around memory allocation on cpu_cooling. From Javi Merino.
- Fix on db8500 cpufreq code to allow autoload. From Luis de
Bethencourt.
- Maintainer entries for cpu cooling device
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
thermal: power_allocator: exit early if there are no cooling devices
thermal: power_allocator: don't require tzp to be present for the
thermal zone
thermal: power_allocator: relax the requirement of two passive trip
points
thermal: power_allocator: relax the requirement of a sustainable_power
in tzp
thermal: Add a function to get the minimum power
thermal: cpu_cooling: free power table on error or when unregistering
thermal: cpu_cooling: don't call kcalloc() under rcu_read_lock
thermal: db8500_cpufreq_cooling: Fix module autoload for OF platform
driver
thermal: cpu_cooling: Add MAINTAINERS entry
thermal: ti-soc: Kconfig fix to avoid menu showing wrongly
thermal: ti-soc: allow compile test
thermal: qcom_spmi: allow compile test
thermal: exynos: allow compile test
thermal: armada: allow compile test
thermal: dove: allow compile test
thermal: kirkwood: allow compile test
thermal: rockchip: allow compile test
thermal: spear: allow compile test
thermal: hisi: allow compile test
thermal: Fix thermal_zone_of_sensor_register to match documentation
commit 0b23a1ece9be2c3e04c3b8d3594a1ada1fa1ae50
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Mon Sep 14 11:55:36 2015 +0300
dmaengine: idma64: improve residue estimation
The residue calculation may provide a wrong estimation when the transfer
is
started. There are possible scenarios we have to separate:
1) the transfer is not started yet; residue is equal to the total
length;
2) the transfer is just started (first chunk is ongoing); residue is
equal to the total length without already transfered bytes;
3) the transfer is ongoing and we already sent few chunks of data;
residue is equal to the total length without fully transfered chunks
and already sent bytes.
Mistakenly the calculation in cases 2) and 3) was done in the similar way
and
the result is equal to -bytes that have been transfered, i.e. quite big
since
size_t type can't keep negative values.
Rewrite the calculation algorithm to be one pass and have a correct
result.
Besides above in case user asks for a status of the active DMA descriptor
without pausing an ongoing transfer the residue will be estimated based
on the
register value, though it's still racy. Since the transfer is active the
value
is continuously being changed. Here we have to read two registers at a
time. To
minimize an error make those reads close to each other.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit c1492b4c541e3a382b60f1b5879cd3c4d246ad31
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Sep 24 16:00:17 2015 +0200
dmaengine: xgene-dma: fix handling xgene_dma_get_ring_size result
The function can return negative value.
The problem has been detected using proposed semantic patch
scripts/coccinelle/tests/assign_signed_to_unsigned.cocci [1].
[1]: http://permalink.gmane.org/gmane.linux.kernel/2046107
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit aebf5a67db8dbacbc624b9c652b81f5460b15eff
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Mon Sep 21 11:06:32 2015 +0200
dmaengine: pxa_dma: fix initial list move
Since the commit to have an allocated list of virtual descriptors was
reverted, the pxa_dma driver is broken, as it assumes the descriptor is
placed on the allocated list upon allocation.
Fix the issue in pxa_dma by making an allocated virtual descriptor a
singleton.
Fixes: 8c8fe97b2b8a ("Revert "dmaengine: virt-dma: don't always free
descriptor upon completion"")
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit a8360062ccfb4b891d3013d0e55826c8bcb02bfb
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Fri Sep 18 03:08:40 2015 +0200
PCI / PM: Update runtime PM documentation for PCI devices
Section 3.2 "Device Runtime Power Management" of pci.txt has become
outdated, so update it to correctly reflect the current code flow.
Also update the comment in local_pci_probe() to document the fact
that pm_runtime_put_noidle() is not the only runtime PM helper
function that can be used to decrement the device's runtime PM
usage counter in .probe().
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
commit 4401555a98601a3de7cc876ceeac1d5d09f617e6
Merge: cc8b8fa a13f18f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 24 17:46:38 2015 -0700
Merge tag 'devicetree-fixes-for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull DeviceTree fixes from Rob Herring:
- Silence bogus warning for of_irq_parse_pci
- Fix typo in ARM idle-states binding doc and dts files
- Various minor binding documentation updates
* tag 'devicetree-fixes-for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
Documentation: arm: Fix typo in the idle-states bindings examples
gpio: mention in DT binding doc that <name>-gpio is deprecated
of_pci_irq: Silence bogus "of_irq_parse_pci() failed ..." messages.
devicetree: bindings: Extend the bma180 bindings with bma250 info
of: thermal: Mark cooling-*-level properties optional
of: thermal: Fix inconsitency between cooling-*-state and
cooling-*-level
Docs: dt: add #msi-cells to GICv3 ITS binding
of: add vendor prefix for Socionext Inc.
commit 680168a58a9315e1301f4ebb062244470d4919b0
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Tue Sep 22 09:35:31 2015 -0700
PM / OPP: of_property_count_u32_elems() can return errors
of_property_count_u32_elems() will never return 0, but a -ve error value
of a positive count. And so the current !count check is wrong.
Also, a missing "opp-microvolt" property isn't a problem and so we need
to do of_find_property() separately to confirm that.
Fixes: 274659029c9d (PM / OPP: Add support to parse "operating-points-v2"
bindings)
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Reviewed-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit fe5b2756c1acbfc2d9df380523ef6320e69bb166
Merge: 79a313f a797451
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Sep 24 16:51:43 2015 -0700
Merge tag 'v4.3-rockchip32-dtsfixes1' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into fixes
Add the ddc-i2c-bus reference to the veyron hdmi nodes,
so that they can read the edid of connected displays.
* tag 'v4.3-rockchip32-dtsfixes1' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
ARM: dts: Add ddc i2c reference to veyron
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 79a313f5a587eae14a0f96df5d819c2fe266e3e9
Author: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxx>
Date: Wed Sep 23 21:48:03 2015 +0200
ARM: sti: dt: adapt DT to fix probe/bind issues in DRM driver
STI drm drivers probe and bind using component framework was incorrect.
In addition to drivers fix DT update is needed to make all sub-components
become childs of sti-display-subsystem.
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxx>
Signed-off-by: Maxime Coquelin <maxime.coquelin@xxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit bc13b23323b6a6c710ba2c7125866554e8bee84b
Merge: 54c3cf6 50b956f
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Sep 24 16:48:43 2015 -0700
Merge tag 'qcom-fixes-for-4.3-rc1' of
git://codeaurora.org/quic/kernel/agross-msm into fixes
Qualcomm fixes for v4.3-rc1
* Add SCM function call stubs on ARM64
* tag 'qcom-fixes-for-4.3-rc1' of
git://codeaurora.org/quic/kernel/agross-msm:
firmware: qcom: scm: Add function stubs for ARM64
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 9a5e3f27d1b8ca349b79e8b5fe1874eeeedb6f45
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Fri Sep 4 17:38:24 2015 +0530
ARM: dts: fix omap2+ address translation for pbias
"ARM: dts: <omap2/omap4/omap5/dra7>: add minimal l4 bus
layout with control module support" moved pbias_regulator dt node
from being a child node of ocp to be the child node of
'syscon'. Since 'syscon' doesn't have the 'ranges' property,
address translation fails while trying to convert the address
to resource. Fix it here by populating 'ranges' property in
syscon dt node.
Fixes: 72b10ac00eb1 ("ARM: dts: omap24xx: add minimal l4 bus
layout with control module support")
Fixes: 7415b0b4c645 ("ARM: dts: omap4: add minimal l4 bus layout
with control module support")
Fixes: ed8509edddeb ("ARM: dts: omap5: add minimal l4 bus
layout with control module support")
Fixes: d919501feffa ("ARM: dts: dra7: add minimal l4 bus
layout with control module support")
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
[tony@xxxxxxxxxxx: fixed omap3 pbias to work]
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 4bbc2bc1a4e81c1a3522b3bd9d43fffd2eca8c9e
Merge: 84ad1ba b9c9364
Author: Tony Lindgren <tony@xxxxxxxxxxx>
Date: Thu Sep 24 16:23:20 2015 -0700
Merge commit 'b8c93646fd5c' into omap-for-v4.3/fixes
commit 17a10c9215b39a5ea8faeb241759c1aee6553919
Author: Matt Bennett <matt.bennett@xxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 25 11:01:47 2015 +1200
ip6_tunnel: Reduce log level in ip6_tnl_err() to debug
Currently error log messages in ip6_tnl_err are printed at 'warn'
level. This is different to other tunnel types which don't print
any messages. These log messages don't provide any information that
couldn't be deduced with networking tools. Also it can be annoying
to have one end of the tunnel go down and have the logs fill with
pointless messages such as "Path to destination invalid or inactive!".
This patch reduces the log level of these messages to 'dbg' level to
bring the visible behaviour into line with other tunnel types.
Signed-off-by: Matt Bennett <matt.bennett@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a13f18f59d2646754cda3662a9e215ff43e7a7d5
Author: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Date: Thu Sep 24 15:53:56 2015 +0100
Documentation: arm: Fix typo in the idle-states bindings examples
The idle-states bindings mandate that the entry-method string
in the idle-states node must be "psci" for ARM v8 64-bit systems,
but the examples in the bindings report a wrong entry-method string.
Owing to this typo, some dts in the kernel wrongly defined the
entry-method property, since they likely cut and pasted the example
definition without paying attention to the bindings definitions.
This patch fixes the typo in the DT idle states bindings examples and
respective dts in the kernel so that the bindings and related dts
files are made compliant.
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Cc: Howard Chen <howard.chen@xxxxxxxxxx>
Cc: Rob Herring <robh+dt@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Heiko Stuebner <heiko@xxxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit e7ae65ced7dd71aa3dc29bda7a94ac82d9ea7751
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Mon Sep 21 14:57:25 2015 +0200
gpio: mention in DT binding doc that <name>-gpio is deprecated
The gpiolib supports parsing DT properties of the form <name>-gpio but it
was only added for compatibility with older DT bindings that got it wrong
and should not be used in newer bindings.
The commit that added support for this was:
dd34c37aa3e8 ("gpio: of: Allow -gpio suffix for property names")
but didn't update the documentation to explain this so it's been a source
of confusion. So let's make this clear in the GPIO DT binding doc.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit cc8b8faea417bd264d23fa5d017da52b75bbdf94
Merge: bfbaa60 fd03420
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 24 15:37:06 2015 -0700
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie:
"Most of the GPU drivers people were at XDC last week, so I didn't get
much to send, so I let it rollover until this week.
Also Alex was away for 3 weeks so amdgpu/radeon got a bit more stuff
than usual in one go.
I've been trying to figure out some 4.2 issues with i915 still (that
are fixed in 4.3, but bisecting ends up in a merge commit). Hopefully
next week I or i915 people can work that out"
* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (46 commits)
drm: Allow also control clients to check the drm version
drm/vmwgfx: Fix uninitialized return in vmw_kms_helper_dirty()
drm/vmwgfx: Fix uninitialized return in vmw_cotable_unbind()
drm/layerscape: fix handling fsl_dcu_drm_plane_index result
drm/mgag200: Fix driver_load error handling
drm/mgag200: Fix error handling paths in fbdev driver
drm/qxl: only report first monitor as connected if we have no state
drm/radeon: add quirk for MSI R7 370
drm/amdgpu: Sprinkle drm_modeset_lock_all to appease locking checks
drm/radeon: Sprinkle drm_modeset_lock_all to appease locking checks
drm/amdgpu: sync ce and me with SWITCH_BUFFER(2)
drm/amdgpu: integer overflow in amdgpu_mode_dumb_create()
drm/amdgpu: info leak in amdgpu_gem_metadata_ioctl()
drm/amdgpu: integer overflow in amdgpu_info_ioctl()
drm/amdgpu: unwind properly in amdgpu_cs_parser_init()
drm/amdgpu: Fix max_vblank_count value for current display engines
drm/amdgpu: use kmemdup rather than duplicating its implementation
drm/amdgpu: fix UVD suspend and resume for VI APU
drm/amdgpu: fix the UVD suspend sequence order
drm/amdgpu: make UVD handle checking more strict
...
commit deccbe80be947fa89bca18510699893c38856f38
Merge: a46496c babc305e2
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Sep 24 15:36:20 2015 -0700
Merge tag 'mac80211-for-davem-2015-09-22' of
git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
Johannes Berg says:
====================
Just two small fixes:
* VHT MCS mask array overrun, reported by Dan Carpenter
* reset CQM history to always get a notification, from Sara Sharon
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a46496ce38eeb401344d5623c1960dbf2f1769be
Author: Matt Bennett <matt.bennett@xxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 23 16:58:31 2015 +1200
ip6_gre: Reduce log level in ip6gre_err() to debug
Currently error log messages in ip6gre_err are printed at 'warn'
level. This is different to most other tunnel types which don't
print any messages. These log messages don't provide any information
that couldn't be deduced with networking tools. Also it can be annoying
to have one end of the tunnel go down and have the logs fill with
pointless messages such as "Path to destination invalid or inactive!".
This patch reduces the log level of these messages to 'dbg' level to
bring the visible behaviour into line with other tunnel types.
Signed-off-by: Matt Bennett <matt.bennett@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 41fc014332d91ee90c32840bf161f9685b7fbf2b
Author: Wilson Kok <wkok@xxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 22 21:40:22 2015 -0700
fib_rules: fix fib rule dumps across multiple skbs
dump_rules returns skb length and not error.
But when family == AF_UNSPEC, the caller of dump_rules
assumes that it returns an error. Hence, when family == AF_UNSPEC,
we continue trying to dump on -EMSGSIZE errors resulting in
incorrect dump idx carried between skbs belonging to the same dump.
This results in fib rule dump always only dumping rules that fit
into the first skb.
This patch fixes dump_rules to return error so that we exit correctly
and idx is correctly maintained between skbs that are part of the
same dump.
Signed-off-by: Wilson Kok <wkok@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Roopa Prabhu <roopa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit de24c18c0faca5ebd618e1cb87f5489745e40475
Author: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Date: Sat Sep 12 02:06:09 2015 +0300
PCI: rcar: Add R8A7794 support
Add Renesas R8A7794 SoC support to the Renesas R-Car gen2 PCI driver.
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <helgaas@xxxxxxxxxx>
Acked-by: Simon Horman <horms+renesas@xxxxxxxxxxxx>
commit da2d03ea27f6ed9d2005a67b20dd021ddacf1e4d
Author: Alex Williamson <alex.williamson@xxxxxxxxxx>
Date: Tue Sep 15 22:24:46 2015 -0600
PCI: Use function 0 VPD for identical functions, regular VPD for others
932c435caba8 ("PCI: Add dev_flags bit to access VPD through function 0")
added PCI_DEV_FLAGS_VPD_REF_F0. Previously, we set the flag on every
non-zero function of quirked devices. If a function turned out to be
different from function 0, i.e., it had a different class, vendor ID, or
device ID, the flag remained set but we didn't make VPD accessible at all.
Flip this around so we only set PCI_DEV_FLAGS_VPD_REF_F0 for functions
that
are identical to function 0, and allow regular VPD access for any other
functions.
[bhelgaas: changelog, stable tag]
Fixes: 932c435caba8 ("PCI: Add dev_flags bit to access VPD through
function 0")
Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <helgaas@xxxxxxxxxx>
Acked-by: Myron Stowe <myron.stowe@xxxxxxxxxx>
Acked-by: Mark Rustad <mark.d.rustad@xxxxxxxxx>
CC: stable@xxxxxxxxxxxxxxx
commit 9d9240756e63dd87d6cbf5da8b98ceb8f8192b55
Author: Alex Williamson <alex.williamson@xxxxxxxxxx>
Date: Tue Sep 15 11:17:21 2015 -0600
PCI: Fix devfn for VPD access through function 0
Commit 932c435caba8 ("PCI: Add dev_flags bit to access VPD through
function
0") passes PCI_SLOT(devfn) for the devfn parameter of pci_get_slot().
Generally this works because we're fairly well guaranteed that a PCIe
device is at slot address 0, but for the general case, including
conventional PCI, it's incorrect. We need to get the slot and then
convert
it back into a devfn.
Fixes: 932c435caba8 ("PCI: Add dev_flags bit to access VPD through
function 0")
Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <helgaas@xxxxxxxxxx>
Acked-by: Myron Stowe <myron.stowe@xxxxxxxxxx>
Acked-by: Mark Rustad <mark.d.rustad@xxxxxxxxx>
CC: stable@xxxxxxxxxxxxxxx
commit 38ea72bdb65df2f40ec77b2c9d1413e7f5e34465
Author: Alex Williamson <alex.williamson@xxxxxxxxxx>
Date: Fri Sep 18 15:08:54 2015 -0600
PCI/MSI: Fix MSI IRQ domains for VFs on virtual buses
SR-IOV creates a virtual bus where bus->self is NULL. When we add VFs and
scan for an MSI domain, pci_set_bus_msi_domain() dereferences bus->self,
which causes a kernel NULL pointer dereference oops.
Scan up to the parent bus until we find a real bridge where we can get the
MSI domain.
[bhelgaas: changelog]
Fixes: 44aa0c657e3e ("PCI/MSI: Add hooks to populate the msi_domain
field")
Tested-by: Joerg Roedel <joro@xxxxxxxxxx>
Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <helgaas@xxxxxxxxxx>
Acked-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit d682d2bdc30650a5c7ce9908ab83ab674b658744
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Tue Sep 22 17:04:58 2015 -0700
bnx2x: byte swap rss_key to comply to Toeplitz specs
After a good amount of debugging, I found bnx2x was byte swaping
the 40 bytes of rss_key.
If we byte swap the key, then bnx2x generates hashes matching
MSDN specs as documented in (Verifying the RSS Hash Calculation)
https://msdn.microsoft.com/en-us/library/windows/hardware/ff571021%
28v=vs.85%29.aspx
It is mostly a non issue, unless we want to mix different NIC
in a host, and want consistent hashing among all of them, ie
if they all use the boot time generated rss key, or if some application
is choosing specific tuple(s) so that incoming traffic lands into known
rx queue(s).
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d8aecb10115497f6cdf841df8c88ebb3ba25fa28
Author: WANG Cong <xiyou.wangcong@xxxxxxxxx>
Date: Tue Sep 22 17:01:11 2015 -0700
net: revert "net_sched: move tp->root allocation into fw_init()"
fw filter uses tp->root==NULL to check if it is the old method,
so it doesn't need allocation at all in this case. This patch
reverts the offending commit and adds some comments for old
method to make it obvious.
Fixes: 33f8b9ecdb15 ("net_sched: move tp->root allocation into fw_init()")
Reported-by: Akshat Kakkar <akshat.1984@xxxxxxxxx>
Cc: Jamal Hadi Salim <jhs@xxxxxxxxxxxx>
Signed-off-by: Cong Wang <xiyou.wangcong@xxxxxxxxx>
Acked-by: Jamal Hadi Salim <jhs@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit bfbaa60d186d81207e61e7f4337fa442860aef72
Merge: d5fc4f5 012572d
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 24 14:31:40 2015 -0700
Merge branch 'akpm' (patches from Andrew)
Merge misc fixes from Andrew Morton:
"15 fixes"
* emailed patches from Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>:
ocfs2/dlm: fix deadlock when dispatch assert master
membarrier: clean up selftest
vmscan: fix sane_reclaim helper for legacy memcg
lib/iommu-common.c: do not try to deref a null iommu->lazy_flush()
pointer when n < pool->hint
x86, efi, kasan: #undef memset/memcpy/memmove per arch
mm: migrate: hugetlb: putback destination hugepage to active list
mm, dax: VMA with vm_ops->pfn_mkwrite wants to be write-notified
userfaultfd: register uapi generic syscall (aarch64)
userfaultfd: selftest: don't error out if pthread_mutex_t isn't
identical
userfaultfd: selftest: return an error if BOUNCE_VERIFY fails
userfaultfd: selftest: avoid my_bcmp false positives with powerpc
userfaultfd: selftest: only warn if __NR_userfaultfd is undefined
userfaultfd: selftest: headers fixup
userfaultfd: selftests: vm: pick up sanitized kernel headers
userfaultfd: revert "userfaultfd: waitqueue: add nr wake parameter to
__wake_up_locked_key"
commit 8fe79c60a2932b8c8e1a55ac6847467dcd41af0e
Merge: d5b8d64 b194f30c
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Sep 24 14:31:37 2015 -0700
Merge branch 'lwt_arp'
Jiri Benc says:
====================
lwtunnel: make it really work, for IPv4
One of the selling points of lwtunnel was the ability to specify the
tunnel
destination using routes. However, this doesn't really work currently, as
ARP and ndisc replies are not handled correctly. ARP and ndisc replies
won't
have tunnel metadata attached, thus they will be sent out with the default
parameters or not sent at all, either way never reaching the requester.
Most of the egress tunnel parameters can be inferred from the ingress
metada. The only and important exception is UDP ports. This patchset
infers
the egress data from the ingress data and disallow settings of UDP ports
in
tunnel routes. If there's a need for different UDP ports, a new interface
needs to be created for each port combination. Note that it's still
possible
to specify the UDP ports to use, it just needs to be done while creating
the
vxlan/geneve interface.
This covers only ARPs. IPv6 ndisc has the same problem but is harder to
solve, as there's already dst attached to outgoing skbs. Ideas to solve
this
are welcome.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b194f30c61efb0767a98f47a64530baa8b731670
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Tue Sep 22 18:12:12 2015 +0200
lwtunnel: remove source and destination UDP port config option
The UDP tunnel config is asymmetric wrt. to the ports used. The source and
destination ports from one direction of the tunnel are not related to the
ports of the other direction. We need to be able to respond to ARP
requests
using the correct ports without involving routing.
As the consequence, UDP ports need to be fixed property of the tunnel
interface and cannot be set per route. Remove the ability to set ports per
route. This is still okay to do, as no kernel has been released with these
attributes yet.
Note that the ability to specify source and destination ports is preserved
for other users of the lwtunnel API which don't use routes for tunnel key
specification (like openvswitch).
If in the future we rework ARP handling to allow port specification, the
attributes can be added back.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 63d008a4e9ee86614ca5671b7f3ba447df007190
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Tue Sep 22 18:12:11 2015 +0200
ipv4: send arp replies to the correct tunnel
When using ip lwtunnels, the additional data for xmit (basically, the
actual
tunnel to use) are carried in ip_tunnel_info either in dst->lwtstate or in
metadata dst. When replying to ARP requests, we need to send the reply to
the same tunnel the request came from. This means we need to construct
proper metadata dst for ARP replies.
We could perform another route lookup to get a dst entry with the correct
lwtstate. However, this won't always ensure that the outgoing tunnel is
the
same as the incoming one, and it won't work anyway for IPv4 duplicate
address detection.
The only thing to do is to "reverse" the ip_tunnel_info.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d5b8d6404395641987db76e28334cae4cef771ae
Author: Sudeep Holla <Sudeep.Holla@xxxxxxx>
Date: Mon Sep 21 16:47:09 2015 +0100
net: gianfar: remove misuse of IRQF_NO_SUSPEND flag
The device is set as wakeup capable using proper wakeup API but the
driver misuses IRQF_NO_SUSPEND to set the interrupt as wakeup source
which is incorrect.
This patch removes the use of IRQF_NO_SUSPEND flags replacing it with
enable_irq_wake instead.
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
Cc: Claudiu Manoil <claudiu.manoil@xxxxxxxxxxxxx>
Cc: Kevin Hao <haokexin@xxxxxxxxx>
Cc: netdev@xxxxxxxxxxxxxxx
Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx>
Acked-by: Claudiu Manoil <claudiu.manoil@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6ae459bdaaeebc632b16e54dcbabb490c6931d61
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Tue Sep 22 12:57:53 2015 -0700
skbuff: Fix skb checksum flag on skb pull
VXLAN device can receive skb with checksum partial. But the checksum
offset could be in outer header which is pulled on receive. This results
in negative checksum offset for the skb. Such skb can cause the assert
failure in skb_checksum_help(). Following patch fixes the bug by setting
checksum-none while pulling outer header.
Following is the kernel panic msg from old kernel hitting the bug.
------------[ cut here ]------------
kernel BUG at net/core/dev.c:1906!
RIP: 0010:[<ffffffff81518034>] skb_checksum_help+0x144/0x150
Call Trace:
<IRQ>
[<ffffffffa0164c28>] queue_userspace_packet+0x408/0x470 [openvswitch]
[<ffffffffa016614d>] ovs_dp_upcall+0x5d/0x60 [openvswitch]
[<ffffffffa0166236>] ovs_dp_process_packet_with_key+0xe6/0x100
[openvswitch]
[<ffffffffa016629b>] ovs_dp_process_received_packet+0x4b/0x80
[openvswitch]
[<ffffffffa016c51a>] ovs_vport_receive+0x2a/0x30 [openvswitch]
[<ffffffffa0171383>] vxlan_rcv+0x53/0x60 [openvswitch]
[<ffffffffa01734cb>] vxlan_udp_encap_recv+0x8b/0xf0 [openvswitch]
[<ffffffff8157addc>] udp_queue_rcv_skb+0x2dc/0x3b0
[<ffffffff8157b56f>] __udp4_lib_rcv+0x1cf/0x6c0
[<ffffffff8157ba7a>] udp_rcv+0x1a/0x20
[<ffffffff8154fdbd>] ip_local_deliver_finish+0xdd/0x280
[<ffffffff81550128>] ip_local_deliver+0x88/0x90
[<ffffffff8154fa7d>] ip_rcv_finish+0x10d/0x370
[<ffffffff81550365>] ip_rcv+0x235/0x300
[<ffffffff8151ba1d>] __netif_receive_skb+0x55d/0x620
[<ffffffff8151c360>] netif_receive_skb+0x80/0x90
[<ffffffff81459935>] virtnet_poll+0x555/0x6f0
[<ffffffff8151cd04>] net_rx_action+0x134/0x290
[<ffffffff810683d8>] __do_softirq+0xa8/0x210
[<ffffffff8162fe6c>] call_softirq+0x1c/0x30
[<ffffffff810161a5>] do_softirq+0x65/0xa0
[<ffffffff810687be>] irq_exit+0x8e/0xb0
[<ffffffff81630733>] do_IRQ+0x63/0xe0
[<ffffffff81625f2e>] common_interrupt+0x6e/0x6e
Reported-by: Anupam Chanda <achanda@xxxxxxxxxx>
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Acked-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit fd03420b5624617a708fb9b13634b41b37c22cfa
Merge: 0a3579e cd67d22
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Sep 25 06:52:37 2015 +1000
Merge tag 'drm-intel-fixes-2015-09-24' of
git://anongit.freedesktop.org/drm-intel into drm-fixes
a few drm/i915 fixes, including a fix to the recent regression
reported by Sedat Dilek
* tag 'drm-intel-fixes-2015-09-24' of
git://anongit.freedesktop.org/drm-intel:
drm/i915/bios: handle MIPI Sequence Block v3+ gracefully
drm/i915: Add primary plane to mask if it's visible
drm/i915: workaround bad DSL readout v3
drm/i915: fix kernel-doc warnings in intel_audio.c
commit 9badce000e2ce68ba74838a3cd356dde58221c2f
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Wed Sep 23 17:07:29 2015 -0400
cgroup, writeback: don't enable cgroup writeback on traditional
hierarchies
inode_cgwb_enabled() gates cgroup writeback support. If it returns
true, each inode is attached to the corresponding memory domain which
gets mapped to io domain. It currently only tests whether the
filesystem and bdi support cgroup writeback; however, cgroup writeback
support doesn't work on traditional hierarchies and thus it should
also test whether memcg and iocg are on the default hierarchy.
This caused traditional hierarchy setups to hit the cgroup writeback
path inadvertently and ended up creating separate writeback domains
for each memcg and mapping them all to the root iocg uncovering a
couple issues in the cgroup writeback path.
cgroup writeback was never meant to be enabled on traditional
hierarchies. Make inode_cgwb_enabled() test whether both memcg and
iocg are on the default hierarchy.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Reported-by: Artem Bityutskiy <dedekind1@xxxxxxxxx>
Reported-by: Dexuan Cui <decui@xxxxxxxxxxxxx>
Link: http://lkml.kernel.org/g/1443012552.19983.209.camel@xxxxxxxxx
Link:
http://lkml.kernel.org/g/f30d4a6aa8a546ff88f73021d026a453@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
commit da314c9923fed553a007785a901fd395b7eb6c19
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 22 11:38:56 2015 +0800
netlink: Replace rhash_portid with bound
On Mon, Sep 21, 2015 at 02:20:22PM -0400, Tejun Heo wrote:
>
> store_release and load_acquire are different from the usual memory
> barriers and can't be paired this way. You have to pair store_release
> and load_acquire. Besides, it isn't a particularly good idea to
OK I've decided to drop the acquire/release helpers as they don't
help us at all and simply pessimises the code by using full memory
barriers (on some architectures) where only a write or read barrier
is needed.
> depend on memory barriers embedded in other data structures like the
> above. Here, especially, rhashtable_insert() would have write barrier
> *before* the entry is hashed not necessarily *after*, which means that
> in the above case, a socket which appears to have set bound to a
> reader might not visible when the reader tries to look up the socket
> on the hashtable.
But you are right we do need an explicit write barrier here to
ensure that the hashing is visible.
> There's no reason to be overly smart here. This isn't a crazy hot
> path, write barriers tend to be very cheap, store_release more so.
> Please just do smp_store_release() and note what it's paired with.
It's not about being overly smart. It's about actually understanding
what's going on with the code. I've seen too many instances of
people simply sprinkling synchronisation primitives around without
any knowledge of what is happening underneath, which is just a recipe
for creating hard-to-debug races.
> > @@ -1539,7 +1546,7 @@ static int netlink_bind(struct socket *sock,
struct sockaddr *addr,
> > }
> > }
> >
> > - if (!nlk->portid) {
> > + if (!nlk->bound) {
>
> I don't think you can skip load_acquire here just because this is the
> second deref of the variable. That doesn't change anything. Race
> condition could still happen between the first and second tests and
> skipping the second would lead to the same kind of bug.
The reason this one is OK is because we do not use nlk->portid or
try to get nlk from the hash table before we return to user-space.
However, there is a real bug here that none of these acquire/release
helpers discovered. The two bound tests here used to be a single
one. Now that they are separate it is entirely possible for another
thread to come in the middle and bind the socket. So we need to
repeat the portid check in order to maintain consistency.
> > @@ -1587,7 +1594,7 @@ static int netlink_connect(struct socket *sock,
struct sockaddr *addr,
> > !netlink_allowed(sock, NL_CFG_F_NONROOT_SEND))
> > return -EPERM;
> >
> > - if (!nlk->portid)
> > + if (!nlk->bound)
>
> Don't we need load_acquire here too? Is this path holding a lock
> which makes that unnecessary?
Ditto.
---8<---
The commit 1f770c0a09da855a2b51af6d19de97fb955eca85 ("netlink:
Fix autobind race condition that leads to zero port ID") created
some new races that can occur due to inconcsistencies between the
two port IDs.
Tejun is right that a barrier is unavoidable. Therefore I am
reverting to the original patch that used a boolean to indicate
that a user netlink socket has been bound.
Barriers have been added where necessary to ensure that a valid
portid and the hashed socket is visible.
I have also changed netlink_insert to only return EBUSY if the
socket is bound to a portid different to the requested one. This
combined with only reading nlk->bound once in netlink_bind fixes
a race where two threads that bind the socket at the same time
with different port IDs may both succeed.
Fixes: 1f770c0a09da ("netlink: Fix autobind race condition that leads to
zero port ID")
Reported-by: Tejun Heo <tj@xxxxxxxxxx>
Reported-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Nacked-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7f57d803ee03730d570dc59a9e3e4842b58dd5cc
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Thu Sep 24 17:36:51 2015 +0200
ALSA: hda - Disable power_save_node for Thinkpads
Lenovo Thinkpads with recent Realtek codecs seem suffering from click
noises at power transition since the introduction of widget power
saving in 4.1 kernel. Although this might be solved by some delays in
appropriate points, as a quick workaround, just disable the
power_save_node feature for now. The gain it gives is relatively
small, and this makes the situation back to pre 4.1 time.
This patch ended up with a bit more code changes than usual because
the existing fixup for Thinkpads is highly chained. Instead of adding
yet another chain, combine a few of them into a single fixup entry, as
a gratis cleanup.
Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=943982
Cc: <stable@xxxxxxxxxxxxxxx> # v4.1+
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 1ce3cbe2ab4074ca5196e74a45665a2cd87bbdb1
Merge: 8351044 ed14ee0
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Thu Sep 24 20:48:01 2015 +0200
Merge tag 'asoc-fix-v4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v4.3
A disappointingly large set of fixes, though none of them very big and
very widely spread over many different drivers. Nothing especially
stands out, it's mostly all device specific and relatively minor.
commit d5fc4f555d7d29f9c868e7505e08bcd7676bc943
Merge: bbad822 711e020
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 24 11:40:58 2015 -0700
Merge tag 'spi-fix-v4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi fixes from Mark Brown:
"A disappointingly large collection of fixes for SPI issues, though
almost all in drivers (and there mainly the newly added Mediatek
driver) and the core fixes are documentation and error handling.
The driver fixes are all of the usual 'important if you see them'
variety"
* tag 'spi-fix-v4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
spi: xtensa-xtfpga: fix register endianness
spi: meson: Fix module autoload for OF platform driver
spi: mediatek: fix wrong error return value on probe
spi: fix kernel-doc warnings in spi.h
spi: spidev: fix possible NULL dereference
spi: atmel: remove warning when !CONFIG_PM_SLEEP
spi: bcm2835: BUG: fix wrong use of PAGE_MASK
spi: mediatek: fix spi cs polarity error
spi: Fix documentation of spi_alloc_master()
spi: spi-pxa2xx: Check status register to determine if SSSR_TINT is
disabled
spi: Mediatek: Document devicetree bindings update for spi bus
spi: mediatek: fix spi clock usage error
spi: mediatek: remove clk_disable_unprepare()
commit bbad8220c6ce21edf2144f997e5ba476f5117b33
Merge: 5146c8e 16651fc
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 24 11:10:03 2015 -0700
Merge tag 'regulator-fix-v4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator fixes from Mark Brown:
"A collection of fixes that came in since I tagged the merge window
pull request for v4.3:
- Error handling fixes in the core
- Fixes to a couple of TI drivers for device specific issues
- Several fixes for module autoloading"
* tag 'regulator-fix-v4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
regulator: vexpress: Fix module autoload for OF platform driver
regulator: gpio: Fix module autoload for OF platform driver
regulator: anatop: Fix module autoload for OF platform driver
regulator: core: Correct return value check in regulator_resolve_supply
regulator: tps65218: Fix missing zero typo
regulator: pbias: program pbias register offset in pbias driver
regulator: core: fix possible NULL dereference
commit 5146c8e4dfce5e6c671791b39d5f3c04bbd08715
Merge: bcee19f 586b286
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 24 11:04:22 2015 -0700
Merge tag 'dm-4.3-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
Pull device mapper fixes from Mike Snitzer:
"Two stable@ fixes:
- DM thinp fix to properly advertise discard support as disabled for
thin devices backed by a thin-pool with discard support disabled.
- DM crypt fix to prevent the creation of bios that violate the
underlying block device's max_segments limits. This fixes a
relatively long-standing NCQ SSD corruption issue reported against
dm-crypt ever since the dm-crypt cpu parallelization patches were
merged back in 4.0"
* tag 'dm-4.3-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
dm crypt: constrain crypt device's max_segment_size to PAGE_SIZE
dm thin: disable discard support for thin devices if pool's is disabled
commit 83510441bc08bee201c0ded9d81da6dfd008d69a
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Thu Sep 24 11:00:18 2015 +0200
ALSA: hda/tegra - async probe for avoiding module loading deadlock
The Tegra HD-audio controller driver causes deadlocks when loaded as a
module since the driver invokes request_module() at binding with the
codec driver. This patch works around it by deferring the probe in a
work like Intel HD-audio controller driver does. Although hovering
the codec probe stuff into udev would be a better solution, it may
cause other regressions, so let's try this band-aid fix until the more
proper solution gets landed.
Reported-by: Thierry Reding <treding@xxxxxxxxxx>
Tested-by: Thierry Reding <treding@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 274e91b81ed22957b510ad2988359584eea95dae
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Wed Sep 23 11:06:30 2015 +0100
ARM: alignment: fix alignment handling for uaccess changes
Jonathan Liu reports that the recent addition of CPU_SW_DOMAIN_PAN
causes wpa_supplicant to die due to the following kernel oops:
Unhandled fault: page domain fault (0x81b) at 0x001017a2
pgd = ee1b8000
[001017a2] *pgd=6ebee831, *pte=6c35475f, *ppte=6c354c7f
Internal error: : 81b [#1] SMP ARM
Modules linked in: rt2800usb rt2x00usb rt2800librt2x00lib crc_ccitt
mac80211
CPU: 1 PID: 202 Comm: wpa_supplicant Not tainted 4.3.0-rc2 #1
Hardware name: Allwinner sun7i (A20) Family
task: ec872f80 ti: ee364000 task.ti: ee364000
PC is at do_alignment_ldmstm+0x1d4/0x238
LR is at 0x0
pc : [<c001d1d8>] lr : [<00000000>] psr: 600c0113
sp : ee365e18 ip : 00000000 fp : 00000002
r10: 001017a2 r9 : 00000002 r8 : 001017aa
r7 : ee365fb0 r6 : e8820018 r5 : 001017a2 r4 : 00000003
r3 : d49e30e0 r2 : 00000000 r1 : ee365fbc r0 : 00000000
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none[
34.393106] Control: 10c5387d Table: 6e1b806a DAC: 00000051
Process wpa_supplicant (pid: 202, stack limit = 0xee364210)
Stack: (0xee365e18 to 0xee366000)
...
[<c001d1d8>] (do_alignment_ldmstm) from [<c001d510>]
(do_alignment+0x1f0/0x904)
[<c001d510>] (do_alignment) from [<c00092a0>] (do_DataAbort+0x38/0xb4)
[<c00092a0>] (do_DataAbort) from [<c0013d7c>] (__dabt_usr+0x3c/0x40)
Exception stack(0xee365fb0 to 0xee365ff8)
5fa0: 00000000 56c728c0 001017a2
d49e30e0
5fc0: 775448d2 597d4e74 00200800 7a9e1625 00802001 00000021 b6deec84
00000100
5fe0: 08020200 be9f4f20 0c0b0d0a b6d9b3e0 600c0010 ffffffff
Code: e1a0a005 e1a0000c 1affffe8 e5913000 (e4ea3001)
---[ end trace 0acd3882fcfdf9dd ]---
This is caused by the alignment handler not being fixed up for the
uaccess changes, and userspace issuing an unaligned LDM instruction.
So, fix the problem by adding the necessary fixups.
Reported-by: Jonathan Liu <net147@xxxxxxxxx>
Tested-by: Jonathan Liu <net147@xxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 0a3579e39dd0412b3ff932e32ae7a22a604200f0
Merge: e4b35f9 30c6466
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Thu Sep 24 18:36:04 2015 +1000
Merge tag 'vmwgfx-fixes-4.3-150924' of
git://people.freedesktop.org/~thomash/linux into drm-fixes
Pull request of 2015-09-24
Vmwgfx fixes for 4.3:
- A couple of uninitialized variable fixes by Christian Engelmayer
- A TTM fix for a bug that causes problems with the new vmwgfx device
init
- A vmwgfx refcounting fix
- A vmwgfx iomem caching fix
- A DRM change to allow also control clients to read the drm driver
version.
* tag 'vmwgfx-fixes-4.3-150924' of
git://people.freedesktop.org/~thomash/linux:
drm: Allow also control clients to check the drm version
drm/vmwgfx: Fix uninitialized return in vmw_kms_helper_dirty()
drm/vmwgfx: Fix uninitialized return in vmw_cotable_unbind()
drm/vmwgfx: Only build on X86
drm/ttm: Fix memory space allocation v2
drm/vmwgfx: Map the fifo as cached
drm/vmwgfx: Fix up user_dmabuf refcounting
commit 30c64664f110f76064e364cb5dd385edc3751ba5
Author: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Date: Tue Sep 15 01:11:42 2015 -0700
drm: Allow also control clients to check the drm version
This should be harmless.
Vmware will, due to old infrastructure reasons, be using a privileged
control client to supply GUI layout information rather than obtaining
it from the device. That control client will be needing access to DRM
version information.
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Reviewed-by: Brian Paul <brianp@xxxxxxxxxx>
Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
Acked-by: David Herrmann <dh.herrmann@xxxxxxxxx>
commit f3b8c0caca02001565cb14b845bf90f59dea8213
Author: Christian Engelmayer <cengelma@xxxxxx>
Date: Sat Sep 19 00:32:24 2015 +0200
drm/vmwgfx: Fix uninitialized return in vmw_kms_helper_dirty()
Function vmw_kms_helper_dirty() uses the uninitialized variable ret as
return value. Make the result deterministic and directly return as the
variable is unused anyway. Detected by Coverity CID 1324255.
Signed-off-by: Christian Engelmayer <cengelma@xxxxxx>
Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
Reviewed-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
commit 49558b471369e790650df8706b5608fee27af42c
Author: Christian Engelmayer <cengelma@xxxxxx>
Date: Sat Sep 19 00:31:10 2015 +0200
drm/vmwgfx: Fix uninitialized return in vmw_cotable_unbind()
Function vmw_cotable_unbind() uses the uninitialized variable ret as
return value. Make the result deterministic and directly return as
the variable is unused anyway. Detected by Coverity CID 1324256.
Signed-off-by: Christian Engelmayer <cengelma@xxxxxx>
Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
Reviewed-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
commit 88627148400e37b4bff197285d348fc05c9de013
Author: Steve French <smfrench@xxxxxxxxx>
Date: Tue Sep 22 03:16:27 2015 -0500
fix encryption error checks on mount
Signed-off-by: Steve French <steve.french@xxxxxxxxxxxxxxx>
commit ceb1b0b9b4d1089e9f2731a314689ae17784c861
Author: Steve French <smfrench@xxxxxxxxx>
Date: Thu Sep 24 00:52:37 2015 -0500
[SMB3] Fix sec=krb5 on smb3 mounts
Kerberos, which is very important for security, was only enabled for
CIFS not SMB2/SMB3 mounts (e.g. vers=3.0)
Patch based on the information detailed in
http://thread.gmane.org/gmane.linux.kernel.cifs/10081/focus=10307
to enable Kerberized SMB2/SMB3
a) SMB2_negotiate: enable/use decode_negTokenInit in SMB2_negotiate
b) SMB2_sess_setup: handle Kerberos sectype and replicate Kerberos
SMB1 processing done in sess_auth_kerberos
Signed-off-by: Noel Power <noel.power@xxxxxxxx>
Signed-off-by: Jim McDonough <jmcd@xxxxxxxxx>
CC: Stable <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Steve French <steve.french@xxxxxxxxxxxxxxx>
commit 7bbe33ff1896d225588b37c574c0d80dbc63c657
Author: John W. Linville <linville@xxxxxxxxxxxxx>
Date: Tue Sep 22 13:09:32 2015 -0400
geneve: use network byte order for destination port config parameter
This is primarily for consistancy with vxlan and other tunnels which
use network byte order for similar parameters.
Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e4b35f952be9f5706b22e38c1925b7ac49080d72
Merge: 14d11b8 e786547
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Thu Sep 24 08:13:34 2015 +1000
Merge branch 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux
into drm-fixes
radeon and amdgpu fixes for 4.3. It's a bit bigger than usual since
it's 3 weeks worth of fixes since I was on vacation, then at XDC.
- lots of stability fixes
- suspend and resume fixes
- GPU scheduler fixes
- Misc other fixes
* 'drm-fixes-4.3' of git://people.freedesktop.org/~agd5f/linux: (31
commits)
drm/radeon: add quirk for MSI R7 370
drm/amdgpu: Sprinkle drm_modeset_lock_all to appease locking checks
drm/radeon: Sprinkle drm_modeset_lock_all to appease locking checks
drm/amdgpu: sync ce and me with SWITCH_BUFFER(2)
drm/amdgpu: integer overflow in amdgpu_mode_dumb_create()
drm/amdgpu: info leak in amdgpu_gem_metadata_ioctl()
drm/amdgpu: integer overflow in amdgpu_info_ioctl()
drm/amdgpu: unwind properly in amdgpu_cs_parser_init()
drm/amdgpu: Fix max_vblank_count value for current display engines
drm/amdgpu: use kmemdup rather than duplicating its implementation
drm/amdgpu: fix UVD suspend and resume for VI APU
drm/amdgpu: fix the UVD suspend sequence order
drm/amdgpu: make UVD handle checking more strict
drm/amdgpu: Disable UVD PG
drm/amdgpu: more scheduler cleanups v2
drm/amdgpu: cleanup fence queue init v2
drm/amdgpu: rename fence->scheduler to sched v2
drm/amdgpu: cleanup entity init
drm/amdgpu: refine the scheduler job type conversion
drm/amdgpu: refine the job naming for amdgpu_job and amdgpu_sched_job
...
commit 14d11b8dca17f6dedf4b62d7391b9b294e3414ff
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Mon Sep 21 15:33:47 2015 +0200
drm/layerscape: fix handling fsl_dcu_drm_plane_index result
The function can return negative value.
The problem has been detected using proposed semantic patch
scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1].
[1]: http://permalink.gmane.org/gmane.linux.kernel/2038576
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 728f86607d47f7d2d24d61fd30852faa66ca5aa9
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Thu Sep 17 16:30:55 2015 +0530
drm/mgag200: Fix driver_load error handling
mgag200_driver_load's error path just calls the drm driver's
driver_unload op. It isn't safe to call this because it doesn't handle
things well if driver_load fails somewhere mid way.
Replace the call to mgag200_driver_unload with a more finegrained
error handling path.
Link: http://lkml.kernel.org/r/55F6E68D.8070800@xxxxxxxxxxxxxx
Reported-by: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxx>
Cc: David Airlie <airlied@xxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: dri-devel <dri-devel@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit aec9e12953e777f62acdab069656ebd9bcb6c9ba
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Thu Sep 17 16:30:54 2015 +0530
drm/mgag200: Fix error handling paths in fbdev driver
Set up error handling in mgag200_fbdev_init and mgag200fb_create such that
they release the things they allocate, rather than relying on someone
calling mga_fbdev_destroy.
Based on a patch by Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Link: http://lkml.kernel.org/r/55F6E68D.8070800@xxxxxxxxxxxxxx
Reported-by: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxx>
Cc: David Airlie <airlied@xxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: dri-devel <dri-devel@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 69e5d3f893e19613486f300fd6e631810338aa4b
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Sep 14 10:28:34 2015 +1000
drm/qxl: only report first monitor as connected if we have no state
If the server isn't new enough to give us state, report the first
monitor as always connected, otherwise believe the server side.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 41b976414c88016e2c9d9b2f6667ee67a998d388
Author: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Date: Wed Sep 23 09:45:31 2015 +0100
8139cp: Dump contents of descriptor ring on TX timeout
We are seeing unexplained TX timeouts under heavy load. Let's try to get
a better idea of what's going on.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7f4c685633e2df9ba10d49a31dda13715745db37
Author: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Date: Wed Sep 23 09:45:16 2015 +0100
8139cp: Fix DMA unmapping of transmitted buffers
The low 16 bits of the 'opts1' field in the TX descriptor are supposed
to still contain the buffer length when the descriptor is handed back to
us. In practice, at least on my hardware, they don't. So stash the
original value of the opts1 field and get the length to unmap from
there.
There are other ways we could have worked out the length, but I actually
want a stash of the opts1 field anyway so that I can dump it alongside
the contents of the descriptor ring when we suffer a TX timeout.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0a5aeee0b79fa99d8e04c98dd4e87d4f52aa497b
Author: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Date: Wed Sep 23 09:44:57 2015 +0100
8139cp: Reduce duplicate csum/tso code in cp_start_xmit()
We calculate the value of the opts1 descriptor field in three different
places. With two different behaviours when given an invalid packet to
be checksummed â?? none of them correct. Sort that out.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a3b804043f490aeec57d8ca5baccdd35e6250857
Author: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Date: Wed Sep 23 09:44:38 2015 +0100
8139cp: Fix TSO/scatter-gather descriptor setup
When sending a TSO frame in multiple buffers, we were neglecting to set
the first descriptor up in TSO mode.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 26b0bad6ac3a0167792dc4ffb276c29bc597d239
Author: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Date: Wed Sep 23 09:44:06 2015 +0100
8139cp: Fix tx_queued debug message to print correct slot numbers
After a certain amount of staring at the debug output of this driver, I
realised it was lying to me.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit aaa0062ecf4877a26dea66bee1039c6eaf906c94
Author: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Date: Wed Sep 23 09:43:41 2015 +0100
8139cp: Do not re-enable RX interrupts in cp_tx_timeout()
If an RX interrupt was already received but NAPI has not yet run when
the RX timeout happens, we end up in cp_tx_timeout() with RX interrupts
already disabled. Blindly re-enabling them will cause an IRQ storm.
(This is made particularly horrid by the fact that cp_interrupt() always
returns that it's handled the interrupt, even when it hasn't actually
done anything. If it didn't do that, the core IRQ code would have
detected the storm and handled it, I'd have had a clear smoking gun
backtrace instead of just a spontaneously resetting router, and I'd have
at *least* two days of my life back. Changing the return value of
cp_interrupt() will be argued about under separate cover.)
Unconditionally leave RX interrupts disabled after the reset, and
schedule NAPI to check the receive ring and re-enable them.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3c6cb3acee6a2350c79df29e1cfb56ad1c9a3e9e
Merge: d3869ef 8ceaf36
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Wed Sep 23 14:37:38 2015 -0700
Merge branch 'netcp-fixes'
Murali Karicheri says:
====================
net: netcp: a set of bug fixes
This patch series fixes a set of issues in netcp driver seen during
internal
testing of the driver. While at it, do some clean up as well.
The fixes are tested on K2HK, K2L and K2E EVMs and the boot up logs can be
seen at
http://pastebin.ubuntu.com/12533100/
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8ceaf361ffd131e835aef1e6cdb1d5ba70702617
Author: Karicheri, Muralidharan <m-karicheri2@xxxxxx>
Date: Wed Sep 23 13:37:11 2015 -0400
net: netcp: fix deadlock reported by lockup detector
A deadlock trace is seen in netcp driver with lockup detector enabled.
The trace log is provided below for reference. This patch fixes the
bug by removing the usage of netcp_modules_lock within ndo_ops functions.
ndo_{open/close/ioctl)() is already called with rtnl_lock held. So there
is no need to hold another mutex for serialization across processes on
multiple cores. So remove use of netcp_modules_lock mutex from these
ndo ops functions.
ndo_set_rx_mode() shouldn't be using a mutex as it is called from atomic
context. In the case of ndo_set_rx_mode(), there can be call to this API
without rtnl_lock held from an atomic context. As the underlying modules
are expected to add address to a hardware table, it is to be protected
across concurrent updates and hence a spin lock is used to synchronize
the access. Same with ndo_vlan_rx_add_vid() & ndo_vlan_rx_kill_vid().
Probably the netcp_modules_lock is used to protect the module not being
removed as part of rmmod. Currently this is not fully implemented and
assumes the interface is brought down before doing rmmod of modules.
The support for rmmmod while interface is up is expected in a future
patch set when additional modules such as pa, qos are added. For now
all of the tests such as if up/down, reboot, iperf works fine with this
patch applied.
Deadlock trace seen with lockup detector enabled is shown below for
reference.
[ 16.863014] ======================================================
[ 16.869183] [ INFO: possible circular locking dependency detected ]
[ 16.875441] 4.1.6-01265-gfb1e101 #1 Tainted: G W
[ 16.881176] -------------------------------------------------------
[ 16.887432] ifconfig/1662 is trying to acquire lock:
[ 16.892386] (netcp_modules_lock){+.+.+.}, at: [<c03e8110>]
netcp_ndo_open+0x168/0x518
[ 16.900321]
[ 16.900321] but task is already holding lock:
[ 16.906144] (rtnl_mutex){+.+.+.}, at: [<c053a418>]
devinet_ioctl+0xf8/0x7e4
[ 16.913206]
[ 16.913206] which lock already depends on the new lock.
[ 16.913206]
[ 16.921372]
[ 16.921372] the existing dependency chain (in reverse order) is:
[ 16.928844]
-> #1 (rtnl_mutex){+.+.+.}:
[ 16.932865] [<c06023f0>] mutex_lock_nested+0x68/0x4a8
[ 16.938521] [<c04c5758>] register_netdev+0xc/0x24
[ 16.943831] [<c03e65c0>] netcp_module_probe+0x214/0x2ec
[ 16.949660] [<c03e8a54>] netcp_register_module+0xd4/0x140
[ 16.955663] [<c089654c>] keystone_gbe_init+0x10/0x28
[ 16.961233] [<c000977c>] do_one_initcall+0xb8/0x1f8
[ 16.966714] [<c0867e04>] kernel_init_freeable+0x148/0x1e8
[ 16.972720] [<c05f9994>] kernel_init+0xc/0xe8
[ 16.977682] [<c0010038>] ret_from_fork+0x14/0x3c
[ 16.982905]
-> #0 (netcp_modules_lock){+.+.+.}:
[ 16.987619] [<c006eab0>] lock_acquire+0x118/0x320
[ 16.992928] [<c06023f0>] mutex_lock_nested+0x68/0x4a8
[ 16.998582] [<c03e8110>] netcp_ndo_open+0x168/0x518
[ 17.004064] [<c04c48f0>] __dev_open+0xa8/0x10c
[ 17.009112] [<c04c4b74>] __dev_change_flags+0x94/0x144
[ 17.014853] [<c04c4c3c>] dev_change_flags+0x18/0x48
[ 17.020334] [<c053a9fc>] devinet_ioctl+0x6dc/0x7e4
[ 17.025729] [<c04a59ec>] sock_ioctl+0x1d0/0x2a8
[ 17.030865] [<c0142844>] do_vfs_ioctl+0x41c/0x688
[ 17.036173] [<c0142ae4>] SyS_ioctl+0x34/0x5c
[ 17.041046] [<c000ff60>] ret_fast_syscall+0x0/0x54
[ 17.046441]
[ 17.046441] other info that might help us debug this:
[ 17.046441]
[ 17.054434] Possible unsafe locking scenario:
[ 17.054434]
[ 17.060343] CPU0 CPU1
[ 17.064862] ---- ----
[ 17.069381] lock(rtnl_mutex);
[ 17.072522] lock(netcp_modules_lock);
[ 17.078875] lock(rtnl_mutex);
[ 17.084532] lock(netcp_modules_lock);
[ 17.088366]
[ 17.088366] *** DEADLOCK ***
[ 17.088366]
[ 17.094279] 1 lock held by ifconfig/1662:
[ 17.098278] #0: (rtnl_mutex){+.+.+.}, at: [<c053a418>]
devinet_ioctl+0xf8/0x7e4
[ 17.105774]
[ 17.105774] stack backtrace:
[ 17.110124] CPU: 1 PID: 1662 Comm: ifconfig Tainted: G W
4.1.6-01265-gfb1e101 #1
[ 17.118637] Hardware name: Keystone
[ 17.122123] [<c00178e4>] (unwind_backtrace) from [<c0013cbc>]
(show_stack+0x10/0x14)
[ 17.129862] [<c0013cbc>] (show_stack) from [<c05ff450>]
(dump_stack+0x84/0xc4)
[ 17.137079] [<c05ff450>] (dump_stack) from [<c0068e34>]
(print_circular_bug+0x210/0x330)
[ 17.145161] [<c0068e34>] (print_circular_bug) from [<c006ab7c>]
(validate_chain.isra.35+0xf98/0x13ac)
[ 17.154372] [<c006ab7c>] (validate_chain.isra.35) from [<c006da60>]
(__lock_acquire+0x52c/0xcc0)
[ 17.163149] [<c006da60>] (__lock_acquire) from [<c006eab0>]
(lock_acquire+0x118/0x320)
[ 17.171058] [<c006eab0>] (lock_acquire) from [<c06023f0>]
(mutex_lock_nested+0x68/0x4a8)
[ 17.179140] [<c06023f0>] (mutex_lock_nested) from [<c03e8110>]
(netcp_ndo_open+0x168/0x518)
[ 17.187484] [<c03e8110>] (netcp_ndo_open) from [<c04c48f0>]
(__dev_open+0xa8/0x10c)
[ 17.195133] [<c04c48f0>] (__dev_open) from [<c04c4b74>]
(__dev_change_flags+0x94/0x144)
[ 17.203129] [<c04c4b74>] (__dev_change_flags) from [<c04c4c3c>]
(dev_change_flags+0x18/0x48)
[ 17.211560] [<c04c4c3c>] (dev_change_flags) from [<c053a9fc>]
(devinet_ioctl+0x6dc/0x7e4)
[ 17.219729] [<c053a9fc>] (devinet_ioctl) from [<c04a59ec>]
(sock_ioctl+0x1d0/0x2a8)
[ 17.227378] [<c04a59ec>] (sock_ioctl) from [<c0142844>]
(do_vfs_ioctl+0x41c/0x688)
[ 17.234939] [<c0142844>] (do_vfs_ioctl) from [<c0142ae4>]
(SyS_ioctl+0x34/0x5c)
[ 17.242242] [<c0142ae4>] (SyS_ioctl) from [<c000ff60>]
(ret_fast_syscall+0x0/0x54)
[ 17.258855] netcp-1.0 2620110.netcp eth0: Link is Up - 1Gbps/Full -
flow
control off
[ 17.271282] BUG: sleeping function called from invalid context at
kernel/locking/mutex.c:616
[ 17.279712] in_atomic(): 1, irqs_disabled(): 0, pid: 1662, name:
ifconfig
[ 17.286500] INFO: lockdep is turned off.
[ 17.290413] Preemption disabled at:[< (null)>] (null)
[ 17.295728]
[ 17.297214] CPU: 1 PID: 1662 Comm: ifconfig Tainted: G W
4.1.6-01265-gfb1e101 #1
[ 17.305735] Hardware name: Keystone
[ 17.309223] [<c00178e4>] (unwind_backtrace) from [<c0013cbc>]
(show_stack+0x10/0x14)
[ 17.316970] [<c0013cbc>] (show_stack) from [<c05ff450>]
(dump_stack+0x84/0xc4)
[ 17.324194] [<c05ff450>] (dump_stack) from [<c06023b0>]
(mutex_lock_nested+0x28/0x4a8)
[ 17.332112] [<c06023b0>] (mutex_lock_nested) from [<c03e9840>]
(netcp_set_rx_mode+0x160/0x210)
[ 17.340724] [<c03e9840>] (netcp_set_rx_mode) from [<c04c483c>]
(dev_set_rx_mode+0x1c/0x28)
[ 17.348982] [<c04c483c>] (dev_set_rx_mode) from [<c04c490c>]
(__dev_open+0xc4/0x10c)
[ 17.356724] [<c04c490c>] (__dev_open) from [<c04c4b74>]
(__dev_change_flags+0x94/0x144)
[ 17.364729] [<c04c4b74>] (__dev_change_flags) from [<c04c4c3c>]
(dev_change_flags+0x18/0x48)
[ 17.373166] [<c04c4c3c>] (dev_change_flags) from [<c053a9fc>]
(devinet_ioctl+0x6dc/0x7e4)
[ 17.381344] [<c053a9fc>] (devinet_ioctl) from [<c04a59ec>]
(sock_ioctl+0x1d0/0x2a8)
[ 17.388994] [<c04a59ec>] (sock_ioctl) from [<c0142844>]
(do_vfs_ioctl+0x41c/0x688)
[ 17.396563] [<c0142844>] (do_vfs_ioctl) from [<c0142ae4>]
(SyS_ioctl+0x34/0x5c)
[ 17.403873] [<c0142ae4>] (SyS_ioctl) from [<c000ff60>]
(ret_fast_syscall+0x0/0x54)
[ 17.413772] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
udhcpc (v1.20.2) started
Sending discover...
[ 18.690666] netcp-1.0 2620110.netcp eth0: Link is Up - 1Gbps/Full -
flow
control off
Sending discover...
[ 22.250972] netcp-1.0 2620110.netcp eth0: Link is Up - 1Gbps/Full -
flow
control off
[ 22.258721] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 22.265458] BUG: sleeping function called from invalid context at
kernel/locking/mutex.c:616
[ 22.273896] in_atomic(): 1, irqs_disabled(): 0, pid: 342, name:
kworker/1:1
[ 22.280854] INFO: lockdep is turned off.
[ 22.284767] Preemption disabled at:[< (null)>] (null)
[ 22.290074]
[ 22.291568] CPU: 1 PID: 342 Comm: kworker/1:1 Tainted: G W
4.1.6-01265-gfb1e101 #1
[ 22.300255] Hardware name: Keystone
[ 22.303750] Workqueue: ipv6_addrconf addrconf_dad_work
[ 22.308895] [<c00178e4>] (unwind_backtrace) from [<c0013cbc>]
(show_stack+0x10/0x14)
[ 22.316643] [<c0013cbc>] (show_stack) from [<c05ff450>]
(dump_stack+0x84/0xc4)
[ 22.323867] [<c05ff450>] (dump_stack) from [<c06023b0>]
(mutex_lock_nested+0x28/0x4a8)
[ 22.331786] [<c06023b0>] (mutex_lock_nested) from [<c03e9840>]
(netcp_set_rx_mode+0x160/0x210)
[ 22.340394] [<c03e9840>] (netcp_set_rx_mode) from [<c04c9d18>]
(__dev_mc_add+0x54/0x68)
[ 22.348401] [<c04c9d18>] (__dev_mc_add) from [<c05ab358>]
(igmp6_group_added+0x168/0x1b4)
[ 22.356580] [<c05ab358>] (igmp6_group_added) from [<c05ad2cc>]
(ipv6_dev_mc_inc+0x4f0/0x5a8)
[ 22.365019] [<c05ad2cc>] (ipv6_dev_mc_inc) from [<c058f0d0>]
(addrconf_dad_work+0x21c/0x33c)
[ 22.373460] [<c058f0d0>] (addrconf_dad_work) from [<c0042850>]
(process_one_work+0x214/0x8d0)
[ 22.381986] [<c0042850>] (process_one_work) from [<c0042f54>]
(worker_thread+0x48/0x4bc)
[ 22.390071] [<c0042f54>] (worker_thread) from [<c004868c>]
(kthread+0xf0/0x108)
[ 22.397381] [<c004868c>] (kthread) from [<c0010038>]
Trace related to incorrect usage of mutex inside ndo_set_rx_mode
[ 24.086066] BUG: sleeping function called from invalid context at
kernel/locking/mutex.c:616
[ 24.094506] in_atomic(): 1, irqs_disabled(): 0, pid: 1682, name:
ifconfig
[ 24.101291] INFO: lockdep is turned off.
[ 24.105203] Preemption disabled at:[< (null)>] (null)
[ 24.110511]
[ 24.112005] CPU: 2 PID: 1682 Comm: ifconfig Tainted: G W
4.1.6-01265-gfb1e101 #1
[ 24.120518] Hardware name: Keystone
[ 24.124018] [<c00178e4>] (unwind_backtrace) from [<c0013cbc>]
(show_stack+0x10/0x14)
[ 24.131772] [<c0013cbc>] (show_stack) from [<c05ff450>]
(dump_stack+0x84/0xc4)
[ 24.138989] [<c05ff450>] (dump_stack) from [<c06023b0>]
(mutex_lock_nested+0x28/0x4a8)
[ 24.146908] [<c06023b0>] (mutex_lock_nested) from [<c03e9840>]
(netcp_set_rx_mode+0x160/0x210)
[ 24.155523] [<c03e9840>] (netcp_set_rx_mode) from [<c04c483c>]
(dev_set_rx_mode+0x1c/0x28)
[ 24.163787] [<c04c483c>] (dev_set_rx_mode) from [<c04c490c>]
(__dev_open+0xc4/0x10c)
[ 24.171531] [<c04c490c>] (__dev_open) from [<c04c4b74>]
(__dev_change_flags+0x94/0x144)
[ 24.179528] [<c04c4b74>] (__dev_change_flags) from [<c04c4c3c>]
(dev_change_flags+0x18/0x48)
[ 24.187966] [<c04c4c3c>] (dev_change_flags) from [<c053a9fc>]
(devinet_ioctl+0x6dc/0x7e4)
[ 24.196145] [<c053a9fc>] (devinet_ioctl) from [<c04a59ec>]
(sock_ioctl+0x1d0/0x2a8)
[ 24.203803] [<c04a59ec>] (sock_ioctl) from [<c0142844>]
(do_vfs_ioctl+0x41c/0x688)
[ 24.211373] [<c0142844>] (do_vfs_ioctl) from [<c0142ae4>]
(SyS_ioctl+0x34/0x5c)
[ 24.218676] [<c0142ae4>] (SyS_ioctl) from [<c000ff60>]
(ret_fast_syscall+0x0/0x54)
[ 24.227156] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
Signed-off-by: Murali Karicheri <m-karicheri2@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 99f8ef5dc6546ac28cc7a03ff8301bc72fe5527e
Author: Karicheri, Muralidharan <m-karicheri2@xxxxxx>
Date: Wed Sep 23 13:37:10 2015 -0400
net: netcp: allocate buffers to desc before re-enable interrupt
Currently netcp_rxpool_refill() that refill descriptors and attached
buffers to fdq while interrupt is enabled as part of NAPI poll. Doing
it while interrupt is disabled could be beneficial as hardware will
not be starved when CPU is busy with processing interrupt.
Signed-off-by: Murali Karicheri <m-karicheri2@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 915c5857874fc211874de1363e88f902e581e6eb
Author: Karicheri, Muralidharan <m-karicheri2@xxxxxx>
Date: Wed Sep 23 13:37:09 2015 -0400
net: netcp: check for interface handle in netcp_module_probe()
Currently netcp_module_probe() doesn't check the return value of
of_parse_phandle() that points to the interface data for the
module and then pass the node ptr to the module which is incorrect.
Check for return value and free the intf_modpriv if there is error.
Signed-off-by: Murali Karicheri <m-karicheri2@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e558b1fbf5f43da83f91a31e595a6d65e663b100
Author: Karicheri, Muralidharan <m-karicheri2@xxxxxx>
Date: Wed Sep 23 13:37:08 2015 -0400
net: netcp: add error check to netcp_allocate_rx_buf()
Currently, if netcp_allocate_rx_buf() fails due no descriptors
in the rx free descriptor queue, inside the netcp_rxpool_refill() function
the iterative loop to fill buffers doesn't terminate right away. So modify
the netcp_allocate_rx_buf() to return an error code and use it break the
loop when there is error.
Signed-off-by: Murali Karicheri <m-karicheri2@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 736532a0705ffc27c14f712fa2758a7f8b15e8b4
Author: Karicheri, Muralidharan <m-karicheri2@xxxxxx>
Date: Wed Sep 23 13:37:07 2015 -0400
net: netcp: move netcp_register_interface() to after attach module
The netcp interface is not fully initialized before attach the module
to the interface. For example, the tx pipe/rx pipe is initialized
in ethss module as part of attach(). So until this is complete, the
interface can't be registered. So move registration of interface to
net device outside the current loop that attaches the modules to the
interface.
Signed-off-by: Murali Karicheri <m-karicheri2@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 156e3c21f89655f099228577005a6c656b3ceb3d
Author: Karicheri, Muralidharan <m-karicheri2@xxxxxx>
Date: Wed Sep 23 13:37:06 2015 -0400
net: netcp: remove dead code from the driver
netcp_core is the first driver that will get initialized and the modules
(ethss, pa etc) will then get initialized. So the code at the end of
netcp_probe() that iterate over the modules is a dead code as the module
list will be always be empty. So remove this code.
Signed-off-by: Murali Karicheri <m-karicheri2@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8c85151ddec66f78fbf997e35be005a322fbb9c9
Author: WingMan Kwok <w-kwok2@xxxxxx>
Date: Wed Sep 23 13:37:05 2015 -0400
net: netcp: ethss: fix error in calling sgmii api with incorrect offset
On K2HK, sgmii module registers of slave 0 and 1 are mem
mapped to one contiguous block, while those of slave 2
and 3 are mapped to another contiguous block. However,
on K2E and K2L, sgmii module registers of all slaves are
mem mapped to one contiguous block. SGMII APIs expect
slave 0 sgmii base when API is invoked for slave 0 and 1,
and slave 2 sgmii base when invoked for other slaves.
Before this patch, slave 0 sgmii base is always passed to
sgmii API for K2E regardless which slave is the API invoked
for. This patch fixes the problem.
Signed-off-by: WingMan Kwok <w-kwok2@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d3869efe7a8a2298516d9af4f91487cf486ca945
Author: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
Date: Wed Sep 23 19:45:08 2015 +0100
Fix AF_PACKET ABI breakage in 4.2
Commit 7d82410950aa ("virtio: add explicit big-endian support to memory
accessors") accidentally changed the virtio_net header used by
AF_PACKET with PACKET_VNET_HDR from host-endian to big-endian.
Since virtio_legacy_is_little_endian() is a very long identifier,
define a vio_le macro and use that throughout the code instead of the
hard-coded 'false' for little-endian.
This restores the ABI to match 4.1 and earlier kernels, and makes my
test program work again.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2d8bff12699abc3a9bf886bb0b79f44d94d81496
Author: Neil Horman <nhorman@xxxxxxxxxx>
Date: Wed Sep 23 14:57:58 2015 -0400
netpoll: Close race condition between poll_one_napi and napi_disable
Drivers might call napi_disable while not holding the napi instance
poll_lock.
In those instances, its possible for a race condition to exist between
poll_one_napi and napi_disable. That is to say, poll_one_napi only tests
the
NAPI_STATE_SCHED bit to see if there is work to do during a poll, and as
such
the following may happen:
CPU0 CPU1
ndo_tx_timeout napi_poll_dev
napi_disable poll_one_napi
test_and_set_bit (ret 0)
test_bit (ret 1)
reset adapter napi_poll_routine
If the adapter gets a tx timeout without a napi instance scheduled, its
possible
for the adapter to think it has exclusive access to the hardware (as the
napi
instance is now scheduled via the napi_disable call), while the netpoll
code
thinks there is simply work to do. The result is parallel hardware access
leading to corrupt data structures in the driver, and a crash.
Additionaly, there is another, more critical race between netpoll and
napi_disable. The disabled napi state is actually identical to the
scheduled
state for a given napi instance. The implication being that, if a napi
instance
is disabled, a netconsole instance would see the napi state of the device
as
having been scheduled, and poll it, likely while the driver was dong
something
requiring exclusive access. In the case above, its fairly clear that not
having
the rings in a state ready to be polled will cause any number of crashes.
The fix should be pretty easy. netpoll uses its own bit to indicate that
that
the napi instance is in a state of being serviced by netpoll
(NAPI_STATE_NPSVC).
We can just gate disabling on that bit as well as the sched bit. That
should
prevent netpoll from conducting a napi poll if we convert its set bit to a
test_and_set_bit operation to provide mutual exclusion
Change notes:
V2)
Remove a trailing whtiespace
Resubmit with proper subject prefix
V3)
Clean up spacing nits
Signed-off-by: Neil Horman <nhorman@xxxxxxxxxxxxx>
CC: "David S. Miller" <davem@xxxxxxxxxxxxx>
CC: jmaxwell@xxxxxxxxxx
Tested-by: jmaxwell@xxxxxxxxxx
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 675ee231d960af2af3606b4480324e26797eb010
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Wed Sep 23 14:00:21 2015 -0700
tcp: add proper TS val into RST packets
RST packets sent on behalf of TCP connections with TS option (RFC 7323
TCP timestamps) have incorrect TS val (set to 0), but correct TS ecr.
A > B: Flags [S], seq 0, win 65535, options [mss 1000,nop,nop,TS val 100
ecr 0], length 0
B > A: Flags [S.], seq 2444755794, ack 1, win 28960, options [mss
1460,nop,nop,TS val 7264344 ecr 100], length 0
A > B: Flags [.], ack 1, win 65535, options [nop,nop,TS val 110 ecr
7264344], length 0
B > A: Flags [R.], seq 1, ack 1, win 28960, options [nop,nop,TS val 0
ecr 110], length 0
We need to call skb_mstamp_get() to get proper TS val,
derived from skb->skb_mstamp
Note that RFC 1323 was advocating to not send TS option in RST segment,
but RFC 7323 recommends the opposite :
Once TSopt has been successfully negotiated, that is both <SYN> and
<SYN,ACK> contain TSopt, the TSopt MUST be sent in every non-<RST>
segment for the duration of the connection, and SHOULD be sent in an
<RST> segment (see Section 5.2 for details)
Note this RFC recommends to send TS val = 0, but we believe it is
premature : We do not know if all TCP stacks are properly
handling the receive side :
When an <RST> segment is
received, it MUST NOT be subjected to the PAWS check by verifying an
acceptable value in SEG.TSval, and information from the Timestamps
option MUST NOT be used to update connection state information.
SEG.TSecr MAY be used to provide stricter <RST> acceptance checks.
In 5 years, if/when all TCP stack are RFC 7323 ready, we might consider
to decide to send TS val = 0, if it buys something.
Fixes: 7faee5c0d514 ("tcp: remove TCP_SKB_CB(skb)->when")
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Acked-by: Yuchung Cheng <ycheng@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e78654799135a788a941bacad3452fbd7083e518
Author: Maxim Sheviakov <mrader3940@xxxxxxxxx>
Date: Wed Sep 23 17:10:51 2015 -0400
drm/radeon: add quirk for MSI R7 370
Just adds the quirk for MSI R7 370 Armor 2X
Bug:
https://bugs.freedesktop.org/show_bug.cgi?id=91294
Signed-off-by: Maxim Sheviakov <mrader3940@xxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 4c7fbc39b1d58d9f4113ef962743a67bcdfe6be2
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Wed Sep 23 14:32:06 2015 -0400
drm/amdgpu: Sprinkle drm_modeset_lock_all to appease locking checks
In
commit 7a3f3d6667f5f9ffd1517f6b21d64bbf5312042c
Author: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Thu Jul 9 23:44:28 2015 +0200
drm: Check locking in drm_for_each_connector
I added locking checks to drm_for_each_connector but failed that
through drm_helper_connector_dpms -> drm_helper_choose_encoder_dpms
it's used in a few more places in the amdgpu resume/suspend code.
Fix them up.
Note that we could use the connector iterator macros in there too, but
that's for the future.
Port of radeon commit:
drm/radeon: Sprinkle drm_modeset_lock_all to appease locking checks
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 6adaed5bfe4f6f0a0e027e87d5dd80bd9834d5f0
Author: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Wed Sep 23 20:26:45 2015 +0200
drm/radeon: Sprinkle drm_modeset_lock_all to appease locking checks
In
commit 7a3f3d6667f5f9ffd1517f6b21d64bbf5312042c
Author: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Thu Jul 9 23:44:28 2015 +0200
drm: Check locking in drm_for_each_connector
I added locking checks to drm_for_each_connector but failed that
through drm_helper_connector_dpms -> drm_helper_choose_encoder_dpms
it's used in a few more places in the radeon resume/suspend code.
Fix them up.
Note that we could use the connector iterator macros in there too, but
that's for the future.
Reported-and-tested-by: Borislav Petkov <bp@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Alex Deucher <alexdeucher@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 5c3422b0b135b46c8dca9c1d909c1ae84f3561bd
Author: monk.liu <monk.liu@xxxxxxx>
Date: Wed Sep 23 13:49:58 2015 +0800
drm/amdgpu: sync ce and me with SWITCH_BUFFER(2)
we used to adopt wait_reg_mem to let CE wait before DE finish page
updating, but from Tonga+, CE doesn't support wait_reg_mem package so
this logic no longer works.
so here is another approach to do same thing:
Insert two of SWITCH_BUFFER at both front and end of vm_flush can
guarantee that CE not go further to process IB_const before vm_flush
done.
Insert two of SWITCH_BUFFER also works on CI, so remove legency method
to sync CE and ME
v2:
Insert double SWITCH_BUFFER at front of vm flush as well.
Signed-off-by: monk.liu <monk.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 54ef0b5461c071050c61e501af5544842d61f40a
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Wed Sep 23 14:00:59 2015 +0300
drm/amdgpu: integer overflow in amdgpu_mode_dumb_create()
args->size is a u64. arg->pitch and args->height are u32. The
multiplication will overflow instead of using the high 32 bits as
intended.
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 0913eab648e4fb30ddca8882e707d0fcf5b237c6
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Wed Sep 23 14:00:35 2015 +0300
drm/amdgpu: info leak in amdgpu_gem_metadata_ioctl()
There is no limit on args->data.data_size_bytes so we could read beyond
the end of the args->data.data[] array.
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reported-by: Ilja Van Sprundel <ivansprundel@xxxxxxxxxxxx>
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 0d2edd3791bb172a59d708d5c94330bbd6050f97
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Wed Sep 23 14:00:12 2015 +0300
drm/amdgpu: integer overflow in amdgpu_info_ioctl()
The "alloc_size" calculation can overflow leading to memory corruption.
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reported-by: Ilja Van Sprundel <ivansprundel@xxxxxxxxxxxx>
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 1d263474c4416efb6d0feca98fe6d462b0d28f56
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Wed Sep 23 13:59:28 2015 +0300
drm/amdgpu: unwind properly in amdgpu_cs_parser_init()
The amdgpu_cs_parser_init() function doesn't clean up after itself but
instead the caller uses a free everything function amdgpu_cs_parser_fini()
on failure. This style of error handling is often buggy. In this
example, we call "drm_free_large(parser->chunks[i].kdata);" when it is
an unintialized pointer or when "parser->chunks" is NULL.
I fixed this bug by adding unwind code so that it frees everything that
it allocates.
I also mode some other very minor changes:
1) Renamed "r" to "ret".
2) Moved the chunk_array allocation to the start of the function.
3) Removed some initializers which are no longer needed.
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reported-by: Ilja Van Sprundel <ivansprundel@xxxxxxxxxxxx>
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 5a6adfa20b622a273205e33b20c12332aa7eb724
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Tue Sep 22 10:06:45 2015 -0400
drm/amdgpu: Fix max_vblank_count value for current display engines
The value was much too low, which could cause the userspace visible
vblank counter to move backwards when the hardware counter wrapped
around.
Ported from radeon commit:
b0b9bb4dd51f396dcf843831905f729e74b0c8c0
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 71affda522bb0f43e205cf4f000e2c50261c01a6
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Mon Sep 21 17:34:39 2015 -0400
drm/amdgpu: use kmemdup rather than duplicating its implementation
The patch was generated using fixed coccinelle semantic patch
scripts/coccinelle/api/memdup.cocci [1].
[1]: http://permalink.gmane.org/gmane.linux.kernel/2014320
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 1f4452105ce39786be13b4636251377a30d1286a
Author: Leo Liu <leo.liu@xxxxxxx>
Date: Fri Sep 11 17:09:57 2015 -0400
drm/amdgpu: fix UVD suspend and resume for VI APU
User space passed the same handle before suspend and after resume,
so we have remove the session and handle destroy, and keep the
firmware untouched.
Signed-off-by: Leo Liu <leo.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 2bd188d0167227932be3cf5b033c0e600b01291f
Author: Leo Liu <leo.liu@xxxxxxx>
Date: Fri Sep 11 14:22:18 2015 -0400
drm/amdgpu: fix the UVD suspend sequence order
Fixes suspend issues with UVD.
Signed-off-by: Leo Liu <leo.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 5146419e6feb99cfbc8dbf005dd2f62603e15efb
Author: Leo Liu <leo.liu@xxxxxxx>
Date: Tue Sep 15 10:38:38 2015 -0400
drm/amdgpu: make UVD handle checking more strict
Invalid messages can crash the hw otherwise
Ported from radeon commit a1b403da70e038ca6c6c6fe434d1d873546873a3
Signed-off-by: Leo Liu <leo.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 1ee4478a26cf55c8f8a6219d7e99f2b48959394d
Author: Leo Liu <leo.liu@xxxxxxx>
Date: Thu Sep 10 13:41:38 2015 -0400
drm/amdgpu: Disable UVD PG
This causes problems with multiple suspend/resume cycles.
Signed-off-by: Leo Liu <leo.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 4f839a243d3b0d8b1a14f4778a87ec4d8ddbf15f
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Sep 8 20:22:31 2015 +0200
drm/amdgpu: more scheduler cleanups v2
Embed the scheduler into the ring structure instead of allocating it.
Use the ring name directly instead of the id.
v2: rebased, whitespace cleanup
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Junwei Zhang <Jerry.Zhang@xxxxxxx>
Reviewed-by: Chunming Zhou<david1.zhou@xxxxxxx>
commit 5ec92a7692872d656cffe010920fb49c4f51d75f
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Sep 7 18:43:02 2015 +0200
drm/amdgpu: cleanup fence queue init v2
Move the fence related stuff into amdgpu_fence.c
v2: rework commit message, cause this is actually not a bug
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou<david1.zhou@xxxxxxx>
Reviewed-by: Junwei Zhang <Jerry.Zhang@xxxxxxx>
commit 9b398fa5c24eb05fc60fafd8543cc03e9170f054
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Sep 7 18:16:49 2015 +0200
drm/amdgpu: rename fence->scheduler to sched v2
Just to be consistent with the other members.
v2: rename the ring member as well.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Junwei Zhang <Jerry.Zhang@xxxxxxx> (v1)
Reviewed-by: Chunming Zhou<david1.zhou@xxxxxxx>
commit 0f75aee75112934bcaf42410df5c51d7194b5896
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Sep 7 18:07:14 2015 +0200
drm/amdgpu: cleanup entity init
Reorder the fields and properly return the kfifo_alloc error code.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Junwei Zhang <Jerry.Zhang@xxxxxxx>
Reviewed-by: Chunming Zhou<david1.zhou@xxxxxxx>
commit a6db8a33e164ae72fb5429ab637e8cfee057a722
Author: Junwei Zhang <Jerry.Zhang@xxxxxxx>
Date: Wed Sep 9 09:21:19 2015 +0800
drm/amdgpu: refine the scheduler job type conversion
Use container_of rather than casting.
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: David Zhou <david1.zhou@xxxxxxx>
Signed-off-by: Junwei Zhang <Jerry.Zhang@xxxxxxx>
commit 4c7eb91cae88fd2aa101750d6825b4176f85ffb2
Author: Junwei Zhang <Jerry.Zhang@xxxxxxx>
Date: Wed Sep 9 09:05:55 2015 +0800
drm/amdgpu: refine the job naming for amdgpu_job and amdgpu_sched_job
Use consistent naming across functions.
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: David Zhou <david1.zhou@xxxxxxx>
Signed-off-by: Junwei Zhang <Jerry.Zhang@xxxxxxx>
commit bf60efd353f68e5dec1a177b5cbe4da07c819569
Author: Christian König <christian.koenig@xxxxxxx>
Date: Fri Sep 4 10:47:56 2015 +0200
drm/amdgpu: use only one reservation object for each VM v2
Reduces the locking and fencing overhead.
v2: add comment why we need the duplicates list in the GEM op.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit a5b750583eb4af69da1e659c7684b6d370b2ae97
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Sep 3 16:40:39 2015 +0200
drm/amdgpu: validate duplicates in the CS as well
This allows for multiple BOs to have the same reservation object.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 72d7668b5ba5180b651e8a07dd6ed62e4e26f207
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Sep 3 17:34:59 2015 +0200
drm/amdgpu: export reservation_object from dmabuf to ttm (v2)
Adds an extra argument to amdgpu_bo_create, which is only used in
amdgpu_prime.c.
Port of radeon commit 831b6966a60fe72d85ae3576056b4e4e0775b112.
v2: fix up kfd.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit b7d698d7fd7d132c6ebe56d230584f2cae6c94ee
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Sep 7 12:32:09 2015 +0200
drm/amdgpu: fix overflow on 32bit systems
mem->start is a long, so this can overflow on 32bit systems.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 1886d1a9caed20f457dd69a926c7f8b54c2d5f48
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Aug 31 17:28:28 2015 +0200
drm/amdgpu: remove process_job callback from the scheduler
Just free the resources immediately after submitting the job.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Junwei Zhang <Jerry.Zhang@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 258f3f99d514172aa5a9df15e6d6ebe33aad2f55
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Aug 31 17:02:52 2015 +0200
drm/amdgpu: move scheduler fence callback into fence v2
And call the processed callback directly after submitting the job.
v2: split adding error handling into separate patch.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Junwei Zhang <Jerry.Zhang@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 27439fcac03632f2b1fd85268dc61af828c77e7b
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Sep 2 12:03:06 2015 +0200
drm/amdgpu: signal scheduler fence when hw submission fails v3
Otherwise the resource blocked by it will never be reclaimed.
v2: add DRM_ERROR.
v3: fix typo in commit message
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Junwei Zhang <Jerry.Zhang@xxxxxxx>
Reviewed-by: Chunming Zhou<david1.zhou@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 353da3c520b47272b9e3ddbc70b81be285c0b933
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Sep 7 16:06:53 2015 +0800
drm/amdgpu: add tracepoint for scheduler (v2)
track sched job status like the length of job queue and hw job queue.
v2: fix build after rebase
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 20a85ff846ffed84fba8637abbb6b1c96436c0ac
Author: Christian König <christian.koenig@xxxxxxx>
Date: Sat Sep 5 11:59:50 2015 +0200
drm/amdgpu: use write confirm for vm_flush()
Make sure the CP waits for the write to be confirmed before
invalidating.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 22c01cc48301f6974868bd4a7b03e29883da1103
Author: Anatoli Antonovitch <anatoli.antonovitch@xxxxxxx>
Date: Thu Sep 3 11:13:31 2015 -0400
drm/amdgpu: execution barrier after fence v2
Insert wait for reg mem after EOP to fix potential issue with vm context
switch
v2: move wait to vm_flush() use equal instead of greater than.
Signed-off-by: Anatoli Antonovitch <anatoli.antonovitch@xxxxxxx>
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 3daea9e3d3ecd217a63f35e63f18ea7138f2ae17
Author: Christian König <christian.koenig@xxxxxxx>
Date: Sat Sep 5 11:12:27 2015 +0200
drm/amdgpu: add option to disable semaphores
Provide module parameter to enable/disable them. Still
enabled by default.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit bda4e0fb3126aca15586d165b5a15a37edc0a984
Author: Keith Busch <keith.busch@xxxxxxxxx>
Date: Thu Sep 3 08:18:17 2015 -0600
NVMe: Set affinity after allocating request queues
The asynchronous namespace scanning caused affinity hints to be set before
its tagset initialized, so there was no cpu mask to set the hint. This
patch moves the affinity hint setting to after namespaces are scanned.
Reported-by: �경� <ks0204.kim@xxxxxxxxxxx>
Signed-off-by: Keith Busch <keith.busch@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit cbb4be652d374f64661137756b8f357a1827d6a4
Author: Johan Hovold <johan@xxxxxxxxxx>
Date: Wed Sep 23 11:41:42 2015 -0700
USB: whiteheat: fix potential null-deref at probe
Fix potential null-pointer dereference at probe by making sure that the
required endpoints are present.
The whiteheat driver assumes there are at least five pairs of bulk
endpoints, of which the final pair is used for the "command port". An
attempt to bind to an interface with fewer bulk endpoints would
currently lead to an oops.
Fixes CVE-2015-5257.
Reported-by: Moein Ghasemzadeh <moein@xxxxxxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ed14ee0eea8b6808025356cecc87a8007885263f
Merge: d86a2fe 8524bb0 ee92cfb
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Wed Sep 23 11:01:12 2015 -0700
Merge remote-tracking branches 'asoc/fix/wm8960' and 'asoc/fix/wm8962'
into asoc-linus
commit d86a2fe4dc97cbbad04f5db941d9a1bb82e22b5f
Merge: 312e0bc e4fba9b 921e546 8811191 4261786 3a0e27d f072f91
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Wed Sep 23 11:01:08 2015 -0700
Merge remote-tracking branches 'asoc/fix/mtk', 'asoc/fix/psc',
'asoc/fix/pxa', 'asoc/fix/spear', 'asoc/fix/sti' and 'asoc/fix/wm0010' into
asoc-linus
commit 312e0bce7f2d7fcf57f38f6e229a82eb4e0c2af4
Merge: fcffa0d ab1fffe d76f419 6bd3c6f 5b64c17 f1ec5ec f0e03db
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Wed Sep 23 11:01:03 2015 -0700
Merge remote-tracking branches 'asoc/fix/davinci', 'asoc/fix/doc',
'asoc/fix/fsl-card', 'asoc/fix/fsl-ssi', 'asoc/fix/intel' and
'asoc/fix/maintainers' into asoc-linus
commit fcffa0dbb6c9144d07011531860da2f1e8a8b7cd
Merge: 5ee84ba fce97b4
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Wed Sep 23 11:01:02 2015 -0700
Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linus
commit 5ee84ba8c7f5a5dd1934459acfec6108b5285940
Merge: 1f93e4a 75881df
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Wed Sep 23 11:01:00 2015 -0700
Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linus
commit fce97b4d70ad632dd9c6058622492501377bbaaa
Author: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Date: Wed Sep 23 14:35:30 2015 +0800
ASoC: rt5645: Prevent the pop sound in case of playback and the jack is
plugging
Signed-off-by: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 4f4794124e0421b080a0f1f5f1207636ba55eb85
Author: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Date: Wed Sep 23 14:35:29 2015 +0800
ASoC: rt5645: Increase the delay time to remove the pop sound
Signed-off-by: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 21cb13e72b02dbbb5a02477d4dd46bc2bc1cfd08
Author: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Date: Wed Sep 23 14:35:28 2015 +0800
ASoC: rt5645: Use the type SOC_DAPM_SINGLE_AUTODISABLE to prevent the
weird sound in runtime of power up
Signed-off-by: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 50b956f3d85cdea130866f33613416431d60f396
Author: Andy Gross <agross@xxxxxxxxxxxxxx>
Date: Fri Sep 11 16:01:16 2015 -0500
firmware: qcom: scm: Add function stubs for ARM64
This patch adds stubs for the SCM functions exposed in the QCOM SCM API.
Signed-off-by: Andy Gross <agross@xxxxxxxxxxxxxx>
Acked-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Acked-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
commit adbe734b2ae5517b8659997909677687b963d73c
Merge: bcee19f f929d42
Author: Jens Axboe <axboe@xxxxxx>
Date: Wed Sep 23 10:59:44 2015 -0600
Merge branch 'stable/for-jens-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus
Konrad writes:
It has one fix that should go in and also be put in stable tree (I've
added the CC already).
It is a fix for a memory leak that can exposed via using UEFI
xen-blkfront driver.
commit f929d42ceb18a8acfd47e0e7b7d90b5d49bd9258
Author: Roger Pau Monne <roger.pau@xxxxxxxxxx>
Date: Fri Sep 4 12:08:07 2015 +0200
xen/blkback: free requests on disconnection
This is due to commit 86839c56dee28c315a4c19b7bfee450ccd84cd25
"xen/block: add multi-page ring support"
When using an guest under UEFI - after the domain is destroyed
the following warning comes from blkback.
------------[ cut here ]------------
WARNING: CPU: 2 PID: 95 at
/home/julien/works/linux/drivers/block/xen-blkback/xenbus.c:274
xen_blkif_deferred_free+0x1f4/0x1f8()
Modules linked in:
CPU: 2 PID: 95 Comm: kworker/2:1 Tainted: G W 4.2.0 #85
Hardware name: APM X-Gene Mustang board (DT)
Workqueue: events xen_blkif_deferred_free
Call trace:
[<ffff8000000890a8>] dump_backtrace+0x0/0x124
[<ffff8000000891dc>] show_stack+0x10/0x1c
[<ffff8000007653bc>] dump_stack+0x78/0x98
[<ffff800000097e88>] warn_slowpath_common+0x9c/0xd4
[<ffff800000097f80>] warn_slowpath_null+0x14/0x20
[<ffff800000557a0c>] xen_blkif_deferred_free+0x1f0/0x1f8
[<ffff8000000ad020>] process_one_work+0x160/0x3b4
[<ffff8000000ad3b4>] worker_thread+0x140/0x494
[<ffff8000000b2e34>] kthread+0xd8/0xf0
---[ end trace 6f859b7883c88cdd ]---
Request allocation has been moved to connect_ring, which is called every
time blkback connects to the frontend (this can happen multiple times
during
a blkback instance life cycle). On the other hand, request freeing has not
been moved, so it's only called when destroying the backend instance. Due
to
this mismatch, blkback can allocate the request pool multiple times,
without
freeing it.
In order to fix it, move the freeing of requests to xen_blkif_disconnect
to
restore the symmetry between request allocation and freeing.
Reported-by: Julien Grall <julien.grall@xxxxxxxxxx>
Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Tested-by: Julien Grall <julien.grall@xxxxxxxxxx>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Cc: David Vrabel <david.vrabel@xxxxxxxxxx>
Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx
CC: stable@xxxxxxxxxxxxxxx # 4.2
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
commit cd67d226ebd909d239d2c6e5a6abd6e2a338d1cd
Author: Jani Nikula <jani.nikula@xxxxxxxxx>
Date: Thu Sep 17 16:42:07 2015 +0300
drm/i915/bios: handle MIPI Sequence Block v3+ gracefully
The VBT MIPI Sequence Block version 3 has forward incompatible changes:
First, the block size in the header has been specified reserved, and the
actual size is a separate 32-bit value within the block. The current
find_section() function to will only look at the size in the block
header, and, depending on what's in that now reserved size field,
continue looking for other sections in the wrong place.
Fix this by taking the new block size field into account. This will
ensure that the lookups for other sections will work properly, as long
as the new 32-bit size does not go beyond the opregion VBT mailbox size.
Second, the contents of the block have been completely
changed. Gracefully refuse parsing the yet unknown data version.
Cc: Deepak M <m.deepak@xxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Reviewed-by: Deepak M <m.deepak@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 500d701f336b2771d34e46da7875a4782515a652
Author: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Date: Tue Sep 22 11:35:22 2015 +0800
NFS41: make close wait for layoutreturn
If we send a layoutreturn asynchronously before close, the close
might reach server first and layoutreturn would fail with BADSTATEID
because there is nothing keeping the layout stateid alive.
Also do not pretend sending layoutreturn if we are not.
Signed-off-by: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit d6eb71a6d2eda21c8cd7a4dcd6207a0d94eb6ae7
Author: Vaibhav Jain <vaibhav@xxxxxxxxxxxxxxxxxx>
Date: Wed Sep 23 08:37:59 2015 +0530
cxl: Fix lockdep warning while creating afu_err_buff attribute
Presently a lockdep warning is reported during creation of afu_err_buff
bin_attribute for the afu. This is caused due to the variable attr.key
not pointing to a static class key, hence the function lockdep_init_map
reports this warning:
BUG: key <some-address> not in .data!
The patch fixes this issue by calling sysfs_attr_init on the
attr_eb.attr structure before populating it with the afu_err_buff file
details. This will populate the attr.key variable with a static class
key so that lockdep_init_map stops complaining about the lockdep key not
being static.
Reported-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Vaibhav Jain <vaibhav@xxxxxxxxxxxxxxxxxx>
Acked-by: Ian Munsie <imunsie@xxxxxxxxxxx>
Reviewed-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 721a09f7393de6c28a07516dccd654c6e995944a
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Tue Sep 15 14:28:54 2015 +0200
drm/i915: Add primary plane to mask if it's visible
This fixes the warnings like
"plane A assertion failure, should be disabled but not"
that on the initial modeset during boot. This can happen if
the primary plane is enabled by the firmware, but inheriting
it fails because the DMAR is active or for other reasons.
Most likely caused by
commit 36750f284b3a4f19b304fda1bb7d6e9e1275ea8d
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Mon Jun 1 12:49:54 2015 +0200
drm/i915: update plane state during init
Reported-by: Andreas Reis <andreas.reis@xxxxxxxxx>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429
Reported-and-tested-by: Emil Renner Berthing <kernel@xxxxxxxx>
Tested-by: Andreas Reis <andreas.reis@xxxxxxxxx>
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit a7adb91b13c104e5ad950fbe1795aa2722f2ea0a
Author: Kristen Carlson Accardi <kristen@xxxxxxxxxxxxxxx>
Date: Tue Sep 22 10:51:36 2015 -0700
x86/cpufeatures: Correct spelling of the HWP_NOTIFY flag
Because noitification just isn't right.
Signed-off-by: Kristen Carlson Accardi <kristen@xxxxxxxxxxxxxxx>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: rjw@xxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1442944296-11737-1-git-send-email-kristen@xxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 21199f27b430576552b26210b3194a363d7f05cd
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Wed Sep 16 16:10:40 2015 +0200
locking/lockdep: Fix hlock->pin_count reset on lock stack rebuilds
Various people reported hitting the "unpinning an unpinned lock"
warning. As it turns out there are 2 places where we take a lock out
of the middle of a stack, and in those cases it would fail to preserve
the pin_count when rebuilding the lock stack.
Reported-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Reported-by: Tim Spriggs <tspriggs@xxxxxxxxx>
Tested-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: davej@xxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/20150916141040.GA11639@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit d0d0313c2ae4bc220c4ed96ce340860a4e74a2e9
Merge: f73e22a c2e4b24
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Wed Sep 23 09:41:09 2015 +0200
Merge tag 'perf-urgent-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
- Fix libtraceevent string handling in heterogeneous arch environments.
(Kapileshwar Singh)
- Avoid infinite loop at buildid processing with no samples in 'perf
record'. (Mark Rutland)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 41b578fb0e8b930f2470d3f673b0fa279e77a7b8
Author: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>
Date: Tue Sep 22 12:15:54 2015 -0700
drm/i915: workaround bad DSL readout v3
On HSW at least (still testing other platforms, but should be harmless
elsewhere), the DSL reg reads back as 0 when read around vblank start
time. This ends up confusing the atomic start/end checking code, since
it causes the update to appear as if it crossed a frame count boundary.
Avoid the problem by making sure we don't return scanline_offset from
the get_crtc_scanline function. In moving the code there, I add to add
an additional delay since it could be called and have a legitimate 0
result for some time (depending on the pixel clock).
v2: move hsw dsl read hack to get_crtc_scanline (Ville)
v3: use break instead of goto (Ville)
update comment with workaround details (Ville)
References: https://bugs.freedesktop.org/show_bug.cgi?id=91579
Signed-off-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>
Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit fbd03513bf36c4e5c2942f436f05c8eb99a3cc9e
Author: Neil Armstrong <narmstrong@xxxxxxxxxxxx>
Date: Tue Sep 22 11:28:14 2015 +0200
net: dsa: Fix Marvell Egress Trailer check
The Marvell Egress rx trailer check must be fixed to
correctly detect bad bits in the third byte of the
Eggress trailer as described in the Table 28 of the
88E6060 datasheet.
The current code incorrectly omits to check the third
byte and checks the fourth byte twice.
Signed-off-by: Neil Armstrong <narmstrong@xxxxxxxxxxxx>
Acked-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7def0f952eccdd0edb3c504f4dab35ee0d3aba1f
Author: Dmitriy Vyukov <dvyukov@xxxxxxxxxx>
Date: Tue Sep 22 10:51:52 2015 +0200
lib: fix data race in rhashtable_rehash_one
rhashtable_rehash_one() uses complex logic to update entry->next field,
after INIT_RHT_NULLS_HEAD and NULLS_MARKER expansion:
entry->next = 1 | ((base + off) << 1)
This can be compiled along the lines of:
entry->next = base + off
entry->next <<= 1
entry->next |= 1
Which will break concurrent readers.
NULLS value recomputation is not needed here, so just remove
the complex logic.
The data race was found with KernelThreadSanitizer (KTSAN).
Signed-off-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
Acked-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 23eedbc2435ddd226717603c4f3c8efec7bdbb4d
Author: Tobias Klauser <tklauser@xxxxxxxxxx>
Date: Tue Sep 22 09:29:49 2015 +0200
ch9200: Convert to use module_usb_driver
Converts the ch9200 driver to use the module_usb_driver() macro which
makes the code smaller and a bit simpler.
Signed-off-by: Tobias Klauser <tklauser@xxxxxxxxxx>
Acked-by: Matthew Garrett <mjg59@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ae5f2fb1d51fa128a460bcfbe3c56d7ab8bf6a43
Author: Jesse Gross <jesse@xxxxxxxxxx>
Date: Mon Sep 21 20:21:20 2015 -0700
openvswitch: Zero flows on allocation.
When support for megaflows was introduced, OVS needed to start
installing flows with a mask applied to them. Since masking is an
expensive operation, OVS also had an optimization that would only
take the parts of the flow keys that were covered by a non-zero
mask. The values stored in the remaining pieces should not matter
because they are masked out.
While this works fine for the purposes of matching (which must always
look at the mask), serialization to netlink can be problematic. Since
the flow and the mask are serialized separately, the uninitialized
portions of the flow can be encoded with whatever values happen to be
present.
In terms of functionality, this has little effect since these fields
will be masked out by definition. However, it leaks kernel memory to
userspace, which is a potential security vulnerability. It is also
possible that other code paths could look at the masked key and get
uninitialized data, although this does not currently appear to be an
issue in practice.
This removes the mask optimization for flows that are being installed.
This was always intended to be the case as the mask optimizations were
really targetting per-packet flow operations.
Fixes: 03f0d916 ("openvswitch: Mega flow implementation")
Signed-off-by: Jesse Gross <jesse@xxxxxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 53adc9e83028d9e35b6408231ebaf62a94a16e4d
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Sep 21 21:42:59 2015 +0100
net: dsa: actually force the speed on the CPU port
Commit 54d792f257c6 ("net: dsa: Centralise global and port setup
code into mv88e6xxx.") merged in the 4.2 merge window broke the link
speed forcing for the CPU port of Marvell DSA switches. The original
code was:
/* MAC Forcing register: don't force link, speed, duplex
* or flow control state to any particular values on physical
* ports, but force the CPU port and all DSA ports to 1000 Mb/s
* full duplex.
*/
if (dsa_is_cpu_port(ds, p) || ds->dsa_port_mask & (1 << p))
REG_WRITE(addr, 0x01, 0x003e);
else
REG_WRITE(addr, 0x01, 0x0003);
but the new code does a read-modify-write:
reg = _mv88e6xxx_reg_read(ds, REG_PORT(port),
PORT_PCS_CTRL);
if (dsa_is_cpu_port(ds, port) ||
ds->dsa_port_mask & (1 << port)) {
reg |= PORT_PCS_CTRL_FORCE_LINK |
PORT_PCS_CTRL_LINK_UP |
PORT_PCS_CTRL_DUPLEX_FULL |
PORT_PCS_CTRL_FORCE_DUPLEX;
if (mv88e6xxx_6065_family(ds))
reg |= PORT_PCS_CTRL_100;
else
reg |= PORT_PCS_CTRL_1000;
The link speed in the PCS control register is a two bit field. Forcing
the link speed in this way doesn't ensure that the bit field is set to
the correct value - on the hardware I have here, the speed bitfield
remains set to 0x03, resulting in the speed not being forced to gigabit.
We must clear both bits before forcing the link speed.
Fixes: 54d792f257c6 ("net: dsa: Centralise global and port setup code
into mv88e6xxx.")
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Acked-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 08399efc631960c827cebcfe83ad7ed54ebc012b
Author: John W. Linville <linville@xxxxxxxxxxxxx>
Date: Mon Sep 21 10:29:09 2015 -0400
geneve: ensure ECN info is handled properly in all tx/rx paths
Partially due to a pre-exising "thinko", the new metadata-based tx/rx
paths were handling ECN propagation differently than the traditional
tx/rx paths. This patch removes the "thinko" (involving multiple
ip_hdr assignments) on the rx path and corrects the ECN handling on
both the rx and tx paths.
Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
Reviewed-by: Jesse Gross <jesse@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 012572d4fc2e4ddd5c8ec8614d51414ec6cae02a
Author: Joseph Qi <joseph.qi@xxxxxxxxxx>
Date: Tue Sep 22 14:59:20 2015 -0700
ocfs2/dlm: fix deadlock when dispatch assert master
The order of the following three spinlocks should be:
dlm_domain_lock < dlm_ctxt->spinlock < dlm_lock_resource->spinlock
But dlm_dispatch_assert_master() is called while holding
dlm_ctxt->spinlock and dlm_lock_resource->spinlock, and then it calls
dlm_grab() which will take dlm_domain_lock.
Once another thread (for example, dlm_query_join_handler) has already
taken dlm_domain_lock, and tries to take dlm_ctxt->spinlock deadlock
happens.
Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: "Junxiao Bi" <junxiao.bi@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7a07b503bf249986a1eeef0351d66cac0d8bf721
Author: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
Date: Tue Sep 22 14:59:20 2015 -0700
membarrier: clean up selftest
We don't need to specify an explicit rule in the Makefile, the implicit
one will do the same. The "__EXPORTED_HEADERS__" define is not needed,
because we build the test against the installed kernel headers, not the
in-tree kernel headers. Re-use "$(TEST_PROGS)" in the clean target
rather than spelling the executable name twice. Include <unistd.h>
rather than the rather specific <asm-generic/unistd.h>. Include
<syscall.h> rather than <sys/syscall.h>. In both cases, the former
header is located in a standard location and includes the latter.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
Acked-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Pranith Kumar <bobby.prani@xxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d5028f9f7d8de5c375c52b98976b6f310e73398f
Author: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Date: Tue Sep 22 14:59:20 2015 -0700
vmscan: fix sane_reclaim helper for legacy memcg
The sane_reclaim() helper is supposed to return false for memcg reclaim
if the legacy hierarchy is used, because the latter lacks dirty
throttling mechanism, and so it did before it was accidentally broken by
commit 33398cf2f360c ("memcg: export struct mem_cgroup"). Fix it.
Fixes: 33398cf2f360c ("memcg: export struct mem_cgroup")
Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Acked-by: Tejun Heo <tj@xxxxxxxxxx>
Acked-by: Michal Hocko <mhocko@xxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d046b770c9fc36ccb19c27afdb8322220108cbc7
Author: Sowmini Varadhan <sowmini.varadhan@xxxxxxxxxx>
Date: Tue Sep 22 14:59:20 2015 -0700
lib/iommu-common.c: do not try to deref a null iommu->lazy_flush()
pointer when n < pool->hint
The check for invoking iommu->lazy_flush() from iommu_tbl_range_alloc()
has to be refactored so that we only call ->lazy_flush() if it is
non-null.
I had a sparc kernel that was crashing when I was trying to process some
very large perf.data files- the crash happens when the scsi driver calls
into dma_4v_map_sg and thus the iommu_tbl_range_alloc().
Signed-off-by: Sowmini Varadhan <sowmini.varadhan@xxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: David S. Miller <davem@xxxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 769a8089c1fd2fe94c13e66fe6e03d7820953ee3
Author: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Date: Tue Sep 22 14:59:17 2015 -0700
x86, efi, kasan: #undef memset/memcpy/memmove per arch
In not-instrumented code KASAN replaces instrumented memset/memcpy/memmove
with not-instrumented analogues __memset/__memcpy/__memove.
However, on x86 the EFI stub is not linked with the kernel. It uses
not-instrumented mem*() functions from arch/x86/boot/compressed/string.c
So we don't replace them with __mem*() variants in EFI stub.
On ARM64 the EFI stub is linked with the kernel, so we should replace
mem*() functions with __mem*(), because the EFI stub runs before KASAN
sets up early shadow.
So let's move these #undef mem* into arch's asm/efi.h which is also
included by the EFI stub.
Also, this will fix the warning in 32-bit build reported by kbuild test
robot:
efi-stub-helper.c:599:2: warning: implicit declaration of function
'memcpy'
[akpm@xxxxxxxxxxxxxxxxxxxx: use 80 cols in comment]
Signed-off-by: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Reported-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Matt Fleming <matt.fleming@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3aaa76e125c1dd58c9b599baa8c6021896874c12
Author: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Date: Tue Sep 22 14:59:14 2015 -0700
mm: migrate: hugetlb: putback destination hugepage to active list
Since commit bcc54222309c ("mm: hugetlb: introduce page_huge_active")
each hugetlb page maintains its active flag to avoid a race condition
betwe= en multiple calls of isolate_huge_page(), but current kernel
doesn't set the f= lag on a hugepage allocated by migration because the
proper putback routine isn= 't called. This means that users could
still encounter the race referred to by bcc54222309c in this special
case, so this patch fixes it.
Fixes: bcc54222309c ("mm: hugetlb: introduce page_huge_active")
Signed-off-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Andi Kleen <andi@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> [4.1.x]
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 8a04446ab0cf4f35d9f583cd6adcbf7c534e4995
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Tue Sep 22 14:59:12 2015 -0700
mm, dax: VMA with vm_ops->pfn_mkwrite wants to be write-notified
For VM_PFNMAP and VM_MIXEDMAP we use vm_ops->pfn_mkwrite instead of
vm_ops->page_mkwrite to notify abort write access. This means we want
vma->vm_page_prot to be write-protected if the VMA provides this vm_ops.
A theoretical scenario that will cause these missed events is:
On writable mapping with vm_ops->pfn_mkwrite, but without
vm_ops->page_mkwrite: read fault followed by write access to the pfn.
Writable pte will be set up on read fault and write fault will not be
generated.
I found it examining Dave's complaint on generic/080:
http://lkml.kernel.org/g/20150831233803.GO3902@dastard
Although I don't think it's the reason.
It shouldn't be a problem for ext2/ext4 as they provide both pfn_mkwrite
and page_mkwrite.
[akpm@xxxxxxxxxxxxxxxxxxxx: add local vm_ops to avoid 80-cols mess]
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Yigal Korman <yigal@xxxxxxxxxxxxx>
Acked-by: Boaz Harrosh <boaz@xxxxxxxxxxxxx>
Cc: Matthew Wilcox <matthew.r.wilcox@xxxxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Cc: Dave Chinner <david@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 09f7298100ea9767324298ab0c7979f6d7463183
Author: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx>
Date: Tue Sep 22 14:59:09 2015 -0700
userfaultfd: register uapi generic syscall (aarch64)
Add the userfaultfd syscalls to uapi asm-generic, it was tested with
postcopy live migration on aarch64 with both 4k and 64k pagesize
kernels.
Signed-off-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx>
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Cc: Thierry Reding <treding@xxxxxxxxxx>
Cc: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 5dd01be14565df814408327971775f36e55bf5e3
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Tue Sep 22 14:59:06 2015 -0700
userfaultfd: selftest: don't error out if pthread_mutex_t isn't identical
On ppc big endian this check fails, the mutex doesn't necessarily need
to be identical for all pages after pthread_mutex_lock/unlock cycles.
The count verification (outside of the pthread_mutex_t structure)
suffices and that is retained.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Cc: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit a5932bf5737f0b5caf6deaa92b062e4fe66cf5b2
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Tue Sep 22 14:59:03 2015 -0700
userfaultfd: selftest: return an error if BOUNCE_VERIFY fails
This will report the error in the exit code, in addition of the fprintf.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Cc: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1f5fee2cf232f9fac05b65f21107d2cf3c32092c
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Tue Sep 22 14:59:00 2015 -0700
userfaultfd: selftest: avoid my_bcmp false positives with powerpc
Keep a non-zero placeholder after the count, for the my_bcmp comparison
of the page against the zeropage. The lockless increment between 255 to
256 against a lockless my_bcmp could otherwise return false positives on
ppc32le.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Tested-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Cc: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 56ed8f169e225dce1f9e40f6eee2e2dabe7d06fc
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Tue Sep 22 14:58:58 2015 -0700
userfaultfd: selftest: only warn if __NR_userfaultfd is undefined
If __NR_userfaultfd is not yet defined by the arch, warn but still build
and run the userfaultfd selftest successfully.
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Cc: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 67f6a029b2ccf3399783a0ff2f812666f290d94f
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Tue Sep 22 14:58:55 2015 -0700
userfaultfd: selftest: headers fixup
Depend on "make headers_install" to create proper headers to include and
provide syscall numbers.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Cc: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d0a871141d07929b559f5eae9c3fc4b63d16866b
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Tue Sep 22 14:58:52 2015 -0700
userfaultfd: selftests: vm: pick up sanitized kernel headers
Add the usr/include subdirectory of the top-level tree to the include
path, and make sure to include headers without relative paths to make
sure the sanitized headers get picked up. Otherwise the compiler will
not be able to find the linux/compiler.h header included by the non-
sanitized include/uapi/linux/userfaultfd.h.
While at it, make sure to only hardcode the syscall numbers on x86 and
PowerPC if they haven't been properly picked up from the headers.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Acked-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ac5be6b47e8bd25b62bed2c82cda7398999f59e9
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Tue Sep 22 14:58:49 2015 -0700
userfaultfd: revert "userfaultfd: waitqueue: add nr wake parameter to
__wake_up_locked_key"
This reverts commit 51360155eccb907ff8635bd10fc7de876408c2e0 and adapts
fs/userfaultfd.c to use the old version of that function.
It didn't look robust to call __wake_up_common with "nr == 1" when we
absolutely require wakeall semantics, but we've full control of what we
insert in the two waitqueue heads of the blocked userfaults. No
exclusive waitqueue risks to be inserted into those two waitqueue heads
so we can as well stick to "nr == 1" of the old code and we can rely
purely on the fact no waitqueue inserted in one of the two waitqueue
heads we must enforce as wakeall, has wait->flags WQ_FLAG_EXCLUSIVE set.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Cc: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 834e465bba38f2768747bccb5f00e951e72d2bf5
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Tue Sep 22 06:54:47 2015 +0800
NFS: Skip checking ds_cinfo.buckets when lseg's commit_through_mds is set
When lseg's commit_through_mds is set, pnfs client always WARN once
in nfs_direct_select_verf after checking ds_cinfo.nbuckets.
nfs should use the DS verf except commit_through_mds is set for
layout segment where nbuckets is zero.
[17844.666094] ------------[ cut here ]------------
[17844.667071] WARNING: CPU: 0 PID: 21758 at
/root/source/linux-pnfs/fs/nfs/direct.c:174 nfs_direct_select_verf+0x5a/0x70
[nfs]()
[17844.668650] Modules linked in: nfs_layout_nfsv41_files(OE) nfsv4(OE)
nfs(OE) fscache(E) nfsd(OE) xfs libcrc32c btrfs ppdev coretemp crct10dif_pclmul
auth_rpcgss crc32_pclmul crc32c_intel nfs_acl ghash_clmulni_intel lockd
vmw_balloon xor vmw_vmci grace raid6_pq shpchp sunrpc parport_pc i2c_piix4
parport vmwgfx drm_kms_helper ttm drm serio_raw mptspi e1000 scsi_transport_spi
mptscsih mptbase ata_generic pata_acpi [last unloaded: fscache]
[17844.686676] CPU: 0 PID: 21758 Comm: kworker/0:1 Tainted: G W
OE 4.3.0-rc1-pnfs+ #245
[17844.687352] Hardware name: VMware, Inc. VMware Virtual Platform/440BX
Desktop Reference Platform, BIOS 6.00 05/20/2014
[17844.698502] Workqueue: nfsiod rpc_async_release [sunrpc]
[17844.699212] 0000000000000009 0000000043e58010 ffff8800454fbc10
ffffffff813680c4
[17844.699990] ffff8800454fbc48 ffffffff8108b49d ffff88004eb20000
ffff88004eb20000
[17844.700844] ffff880062e26000 0000000000000000 0000000000000001
ffff8800454fbc58
[17844.701637] Call Trace:
[17844.725252] [<ffffffff813680c4>] dump_stack+0x19/0x25
[17844.732693] [<ffffffff8108b49d>] warn_slowpath_common+0x7d/0xb0
[17844.733855] [<ffffffff8108b5da>] warn_slowpath_null+0x1a/0x20
[17844.735015] [<ffffffffa04a27ca>] nfs_direct_select_verf+0x5a/0x70
[nfs]
[17844.735999] [<ffffffffa04a2b83>] nfs_direct_set_hdr_verf+0x23/0x90
[nfs]
[17844.736846] [<ffffffffa04a2e17>]
nfs_direct_write_completion+0x227/0x260 [nfs]
[17844.737782] [<ffffffffa04a433c>] nfs_pgio_release+0x1c/0x20 [nfs]
[17844.738597] [<ffffffffa0502df3>] pnfs_generic_rw_release+0x23/0x30
[nfsv4]
[17844.739486] [<ffffffffa01cbbea>] rpc_free_task+0x2a/0x70 [sunrpc]
[17844.740326] [<ffffffffa01cbcd5>] rpc_async_release+0x15/0x20 [sunrpc]
[17844.741173] [<ffffffff810a387c>] process_one_work+0x21c/0x4c0
[17844.741984] [<ffffffff810a37cd>] ? process_one_work+0x16d/0x4c0
[17844.742837] [<ffffffff810a3b6a>] worker_thread+0x4a/0x440
[17844.743639] [<ffffffff810a3b20>] ? process_one_work+0x4c0/0x4c0
[17844.744399] [<ffffffff810a3b20>] ? process_one_work+0x4c0/0x4c0
[17844.745176] [<ffffffff810a8d75>] kthread+0xf5/0x110
[17844.745927] [<ffffffff810a8c80>] ? kthread_create_on_node+0x240/0x240
[17844.747105] [<ffffffff8172ce1f>] ret_from_fork+0x3f/0x70
[17844.747856] [<ffffffff810a8c80>] ? kthread_create_on_node+0x240/0x240
[17844.748642] ---[ end trace 336a2845d42b83f0 ]---
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit b838b39e930aa1cfd099ea82ac40ed6d6413af26
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Tue Sep 22 17:03:54 2015 -0500
PCI: Clear IORESOURCE_UNSET when clipping a bridge window
c770cb4cb505 ("PCI: Mark invalid BARs as unassigned") sets
IORESOURCE_UNSET
if we fail to claim a resource. If we tried to claim a bridge window,
failed, clipped the window, and tried to claim the clipped window, we
failed again because of IORESOURCE_UNSET:
pci_bus 0000:00: root bus resource [mem 0xc0000000-0xffffffff window]
pci 0000:00:01.0: can't claim BAR 15 [mem 0xbdf00000-0xddefffff 64bit
pref]: no compatible bridge window
pci 0000:00:01.0: [mem size 0x20000000 64bit pref] clipped to [mem size
0x1df00000 64bit pref]
pci 0000:00:01.0: bridge window [mem size 0x1df00000 64bit pref]
pci 0000:00:01.0: can't claim BAR 15 [mem size 0x1df00000 64bit pref]:
no address assigned
The 00:01.0 window started as [mem 0xbdf00000-0xddefffff 64bit pref].
That
starts before the host bridge window [mem 0xc0000000-0xffffffff window],
so
we clipped the 00:01.0 window to [mem 0xc0000000-0xddefffff 64bit pref].
But we left it marked IORESOURCE_UNSET, so the second claim failed when it
should have succeeded.
This means downstream devices will also fail for lack of resources, e.g.,
in the bugzilla below,
radeon 0000:01:00.0: Fatal error during GPU init
Clear IORESOURCE_UNSET when we clip a bridge window. Also clear
IORESOURCE_UNSET in our copy of the unclipped window so we can see exactly
what the original window was and how it now fits inside the upstream
window.
Fixes: c770cb4cb505 ("PCI: Mark invalid BARs as unassigned")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=85491#c47
Based-on-patch-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Based-on-patch-by: Yinghai Lu <yinghai@xxxxxxxxxx>
Tested-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Acked-by: Yinghai Lu <yinghai@xxxxxxxxxx>
CC: stable@xxxxxxxxxxxxxxx # v4.1+
commit 8811191fdf7ed02ee07cb8469428158572d355a2
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Tue Sep 22 21:20:22 2015 +0200
ASoC: pxa: pxa2xx-ac97: fix dma requestor lines
PCM receive and transmit DMA requestor lines were reverted, breaking the
PCM playback interface for PXA platforms using the sound/soc/ variant
instead of the sound/arm variant.
The commit below shows the inversion in the requestor lines.
Fixes: d65a14587a9b ("ASoC: pxa: use snd_dmaengine_dai_dma_data")
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 83c133cf11fb0e68a51681447e372489f052d40e
Author: Andy Lutomirski <luto@xxxxxxxxxx>
Date: Sun Sep 20 16:32:05 2015 -0700
x86/nmi/64: Fix a paravirt stack-clobbering bug in the NMI code
The NMI entry code that switches to the normal kernel stack needs to
be very careful not to clobber any extra stack slots on the NMI
stack. The code is fine under the assumption that SWAPGS is just a
normal instruction, but that assumption isn't really true. Use
SWAPGS_UNSAFE_STACK instead.
This is part of a fix for some random crashes that Sasha saw.
Fixes: 9b6e6a8334d5 ("x86/nmi/64: Switch stacks on userspace NMI entry")
Reported-and-tested-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/974bc40edffdb5c2950a5c4977f821a446b76178.1442791737.git.luto@xxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit fc57a7c68020dcf954428869eafd934c0ab1536f
Author: Andy Lutomirski <luto@xxxxxxxxxx>
Date: Sun Sep 20 16:32:04 2015 -0700
x86/paravirt: Replace the paravirt nop with a bona fide empty function
PARAVIRT_ADJUST_EXCEPTION_FRAME generates this code (using nmi as an
example, trimmed for readability):
ff 15 00 00 00 00 callq *0x0(%rip) # 2796 <nmi+0x6>
2792: R_X86_64_PC32 pv_irq_ops+0x2c
That's a call through a function pointer to regular C function that
does nothing on native boots, but that function isn't protected
against kprobes, isn't marked notrace, and is certainly not
guaranteed to preserve any registers if the compiler is feeling
perverse. This is bad news for a CLBR_NONE operation.
Of course, if everything works correctly, once paravirt ops are
patched, it gets nopped out, but what if we hit this code before
paravirt ops are patched in? This can potentially cause breakage
that is very difficult to debug.
A more subtle failure is possible here, too: if _paravirt_nop uses
the stack at all (even just to push RBP), it will overwrite the "NMI
executing" variable if it's called in the NMI prologue.
The Xen case, perhaps surprisingly, is fine, because it's already
written in asm.
Fix all of the cases that default to paravirt_nop (including
adjust_exception_frame) with a big hammer: replace paravirt_nop with
an asm function that is just a ret instruction.
The Xen case may have other problems, so document them.
This is part of a fix for some random crashes that Sasha saw.
Reported-and-tested-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/8f5d2ba295f9d73751c33d97fda03e0495d9ade0.1442791737.git.luto@xxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 98ce94c8df762d413b3ecb849e2b966b21606d04
Author: Peter Seiderer <ps.report@xxxxxxx>
Date: Thu Sep 17 21:40:12 2015 +0200
cifs: use server timestamp for ntlmv2 authentication
Linux cifs mount with ntlmssp against an Mac OS X (Yosemite
10.10.5) share fails in case the clocks differ more than +/-2h:
digest-service: digest-request: od failed with 2 proto=ntlmv2
digest-service: digest-request: kdc failed with -1561745592 proto=ntlmv2
Fix this by (re-)using the given server timestamp for the
ntlmv2 authentication (as Windows 7 does).
A related problem was also reported earlier by Namjae Jaen (see below):
Windows machine has extended security feature which refuse to allow
authentication when there is time difference between server time and
client time when ntlmv2 negotiation is used. This problem is prevalent
in embedded enviornment where system time is set to default 1970.
Modern servers send the server timestamp in the TargetInfo Av_Pair
structure in the challenge message [see MS-NLMP 2.2.2.1]
In [MS-NLMP 3.1.5.1.2] it is explicitly mentioned that the client must
use the server provided timestamp if present OR current time if it is
not
Reported-by: Namjae Jeon <namjae.jeon@xxxxxxxxxxx>
Signed-off-by: Peter Seiderer <ps.report@xxxxxxx>
Signed-off-by: Steve French <smfrench@xxxxxxxxx>
CC: Stable <stable@xxxxxxxxxxxxxxx>
commit e0ddde9d44e37fbc21ce893553094ecf1a633ab5
Author: Steve French <smfrench@xxxxxxxxx>
Date: Tue Sep 22 09:29:38 2015 -0500
disabling oplocks/leases via module parm enable_oplocks broken for SMB3
leases (oplocks) were always requested for SMB2/SMB3 even when oplocks
disabled in the cifs.ko module.
Signed-off-by: Steve French <steve.french@xxxxxxxxxxxxxxx>
Reviewed-by: Chandrika Srinivasan <chandrika.srinivasan@xxxxxxxxxx>
CC: Stable <stable@xxxxxxxxxxxxxxx>
commit 5b6a7175bfe570857a85b5570857e7555eff2c3a
Merge: 3afb112 3eb4ee6
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Tue Sep 22 22:01:46 2015 +0200
Merge branch 'kvm-ppc-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into kvm-master
commit 43d104db596977a8fddc1e71245859a7fe85a658
Author: James Hogan <james.hogan@xxxxxxxxxx>
Date: Thu Sep 17 17:49:21 2015 +0100
MIPS: Fix FTLB detection for R6
R6 removed the Config4.MMUExtDef field, with the low 16 bits only
allowed to contain FTLB fields, and commit e87569cd6c57 ("MIPS:
cpu-probe: Fix VTLB/FTLB configuration for R6") updated the probing of
this field to assume an FTLB is always present for R6.
However the FTLB may still be absent. The presence of those fields is
actually specified by the MMU type in the Config.MT field, so use that
(the new cpu_has_ftlb) to determine whether the FTLB is actually
present.
Fixes: e87569cd6c57 ("MIPS: cpu-probe: Fix VTLB/FTLB configuration for
R6")
Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11160/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 2f6f31363cb7890784458d7805140687b4de5b59
Author: James Hogan <james.hogan@xxxxxxxxxx>
Date: Thu Sep 17 17:49:20 2015 +0100
MIPS: cpu-features: Add cpu_has_ftlb
Add cpu_has_ftlb, which specifies that an FTLB is present in addition to
the VTLB, probed based on whether Config.MT == 4 (rather than 1 for
standard JTLB).
This is necessary since MIPS release 6 removes Config4.MMUExtDef, so the
presence of the FTLB fields in Config4 must be determined from Config.MT
instead.
Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11159/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 2b9dbef272b63c561aab0a5be34fd428f7b710f5
Author: Josef Bacik <jbacik@xxxxxx>
Date: Tue Sep 15 10:07:04 2015 -0400
Btrfs: keep dropped roots in cache until transaction commit
When dropping a snapshot we need to account for the qgroup changes. If
we drop
the snapshot in all one go then the backref code will fail to find blocks
from
the snapshot we dropped since it won't be able to find the root in the fs
root
cache. This can lead to us failing to find refs from other roots that
pointed
at blocks in the now deleted root. To handle this we need to not remove
the fs
roots from the cache until after we process the qgroup operations. Do
this by
adding dropped roots to a list on the transaction, and letting the
transaction
remove the roots at the same time it drops the commit roots. This will
keep all
of the backref searching code in sync properly, and fixes a problem Mark
was
seeing with snapshot delete and qgroups. Thanks,
Signed-off-by: Josef Bacik <jbacik@xxxxxx>
Tested-by: Holger Hoffstätte <holger.hoffstaette@xxxxxxxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit 19446da415e0f01d56364b700fe984cda78bca50
Author: Alexander Couzens <lynxis@xxxxxxx>
Date: Sat Sep 19 06:26:20 2015 +0200
MIPS: ATH79: Add irq chip ar7240-misc-intc
The ar7240 misc irq chip use ack handler
instead of ack_mask handler. All new ath79 chips use
the ar7240 misc irq chip
Signed-off-by: Alexander Couzens <lynxis@xxxxxxx>
Acked-by: Alban Bedel <albeu@xxxxxxx>
Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Rob Herring <robh+dt@xxxxxxxxxx>
Cc: Pawel Moll <pawel.moll@xxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Ian Campbell <ijc+devicetree@xxxxxxxxxxxxxx>
Cc: Kumar Gala <galak@xxxxxxxxxxxxxx>
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11164/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 84dedd71cf3bc61cc65ca43a48f7252344a1bb68
Author: Alexander Couzens <lynxis@xxxxxxx>
Date: Sat Sep 19 06:26:19 2015 +0200
MIPS: ATH79: Set missing irq ack handler for ar7100-misc-intc irq chip
The irq ack handler was forgotten while introducing OF support.
Only ar71xx and ar933x based devices require it.
Signed-off-by: Alexander Couzens <lynxis@xxxxxxx>
Acked-by: Alban Bedel <albeu@xxxxxxx>
Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Rob Herring <robh+dt@xxxxxxxxxx>
Cc: Pawel Moll <pawel.moll@xxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Ian Campbell <ijc+devicetree@xxxxxxxxxxxxxx>
Cc: Kumar Gala <galak@xxxxxxxxxxxxxx>
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11163/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit b259e51f2e29390518021f9b8df55a3de42f371b
Author: Aurelien Jarno <aurelien@xxxxxxxxxxx>
Date: Sat Sep 5 18:46:57 2015 +0200
MIPS: BPF: Fix build on pre-R2 little endian CPUs
The rotr, seh and wsbh instructions have been introduced with the R2
ISA. Thus the current BPF code fails to build on pre-R2 little endian
CPUs:
CC arch/mips/net/bpf_jit.o
AS arch/mips/net/bpf_jit_asm.o
/home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S: Assembler messages:
/home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:67: Error: opcode
not supported on this processor: mips32 (mips32) `wsbh $8,$19'
/home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:68: Error: opcode
not supported on this processor: mips32 (mips32) `rotr $19,$8,16'
/home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:83: Error: opcode
not supported on this processor: mips32 (mips32) `wsbh $8,$19'
/home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:84: Error: opcode
not supported on this processor: mips32 (mips32) `seh $19,$8'
/home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:151: Error: opcode
not supported on this processor: mips32 (mips32) `wsbh $8,$12'
/home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:153: Error: opcode
not supported on this processor: mips32 (mips32) `rotr $19,$8,16'
/home/aurel32/linux-4.2/arch/mips/net/bpf_jit_asm.S:164: Error: opcode
not supported on this processor: mips32 (mips32) `wsbh $19,$12'
/home/aurel32/linux-4.2/scripts/Makefile.build:294: recipe for target
'arch/mips/net/bpf_jit_asm.o' failed
Fix that by providing equivalent code for these CPUs.
Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx>
Reviewed-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v4.2+
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11098/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit faa9724a674e5e52316bb0d173aed16bd17d536c
Author: Aurelien Jarno <aurelien@xxxxxxxxxxx>
Date: Sat Sep 5 18:46:56 2015 +0200
MIPS: BPF: Avoid unreachable code on little endian
On little endian, avoid generating the big endian version of the code
by using #else in addition to #ifdef #endif. Also fix one alignment
issue wrt delay slot.
Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx>
Reviewed-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v4.2+
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11097/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 711e020cae9cd105d81a783686cb8c8059c08b2c
Merge: 5132361 dd85ebf b0b4855
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Tue Sep 22 09:48:41 2015 -0700
Merge remote-tracking branches 'spi/fix/spidev' and 'spi/fix/xtfpga' into
spi-linus
commit 5132361cd97ed21863fb48bb8e4a0e6203a4269a
Merge: 1f93e4a d630526 2a3fffd 0243ed4 e26d15f c9e97b3 6583d20 02bc933
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Tue Sep 22 09:48:34 2015 -0700
Merge remote-tracking branches 'spi/fix/atmel', 'spi/fix/bcm2835',
'spi/fix/doc', 'spi/fix/mediatek', 'spi/fix/meson', 'spi/fix/mtk' and
'spi/fix/pxa2xx' into spi-linus
commit f0e03dbd2d61d991bdd2d76b4e84681fe3077176
Author: Richard Fitzgerald <rf@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 22 15:30:33 2015 +0100
MAINTAINERS: Update website and git repo for Wolfson Microelectronics
Support for Wolfson Microelectronics devices is now part of Cirrus Logic
and the relevant parts of the old opensource.wolfsonmicro.com site have
moved to the Cirrus Logic GitHub area.
This patch updates the website and git repo links, and also removes an
obsolete website link for the voltage and current drivers.
Signed-off-by: Richard Fitzgerald <rf@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit b0b4855099e301c8603ea37da9a0103a96c2e0b1
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Tue Sep 22 14:32:03 2015 +0300
spi: xtensa-xtfpga: fix register endianness
XTFPGA SPI controller has native endian registers.
Fix register acessors so that they work in big-endian configurations.
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit f7a7651fcd40a2bf29357ffeaee176fb159bcddb
Author: Jonathan McDowell <noodles@xxxxxxxx>
Date: Mon Sep 21 21:23:47 2015 +0100
tty: serial: Add missing module license for 8250_base.ko
The split of the 8250 driver into a 8250_base/8250.ko resulted in a
lack of a license for the 8250_base.ko module. This caused the module
to fail to load and the kernel to be tainted. Add the appropriate
MODULE_LICENSE to 8250_port.c, which is always compiled into
8250_base.ko
Signed-off-by: Jonathan McDowell <noodles@xxxxxxxx>
Reported-by: Mikael Pettersson <mikpelinux@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 50314035d6b1e9e07753162dd3be8df81b998086
Merge: ca1c4b7 f4513b0
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 22 08:56:13 2015 -0700
Merge tag 'extcon-fixes-for-4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into
char-misc-linus
Chanwoo writes:
Update extcon for v4.3-rc3
This patches fix the following one issue:
- Fix bug of the is_extcon_changed() which check whether specific cable is
attached or detached.
commit 88d3426942d748b90b051b7ef2d5d765f5f3054c
Author: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx>
Date: Thu Sep 3 08:36:35 2015 +0200
MIPS: bootmem: Fix mapstart calculation for contiguous maps
Commit a6335fa1 fixed the case with gap between initrd and next usable
PFN zone,
but broken the case when initrd is combined with usable memory into one
region
(in add_memory_region()). Restore the fixup initially brought in by
f9a7febd.
---- error message ----
Unpacking initramfs...
Initramfs unpacking failed: junk in compressed archive
BUG: Bad page state in process swapper pfn:00261
page:81004c20 count:0 mapcount:-127 mapping: (null) index:0x2
flags: 0x0()
page dumped because: nonzero mapcount
CPU: 0 PID: 1 Comm: swapper Not tainted 4.2.0+ #1782
-----------------------
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx>
Reported-by: Tony Wu <tung7970@xxxxxxxxx>
Tested-by: Tony Wu <tung7970@xxxxxxxxx>
Cc: David Daney <david.daney@xxxxxxxxxx>
Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@xxxxxxxxxx>
Cc: Huacai Chen <chenhc@xxxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Cc: Steven J. Hill <Steven.Hill@xxxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11086/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit fc2ca674470bbfe11d72a20a3f19fd3dc43bfca0
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Sun Aug 30 21:19:58 2015 -0700
MIPS: Fix console output for Fulong2e system
Commit 3adeb2566b9b ("MIPS: Loongson: Improve LEFI firmware interface")
made the number of UARTs dynamic if LEFI_FIRMWARE_INTERFACE is configured.
Unfortunately, it did not initialize the number of UARTs if
LEFI_FIRMWARE_INTERFACE is not configured. As a result, the Fulong2e
system has no console.
Fixes: 3adeb2566b9b ("MIPS: Loongson: Improve LEFI firmware interface")
Acked-by: Huacai Chen <chenhc@xxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Tested-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11076/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit c2e4b24ff848bb180f9b9cd873a38327cd219ad2
Author: Kapileshwar Singh <kapileshwar.singh@xxxxxxx>
Date: Tue Sep 22 14:22:03 2015 +0100
tools lib traceevent: Fix string handling in heterogeneous arch
environments
When a trace recorded on a 32-bit device is processed with a 64-bit
binary, the higher 32-bits of the address need to ignored.
The lack of this results in the output of the 64-bit pointer
value to the trace as the 32-bit address lookup fails in find_printk().
Before:
burn-1778 [003] 548.600305: bputs: 0xc0046db2s: 2cec5c058d98c
After:
burn-1778 [003] 548.600305: bputs: 0xc0046db2s: RT throttling
activated
The problem occurs in PRINT_FIELD when the field is recognized as a
pointer to a string (of the type const char *)
Heterogeneous architectures cases below can arise and should be handled:
* Traces recorded using 32-bit addresses processed on a 64-bit machine
* Traces recorded using 64-bit addresses processed on a 32-bit machine
Reported-by: Juri Lelli <juri.lelli@xxxxxxx>
Signed-off-by: Kapileshwar Singh <kapileshwar.singh@xxxxxxx>
Reviewed-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Javi Merino <javi.merino@xxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1442928123-13824-1-git-send-email-kapileshwar.singh@xxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit d32dc9aa10c739363c775baf4499416b2e0dc11f
Author: Ludovic Desroches <ludovic.desroches@xxxxxxxxx>
Date: Mon Sep 21 15:46:04 2015 +0200
irqchip/atmel-aic5: Use per chip mask caches in mask/unmask()
When masking/unmasking interrupts, mask_cache is updated and used later
for suspend/resume. Unfortunately, it always was the mask_cache
associated with the first irq chip which was updated. So when performing
resume, only irqs 0-31 could be enabled.
Fixes: b1479ebb7720 ("irqchip: atmel-aic: Add atmel AIC/AIC5 drivers")
Signed-off-by: Ludovic Desroches <ludovic.desroches@xxxxxxxxx>
Cc: <sasha.levin@xxxxxxxxxx>
Cc: <linux-arm-kernel@xxxxxxxxxxxxxxxxxxx>
Cc: <nicolas.ferre@xxxxxxxxx>
Cc: <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Cc: <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Cc: <Wenyou.Yang@xxxxxxxxx>
Cc: <jason@xxxxxxxxxxxxxx>
Cc: <marc.zyngier@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx #3.18
Link:
http://lkml.kernel.org/r/1442843173-2390-1-git-send-email-ludovic.desroches@xxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit babc305e21ea3811d98b67437299360904ac1b6a
Author: Sara Sharon <sara.sharon@xxxxxxxxx>
Date: Mon Sep 21 15:47:40 2015 +0300
mac80211: reset CQM history upon reconfiguration
The current behavior of notifying CQM events is inconsistent:
Upon first configuration there is a cqm event with the current
status according to threshold configured, regardless of signal
stability.
When there is reconfiguration no event is sent unless there is
a significant change to the signal level according to the new
configuration.
Since the current reconfiguration behavior might cause missing
CQM events in case the current signal did not change but is on
the other side of the new threshold, fix that by resetting the
stored signal level upon reconfiguration.
Signed-off-by: Sara Sharon <sara.sharon@xxxxxxxxx>
Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 2df1b131b54f431877a6665139dac805ba5ce1a5
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date: Fri Aug 21 14:07:13 2015 +0200
mac80211: fix VHT MCS mask array overrun
The HT MCS mask has 9 bytes, the VHT one only has 8 streams.
Split the loops to handle this correctly.
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 208473c1f3ac3eccec097021eec3890f5e20fcc7
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 17 14:13:44 2015 +0100
ARM: wire up new syscalls
Wire up the new userfaultfd and membarrier syscalls for ARM.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit cc8e4fc0c3b5e8340bc8358990515d116a3c274c
Author: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Date: Mon Sep 21 17:46:17 2015 +0300
xhci: init command timeout timer earlier to avoid deleting it
uninitialized
Don't check if timer is running with a timer_pending() before
deleting it with del_timer_sync(), this defies the whole point of
the sync part and can cause a possible race.
Instead we just want to make sure the timer is initialized early enough
before we have a chance to delete it.
Cc: <stable@xxxxxxxxxxxxxxx>
Reported-by: Oliver Neukum <oneukum@xxxxxxxx>
Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit dca7794539eff04b786fb6907186989e5eaaa9c2
Author: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Date: Mon Sep 21 17:46:16 2015 +0300
xhci: change xhci 1.0 only restrictions to support xhci 1.1
Some changes between xhci 0.96 and xhci 1.0 specifications forced us to
check the hci version in code, some of these checks were implemented as
hci_version == 1.0, which will not work with new xhci 1.1 controllers.
xhci 1.1 behaves similar to xhci 1.0 in these cases, so change these
checks to hci_version >= 1.0
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 448116bfa856d3c076fa7178ed96661a008a5d45
Author: Roger Quadros <rogerq@xxxxxx>
Date: Mon Sep 21 17:46:15 2015 +0300
usb: xhci: exit early in xhci_setup_device() if we're halted or dying
During quick plug/removal of OTG adapter during dual-role testing
it can happen that xhci_alloc_device() is called for the newly
detected device after the DRD library has called xhci_stop to
remove the HCD.
If that is the case, just fail early to prevent the following warning.
[ 154.732649] hub 4-0:1.0: USB hub found
[ 154.742204] hub 4-0:1.0: 1 port detected
[ 154.824458] hub 3-0:1.0: state 7 ports 1 chg 0002 evt 0000
[ 154.854609] hub 4-0:1.0: state 7 ports 1 chg 0000 evt 0000
[ 154.944430] usb 3-1: new high-speed USB device number 2 using xhci-hcd
[ 154.951009] xhci-hcd xhci-hcd.0.auto: xhci_setup_device
[ 155.038191] xhci-hcd xhci-hcd.0.auto: remove, state 4
[ 155.043315] usb usb4: USB disconnect, device number 1
[ 155.055270] xhci-hcd xhci-hcd.0.auto: xhci_stop
[ 155.060094] xhci-hcd xhci-hcd.0.auto: USB bus 4 deregistered
[ 155.066576] xhci-hcd xhci-hcd.0.auto: remove, state 1
[ 155.071710] usb usb3: USB disconnect, device number 1
[ 155.077124] xhci-hcd xhci-hcd.0.auto: xhci_setup_device
[ 155.082389] ------------[ cut here ]------------
[ 155.087690] WARNING: CPU: 0 PID: 72 at drivers/usb/host/xhci.c:3800
xhci_setup_device+0x410/0x484 [xhci_hcd]()
[ 155.097861] Modules linked in: sd_mod usb_storage scsi_mod usb_f_ss_lb
g_zero libcomposite ipv6 xhci_plat_hcd xhci_hcd usbcore dwc3 udc_core evdev
ti_am335x_adc joydev kfifo_buf industrialio snd_soc_simple_cc
[ 155.146734] CPU: 0 PID: 72 Comm: kworker/0:3 Tainted: G W
4.1.4-00834-gcd9380b-dirty #50
[ 155.156073] Hardware name: Generic AM43 (Flattened Device Tree)
[ 155.162117] Workqueue: usb_hub_wq hub_event [usbcore]
[ 155.167249] Backtrace:
[ 155.169751] [<c0012af0>] (dump_backtrace) from [<c0012c8c>]
(show_stack+0x18/0x1c)
[ 155.177390] r6:c089d4a4 r5:ffffffff r4:00000000 r3:ee46c000
[ 155.183137] [<c0012c74>] (show_stack) from [<c05f7c14>]
(dump_stack+0x84/0xd0)
[ 155.190446] [<c05f7b90>] (dump_stack) from [<c00439ac>]
(warn_slowpath_common+0x80/0xbc)
[ 155.198605] r7:00000009 r6:00000ed8 r5:bf27eb70 r4:00000000
[ 155.204348] [<c004392c>] (warn_slowpath_common) from [<c0043a0c>]
(warn_slowpath_null+0x24/0x2c)
[ 155.213202] r8:ee49f000 r7:ee7c0004 r6:00000000 r5:ee7c0158
r4:ee7c0000
[ 155.220051] [<c00439e8>] (warn_slowpath_null) from [<bf27eb70>]
(xhci_setup_device+0x410/0x484 [xhci_hcd])
[ 155.229816] [<bf27e760>] (xhci_setup_device [xhci_hcd]) from
[<bf27ec10>] (xhci_address_device+0x14/0x18 [xhci_hcd])
[ 155.240415] r10:ee598200 r9:00000001 r8:00000002 r7:00000001
r6:00000003 r5:00000002
[ 155.248363] r4:ee49f000
[ 155.250978] [<bf27ebfc>] (xhci_address_device [xhci_hcd]) from
[<bf20cb94>] (hub_port_init+0x1b8/0xa9c [usbcore])
[ 155.261403] [<bf20c9dc>] (hub_port_init [usbcore]) from [<bf2101e0>]
(hub_event+0x738/0x1020 [usbcore])
[ 155.270874] r10:ee598200 r9:ee7c0000 r8:ee7c0038 r7:ee518800
r6:ee49f000 r5:00000001
[ 155.278822] r4:00000000
[ 155.281426] [<bf20faa8>] (hub_event [usbcore]) from [<c005754c>]
(process_one_work+0x128/0x340)
[ 155.290196] r10:00000000 r9:00000003 r8:00000000 r7:fedfa000
r6:eeec5400 r5:ee598314
[ 155.298151] r4:ee434380
[ 155.300718] [<c0057424>] (process_one_work) from [<c00578f8>]
(worker_thread+0x158/0x49c)
[ 155.308963] r10:ee434380 r9:00000003 r8:eeec5400 r7:00000008
r6:ee434398 r5:eeec5400
[ 155.316913] r4:eeec5414
[ 155.319482] [<c00577a0>] (worker_thread) from [<c005cc40>]
(kthread+0xdc/0xf8)
[ 155.326765] r10:00000000 r9:00000000 r8:00000000 r7:c00577a0
r6:ee434380 r5:ee4441c0
[ 155.334713] r4:00000000 r3:00000000
[ 155.338341] [<c005cb64>] (kthread) from [<c000fc08>]
(ret_from_fork+0x14/0x2c)
[ 155.345626] r7:00000000 r6:00000000 r5:c005cb64 r4:ee4441c0
[ 155.356108] ---[ end trace a58d34c223b190e6 ]---
[ 155.360783] xhci-hcd xhci-hcd.0.auto: Virt dev invalid for slot_id 0x1!
[ 155.574404] xhci-hcd xhci-hcd.0.auto: xhci_setup_device
[ 155.579667] ------------[ cut here ]------------
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Roger Quadros <rogerq@xxxxxx>
Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 8c24d6d7b09deee3036ddc4f2b81b53b28c8f877
Author: Roger Quadros <rogerq@xxxxxx>
Date: Mon Sep 21 17:46:14 2015 +0300
usb: xhci: stop everything on the first call to xhci_stop
xhci_stop will be called twice, once for the shared hcd
and again for the primary hcd.
We stop the XHCI controller in any case so clean up
everything on the first call else we can timeout
waiting for pending requests to complete.
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Roger Quadros <rogerq@xxxxxx>
Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit e5bfeab0ad515b4f6df39fe716603e9dc6d3dfd0
Author: Roger Quadros <rogerq@xxxxxx>
Date: Mon Sep 21 17:46:13 2015 +0300
usb: xhci: Clear XHCI_STATE_DYING on start
For whatever reason if XHCI died in the previous instant
then it will never recover on the next xhci_start unless we
clear the DYING flag.
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Roger Quadros <rogerq@xxxxxx>
Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 85ac90f8953a58f6a057b727bc9db97721e3fb8e
Author: Roger Quadros <rogerq@xxxxxx>
Date: Mon Sep 21 17:46:12 2015 +0300
usb: xhci: lock mutex on xhci_stop
Else it races with xhci_setup_device
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Roger Quadros <rogerq@xxxxxx>
Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 2b7627b73e81e5d23d5ae1490fe8e690af86e053
Author: Tomer Barletz <barletz@xxxxxxxxx>
Date: Mon Sep 21 17:46:11 2015 +0300
xhci: Move xhci_pme_quirk() behind #ifdef CONFIG_PM
xhci_pme_quirk() is only used when CONFIG_PM is defined.
Compiling a kernel without PM complains about this function
[reworded commit message -Mathias]
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Tomer Barletz <barletz@xxxxxxxxx>
Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit a6809ffd1687b3a8c192960e69add559b9d32649
Author: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Date: Mon Sep 21 17:46:10 2015 +0300
xhci: give command abortion one more chance before killing xhci
We want to give the command abortion an additional try to stop
the command ring before we completely hose xhci.
Cc: <stable@xxxxxxxxxxxxxxx>
Tested-by: Vincent Pelletier <plr.vincent@xxxxxxxxx>
Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ff30cbc8da425754e8ab96904db1d295bd034f27
Author: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Date: Mon Sep 21 17:46:09 2015 +0300
usb: Use the USB_SS_MULT() macro to get the burst multiplier.
Bits 1:0 of the bmAttributes are used for the burst multiplier.
The rest of the bits used to be reserved (zero), but USB3.1 takes bit 7
into use.
Use the existing USB_SS_MULT() macro instead to make sure the mult value
and hence max packet calculations are correct for USB3.1 devices.
Note that burst multiplier in bmAttributes is zero based and that
the USB_SS_MULT() macro adds one.
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 01f4fd2a4f741057aaa5ba5ac3b09a42c9ada028
Merge: ea93465 a66c275b
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 21 22:21:31 2015 -0700
Merge tag 'fixes-for-v4.3-rc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
Felipe writes:
usb: fixes for v4.3-rc3
Here's the second pull request for current -rc cycle.
A few fixes on dummy_hcd which have been around for
longer than they should be.
MUSB got a couple fixes, the most important of which
is a fix to DMA channel teardown on AM335x devices.
And DWC3 got a minor fix for when using RT-enabled
kernels.
commit bcee19f424a0d8c26ecf2607b73c690802658b29
Merge: ac2fc4b 0c98625
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 21 18:26:54 2015 -0700
Merge branch 'for-4.3-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
Pull cgroup fixes from Tejun Heo:
"The threadgroup locking changes which went in during 4.2 devel cycle
added write locking of a percpu_rwsem in cgroup task migration path;
unfortunately, that involved expedited rcu syncing which turned out to
be too slow and heavy for certain workloads. The patchset which is
dependent on this one didn't get committed during that devel cycle, so
these two patches can be reverted safely.
Oleg reworked percpu_rwsem for 4.4 so that the writer path is a lot
lighter. The reported issue goes away with Oleg's reworked
percpu_rwsem and I'll reapply these patches on the for-4.4 branch so
that they can land together with Oleg's changes"
* 'for-4.3-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
Revert "sched, cgroup: replace signal_struct->group_rwsem with a global
percpu_rwsem"
Revert "cgroup: simplify threadgroup locking"
commit 29c6852602e259d2c1882f320b29d5c3fec0de04
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Sat Sep 19 09:48:04 2015 -0700
inet: fix races in reqsk_queue_hash_req()
Before allowing lockless LISTEN processing, we need to make
sure to arm the SYN_RECV timer before the req socket is visible
in hash tables.
Also, req->rsk_hash should be written before we set rsk_refcnt
to a non zero value.
Fixes: fa76ce7328b2 ("inet: get rid of central tcp/dccp listener timer")
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Cc: Ying Cai <ycai@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ed2e923945892a8372ab70d2f61d364b0b6d9054
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Sat Sep 19 09:08:34 2015 -0700
tcp/dccp: fix timewait races in timer handling
When creating a timewait socket, we need to arm the timer before
allowing other cpus to find it. The signal allowing cpus to find
the socket is setting tw_refcnt to non zero value.
As we set tw_refcnt in __inet_twsk_hashdance(), we therefore need to
call inet_twsk_schedule() first.
This also means we need to remove tw_refcnt changes from
inet_twsk_schedule() and let the caller handle it.
Note that because we use mod_timer_pinned(), we have the guarantee
the timer wont expire before we set tw_refcnt as we run in BH context.
To make things more readable I introduced inet_twsk_reschedule() helper.
When rearming the timer, we can use mod_timer_pending() to make sure
we do not rearm a canceled timer.
Note: This bug can possibly trigger if packets of a flow can hit
multiple cpus. This does not normally happen, unless flow steering
is broken somehow. This explains this bug was spotted ~5 months after
its introduction.
A similar fix is needed for SYN_RECV sockets in reqsk_queue_hash_req(),
but will be provided in a separate patch for proper tracking.
Fixes: 789f558cfb36 ("tcp/dccp: get rid of central timewait timer")
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Reported-by: Ying Cai <ycai@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4c5d283acc997a1bd7bc37cddcf7d284521cffff
Author: Sowmini Varadhan <sowmini.varadhan@xxxxxxxxxx>
Date: Fri Sep 18 17:47:55 2015 -0400
sunvnet: Invoke SET_NETDEV_DEV() to set up the vdev in vnet_new()
`ls /sys/devices/channel-devices/vnet-port-0-0/net' is missing without
this change, and applications like NetworkManager are looking in
sysfs for the information.
Signed-off-by: Sowmini Varadhan <sowmini.varadhan@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5eb8f289ac3020a9abad1c3c532ceca83284b6ed
Author: John W. Linville <linville@xxxxxxxxxxxxx>
Date: Fri Sep 18 16:20:32 2015 -0400
geneve: remove vlan-related feature assignment
The code handling vlan tag insertion was dropped in commit 371bd1061d29
("geneve: Consolidate Geneve functionality in single module."). Now we
need to drop the related vlan feature bits in the netdev structure.
Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
Reviewed-by: Jesse Gross <jesse@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4a476bd6d1d923922ec950ddc4c27b279f6901eb
Author: Matthew Garrett <mjg59@xxxxxxxxxxxxx>
Date: Sun Sep 20 02:25:38 2015 -0700
usbnet: New driver for QinHeng CH9200 devices
There's a bunch of cheap USB 10/100 devices based on QinHeng chipsets. The
vendor driver supports the CH9100 and CH9200 devices, but the majority of
the code is of the if (ch9100) {} else {} form, with the most significant
difference being that CH9200 provides a real MII interface but CH9100
fakes
one with a bunch of global variables and magic commands. I don't have a
CH9100, so it's probably better if someone who does provides an
independent
driver for it. In any case, this is a lightly cleaned up version of the
vendor driver with all the CH9100 code dropped.
Signed-off-by: Matthew Garrett <mjg59@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4f8d0bbb00f120ae0de79de6952132ea5c5028bb
Merge: a11d558 1ccb141
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Sep 21 16:11:21 2015 -0700
Merge branch 'phy-of-autoload'
Luis de Bethencourt says:
====================
net: phy: Fix module autoload for OF platform drivers
These patches add the missing MODULE_DEVICE_TABLE() for OF to export
the information so modules have the correct aliases built-in and
autoloading works correctly.
A longer explanation by Javier Canillas can be found here:
https://lkml.org/lkml/2015/7/30/519
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1ccb141e31d0dc4c1234b0886cdc8b4399112c59
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 18:16:29 2015 +0200
net: phy: mdio-gpio: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2f90a3070690ad80c38d650e91b96b5dcbdfe2fd
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 18:16:12 2015 +0200
net: phy: mdio-bcm-unimac: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Acked-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a11d5585edc626106d060dde447467677d220485
Merge: 1f770c0 ebd8ebf
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Sep 21 16:09:11 2015 -0700
Merge branch 'net-of-autoload'
Luis de Bethencourt says:
====================
net: Fix module autoload for OF platform drivers
These patches add the missing MODULE_DEVICE_TABLE() for OF to export
the information so modules have the correct aliases built-in and
autoloading works correctly.
A longer explanation by Javier Canillas can be found here:
https://lkml.org/lkml/2015/7/30/519
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ebd8ebf078879973d0e8d2642253c091c23bd7d2
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 17:56:21 2015 +0200
net: moxa: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 23860063706f2037008fb423820cdbd0dcd558bb
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 17:55:27 2015 +0200
net: gianfar_ptp: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Acked-by: Richard Cochran <richardcochran@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e8048e5595bedb1f4b20597d059d6877a710f12d
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 17:55:02 2015 +0200
net: bcmgenet: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxx>
Acked-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 46d5a3431f2dbb2392b501be9b9f9c2ca17737d8
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 17:54:30 2015 +0200
net: systemport: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Acked-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c7d778fa74a88e7b5a09ba498d66bd67a7dc7df0
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 17:54:00 2015 +0200
net: arc: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 16651fc2f30dfe14dcdd59cf0ccb4e1ccdba4dc7
Merge: 4e2e986 d702ffd 2f9481e b9c9364 0f1d08d 7209fee
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Mon Sep 21 14:16:09 2015 -0700
Merge remote-tracking branches 'regulator/fix/anatop',
'regulator/fix/gpio', 'regulator/fix/pbias', 'regulator/fix/tpx65218' and
'regulator/fix/vexpress' into regulator-linus
commit 4e2e986473f708be46bd00007621f97178bd7047
Merge: 1f93e4a 23c3f31
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Mon Sep 21 14:15:58 2015 -0700
Merge remote-tracking branch 'regulator/fix/core' into regulator-linus
commit 50745b0a7f46f68574cd2b9ae24566bf026e7ebd
Author: chandan <chandan@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 28 21:10:13 2015 +0530
Btrfs: Direct I/O: Fix space accounting
The following call trace is seen when generic/095 test is executed,
WARNING: CPU: 3 PID: 2769 at
/home/chandan/code/repos/linux/fs/btrfs/inode.c:8967
btrfs_destroy_inode+0x284/0x2a0()
Modules linked in:
CPU: 3 PID: 2769 Comm: umount Not tainted 4.2.0-rc5+ #31
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.7.5-20150306_163512-brownie 04/01/2014
ffffffff81c08150 ffff8802ec9cbce8 ffffffff81984058 ffff8802ffd8feb0
0000000000000000 ffff8802ec9cbd28 ffffffff81050385 ffff8802ec9cbd38
ffff8802d12f8588 ffff8802d12f8588 ffff8802f15ab000 ffff8800bb96c0b0
Call Trace:
[<ffffffff81984058>] dump_stack+0x45/0x57
[<ffffffff81050385>] warn_slowpath_common+0x85/0xc0
[<ffffffff81050465>] warn_slowpath_null+0x15/0x20
[<ffffffff81340294>] btrfs_destroy_inode+0x284/0x2a0
[<ffffffff8117ce07>] destroy_inode+0x37/0x60
[<ffffffff8117cf39>] evict+0x109/0x170
[<ffffffff8117cfd5>] dispose_list+0x35/0x50
[<ffffffff8117dd3a>] evict_inodes+0xaa/0x100
[<ffffffff81165667>] generic_shutdown_super+0x47/0xf0
[<ffffffff81165951>] kill_anon_super+0x11/0x20
[<ffffffff81302093>] btrfs_kill_super+0x13/0x110
[<ffffffff81165c99>] deactivate_locked_super+0x39/0x70
[<ffffffff811660cf>] deactivate_super+0x5f/0x70
[<ffffffff81180e1e>] cleanup_mnt+0x3e/0x90
[<ffffffff81180ebd>] __cleanup_mnt+0xd/0x10
[<ffffffff81069c06>] task_work_run+0x96/0xb0
[<ffffffff81003a3d>] do_notify_resume+0x3d/0x50
[<ffffffff8198cbc2>] int_signal+0x12/0x17
This means that the inode had non-zero "outstanding extents" during
eviction. This occurs because, during direct I/O a task which successfully
used up its reserved data space would set BTRFS_INODE_DIO_READY bit and
does
not clear the bit after finishing the DIO write. A future DIO write could
actually fail and the unused reserve space won't be freed because of the
previously set BTRFS_INODE_DIO_READY bit.
Clearing the BTRFS_INODE_DIO_READY bit in btrfs_direct_IO() caused the
following issue,
|-----------------------------------+-------------------------------------|
| Task A | Task B
|
|-----------------------------------+-------------------------------------|
| Start direct i/o write on inode X.|
|
| reserve space |
|
| Allocate ordered extent |
|
| release reserved space |
|
| Set BTRFS_INODE_DIO_READY bit. |
|
| | splice()
|
| | Transfer data from pipe buffer to
|
| | destination file.
|
| | - kmap(pipe buffer page)
|
| | - Start direct i/o write on
|
| | inode X.
|
| | - reserve space
|
| | - dio_refill_pages()
|
| | - sdio->blocks_available == 0
|
| | - Since a kernel address is
|
| | being passed instead of a
|
| | user space address,
|
| | iov_iter_get_pages() returns
|
| | -EFAULT.
|
| | - Since BTRFS_INODE_DIO_READY is
|
| | set, we don't release reserved
|
| | space.
|
| | - Clear BTRFS_INODE_DIO_READY
bit.|
| -EIOCBQUEUED is returned. |
|
|-----------------------------------+-------------------------------------|
Hence this commit introduces "struct btrfs_dio_data" to track the usage of
reserved data space. The remaining unused "reserve space" can now be freed
reliably.
Signed-off-by: Chandan Rajendra <chandan@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Liu Bo <bo.li.liu@xxxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit a66c275b3d5d8467d770dabd30927f5d5e857294
Author: Roger Quadros <rogerq@xxxxxx>
Date: Mon Sep 21 11:08:36 2015 +0300
usb: dwc3: gadget: Fix BUG in RT config
Using spin_lock() in hard irq handler is pointless
and causes a BUG() in RT (real-time) configuration
so get rid of it.
The reason it's pointless is because the driver is
basically accessing register which is, anyways,
atomic.
Signed-off-by: Roger Quadros <rogerq@xxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit b431ba8803666e56c1d178a421b3cbc36e8d3d33
Author: Bin Liu <b-liu@xxxxxx>
Date: Mon Aug 24 15:28:37 2015 -0500
usb: musb: fix cppi channel teardown for isoch transfer
After a few iterations of start/stop UVC camera streaming, the streaming
stops.
This patch adds 250us delay in the cppi channel abort path to let cppi
drain properly.
Using 50us delay seems to be too aggressive, some webcams are still
broken. 250us is the original value used in TI 3.2 kernel.
Signed-off-by: Bin Liu <b-liu@xxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 8fb7ab504381b8ce4f443129e102a713bd76dfe2
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Sat Sep 12 10:54:26 2015 +0200
usb: phy: isp1301: Export I2C module alias information
The I2C core always reports the MODALIAS uevent as "i2c:<client name"
regardless if the device was registered using OF or platform code so
So the driver needs to export the I2C table and this be built into
the module or udev won't have the necessary information to auto load
the module when the device is added.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 51b91b7e6c1516c7d3ea70acc91aac9b32ae3e72
Author: Julia Lawall <Julia.Lawall@xxxxxxx>
Date: Sun Sep 13 14:15:09 2015 +0200
usb: gadget: drop null test before destroy functions
Remove unneeded NULL test.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@ expression x; @@
-if (x != NULL)
\(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x);
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 9a9ce1dfaef9aa15980cec22b806b39a65a9467e
Author: Igor Kotrasinski <i.kotrasinsk@xxxxxxxxxxx>
Date: Tue Sep 15 16:55:32 2015 +0200
usb: gadget: dummy_hcd: in transfer(), return data sent, not limit
dummy_timer uses transfer() to update transfer limit. However,
limit passed to dummy_timer changes depending on transfer type,
so the actual limit is overwritten.
This can cause unpredictably slow / fast bulk transfers when
coupled with control / interrupt transfers.
Fix by returning actual amount of data sent in transfer() and
substracting from total.
Signed-off-by: Igor Kotrasinski <i.kotrasinsk@xxxxxxxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit e42bd6a54b97e2a39b5004deac66a0fcd6ebbe75
Author: Igor Kotrasinski <i.kotrasinsk@xxxxxxxxxxx>
Date: Tue Sep 15 16:55:31 2015 +0200
usb: gadget: dummy_hcd: fix rescan logic for transfer
transfer() schedules a rescan for transfers larger than
maxpacket, which is wrong for transfers that are multiples
of maxpacket.
Rewrite to fix and clarify packet multiple / remainder
transfer logic.
Signed-off-by: Igor Kotrasinski <i.kotrasinsk@xxxxxxxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 5dda5be9d501084e8a6242e6dbeb8eea1daf01c8
Author: Igor Kotrasinski <i.kotrasinsk@xxxxxxxxxxx>
Date: Tue Sep 15 16:55:30 2015 +0200
usb: gadget: dummy_hcd: fix unneeded else-if condition
We already know at this point that to_host is false.
Signed-off-by: Igor Kotrasinski <i.kotrasinsk@xxxxxxxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 21c3ee93867694e8c7382ff77b4645b50d3233e9
Author: Igor Kotrasinski <i.kotrasinsk@xxxxxxxxxxx>
Date: Tue Sep 15 16:55:29 2015 +0200
usb: gadget: dummy_hcd: emulate sending zlp in packet logic
currently, when a zlp flag is set and an urb/usb_request
buffer is filled without a short packet, transfer() leaves
its status at -EINPROGRESS and does not rescan for short
packet.
In a scenario where ep.maxpacket bytes are copied,
URB_ZERO_PACKET is set, urb buffer is filled and usb_request
buffer is not, transfer() returns with an urb with
-EINPROGRESS status, which dummy_hcd treats as incomplete
transfer.
Check for zlp and rescan appropriately.
Signed-off-by: Igor Kotrasinski <i.kotrasinsk@xxxxxxxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit b8239dcc03afbd0886c1d9b91ba8fee7c6c9a6cb
Author: Bin Liu <b-liu@xxxxxx>
Date: Wed Sep 16 14:49:28 2015 -0500
usb: musb: dsps: fix polling in device-only mode
Fix the regression caused by commit ad78c918602 ("usb: musb: dsps: just
start polling already") which causes polling the ID pin status even in
device-only mode.
Fixes: ad78c918602c ("usb: musb: dsps: just start polling already")
Signed-off-by: Bin Liu <b-liu@xxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit cf261fd1a444e87894c2ed8f481606ead7916fab
Author: Sylvain Rochet <sylvain.rochet@xxxxxxxxxxxx>
Date: Fri Sep 18 16:58:28 2015 +0200
usb: gadget: atmel_usba_udc: add ep capabilities support on device tree
binding
The recently added endpoint capabilities flags verification breaks Atmel
USBA because the endpoint configuration was only added when the driver
is bound using the legacy pdata interface.
Convert endpoint configuration to new capabilities model when driver is
bound to a device tree as well.
Signed-off-by: Sylvain Rochet <sylvain.rochet@xxxxxxxxxxxx>
Fixes: 47bef3865115 ("usb: gadget: atmel_usba_udc: add ep capabilities
support")
Signed-off-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit ac2fc4b9d5b7d8e4878c6f04f947d42707f782ef
Merge: 90a835f cbc41d0
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 21 12:02:27 2015 -0700
Merge tag 'renesas-sh-drivers-for-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas
Pull SH drivers updates from Simon Horman:
"I am sending this change after v4.3-rc1 has been released as it
depends on SoC changes which are present in that rc release.
Summary:
- disable PM runtime for multi-platform ARM with genpd
- disable legacy default PM Domain on emev2"
* tag 'renesas-sh-drivers-for-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
drivers: sh: Disable PM runtime for multi-platform ARM with genpd
drivers: sh: Disable legacy default PM Domain on emev2
commit 90a835f5d19217ad1e174e40ef35d0acf3357828
Merge: b7f76ea 977108f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 21 09:53:30 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 fixes from Martin Schwidefsky:
"A couple of system call updates. The two new system calls userfaultfd
and membarrier have been added, as well as the 17 direct calls for the
multiplexed socket system calls.
In addition the system call compat wrappers have been flagged as
notrace functions and a few wrappers could be removed.
And bug fixes for the vector register handling, cpu_mf, suspend/resume,
compat signals, SMT cputime accounting and the zfcp dumper"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
s390: wire up separate socketcalls system calls
s390/compat: remove superfluous compat wrappers
s390/compat: do not trace compat wrapper functions
s390/s390x: allocate sys_membarrier system call number
s390/configs//zfcpdump_defconfig: Remove CONFIG_MEMSTICK
s390: wire up userfaultfd system call
s390/vtime: correct scaled cputime for SMT
s390/cpum_cf: Corrected return code for unauthorized counter sets
s390/compat: correct uc_sigmask of the compat signal frame
s390: fix floating point register corruption
s390/hibernate: fix save and restore of vector registers
commit 72d4736253af74147b1fa68145b2f4c61d1f37e1
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Sat Sep 19 11:22:57 2015 -0700
Input: uinput - fix crash when using ABS events
Commit b6d30968d86c45a7bb599eaca13ff048d3fa576c (Input: uinput - switch to
using for_each_set_bit()) switched driver to use for_each_set_bit().
However during initial write of the uinput structure that contains min/max
data for all possible axes none of them are reflected in dev->absbit yet
and so we were skipping over all of them and were not allocating absinfo
memory which caused crash later when driver tried to sens EV_ABS events:
<1>[ 15.064330] BUG: unable to handle kernel NULL pointer dereference
at 0000000000000024
<1>[ 15.064336] IP: [<ffffffff8163f142>] input_handle_event+0x232/0x4e0
<4>[ 15.064343] PGD 0
<4>[ 15.064345] Oops: 0000 [#1] SMP
Fixes: b6d30968d86c45a7bb599eaca13ff048d3fa576c
Cc: stable@xxxxxxxxxxxxxxx
Reported-by: Stephen Chandler Paul <cpaul@xxxxxxxxxx>
Tested-by: Stephen Chandler Paul <cpaul@xxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit ed75a14eb554995c522a3b861d4c86a7eddb2ad7
Author: Duson Lin <dusonlin@xxxxxxxxxx>
Date: Mon Sep 21 09:26:46 2015 -0700
Input: elan_i2c - expand maximum product_id form 0xFF to 0xFFFF
In order to support more projects in the future, we expand the
maximum product_id value form 0xFF to 0xFFFF.
Signed-off by: Duson Lin <dusonlin@xxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit c84333a1c55a2d3329e8b472f59e9d1ccf5ddc1b
Author: Duson Lin <dusonlin@xxxxxxxxxx>
Date: Mon Sep 21 09:24:46 2015 -0700
Input: elan_i2c - add ic type 0x03
The 0x03 is valid 3000 serial ic type too.
Signed-off-by: Duson Lin <dusonlin@xxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 9d7b03f863f2fc8bd80e83d3a2d7e521094d290e
Author: Daniel Drake <drake@xxxxxxxxxxxx>
Date: Sat Sep 19 09:49:45 2015 -0700
Input: elan_i2c - don't require known iap version
The Asus X456UA has an ELAN1000 touchpad with IAP version 0xe. This is
unknown to elan_get_fwinfo() so driver probe fails and I am left with an
unusable touchpad.
However, the fwinfo is not required for general driver usage, it is only
needed if the user decides to upload new firmware.
Adjust the driver so that we do not abort probe when we encounter
unexpected IAP version, but rather warn user that firmware update feature
of the driver will not work.
Signed-off-by: Daniel Drake <drake@xxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 09185e2756a83763bcbfe51b308b85979f0de027
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Mon Sep 21 15:33:42 2015 +0200
hwrng: xgene - fix handling platform_get_irq
The function can return negative value.
The problem has been detected using proposed semantic patch
scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1].
[1]: http://permalink.gmane.org/gmane.linux.kernel/2038576
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 17762c5acee2f1f065291d2a74ebea4d0168063b
Author: Conor McLoughlin <conor.mcloughlin@xxxxxxxxx>
Date: Fri Sep 18 08:59:47 2015 -0700
crypto: qat - VF should never trigger SBR on PH
Don't allow to trigger SBR from a VF running in VMM context.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Conor McLoughlin <conor.mcloughlin@xxxxxxxxx>
Signed-off-by: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit cfcd2271a9076a9891014bc8e18d4fd48acccffe
Author: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 17:25:36 2015 +0200
crypto: marvell - properly handle CRYPTO_TFM_REQ_MAY_BACKLOG-flagged
requests
The mv_cesa_queue_req() function calls crypto_enqueue_request() to
enqueue a request. In the normal case (i.e the queue isn't full), this
function returns -EINPROGRESS. The current Marvell CESA crypto driver
takes this into account and cleans up the request only if an error
occured, i.e if the return value is not -EINPROGRESS.
Unfortunately this causes problems with
CRYPTO_TFM_REQ_MAY_BACKLOG-flagged requests. When such a request is
passed to crypto_enqueue_request() and the queue is full,
crypto_enqueue_request() will return -EBUSY, but will keep the request
enqueued nonetheless. This situation was not properly handled by the
Marvell CESA driver, which was anyway cleaning up the request in such
a situation. When later on the request was taken out of the backlog
and actually processed, a kernel crash occured due to the internal
driver data structures for this structure having been cleaned up.
To avoid this situation, this commit adds a
mv_cesa_req_needs_cleanup() helper function which indicates if the
request needs to be cleaned up or not after a call to
crypto_enqueue_request(). This helper allows to do the cleanup only in
the appropriate cases, and all call sites of mv_cesa_queue_req() are
fixed to use this new helper function.
Reported-by: Vincent Donnefort <vdonnefort@xxxxxxxxx>
Fixes: db509a45339fd ("crypto: marvell/cesa - add TDMA support")
Cc: <stable@xxxxxxxxxxxxxxx> # v4.2+
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
Acked-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Tested-by: Vincent Donnefort <vdonnefort@xxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 793b8bf9ca17aee3b995c095058e6c4e7bd72e02
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Wed Sep 16 21:21:50 2015 +1000
powerpc: Wire up sys_membarrier()
The selftest passes on 64-bit LE & BE, and 32-bit.
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 95d0be61286bcc3fc987043fe3a9553adca02919
Author: Geliang Tang <geliangtang@xxxxxxx>
Date: Tue Sep 15 06:04:36 2015 -0700
drm/i915: fix kernel-doc warnings in intel_audio.c
Fix the following 'make htmldocs' warnings:
.//drivers/gpu/drm/i915/intel_audio.c:439: warning: No description
found for parameter 'intel_encoder'
.//drivers/gpu/drm/i915/intel_audio.c:439: warning: Excess function
parameter 'encoder' description in 'intel_audio_codec_disable'
.//drivers/gpu/drm/i915/intel_audio.c:439: warning: No description
found for parameter 'intel_encoder'
.//drivers/gpu/drm/i915/intel_audio.c:439: warning: Excess function
parameter 'encoder' description in 'intel_audio_codec_disable'
Signed-off-by: Geliang Tang <geliangtang@xxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit f4513b065f7dbd37224226ef6e44b09eff742776
Author: Hans de Goede <hdegoede@xxxxxxxxxx>
Date: Mon Aug 24 00:35:36 2015 +0200
extcon: Fix attached value returned by is_extcon_changed
is_extcon_changed should only check the idx-th bit of new, not
the entirety of new when setting attached.
This fixes extcon sending notifications that a cable was inserted when
it gets removed while another cable is still connected.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Signed-off-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
commit 1f770c0a09da855a2b51af6d19de97fb955eca85
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 19:16:50 2015 +0800
netlink: Fix autobind race condition that leads to zero port ID
The commit c0bb07df7d981e4091432754e30c9c720e2c0c78 ("netlink:
Reset portid after netlink_insert failure") introduced a race
condition where if two threads try to autobind the same socket
one of them may end up with a zero port ID. This led to kernel
deadlocks that were observed by multiple people.
This patch reverts that commit and instead fixes it by introducing
a separte rhash_portid variable so that the real portid is only set
after the socket has been successfully hashed.
Fixes: c0bb07df7d98 ("netlink: Reset portid after netlink_insert failure")
Reported-by: Tejun Heo <tj@xxxxxxxxxx>
Reported-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ca1c4b745779e20711322b3338f3a942a3c1224a
Author: Dexuan Cui <decui@xxxxxxxxxxxxx>
Date: Thu Aug 13 17:07:03 2015 -0700
Drivers: hv: vmbus: fix init_vp_index() for reloading hv_netvsc
This fixes the recent commit 3b71107d73b16074afa7658f3f0fcf837aabfe24:
Drivers: hv: vmbus: Further improve CPU affiliation logic
Without the fix, reloading hv_netvsc hangs the guest.
Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx>
Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 5964db08767fb93376c0a0ddcf975fec1c0d1bd9
Author: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Date: Mon Aug 24 15:27:37 2015 +0300
mei: fix debugfs files leak on error path
if dbgfs_dir is not set then debugfs_remove_recursive
is not called on the error path
Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 3ea79249e81e5ed051f2e6480cbde896d99046e8
Author: Michael S. Tsirkin <mst@xxxxxxxxxx>
Date: Fri Sep 18 13:41:09 2015 +0300
macvtap: fix TUNSETSNDBUF values > 64k
Upon TUNSETSNDBUF, macvtap reads the requested sndbuf size into
a local variable u.
commit 39ec7de7092b ("macvtap: fix uninitialized access on
TUNSETIFF") changed its type to u16 (which is the right thing to
do for all other macvtap ioctls), breaking all values > 64k.
The value of TUNSETSNDBUF is actually a signed 32 bit integer, so
the right thing to do is to read it into an int.
Cc: David S. Miller <davem@xxxxxxxxxxxxx>
Fixes: 39ec7de7092b ("macvtap: fix uninitialized access on TUNSETIFF")
Reported-by: Mark A. Peloquin
Bisected-by: Matthew Rosato <mjrosato@xxxxxxxxxxxxxxxxxx>
Reported-by: Christian Borntraeger <borntraeger@xxxxxxxxxx>
Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
Tested-by: Matthew Rosato <mjrosato@xxxxxxxxxxxxxxxxxx>
Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3afb1121800128aae9f5722e50097fcf1a9d4d88
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Fri Sep 18 17:33:04 2015 +0200
KVM: x86: trap AMD MSRs for the TSeg base and mask
These have roughly the same purpose as the SMRR, which we do not need
to implement in KVM. However, Linux accesses MSR_K8_TSEG_ADDR at
boot, which causes problems when running a Xen dom0 under KVM.
Just return 0, meaning that processor protection of SMRAM is not
in effect.
Reported-by: M A Young <m.a.young@xxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Acked-by: Borislav Petkov <bp@xxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 83cf9a2521b0934a5f9d04082c9bb4f554fddcd4
Author: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>
Date: Fri Sep 18 11:47:41 2015 +0200
ip6tunnel: make rx/tx bytes counters consistent
Like the previous patch, which fixes ipv4 tunnels, here is the ipv6 part.
Before the patch, the external ipv6 header + gre header were included on
tx.
After the patch:
$ ping -c1 192.168.6.121 ; ip -s l ls dev ip6gre1
PING 192.168.6.121 (192.168.6.121) 56(84) bytes of data.
64 bytes from 192.168.6.121: icmp_req=1 ttl=64 time=1.92 ms
--- 192.168.6.121 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.923/1.923/1.923/0.000 ms
7: ip6gre1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1440 qdisc noqueue
state UNKNOWN mode DEFAULT group default
link/gre6 20:01:06:60:30:08:c1:c3:00:00:00:00:00:00:01:23 peer
20:01:06:60:30:08:c1:c3:00:00:00:00:00:00:01:21
RX: bytes packets errors dropped overrun mcast
84 1 0 0 0 0
TX: bytes packets errors dropped carrier collsns
84 1 0 0 0 0
$ ping -c1 192.168.1.121 ; ip -s l ls dev ip6tnl1
PING 192.168.1.121 (192.168.1.121) 56(84) bytes of data.
64 bytes from 192.168.1.121: icmp_req=1 ttl=64 time=2.28 ms
--- 192.168.1.121 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.288/2.288/2.288/0.000 ms
8: ip6tnl1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1452 qdisc noqueue
state UNKNOWN mode DEFAULT group default
link/tunnel6 2001:660:3008:c1c3::123 peer 2001:660:3008:c1c3::121
RX: bytes packets errors dropped overrun mcast
84 1 0 0 0 0
TX: bytes packets errors dropped carrier collsns
84 1 0 0 0 0
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit bc22a0e2ea03b75b51a1f722f93821744b5b5ff1
Author: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>
Date: Fri Sep 18 11:47:40 2015 +0200
iptunnel: make rx/tx bytes counters consistent
This was already done a long time ago in
commit 64194c31a0b6 ("inet: Make tunnel RX/TX byte counters more
consistent")
but tx path was broken (at least since 3.10).
Before the patch the gre header was included on tx.
After the patch:
$ ping -c1 192.168.0.121 ; ip -s l ls dev gre1
PING 192.168.0.121 (192.168.0.121) 56(84) bytes of data.
64 bytes from 192.168.0.121: icmp_req=1 ttl=64 time=2.95 ms
--- 192.168.0.121 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.955/2.955/2.955/0.000 ms
7: gre1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1468 qdisc noqueue
state UNKNOWN mode DEFAULT group default
link/gre 10.16.0.249 peer 10.16.0.121
RX: bytes packets errors dropped overrun mcast
84 1 0 0 0 0
TX: bytes packets errors dropped carrier collsns
84 1 0 0 0 0
Reported-by: Julien Meunier <julien.meunier@xxxxxxxxx>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ac813744930d2af82d887ce1e51bcdb23a6c6805
Merge: 4e3ae00 ad5001c
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sun Sep 20 22:32:20 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
Pablo Neira Ayuso says:
====================
Netfilter fixes for net
The following patch contains Netfilter fixes for your net tree, they are:
1) nf_log_unregister() should only set to NULL the logger that is being
unregistered, instead of everything else. Patch from Florian Westphal.
2) Fix a crash when accessing physoutdev from PREROUTING in br_netfilter.
This is partially reverting the patch to shrink nf_bridge_info to 32
bytes.
Also from Florian.
3) Use existing match/target extensions in the internal nft_compat
extension
lists when the extension is family unspecific (ie. NFPROTO_UNSPEC).
4) Wait for rcu grace period before leaving nf_log_unregister().
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4e3ae00100945d39e1f83b7c0179a114ccf55759
Author: Erik Hugne <erik.hugne@xxxxxxxxxxxx>
Date: Fri Sep 18 10:46:31 2015 +0200
tipc: reinitialize pointer after skb linearize
The msg pointer into header may change after skb linearization.
We must reinitialize it after calling skb_linearize to prevent
operating on a freed or invalid pointer.
Signed-off-by: Erik Hugne <erik.hugne@xxxxxxxxxxxx>
Reported-by: Tamás Végh <tamas.vegh@xxxxxxxxxxxx>
Acked-by: Ying Xue <ying.xue@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit aab0c0e62ec4af224d1b6b40fca65055d403400b
Author: Kevin Hao <haokexin@xxxxxxxxx>
Date: Fri Sep 18 15:42:30 2015 +0800
Revert "net/phy: Add Vitesse 8641 phy ID"
This reverts commit 1298267b548a78840bd4b3e030993ff8747ca5e6.
That commit claim that the Vitesse VSC8641 is compatible with Vitesse
82xx. But this is not true. It seems that all the registers used
in Vitesse phy driver are not compatible between 8641 and 82xx.
It does cause malfunction of the Ethernet on p1010rdb-pa board.
So we definitely need a rework in order to support the 8641 phy
in this driver.
Signed-off-by: Kevin Hao <haokexin@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7a8a8e75d505147358b225173e890ada43a267e2
Author: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
Date: Fri Sep 18 00:21:54 2015 +0100
8139cp: Call __cp_set_rx_mode() from cp_tx_timeout()
Unless we reset the RX config, on real hardware I don't seem to receive
any packets after a TX timeout.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit fc27bd115b334e3ebdc682a42a47c3aea2566dcc
Author: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
Date: Fri Sep 18 00:19:08 2015 +0100
8139cp: Use dev_kfree_skb_any() instead of dev_kfree_skb() in
cp_clean_rings()
This can be called from cp_tx_timeout() with interrupts disabled.
Spotted by Francois Romieu <romieu@xxxxxxxxxxxxx>
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0315e382704817b279e5693dca8ab9d89aa20b3f
Author: Nikola Forró <nforro@xxxxxxxxxx>
Date: Thu Sep 17 16:01:32 2015 +0200
net: Fix behaviour of unreachable, blackhole and prohibit routes
Man page of ip-route(8) says following about route types:
unreachable - these destinations are unreachable. Packets are disâ??
carded and the ICMP message host unreachable is generated. The local
senders get an EHOSTUNREACH error.
blackhole - these destinations are unreachable. Packets are disâ??
carded silently. The local senders get an EINVAL error.
prohibit - these destinations are unreachable. Packets are discarded
and the ICMP message communication administratively prohibited is
generated. The local senders get an EACCES error.
In the inet6 address family, this was correct, except the local senders
got ENETUNREACH error instead of EHOSTUNREACH in case of unreachable
route.
In the inet address family, all three route types generated ICMP message
net unreachable, and the local senders got ENETUNREACH error.
In both address families all three route types now behave consistently
with documentation.
Signed-off-by: Nikola Forró <nforro@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ba5ca7848be05db6235aeb703586b821aa00e381
Author: Ivan Vecera <ivecera@xxxxxxxxxx>
Date: Wed Sep 16 15:27:43 2015 +0200
bna: check for dma mapping errors
Check for DMA mapping errors, recover from them and register them in
ethtool stats like other errors.
Cc: Rasesh Mody <rasesh.mody@xxxxxxxxxx>
Signed-off-by: Ivan Vecera <ivecera@xxxxxxxxxx>
Acked-by: Rasesh Mody <rasesh.mody@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 19a5ecde086a6a5287978b12ae948fa691b197b7
Author: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Date: Sun Sep 20 21:01:22 2015 -0700
rcu: Suppress lockdep false positive for rcp->exp_funnel_mutex
In kernels built with CONFIG_PREEMPT=y, synchronize_rcu_expedited()
invokes synchronize_sched_expedited() while holding RCU-preempt's
root rcu_node structure's ->exp_funnel_mutex, which is acquired after
the rcu_data structure's ->exp_funnel_mutex. The first thing that
synchronize_sched_expedited() will do is acquire RCU-sched's rcu_data
structure's ->exp_funnel_mutex. There is no danger of an actual deadlock
because the locking order is always from RCU-preempt's expedited mutexes
to those of RCU-sched. Unfortunately, lockdep considers both rcu_data
structures' ->exp_funnel_mutex to be in the same lock class and therefore
reports a deadlock cycle.
This commit silences this false positive by placing RCU-sched's rcu_data
structures' ->exp_funnel_mutex locks into their own lock class.
Reported-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
commit 66e8c57da6bf6b847a48a5a6fda59512f733ed78
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Tue Aug 25 20:45:18 2015 +0200
rcu: Change _wait_rcu_gp() to work around GCC bug 67055
Code like this in inline functions confuses some recent versions of gcc:
const int n = const-expr;
whatever_t array[n];
For more details, see:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67055#c13
This compiler bug results in the following failure after 114b7fd4b (rcu:
Create rcu_sync infrastructure):
In file included from include/linux/rcupdate.h:429:0,
from include/linux/rcu_sync.h:5,
from kernel/rcu/sync.c:1:
include/linux/rcutiny.h: In function 'rcu_barrier_sched':
include/linux/rcutiny.h:55:20: internal compiler error: Segmentation
fault
static inline void rcu_barrier_sched(void)
This commit therefore eliminates the constant local variable in favor of
direct use of the expression.
Reported-and-tested-by: Mark Salter <msalter@xxxxxxxxxx>
Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
commit 2259f960b3a9b1020dccbf948c97311ce586db1b
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Sun Sep 20 13:30:30 2015 -0400
NFSv4.x/pnfs: Don't try to recover stateids twice in layoutget
If the current open or layout stateid doesn't match the stateid used
in the layoutget RPC call, then don't try to recover it.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 24311f884189d42d40354a6f38ca218eb9aeb811
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Sun Sep 20 10:50:17 2015 -0400
NFSv4: Recovery of recalled read delegations is broken
When a read delegation is being recalled, and we're reclaiming the
cached opens, we need to make sure that we only reclaim read-only
modes.
A previous attempt to do this, relied on retrieving the delegation
type from the nfs4_opendata structure. Unfortunately, as Kinglong
pointed out, this field can only be set when performing reboot recovery.
Furthermore, if we call nfs4_open_recover(), then we end up clobbering
the state->flags for all modes that we're not recovering...
The fix is to have the delegation recall code pass this information
to the recovery call, and then refactor the recovery code so that
nfs4_open_delegation_recall() does not need to call nfs4_open_recover().
Reported-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Fixes: 39f897fdbd46 ("NFSv4: When returning a delegation, don't...")
Tested-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Cc: NeilBrown <neilb@xxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v4.2+
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit f491e70ccffa5d19aa51c958909320fa1f3905ed
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 18:09:55 2015 +0200
hwmon: (pwm-fan) Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit fe5152882a45a2545d44d39fe29badc8e4f66ad3
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 18:09:28 2015 +0200
hwmon: (gpio-fan) Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 3245acbce952cda75b2fafa8e40452ef0c4756c1
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 18:09:11 2015 +0200
hwmon: (abx500) Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit b7f76ea2ef6739ee484a165ffbac98deb855d3d3
Author: Jann Horn <jann@xxxxxxxxx>
Date: Fri Sep 18 23:41:23 2015 +0200
security: fix typo in security_task_prctl
Signed-off-by: Jann Horn <jann@xxxxxxxxx>
Reviewed-by: Andy Lutomirski <luto@xxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3eb4ee68254235e4f47bc0410538fcdaede39589
Author: Thomas Huth <thuth@xxxxxxxxxx>
Date: Fri Sep 18 08:57:28 2015 +0200
KVM: PPC: Book3S: Take the kvm->srcu lock in
kvmppc_h_logical_ci_load/store()
Access to the kvm->buses (like with the kvm_io_bus_read() and -write()
functions) has to be protected via the kvm->srcu lock.
The kvmppc_h_logical_ci_load() and -store() functions are missing
this lock so far, so let's add it there, too.
This fixes the problem that the kernel reports "suspicious RCU usage"
when lock debugging is enabled.
Cc: stable@xxxxxxxxxxxxxxx # v4.1+
Fixes: 99342cf8044420eebdf9297ca03a14cb6a7085a1
Signed-off-by: Thomas Huth <thuth@xxxxxxxxxx>
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
commit 7e022e717f54897e396504306d0c9b61452adf4e
Author: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>
Date: Thu May 21 13:57:04 2015 +0530
KVM: PPC: Book3S HV: Pass the correct trap argument to kvmhv_commence_exit
In guest_exit_cont we call kvmhv_commence_exit which expects the trap
number as the argument. However r3 doesn't contain the trap number at
this point and as a result we would be calling the function with a
spurious trap number.
Fix this by copying r12 into r3 before calling kvmhv_commence_exit as
r12 contains the trap number.
Cc: stable@xxxxxxxxxxxxxxx # v4.1+
Fixes: eddb60fb1443
Signed-off-by: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
commit 5fc3e64f941197d5b77abccbe0144b25c2c36f2f
Author: Paul Mackerras <paulus@xxxxxxxxx>
Date: Fri Sep 18 13:13:44 2015 +1000
KVM: PPC: Book3S HV: Fix handling of interrupted VCPUs
This fixes a bug which results in stale vcore pointers being left in
the per-cpu preempted vcore lists when a VM is destroyed. The result
of the stale vcore pointers is usually either a crash or a lockup
inside collect_piggybacks() when another VM is run. A typical
lockup message looks like:
[ 472.161074] NMI watchdog: BUG: soft lockup - CPU#24 stuck for 22s!
[qemu-system-ppc:7039]
[ 472.161204] Modules linked in: kvm_hv kvm_pr kvm xt_CHECKSUM
ipt_MASQUERADE nf_nat_masquerade_ipv4 tun ip6t_rpfilter ip6t_REJECT
nf_reject_ipv6 xt_conntrack ebtable_nat ebtable_broute bridge stp llc
ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6
nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter
ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat
nf_conntrack iptable_mangle iptable_security iptable_raw ses enclosure shpchp
rtc_opal i2c_opal powernv_rng binfmt_misc dm_service_time scsi_dh_alua radeon
i2c_algo_bit drm_kms_helper ttm drm tg3 ptp pps_core cxgb3 ipr i2c_core mdio
dm_multipath [last unloaded: kvm_hv]
[ 472.162111] CPU: 24 PID: 7039 Comm: qemu-system-ppc Not tainted
4.2.0-kvm+ #49
[ 472.162187] task: c000001e38512750 ti: c000001e41bfc000 task.ti:
c000001e41bfc000
[ 472.162262] NIP: c00000000096b094 LR: c00000000096b08c CTR:
c000000000111130
[ 472.162337] REGS: c000001e41bff520 TRAP: 0901 Not tainted
(4.2.0-kvm+)
[ 472.162399] MSR: 9000000100009033 <SF,HV,EE,ME,IR,DR,RI,LE> CR:
24848844 XER: 00000000
[ 472.162588] CFAR: c00000000096b0ac SOFTE: 1
GPR00: c000000000111170 c000001e41bff7a0 c00000000127df00 0000000000000001
GPR04: 0000000000000003 0000000000000001 0000000000000000 0000000000874821
GPR08: c000001e41bff8e0 0000000000000001 0000000000000000 d00000000efde740
GPR12: c000000000111130 c00000000fdae400
[ 472.163053] NIP [c00000000096b094] _raw_spin_lock_irqsave+0xa4/0x130
[ 472.163117] LR [c00000000096b08c] _raw_spin_lock_irqsave+0x9c/0x130
[ 472.163179] Call Trace:
[ 472.163206] [c000001e41bff7a0] [c000001e41bff7f0] 0xc000001e41bff7f0
(unreliable)
[ 472.163295] [c000001e41bff7e0] [c000000000111170] __wake_up+0x40/0x90
[ 472.163375] [c000001e41bff830] [d00000000efd6fc0]
kvmppc_run_core+0x1240/0x1950 [kvm_hv]
[ 472.163465] [c000001e41bffa30] [d00000000efd8510]
kvmppc_vcpu_run_hv+0x5a0/0xd90 [kvm_hv]
[ 472.163559] [c000001e41bffb70] [d00000000e9318a4]
kvmppc_vcpu_run+0x44/0x60 [kvm]
[ 472.163653] [c000001e41bffba0] [d00000000e92e674]
kvm_arch_vcpu_ioctl_run+0x64/0x170 [kvm]
[ 472.163745] [c000001e41bffbe0] [d00000000e9263a8]
kvm_vcpu_ioctl+0x538/0x7b0 [kvm]
[ 472.163834] [c000001e41bffd40] [c0000000002d0f50]
do_vfs_ioctl+0x480/0x7c0
[ 472.163910] [c000001e41bffde0] [c0000000002d1364] SyS_ioctl+0xd4/0xf0
[ 472.163986] [c000001e41bffe30] [c000000000009260] system_call+0x38/0xd0
[ 472.164060] Instruction dump:
[ 472.164098] ebc1fff0 ebe1fff8 7c0803a6 4e800020 60000000 60000000
60420000 8bad02e2
[ 472.164224] 7fc3f378 4b6a57c1 60000000 7c210b78 <e92d0000> 89290009
792affe3 40820070
The bug is that kvmppc_run_vcpu does not correctly handle the case
where a vcpu task receives a signal while its guest vcpu is executing
in the guest as a result of being piggy-backed onto the execution of
another vcore. In that case we need to wait for the vcpu to finish
executing inside the guest, and then remove this vcore from the
preempted vcores list. That way, we avoid leaving this vcpu's vcore
on the preempted vcores list when the vcpu gets interrupted.
Fixes: ec2571650826
Reported-by: Thomas Huth <thuth@xxxxxxxxxx>
Tested-by: Thomas Huth <thuth@xxxxxxxxxx>
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
commit a42fb351ca1f340f8307468be765e3f77ddedda9
Author: Knuth Posern <knuth@xxxxxxxxxx>
Date: Sun Sep 20 21:25:22 2015 +0200
thunderbolt: Allow loading of module on recent Apple MacBooks with
thunderbolt 2 controller
The pci device ids listed in the thunderbolt driver are to restrictive,
which prevents the driver from being loaded on recent Apple MacBooks
using a thunderbolt 2 controller. In particular this prevented any
hot-plugging functionality for thunderbolt based ethernet dongles
(i.e. Apples thunderbolt gigabit ethernet broadcom tg3 based dongle
Model A1433 EMC 2590).
Changing the subvendor and subdevice to PCI_ANY_ID the thunderbolt driver
loads and binds to the pci device 07:00.0 System peripheral:
Intel Corporation Device 156c which is the thunderbolt 2 controller on
the MacBookPro12,1.
Successfully tested on MacBookPro12,1. With the patch the thunderbolt
module gets now loaded on boot. And it provides hot-plugging support both
for a cold-plugged and a warm-plugged ethernet dongle.
Signed-off-by: Andreas Noever <andreas.noever@xxxxxxxxx>
Acked-by: Knuth Posern <knuth@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 1f93e4a96c9109378204c147b3eec0d0e8100fde
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sun Sep 20 14:32:34 2015 -0700
Linux 4.3-rc2
commit 8714d46dc5b95a6a898ec8f1e67237c7995adfc6
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Sun Sep 20 23:04:22 2015 +0800
NFS: Fix an infinite loop when layoutget fail with BAD_STATEID
If layouget fail with BAD_STATEID, restart should not using the old
stateid.
But, nfs client choose the layout stateid at first, and then the open
stateid.
To avoid the infinite loop of using bad stateid for layoutget,
this patch sets the layout flag'ss NFS_LAYOUT_INVALID_STID bit to
skip choosing the bad layout stateid.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 6f29b9bba7b08c6b1d6f2cc4cf750b342fc1946c
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Sun Sep 20 23:03:28 2015 +0800
NFS: Do cleanup before resetting pageio read/write to mds
There is a reference leak of layout segment after resetting
pageio read/write to mds.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v4.0+
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 97584d1838b7e2545c3b10aacef3327fcaa9531b
Author: Javi Merino <javi.merino@xxxxxxx>
Date: Mon Sep 14 14:23:54 2015 +0100
thermal: power_allocator: exit early if there are no cooling devices
Don't waste cycles in the power allocator governor's throttle function
if there are no cooling devices and exit early.
This commit doesn't change any functionality, but should provide better
performance for the odd case of a thermal zone with trip points but
without cooling devices.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: Eduardo Valentin <edubezval@xxxxxxxxx>
Reviewed-by: Daniel Kurtz <djkurtz@xxxxxxxxxxxx>
Signed-off-by: Javi Merino <javi.merino@xxxxxxx>
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 99bc7215bc60f6cd414cf1b85cd9d52cc596cccb
Merge: 30ec568 7ae85dc
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 19 21:05:02 2015 -0700
Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Pull ARM fixes from Russell King:
"Three fixes and a resulting cleanup for -rc2:
- Andre Przywara reported that he was seeing a warning with the new
cast inside DMA_ERROR_CODE's definition, and fixed the incorrect
use.
- Doug Anderson noticed that kgdb causes a "scheduling while atomic"
bug.
- OMAP5 folk noticed that their Thumb-2 compiled X servers crashed
when enabling support to cover ARMv6 CPUs due to a kernel bug
leaking some conditional context into the signal handler"
* 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
ARM: 8425/1: kgdb: Don't try to stop the machine when setting
breakpoints
ARM: 8437/1: dma-mapping: fix build warning with new DMA_ERROR_CODE
definition
ARM: get rid of needless #if in signal handling code
ARM: fix Thumb2 signal handling when ARMv6 is enabled
commit 30ec56824897fc70f668dcb302f08cc9080eadfa
Merge: 009884f ae78581
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 19 20:57:45 2015 -0700
Merge tag 'linux-kselftest-4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
Pull kselftest fixes from Shuah Khan:
"This update contains 7 fixes for problems ranging from build failurs
to incorrect error reporting"
* tag 'linux-kselftest-4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
selftests: exec: revert to default emit rule
selftests: change install command to rsync
selftests: mqueue: simplify the Makefile
selftests: mqueue: allow extra cflags
selftests: rename jump label to static_keys
selftests/seccomp: add support for s390
seltests/zram: fix syntax error
commit 009884f384dcc71909f2b861c317da7242979f31
Merge: d590b2d 0f40314
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 19 20:41:31 2015 -0700
Merge tag 'pm+acpi-4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management and ACPI updates from Rafael Wysocki:
"Included are: a somewhat late devfreq update which however is mostly
fixes and cleanups with one new thing only (the PPMUv2 support on
Exynos5433), an ACPI cpufreq driver fixup and two ACPI core cleanups
related to preprocessor directives.
Specifics:
- Fix a memory allocation size in the devfreq core (Xiaolong Ye).
- Fix a mistake in the exynos-ppmu DT binding (Javier Martinez
Canillas).
- Add support for PPMUv2 ((Platform Performance Monitoring Unit
version 2.0) on the Exynos5433 SoCs (Chanwoo Choi).
- Fix a type casting bug in the Exynos PPMU code (MyungJoo Ham).
- Assorted devfreq code cleanups and optimizations (Javi Merino,
MyungJoo Ham, Viresh Kumar).
- Fix up the ACPI cpufreq driver to use a more lightweight way to get
to its private data in the ->get() callback (Rafael J Wysocki).
- Fix a CONFIG_ prefix bug in one of the ACPI drivers and make the
ACPI subsystem use IS_ENABLED() instead of #ifdefs in function
bodies (Sudeep Holla)"
* tag 'pm+acpi-4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
cpufreq: acpi-cpufreq: Use cpufreq_cpu_get_raw() in ->get()
ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED()
ACPI: int340x_thermal: add missing CONFIG_ prefix
PM / devfreq: Fix incorrect type issue.
PM / devfreq: tegra: Update governor to use devfreq_update_stats()
PM / devfreq: comments for get_dev_status usage updated
PM / devfreq: drop comment about thermal setting max_freq
PM / devfreq: cache the last call to get_dev_status()
PM / devfreq: Drop unlikely before IS_ERR(_OR_NULL)
PM / devfreq: exynos-ppmu: bit-wise operation bugfix.
PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2
PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433
PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding
commit d590b2d4bf61ab8d9ccaae033063eabe15699f9e
Merge: e6827ba d34e210
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 19 20:17:40 2015 -0700
Merge tag 'clk-fixes-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
Pull clk fixes from Stephen Boyd:
"A few driver fixes for tegra, rockchip, and st SoCs and a two-liner in
the framework to avoid oops when get_parent ops return out of range
values on tegra platforms"
* tag 'clk-fixes-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
drivers: clk: st: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x
clk: check for invalid parent index of orphans in __clk_init()
clk: tegra: dfll: Properly protect OPP list
clk: rockchip: add critical clock for rk3368
commit e6827bafd6b56fa25ec380840fe6f47e9a213fbe
Merge: dc847d5 2338f73
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 19 20:10:30 2015 -0700
Merge tag 'led-fixes-for-v4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
Pull LED fixes from Jacek Anaszewski:
- fix module autoload for six OF platform drivers (aat1290, bcm6328,
bcm6358, ktd2692, max77693, ns2)
- aat1290: add missing static modifier
- ipaq-micro: add missing LEDS_CLASS dependency
- lp55xx: correct Kconfig dependecy for f/w user helper
* tag 'led-fixes-for-v4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
leds:lp55xx: Correct Kconfig dependency for f/w user helper
leds: leds-ipaq-micro: Add LEDS_CLASS dependency
leds: aat1290: add 'static' modifier to init_mm_current_scale
leds: leds-ns2: Fix module autoload for OF platform driver
leds: max77693: Fix module autoload for OF platform driver
leds: ktd2692: Fix module autoload for OF platform driver
leds: bcm6358: Fix module autoload for OF platform driver
leds: bcm6328: Fix module autoload for OF platform driver
leds: aat1290: Fix module autoload for OF platform driver
commit dc847d5b4aa852c41b56c21bdc759fee13cc8f68
Merge: 2673ee5 e116a64
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 19 20:04:11 2015 -0700
Merge tag 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
Pull rdma fixes from Doug Ledford:
"The new hfi1 driver in staging/rdma has had a number of fixup patches
since being added to the tree. This is the first batch of those fixes"
* tag 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
IB/hfi: Properly set permissions for user device files
IB/hfi1: mask vs shift confusion
IB/hfi1: clean up some defines
IB/hfi1: info leak in get_ctxt_info()
IB/hfi1: fix a locking bug
IB/hfi1: checking for NULL instead of IS_ERR
IB/hfi1: fix sdma_descq_cnt parameter parsing
IB/hfi1: fix copy_to/from_user() error handling
IB/hfi1: fix pstateinfo from returning improperly byteswapped value
commit 2673ee565f10e0f2fdcf61f7a715e6b4ac2497dc
Merge: 133bb59 ae4f976
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 19 19:13:03 2015 -0700
Merge branch 'libnvdimm-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull libnvdimm fixes from Dan Williams:
- a boot regression (since v4.2) fix for some ARM configurations from
Tyler
- regression (since v4.1) fixes for mkfs.xfs on a DAX enabled device
from Jeff. These are tagged for -stable.
- a pair of locking fixes from Axel that are hidden from lockdep since
they involve device_lock(). The "btt" one is tagged for -stable, the
other only applies to the new "pfn" mechanism in v4.3.
- a fix for the pmem ->rw_page() path to use wmb_pmem() from Ross.
* 'libnvdimm-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
mm: fix type cast in __pfn_to_phys()
pmem: add proper fencing to pmem_rw_page()
libnvdimm: pfn_devs: Fix locking in namespace_store
libnvdimm: btt_devs: Fix locking in namespace_store
blockdev: don't set S_DAX for misaligned partitions
dax: fix O_DIRECT I/O to the last block of a blockdev
commit 133bb59585140747fd3938002670cb395f40dc76
Merge: 590dca3 9945187
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 19 18:57:09 2015 -0700
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Pull block updates from Jens Axboe:
"This is a bit bigger than it should be, but I could (did) not want to
send it off last week due to both wanting extra testing, and expecting
a fix for the bounce regression as well. In any case, this contains:
- Fix for the blk-merge.c compilation warning on gcc 5.x from me.
- A set of back/front SG gap merge fixes, from me and from Sagi.
This ensures that we honor SG gapping for integrity payloads as
well.
- Two small fixes for null_blk from Matias, fixing a leak and a
capacity propagation issue.
- A blkcg fix from Tejun, fixing a NULL dereference.
- A fast clone optimization from Ming, fixing a performance
regression since the arbitrarily sized bio's were introduced.
- Also from Ming, a regression fix for bouncing IOs"
* 'for-linus' of git://git.kernel.dk/linux-block:
block: fix bounce_end_io
block: blk-merge: fast-clone bio when splitting rw bios
block: blkg_destroy_all() should clear q->root_blkg and ->root_rl.blkg
block: Copy a user iovec if it includes gaps
block: Refuse adding appending a gapped integrity page to a bio
block: Refuse request/bio merges with gaps in the integrity payload
block: Check for gaps on front and back merges
null_blk: fix wrong capacity when bs is not 512 bytes
null_blk: fix memory leak on cleanup
block: fix bogus compiler warnings in blk-merge.c
commit 590dca3a71875461e8fea3013af74386945191b2
Author: Chris Mason <clm@xxxxxx>
Date: Fri Sep 18 13:35:08 2015 -0400
fs-writeback: unplug before cond_resched in writeback_sb_inodes
Commit 505a666ee3fc ("writeback: plug writeback in wb_writeback() and
writeback_inodes_wb()") has us holding a plug during writeback_sb_inodes,
which increases the merge rate when relatively contiguous small files
are written by the filesystem. It helps both on flash and spindles.
For an fs_mark workload creating 4K files in parallel across 8 drives,
this commit improves performance ~9% more by unplugging before calling
cond_resched(). cond_resched() doesn't trigger an implicit unplug, so
explicitly getting the IO down to the device before scheduling reduces
latencies for anyone waiting on clean pages.
It also cuts down on how often we use kblockd to unplug, which means
less work bouncing from one workqueue to another.
Many more details about how we got here:
https://lkml.org/lkml/2015/9/11/570
Signed-off-by: Chris Mason <clm@xxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 4b0ab51db32eba0f48b7618254742f143364a28d
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Fri Sep 18 09:52:07 2015 -0400
SUNRPC: xs_sock_mark_closed() does not need to trigger socket autoclose
Under all conditions, it should be quite sufficient just to mark
the socket as disconnected. It will then be closed by the
transport shutdown or reconnect code.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 79234c3db6842a3de03817211d891e0c2878f756
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Fri Sep 18 15:53:24 2015 -0400
SUNRPC: Lock the transport layer on shutdown
Avoid all races with the connect/disconnect handlers by taking the
transport lock.
Reported-by:"Suzuki K. Poulose" <suzuki.poulose@xxxxxxx>
Acked-by: Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 002801fc5372ecb725f0d7939f88ca752ce1d499
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Mon Sep 14 10:37:55 2015 -0700
Input: imx6ul_tsc - fix controller name
We should better write "Touchscreen".
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 5eab3cf3e48cf658f3432e8ba31436d5a4f6a219
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Mon Sep 14 10:37:31 2015 -0700
Input: imx6ul_tsc - use the preferred method for kzalloc()
According to Documentation/CodingStyle:
"The preferred form for passing a size of a struct is the following:
p = kmalloc(sizeof(*p), ...);"
so do as suggested.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 3905de62b2624a4574776b3b7ddfa97758b75edc
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Mon Sep 14 10:37:08 2015 -0700
Input: imx6ul_tsc - check for negative return value
We should check for negative values returned by platform_get_irq().
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 6cc527b05847984990a09ef028b2f670bbc72c46
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Mon Sep 14 10:36:35 2015 -0700
Input: imx6ul_tsc - propagate the errors
imx6ul_adc_init() may fail in two cases, so we should better
propagate the errors and make sure that the callers of
this function also check and propagate the errors accordingly.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 46b018fa95003f8159f5fcf9b8cd89acaea34e31
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Sat Sep 5 10:19:38 2015 -0700
Input: walkera0701 - fix abs() calculations on 64 bit values
abs() function can not be used with 64 bit values, so let's switch to
abs64(). From include/linux/kernel.h:
/*
* abs() handles unsigned and signed longs, ints, shorts and chars.
* For all input types abs() returns a signed long.
* abs() should not be used for 64-bit types (s64, u64, long long)
* - use abs64() for those.
*/
Reported-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 86a39bffc4e94f80527c14fe00a3acb432910ef3
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Mon Sep 14 10:38:39 2015 -0700
Input: mms114 - remove unneded semicolons
They aren't needed and are just creating null statements so remove it.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit b9ab471b71900ca8a670ecf4f1cc65b626953655
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Mon Sep 14 10:38:31 2015 -0700
Input: pm8941-pwrkey - remove unneded semicolon
It's not needed and is just creating a null statement so remove it.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit b1452723cf23c908eed2bf6baf0c23943eb0e8bf
Author: Daniel Martin <daniel.martin@xxxxxxxxxxx>
Date: Sat Sep 19 11:27:19 2015 -0700
Input: fix typo in MT documentation
Section "Event Computation" had this:
...
ABS_MT_TOOL_X := C_X
ABS_MT_TOOL_X := C_Y
Replace the second ABS_MT_TOOL_X with ABS_MT_TOOL_Y.
Signed-off-by: Daniel Martin <consume.noise@xxxxxxxxx>
Acked-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit b0379d7aa415249ce1dab8dd2554f8845d6822ab
Author: Dudley Du <dudl@xxxxxxxxxxx>
Date: Sat Sep 19 10:39:32 2015 -0700
Input: cyapa - fix address of Gen3 devices in device tree documentation
All of the Gen3 touchpads are fixed with I2C address 0x67, so correct the
reg value description from 0x24 to 0x67.
Signed-off-by: Dudley Du <dudl@xxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 5b64c173cdea21105eb4794487b3d593f0a2e6c3
Author: Adam Thomson <Adam.Thomson.Opensource@xxxxxxxxxxx>
Date: Wed Sep 16 10:13:19 2015 +0100
ASoC: fsl_ssi: Fix checking of dai format for AC97 mode
Current code incorrectly treats dai format for AC97 as bit mask
whereas it's actually an integer value. This causes DAI formats
other than AC97 (e.g. DSP_B) to trigger AC97 related code,
which is incorrect and breaks functionality. This patch fixes
the code to correctly compare values to determine AC97 or not.
Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@xxxxxxxxxxx>
Acked-by: Timur Tabi <timur@xxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit f072f91aa7517386344476813ca0799e08fd0c35
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Fri Sep 18 16:02:21 2015 +0530
ASoC: wm0010: fix error path
Fix the error path so that we can free the allocated memory on the error
path instead of releasing them individually on each error.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Acked-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 2ace47be5a315def8f493ca77aa59c077ade30a1
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Fri Sep 18 16:02:20 2015 +0530
ASoC: wm0010: fix memory leak
We have requested for the firmware but we have missed releasing it both
on success and on error path.
While checking the code it turned out that the requested firmware is not
even used. More over the same firmware is being loaded by
wm0010_stage2_load().
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Acked-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit c9e97b3cb2b80deb94c092a2022a6d385b838d84
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 19:42:17 2015 +0200
spi: meson: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 7209fee89f435b69051bb6bffe7f191336ac2a5e
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 19:09:51 2015 +0200
regulator: vexpress: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 2f9481e7dc0d3aacbaa07701f3ee2527f5d48301
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 19:09:24 2015 +0200
regulator: gpio: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit d702ffd4d1df73b9c620af1654af42ff5b8d5c09
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 19:09:07 2015 +0200
regulator: anatop: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luisbg@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 8524bb0c7ac688a3cd6ba12dae6104c54d0566b9
Author: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Date: Fri Sep 18 17:19:43 2015 +0800
ASoC: wm8960: correct the max register value of mic boost pga
the max register value of mic boost pga should be 3.
Signed-off-by: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Acked-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit ee92cfb030c16ddb01f6543968f13bcb61ed9da5
Author: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Date: Fri Sep 18 17:19:25 2015 +0800
ASoC: wm8962: remove 64k sample rate support
wm8962 can't support 64k sample rate. When playing a 64KHz wave file,
'Unsupported rate 64000Hz' will be prompted.
Signed-off-by: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Acked-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit ae4f976968896f8f41b3a7aa21be6146492211e5
Author: Tyler Baker <tyler.baker@xxxxxxxxxx>
Date: Sat Sep 19 03:58:10 2015 -0400
mm: fix type cast in __pfn_to_phys()
The various definitions of __pfn_to_phys() have been consolidated to
use a generic macro in include/asm-generic/memory_model.h. This hit
mainline in the form of 012dcef3f058 "mm: move __phys_to_pfn and
__pfn_to_phys to asm/generic/memory_model.h". When the generic macro
was implemented the type cast to phys_addr_t was dropped which caused
boot regressions on ARM platforms with more than 4GB of memory and
LPAE enabled.
It was suggested to use PFN_PHYS() defined in include/linux/pfn.h
as provides the correct logic and avoids further duplication.
Reported-by: kernelci.org bot <bot@xxxxxxxxxxxx>
Suggested-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Tyler Baker <tyler.baker@xxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 0f40314b81b765c26202cde33523e35809adbe9b
Merge: 7dc1d36 bcb2b0b
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Fri Sep 18 23:07:46 2015 +0200
Merge branch 'acpi-bus'
* acpi-bus:
ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED()
ACPI: int340x_thermal: add missing CONFIG_ prefix
commit 7dc1d36e8ef8f78f9dadf0476081f3c7ff7f79be
Merge: 6ff33f3 1f0bd44 4184a8f
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Fri Sep 18 23:05:28 2015 +0200
Merge branches 'pm-cpufreq' and 'pm-devfreq'
* pm-cpufreq:
cpufreq: acpi-cpufreq: Use cpufreq_cpu_get_raw() in ->get()
* pm-devfreq:
PM / devfreq: Fix incorrect type issue.
PM / devfreq: tegra: Update governor to use devfreq_update_stats()
PM / devfreq: comments for get_dev_status usage updated
PM / devfreq: drop comment about thermal setting max_freq
PM / devfreq: cache the last call to get_dev_status()
PM / devfreq: Drop unlikely before IS_ERR(_OR_NULL)
PM / devfreq: exynos-ppmu: bit-wise operation bugfix.
PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2
PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433
PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding
commit ea9346514e77951e194f6db0205866f8478753f4
Merge: 74a0939 8315b77
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 09:56:08 2015 -0700
Merge tag 'usb-ci-v4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-linus
Peter writes:
USB Chipidea fixes for v4.3-rc2
- Fix the stall implementation
- Fix device mode transfer at zynq platform
- other small fixes
commit 00ade1f553e3b947cd26228392ee47d6f0f550e1
Merge: 3ae8394 ad2aa04
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 09:28:20 2015 -0700
Merge tag 'for_linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
Pull virtio fixes and cleanups from Michael Tsirkin:
"This fixes the virtio-test tool, and improves the error handling for
virtio-ccw"
* tag 'for_linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
virtio/s390: handle failures of READ_VQ_CONF ccw
tools/virtio: propagate V=X to kernel build
vhost: move features to core
tools/virtio: fix build after 4.2 changes
commit 3ae839454e77cdc87d499a4bfd0932dec5763b55
Merge: fadb97b 00cc163
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 09:23:08 2015 -0700
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM fixes from Paolo Bonzini:
"Mostly stable material, a lot of ARM fixes"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (22
commits)
sched: access local runqueue directly in single_task_running
arm/arm64: KVM: Remove 'config KVM_ARM_MAX_VCPUS'
arm64: KVM: Remove all traces of the ThumbEE registers
arm: KVM: Disable virtual timer even if the guest is not using it
arm64: KVM: Disable virtual timer even if the guest is not using it
arm/arm64: KVM: vgic: Check for !irqchip_in_kernel() when mapping
resources
KVM: s390: Replace incorrect atomic_or with atomic_andnot
arm: KVM: Fix incorrect device to IPA mapping
arm64: KVM: Fix user access for debug registers
KVM: vmx: fix VPID is 0000H in non-root operation
KVM: add halt_attempted_poll to VCPU stats
kvm: fix zero length mmio searching
kvm: fix double free for fast mmio eventfd
kvm: factor out core eventfd assign/deassign logic
kvm: don't try to register to KVM_FAST_MMIO_BUS for non mmio eventfd
KVM: make the declaration of functions within 80 characters
KVM: arm64: add workaround for Cortex-A57 erratum #852523
KVM: fix polling for guest halt continued even if disable it
arm/arm64: KVM: Fix PSCI affinity info return value for non valid cores
arm64: KVM: set {v,}TCR_EL2 RES1 bits
...
commit 381c02f6d8ccad8ed574630f879c40fb59715124
Author: Mark Rutland <mark.rutland@xxxxxxx>
Date: Wed Sep 16 18:18:49 2015 +0100
perf record: Avoid infinite loop at buildid processing with no samples
If a session contains no events, we can get stuck in an infinite loop in
__perf_session__process_events, with a non-zero file_size and
data_offset, but
a zero data_size.
In this case, we can mmap the entirety of the file (consisting of the
file and
attribute headers), and fetch_mmaped_event will correctly refuse to read
any
(unmapped and non-existent) event headers. This causes
__perf_session__process_events to unmap the file and retry with the exact
same
parameters, getting stuck in an infinite loop.
This has been observed to result in an exit-time hang when counting
rare/unschedulable events with perf record, and can be triggered
artificially
with the script below:
----
#!/bin/sh
printf "REPRO: launching perf\n";
./perf record -e software/config=9/ sleep 1 &
PERF_PID=$!;
sleep 0.002;
kill -2 $PERF_PID;
printf "REPRO: waiting for perf (%d) to exit...\n" "$PERF_PID";
wait $PERF_PID;
printf "REPRO: perf exited\n";
----
To avoid this, have __perf_session__process_events bail out early when
the file has no data (i.e. it has no events).
Commiter note:
I only managed to reproduce this when setting
/proc/sys/kernel/kptr_restrict to '1' and changing the code to
purposefully not process any samples and no synthesized samples, i.e.
kptr_restrict prevents 'record' from synthesizing the kernel mmaps for
vmlinux + modules and since it is a workload started from perf, we don't
synthesize mmap/comm records for existing threads.
Adrian Hunter managed to reproduce it in his environment tho.
Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Tested-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1442423929-12253-1-git-send-email-mark.rutland@xxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit e116a64fab650aed3d7b9b4db0b59c07f361bc9f
Author: Ira Weiny <ira.weiny@xxxxxxxxx>
Date: Thu Sep 17 13:47:49 2015 -0400
IB/hfi: Properly set permissions for user device files
Some of the device files are required to be user accessible for PSM while
most should remain accessible only by root.
Add a parameter to hfi1_cdev_init which controls if the user should have
access
to this device which places it in a different class with the appropriate
devnode callback.
In addition set the devnode call back for the existing class to be a bit
more
explicit for those permissions.
Finally remove the unnecessary null check before class_destroy
Tested-by: Donald Dutile <ddutile@xxxxxxxxxx>
Signed-off-by: Haralanov, Mitko (mitko.haralanov@xxxxxxxxx)
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 7d630467d7c454d801d72b58f242c373a64e39ed
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Wed Sep 16 19:03:45 2015 +0300
IB/hfi1: mask vs shift confusion
We are shifting by the _MASK macros instead of the _SHIFT ones.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 3f2686a2665b4d06753b602fe394b5d87bc7f279
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Wed Sep 16 19:02:54 2015 +0300
IB/hfi1: clean up some defines
I added spaces around operators so it matches kernel style because
normally "-1ULL" is a number and " - 1" is a subtract operation. Also
removed some superflous "ULL" types so "1ULL" becomes "1".
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit ebe6b2e8bc2cd06a330b3f9be8a4fa3ff44ab026
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Wed Sep 16 09:42:25 2015 +0300
IB/hfi1: info leak in get_ctxt_info()
The cinfo struct has a hole after the last struct member so we need to
zero it out. Otherwise we disclose some uninitialized stack data.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 951842b0540d2ed49ae29ba968adc496baf46556
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Wed Sep 16 09:22:51 2015 +0300
IB/hfi1: fix a locking bug
mutex_trylock() returns zero on failure, not EBUSY.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 50b19729ced72cfa8bb1c44fed9203f395f13991
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Wed Sep 16 09:22:20 2015 +0300
IB/hfi1: checking for NULL instead of IS_ERR
__get_txreq() returns an ERR_PTR() but this checks for NULL so it would
oops on failure.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit aeef010a0f63ad0a6f993d3da30753e9a8a39ec5
Author: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Date: Tue Sep 15 10:19:27 2015 -0400
IB/hfi1: fix sdma_descq_cnt parameter parsing
The boolean tests should have been or-ed.
Reported-by: David Binderman <dcb314@xxxxxxxxxxx>
Reviewed-by: Jubin John <jubin.john@xxxxxxxxx>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit e1df0068a24ba56673183cc3bd392d8bc301d423
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Tue Sep 15 13:35:25 2015 +0300
IB/hfi1: fix copy_to/from_user() error handling
copy_to/from_user() returns the number of bytes which we were not able
to copy. It doesn't return an error code.
Also a couple places had a printk() on error and I removed that because
people can take advantage of it to fill /var/log/messages with spam.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Acked-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit aadfc3b2042d69a6b4b8d719d4221b988d7f31a5
Author: Ira Weiny <ira.weiny@xxxxxxxxx>
Date: Wed Sep 9 01:28:21 2015 -0400
IB/hfi1: fix pstateinfo from returning improperly byteswapped value
Byteswap link_width_downgrade_*_active values before sending on the wire.
In
addition properly define the Port State Info structure.
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx>
Reviewed-by: Christian Gomez <christian.gomez@xxxxxxxxx>
Signed-off-by: Rimmer, Todd <todd.rimmer@xxxxxxxxx>
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Acked-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit ab1fffe3a73c694d698645451ba61255ec4ba5e6
Author: Peter Ujfalusi <peter.ujfalusi@xxxxxx>
Date: Fri Sep 18 15:02:50 2015 +0300
ASoC: davinci-mcasp: Fix devm_kasprintf format string
The '\n' at the end of the format string is not needed. It adds an extra
line break when doing
cat /proc/interrupts
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit fadb97b089563da69ba326f9fea6399d071462b2
Merge: 09784fb ae80a2f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 08:11:42 2015 -0700
Merge branch 'irq-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq updates from Thomas Gleixner:
"This is a rather large update post rc1 due to the final steps of
cleanups and API changes which had to wait for the preparatory patches
to hit your tree.
- Regression fixes for ARM GIC irqchips
- Regression fixes and lockdep anotations for renesas irq chips
- The leftovers of the cleanup and preparatory patches which have
been ignored by maintainers
- Final conversions of the newly merged users of obsolete APIs
- Final removal of obsolete APIs
- Final removal of ARM artifacts which had been introduced during the
conversion of ARM to the generic interrupt code.
- Final split of the irq_data into chip specific and common data to
reflect the needs of hierarchical irq domains.
- Treewide removal of the first argument of interrupt flow handlers,
i.e. the irq number, which is not used by the majority of handlers
and simple to retrieve from the other argument the irq descriptor.
- A few comment updates and build warning fixes"
* 'irq-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
arm64: Remove ununsed set_irq_flags
ARM: Remove ununsed set_irq_flags
sh: Kill off set_irq_flags usage
irqchip: Kill off set_irq_flags usage
gpu/drm: Kill off set_irq_flags usage
genirq: Remove irq argument from irq flow handlers
genirq: Move field 'msi_desc' from irq_data into irq_common_data
genirq: Move field 'affinity' from irq_data into irq_common_data
genirq: Move field 'handler_data' from irq_data into irq_common_data
genirq: Move field 'node' from irq_data into irq_common_data
irqchip/gic-v3: Use IRQD_FORWARDED_TO_VCPU flag
irqchip/gic: Use IRQD_FORWARDED_TO_VCPU flag
genirq: Provide IRQD_FORWARDED_TO_VCPU status flag
genirq: Simplify irq_data_to_desc()
genirq: Remove __irq_set_handler_locked()
pinctrl/pistachio: Use irq_set_handler_locked
gpio: vf610: Use irq_set_handler_locked
powerpc/mpc8xx: Use irq_set_handler_locked()
powerpc/ipic: Use irq_set_handler_locked()
powerpc/cpm2: Use irq_set_handler_locked()
...
commit 09784fb8ef79f5c5adb9c1b4d0df000354e476e7
Merge: f240bdd 590f078
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 08:06:28 2015 -0700
Merge branch 'x86-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fix from Thomas Gleixner:
"A single regression fix for the x86 dma allocator which got wreckaged
in the merge window"
* 'x86-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/pci/dma: Fix gfp flags for coherent DMA memory allocation
commit f240bdd2a5b7d523ecced64c855ee2c1499f2854
Merge: a7d5c18 400c47d
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 08:01:06 2015 -0700
Merge tag 'powerpc-4.3-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
Pull powerpc fixes from Michael Ellerman:
- Fix 32-bit TCE table init in kdump kernel from Nish
- Fix kdump with non-power-of-2 crashkernel= from Nish
- Abort cxl_pci_enable_device_hook() if PCI channel is offline from
Andrew
- Fix to release DRC when configure_connector() fails from Bharata
- Wire up sys_userfaultfd()
- Fix race condition in tearing down MSI interrupts from Paul
- Fix unbalanced pci_dev_get() in cxl_probe() from Daniel
- Fix cxl build failure due to -Wunused-variable gcc behaviour change
from Ian
- Tell the toolchain to use ABI v2 when building an LE boot wrapper
from Benh
- Fix THP to recompute hash value after a failed update from Aneesh
- 32-bit memcpy/memset: only use dcbz once cache is enabled from
Christophe
* tag 'powerpc-4.3-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
powerpc32: memset: only use dcbz once cache is enabled
powerpc32: memcpy: only use dcbz once cache is enabled
powerpc/mm: Recompute hash value after a failed update
powerpc/boot: Specify ABI v2 when building an LE boot wrapper
cxl: Fix build failure due to -Wunused-variable behaviour change
cxl: Fix unbalanced pci_dev_get in cxl_probe
powerpc/MSI: Fix race condition in tearing down MSI interrupts
powerpc: Wire up sys_userfaultfd()
powerpc/pseries: Release DRC when configure_connector fails
cxl: abort cxl_pci_enable_device_hook() if PCI channel is offline
powerpc/powernv/pci-ioda: fix kdump with non-power-of-2 crashkernel=
powerpc/powernv/pci-ioda: fix 32-bit TCE table init in kdump kernel
commit ebae871a509d3c24b32ff67af2671dadffc58770
Author: Igor Mammedov <imammedo@xxxxxxxxxx>
Date: Fri Sep 18 15:39:05 2015 +0200
kvm: svm: reset mmu on VCPU reset
When INIT/SIPI sequence is sent to VCPU which before that
was in use by OS, VMRUN might fail with:
KVM: entry failed, hardware error 0xffffffff
EAX=00000000 EBX=00000000 ECX=00000000 EDX=000006d3
ESI=00000000 EDI=00000000 EBP=00000000 ESP=00000000
EIP=00000000 EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0000 00000000 0000ffff 00009300
CS =9a00 0009a000 0000ffff 00009a00
[...]
CR0=60000010 CR2=b6f3e000 CR3=01942000 CR4=000007e0
[...]
EFER=0000000000000000
with corresponding SVM error:
KVM: FAILED VMRUN WITH VMCB:
[...]
cpl: 0 efer: 0000000000001000
cr0: 0000000080010010 cr2: 00007fd7fe85bf90
cr3: 0000000187d0c000 cr4: 0000000000000020
[...]
What happens is that VCPU state right after offlinig:
CR0: 0x80050033 EFER: 0xd01 CR4: 0x7e0
-> long mode with CR3 pointing to longmode page tables
and when VCPU gets INIT/SIPI following transition happens
CR0: 0 -> 0x60000010 EFER: 0x0 CR4: 0x7e0
-> paging disabled with stale CR3
However SVM under the hood puts VCPU in Paged Real Mode*
which effectively translates CR0 0x60000010 -> 80010010 after
svm_vcpu_reset()
-> init_vmcb()
-> kvm_set_cr0()
-> svm_set_cr0()
but from kvm_set_cr0() perspective CR0: 0 -> 0x60000010
only caching bits are changed and
commit d81135a57aa6
("KVM: x86: do not reset mmu if CR0.CD and CR0.NW are changed")'
regressed svm_vcpu_reset() which relied on MMU being reset.
As result VMRUN after svm_vcpu_reset() tries to run
VCPU in Paged Real Mode with stale MMU context (longmode page tables),
which causes some AMD CPUs** to bail out with VMEXIT_INVALID.
Fix issue by unconditionally resetting MMU context
at init_vmcb() time.
* AMD64 Architecture Programmer�s Manual,
Volume 2: System Programming, rev: 3.25
15.19 Paged Real Mode
** Opteron 1216
Signed-off-by: Igor Mammedov <imammedo@xxxxxxxxxx>
Fixes: d81135a57aa6
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 00cc1633816de8c95f337608a1ea64e228faf771
Author: Dominik Dingel <dingel@xxxxxxxxxxxxxxxxxx>
Date: Fri Sep 18 11:27:45 2015 +0200
sched: access local runqueue directly in single_task_running
Commit 2ee507c47293 ("sched: Add function single_task_running to let a
task
check if it is the only task running on a cpu") referenced the current
runqueue with the smp_processor_id. When CONFIG_DEBUG_PREEMPT is enabled,
that is only allowed if preemption is disabled or the currrent task is
bound to the local cpu (e.g. kernel worker).
With commit f78195129963 ("kvm: add halt_poll_ns module parameter") KVM
calls single_task_running. If CONFIG_DEBUG_PREEMPT is enabled that
generates a lot of kernel messages.
To avoid adding preemption in that cases, as it would limit the
usefulness,
we change single_task_running to access directly the cpu local runqueue.
Cc: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
Suggested-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Fixes: 2ee507c472939db4b146d545352b8a7c79ef47f8
Signed-off-by: Dominik Dingel <dingel@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 977108f89c989b1eeb5c8d938e1e71913391eb5f
Author: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Date: Thu Sep 17 18:30:36 2015 +0200
s390: wire up separate socketcalls system calls
As discussed on linux-arch all architectures should wire up the separate
system calls that are hidden behind the socketcall multiplexer system
call.
It's just a couple more system calls and gives us a very small performance
improvement.
Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 7681df456f97f21fb70f184702696d644e273d73
Author: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Date: Thu Sep 17 18:30:35 2015 +0200
s390/compat: remove superfluous compat wrappers
A couple of compat wrapper functions are simply trampolines to the real
system call. This happened because the compat wrapper defines will only
sign and zero extend system call parameters which are of different size
on s390/s390x (longs and pointers).
All other parameters will be correctly sign and zero extended by the
normal system call wrappers.
Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit a55b2ae78cfecaa5ce0384c05211606372b9496c
Author: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Date: Thu Sep 17 18:30:34 2015 +0200
s390/compat: do not trace compat wrapper functions
Add notrace to the compat wrapper define to disable tracing of compat
wrapper functions. These are supposed to be very small and more or less
just a trampoline to the real system call.
Also fix indentation.
Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit f73e22ab450140830005581c2c7ec389791a1b8d
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Wed Sep 9 20:48:22 2015 +0200
perf: Fix races in computing the header sizes
There are two races with the current code:
- Another event can join the group and compute a larger header_size
concurrently, if the smaller store wins we'll have an incorrect
header_size set.
- We compute the header_size after the event becomes active,
therefore its possible to use the size before its computed.
Remedy the first by moving the computation inside the ctx::mutex lock,
and the second by placing it _before_ perf_install_in_context().
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit a723968c0ed36db676478c3d26078f13484fe01c
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Wed Sep 9 19:06:33 2015 +0200
perf: Fix u16 overflows
Vince reported that its possible to overflow the various size fields
and get weird stuff if you stick too many events in a group.
Put a lid on this by requiring the fixed record size not exceed 16k.
This is still a fair amount of events (silly amount really) and leaves
plenty room for callchains and stack dwarves while also avoiding
overflowing the u16 variables.
Reported-by: Vince Weaver <vincent.weaver@xxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit f55fc2a57cc9ca3b1bb4fb8eb25b6e1989e5b993
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Wed Sep 9 19:06:33 2015 +0200
perf: Restructure perf syscall point of no return
The exclusive_event_installable() stuff only works because its
exclusive with the grouping bits.
Rework the code such that there is a sane place to error out before we
go do things we cannot undo.
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit dfe1f3cb312624928052413928d88b0ee3492216
Author: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 14:54:00 2015 -0700
perf/x86/intel: Fix Skylake FRONTEND MSR extrareg mask
Stephane pointed out that the extrareg mask was one bit too short.
The bubble width field was truncated by one bit. Fix that here.
Also add some extra comments on the reserved bits inside the event
select code.
Reported-by: Stephane Eranian <eranian@xxxxxxxxxx>
Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441835640-21347-3-git-send-email-andi@xxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit d0dc8494cd6904f8ad035d9ad97f313948f35d0c
Author: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 14:53:59 2015 -0700
perf/x86/intel/pebs: Add PEBS frontend profiling for Skylake
Skylake has a new FRONTEND_LATENCY PEBS event to accurately profile
frontend problems (like ITLB or decoding issues).
The new event is configured through a separate MSR, which selects
a range of sub events.
Define the extra MSR as a extra reg and export support for it
through sysfs. To avoid duplicating the existing
tables use a new function to add new entries to existing tables.
Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1435707205-6676-4-git-send-email-andi@xxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 5e176213a6b2bc5146820c79542d37290434a3c4
Author: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Date: Mon Sep 14 14:47:02 2015 -0700
perf/x86/intel: Make the CYCLE_ACTIVITY.* constraint on Broadwell more
specific
The counter constraint for CYCLE_ACTIVITY.* on Broadwell covered
all CYCLE_ACTIVITY.* sub events, and forced them on counter 2.
But actually only one sub event (umask 8) needs to be on counter 2,
all others do not have any constraint.
Only force that subevent. This fixes groups with multiple
CYCLE_ACTIVITY.* events, for example:
% perf stat -x, -e '{cpu/event=0xa3,umask=0x6,cmask=6/,\
cpu/event=0xa2,umask=0x8/,\
cpu/event=0xa3,umask=0x4,cmask=4/,cpu/event=0xb1,umask=0x1,cmask=1/}'
true
122150,,cpu/event=0xa3,umask=0x6,cmask=6/,846486,100.00
16483,,cpu/event=0xa2,umask=0x8/,846486,100.00
252280,,cpu/event=0xa3,umask=0x4,cmask=4/,846486,100.00
233604,,cpu/event=0xb1,umask=0x1,cmask=1/,846486,100.00
%
Without this patch the third result would be <unsupported>
Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1442267222-16464-1-git-send-email-andi@xxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit de9b8f5dcbd94bfb1d249907a635f1fb1968e19c
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Thu Aug 13 23:09:29 2015 +0200
sched: Fix crash trying to dequeue/enqueue the idle thread
Sasha reports that his virtual machine tries to schedule the idle
thread since commit 6c37067e2786 ("sched: Change the
sched_class::set_cpus_allowed() calling context").
Hit trace shows this happening from idle_thread_get()->init_idle(),
which is the _second_ init_idle() invocation on that task_struct, the
first being done through idle_init()->fork_idle(). (this code is
insane...)
Because we call init_idle() twice in a row, its ->sched_class ==
&idle_sched_class and ->on_rq = TASK_ON_RQ_QUEUED. This means
do_set_cpus_allowed() think we're queued and will call dequeue_task(),
which is implemented with BUG() for the idle class, seeing how
dequeueing the idle task is a daft thing.
Aside of the whole insanity of calling init_idle() _twice_, change the
code to call set_cpus_allowed_common() instead as this is 'obviously'
before the idle task gets ran etc..
Reported-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Tested-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Fixes: 6c37067e2786 ("sched: Change the sched_class::set_cpus_allowed()
calling context")
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit a6f83f00ad4b4e8a6c1cd14db495f40cf5ea7586
Merge: a7d5c18 bf64456
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Fri Sep 18 07:41:56 2015 +0200
Merge tag 'perf-urgent-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
User visible changes:
- When handling perf_event_open() returning EBUSY and not being able to
opendir
the procfs mount point we would tell the user that the oprofile
daemon was
found by returning -1 on as the return for a bool function, oops, fix
it,
found with Coccinelle. (Peter Senna Tschudin).
- Fix per-pkg event reporting bug in 'perf stat'. (Stephane Eranian)
Developer visible changes:
- Fix missing prototype for function provided when it isn't present in
the
libelf present, fixing the build on RHEL/CentOS 5.1 systems, for
instance.
(Arnaldo Carvalho de Melo)
- Detect if the gcc and libnuma have the features needed to avoid
requiring
the use of NO_LIBNUMA and/or NO_AUXTRACE to build on older systems.
(Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit c2e7204d180f8efc80f27959ca9cf16fa17f67db
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Thu Sep 17 08:38:00 2015 -0700
tcp_cubic: do not set epoch_start in the future
Tracking idle time in bictcp_cwnd_event() is imprecise, as epoch_start
is normally set at ACK processing time, not at send time.
Doing a proper fix would need to add an additional state variable,
and does not seem worth the trouble, given CUBIC bug has been there
forever before Jana noticed it.
Let's simply not set epoch_start in the future, otherwise
bictcp_update() could overflow and CUBIC would again
grow cwnd too fast.
This was detected thanks to a packetdrill test Neal wrote that was flaky
before applying this fix.
Fixes: 30927520dbae ("tcp_cubic: better follow cubic curve after idle
period")
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Signed-off-by: Neal Cardwell <ncardwell@xxxxxxxxxx>
Signed-off-by: Yuchung Cheng <ycheng@xxxxxxxxxx>
Cc: Jana Iyengar <jri@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit adb094e5e7285385770eb7a7c122bfc663c5e174
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Thu Sep 17 23:21:21 2015 +0900
fjes: fix off-by-one error at fjes_hw_update_zone_task()
Dan Carpenter reported off-by-one error of fjes at
http://www.mail-archive.com/netdev@xxxxxxxxxxxxxxx/msg77520.html
Actually this is a bug.
ep_shm_info[epidx].{es_status, zone} should be update
inside for loop.
This patch fixes this bug.
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6cf35642147103195f126d13bdc1d4c32c7c6666
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Sep 17 16:28:31 2015 +0200
MAINTAINERS: remove bouncing email address for qlcnic
I got this automated message from <shahed.shaikh@xxxxxxxxxx> when
submitting
a qlcnic patch:
> Shahed Shaikh is no longer with QLogic. If you require assistance please
> contact Ariel Elior Ariel.Elior@xxxxxxxxxx
There's no point in having a bouncing address in MAINTAINERS.
CC: Dept-GELinuxNICDev@xxxxxxxxxx
CC: Ariel Elior <Ariel.Elior@xxxxxxxxxx>
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1bdc0b109bfa3697a9f6b71f7fed995e08a0d683
Merge: c38f6ac ac7eccd
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Sep 17 22:32:16 2015 -0700
Merge branch 'vxlan-fixes'
Jiri Benc says:
====================
vxlan fixes
This fixes various issues with vxlan related to IPv6.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ac7eccd4d48fcc70d9fd6e4d10657bcde0a73f9f
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Sep 17 16:11:14 2015 +0200
bnx2x: track vxlan port count
The callback for adding vxlan port can be called with the same port for
both IPv4 and IPv6. Do not disable the offloading when the same port for
both protocols is added and later one of them removed.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1e5b311ab2cc3baf73cdff066ab39c7466bf166b
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Sep 17 16:11:13 2015 +0200
be2net: allow offloading with the same port for IPv4 and IPv6
The callback for adding vxlan port can be called with the same port for
both
IPv4 and IPv6. Do not disable the offloading if this occurs.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Sathya Perla <sathya.perla@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 378fddc281072a10b621341b9f78c902303a8fe7
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Sep 17 16:11:12 2015 +0200
qlcnic: track vxlan port count
The callback for adding vxlan port can be called with the same port for
both IPv4 and IPv6. Do not disable the offloading when the same port for
both protocols is added and later one of them removed.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 057ba29bbe85e9587635e3128b26fa30fe849af9
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Sep 17 16:11:11 2015 +0200
vxlan: reject IPv6 addresses if IPv6 is not configured
When IPv6 address is set without IPv6 configured, the vxlan socket is
mostly
treated as an IPv4 one but various lookus in fdb etc. still take the
AF_INET6 into account. This creates incosistencies with weird
consequences.
Just reject IPv6 addresses in such case.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9dc2ad1008c9f91f55ec6c89ec0f8639dfc91596
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Sep 17 16:11:10 2015 +0200
vxlan: set needed headroom correctly
vxlan_setup is called when allocating the net_device, i.e. way before
vxlan_newlink (or vxlan_dev_configure) is called. This means
vxlan->default_dst is actually unset in vxlan_setup and the condition that
sets needed_headroom always takes the else branch.
Set the needed_headrom at the point when we have the information about
the address family available.
Fixes: e4c7ed415387c ("vxlan: add ipv6 support")
Fixes: 2853af6a2ea1a ("vxlan: use dev->needed_headroom instead of
dev->hard_header_len")
CC: Cong Wang <cwang@xxxxxxxxxxxxxxxx>
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c38f6ac74c99801360705d97244ff222ae18dc97
Author: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>
Date: Thu Sep 17 15:26:16 2015 +0200
MAINTAINERS: add arcnet and take maintainership
Add entry for arcnet to MAINTAINERS file and add myself as the
maintainer of the subsystem.
Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>
Cc: davem@xxxxxxxxxxxxx
Cc: joe@xxxxxxxxxxx
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 980137a20317055451a73547cf07be4ddea039ee
Author: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>
Date: Thu Sep 17 15:18:34 2015 +0200
ARCNET: fix hard_header_len limit
For arcnet the bare minimum header only contains the 4 bytes to
specify source, dest and offset (1, 1 and 2 bytes respectively).
The corresponding struct is struct arc_hardware.
The struct archdr contains additionally a union of possible soft
headers. When doing $insertusecasehere packets might well
include short (or even no?) soft headers.
For this reason only use arc_hardware instead of archdr to
determine the hard_header_len for an arcnet device.
Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1dbb2413cbfa7db7a337081af1f4119996522156
Merge: 34f5b00 d8949aa
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Sep 17 22:25:51 2015 -0700
Merge branch 'for-upstream' of
git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
Johan Hedberg says:
====================
pull request: bluetooth 2015-09-17
Here's one important patch for the 4.3-rc series that fixes an issue
with Bluetooth LE encryption failing because of a too early check for
the SMP context.
Please let me know if there are any issues pulling. Thanks.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 34f5b0066435ffb793049b84fafd29fa195bcf90
Author: Sasha Levin <sasha.levin@xxxxxxxxxx>
Date: Wed Sep 16 15:30:21 2015 -0400
atm: deal with setting entry before mkip was called
If we didn't call ATMARP_MKIP before ATMARP_ENCAP the VCC descriptor is
non-existant and we'll end up dereferencing a NULL ptr:
[1033173.491930] kasan: GPF could be caused by NULL-ptr deref or user
memory accessirq event stamp: 123386
[1033173.493678] general protection fault: 0000 [#1] PREEMPT SMP
DEBUG_PAGEALLOC KASAN
[1033173.493689] Modules linked in:
[1033173.493697] CPU: 9 PID: 23815 Comm: trinity-c64 Not tainted
4.2.0-next-20150911-sasha-00043-g353d875-dirty #2545
[1033173.493706] task: ffff8800630c4000 ti: ffff880063110000 task.ti:
ffff880063110000
[1033173.493823] RIP: clip_ioctl (net/atm/clip.c:320 net/atm/clip.c:689)
[1033173.493826] RSP: 0018:ffff880063117a88 EFLAGS: 00010203
[1033173.493828] RAX: dffffc0000000000 RBX: 0000000000000000 RCX:
000000000000000c
[1033173.493830] RDX: 0000000000000002 RSI: ffffffffb3f10720 RDI:
0000000000000014
[1033173.493832] RBP: ffff880063117b80 R08: ffff88047574d9a4 R09:
0000000000000000
[1033173.493834] R10: 0000000000000000 R11: 0000000000000000 R12:
1ffff1000c622f53
[1033173.493836] R13: ffff8800cb905500 R14: ffff8808d6da2000 R15:
00000000fffffdfd
[1033173.493840] FS: 00007fa56b92d700(0000) GS:ffff880478000000(0000)
knlGS:0000000000000000
[1033173.493843] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[1033173.493845] CR2: 0000000000000000 CR3: 00000000630e8000 CR4:
00000000000006a0
[1033173.493855] Stack:
[1033173.493862] ffffffffb0b60444 000000000000eaea 0000000041b58ab3
ffffffffb3c3ce32
[1033173.493867] ffffffffb0b6f3e0 ffffffffb0b60444 ffffffffb5ea2e50
1ffff1000c622f5e
[1033173.493873] ffff8800630c4cd8 00000000000ee09a ffffffffb3ec4888
ffffffffb5ea2de8
[1033173.493874] Call Trace:
[1033173.494108] do_vcc_ioctl (net/atm/ioctl.c:170)
[1033173.494113] vcc_ioctl (net/atm/ioctl.c:189)
[1033173.494116] svc_ioctl (net/atm/svc.c:605)
[1033173.494200] sock_do_ioctl (net/socket.c:874)
[1033173.494204] sock_ioctl (net/socket.c:958)
[1033173.494244] do_vfs_ioctl (fs/ioctl.c:43 fs/ioctl.c:607)
[1033173.494290] SyS_ioctl (fs/ioctl.c:622 fs/ioctl.c:613)
[1033173.494295] entry_SYSCALL_64_fastpath (arch/x86/entry/entry_64.S:186)
[1033173.494362] Code: fa 48 c1 ea 03 80 3c 02 00 0f 85 50 09 00 00 49 8b
9e 60 06 00 00 48 b8 00 00 00 00 00 fc ff df 48 8d 7b 14 48 89 fa 48 c1 ea 03
<0f> b6 04 02 48 89 fa 83 e2 07 38 d0 7f 08 84 c0 0f 85 14 09 00
All code
========
0: fa cli
1: 48 c1 ea 03 shr $0x3,%rdx
5: 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1)
9: 0f 85 50 09 00 00 jne 0x95f
f: 49 8b 9e 60 06 00 00 mov 0x660(%r14),%rbx
16: 48 b8 00 00 00 00 00 movabs $0xdffffc0000000000,%rax
1d: fc ff df
20: 48 8d 7b 14 lea 0x14(%rbx),%rdi
24: 48 89 fa mov %rdi,%rdx
27: 48 c1 ea 03 shr $0x3,%rdx
2b:* 0f b6 04 02 movzbl (%rdx,%rax,1),%eax
<-- trapping instruction
2f: 48 89 fa mov %rdi,%rdx
32: 83 e2 07 and $0x7,%edx
35: 38 d0 cmp %dl,%al
37: 7f 08 jg 0x41
39: 84 c0 test %al,%al
3b: 0f 85 14 09 00 00 jne 0x955
Code starting with the faulting instruction
===========================================
0: 0f b6 04 02 movzbl (%rdx,%rax,1),%eax
4: 48 89 fa mov %rdi,%rdx
7: 83 e2 07 and $0x7,%edx
a: 38 d0 cmp %dl,%al
c: 7f 08 jg 0x16
e: 84 c0 test %al,%al
10: 0f 85 14 09 00 00 jne 0x92a
[1033173.494366] RIP clip_ioctl (net/atm/clip.c:320 net/atm/clip.c:689)
[1033173.494368] RSP <ffff880063117a88>
Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a7d5c189719846889c029c34e24e166a465368fa
Merge: a8f1558 8a1513b
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 21:41:02 2015 -0700
Merge tag 'platform-drivers-x86-v4.3-2' of
git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
Pull x86 platform driver fixes from Darren Hart:
"Fix an issue introduced by the previous major toshiba rework. Add a
quirk. Workaround a few platform specific firmware items. One
cleanup to wmi I inadvertently dropped from a previous pull request.
Details:
hp-wmi:
- limit hotkey enable
toshiba_acpi:
- Fix hotkeys registration on some toshiba models
- Fix USB Sleep and Music always disabled
wmi:
- Remove private %pUL implementation
asus-nb-wmi:
- Add wapf=4 quirk for X456UA/X456UF"
* tag 'platform-drivers-x86-v4.3-2' of
git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
hp-wmi: limit hotkey enable
toshiba_acpi: Fix hotkeys registration on some toshiba models
toshiba_acpi: Fix USB Sleep and Music always disabled
wmi: Remove private %pUL implementation
asus-nb-wmi: Add wapf=4 quirk for X456UA/X456UF
commit 1d325d217c7f190a42fb620ead20bb240fc16af0
Author: Florian Westphal <fw@xxxxxxxxx>
Date: Wed Sep 16 17:26:14 2015 +0200
ipv6: ip6_fragment: fix headroom tests and skb leak
David Woodhouse reports skb_under_panic when we try to push ethernet
header to fragmented ipv6 skbs:
skbuff: skb_under_panic: text:c1277f1e len:1294 put:14 head:dec98000
data:dec97ffc tail:0xdec9850a end:0xdec98f40 dev:br-lan
[..]
ip6_finish_output2+0x196/0x4da
David further debugged this:
[..] offending fragments were arriving here with skb_headroom(skb)==10.
Which is reasonable, being the Solos ADSL card's header of 8 bytes
followed by 2 bytes of PPP frame type.
The problem is that if netfilter ipv6 defragmentation is used, skb_cow()
in ip6_forward will only see reassembled skb.
Therefore, headroom is overestimated by 8 bytes (we pulled fragment
header) and we don't check the skbs in the frag_list either.
We can't do these checks in netfilter defrag since outdev isn't known yet.
Furthermore, existing tests in ip6_fragment did not consider the fragment
or ipv6 header size when checking headroom of the fraglist skbs.
While at it, also fix a skb leak on memory allocation -- ip6_fragment
must consume the skb.
I tested this e1000 driver hacked to not allocate additional headroom
(we end up in slowpath, since LL_RESERVED_SPACE is 16).
If 2 bytes of headroom are allocated, fastpath is taken (14 byte
ethernet header was pulled, so 16 byte headroom available in all
fragments).
Reported-by: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
Diagnosed-by: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
Tested-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ce816eb064c82ab96276969971a561db78e66164
Author: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
Date: Wed Sep 16 12:35:00 2015 +0100
solos-pci: Increase headroom on received packets
A comment in include/linux/skbuff.h says that:
* Various parts of the networking layer expect at least 32 bytes of
* headroom, you should not reduce this.
This was demonstrated by a panic when handling fragmented IPv6 packets:
http://marc.info/?l=linux-netdev&m=144236093519172&w=2
It's not entirely clear if that comment is still valid â?? and if it is,
perhaps netif_rx() ought to be enforcing it with a warning.
But either way, it is rather stupid from a performance point of view
for us to be receiving packets into a buffer which doesn't have enough
room to prepend an Ethernet header â?? it means that *every* incoming
packet is going to be need to be reallocated. So let's fix that.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Acked-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 88c796640eac36209efabe5e42b7b47dee58603e
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Wed Sep 16 11:11:22 2015 +0200
net: ks8851: Export OF module alias information
Drivers needs to export the OF id table and this be built into
the module or udev won't have the necessary information to autoload
the driver module when the device is registered via OF.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a8f155855842f04273666192d3767fa9b94aaa58
Merge: 8e64a73 28c553d
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 21:16:47 2015 -0700
Merge branch 'akpm' (patches from Andrew)
Merge misc fixes from ANdrew Morton:
"8 fixes"
* emailed patches from Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>:
revert "mm: make sure all file VMAs have ->vm_ops set"
MAINTAINERS: update LTP mailing list
userfaultfd: add missing mmput() in error path
lib/string_helpers.c: fix infinite loop in string_get_size()
alpha: lib: export __delay
alpha: io: define ioremap_uc
kasan: fix last shadow judgement in memory_is_poisoned_16()
zram: fix possible use after free in zcomp_create()
commit 28c553d0aa0acf02e18f9e008661491a4b996595
Author: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 16:02:00 2015 -0700
revert "mm: make sure all file VMAs have ->vm_ops set"
Revert commit 6dc296e7df4c "mm: make sure all file VMAs have ->vm_ops
set".
Will Deacon reports that it "causes some mmap regressions in LTP, which
appears to use a MAP_PRIVATE mmap of /dev/zero as a way to get anonymous
pages in some of its tests (specifically mmap10 [1])".
William Shuman reports Oracle crashes.
So revert the patch while we work out what to do.
Reported-by: William Shuman <wshuman3@xxxxxxxxx>
Reported-by: Will Deacon <will.deacon@xxxxxxx>
Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 0526109a24eb07984f9e79852767300c8b8144de
Author: Cyril Hrubis <chrubis@xxxxxxx>
Date: Thu Sep 17 16:01:57 2015 -0700
MAINTAINERS: update LTP mailing list
[akpm@xxxxxxxxxxxxxxxxxxxx: Wanlong Gao has moved]
Signed-off-by: Cyril Hrubis <chrubis@xxxxxxx>
Cc: Jan Stancek <jstancek@xxxxxxxxxx>
Cc: Stanislav Kholmanskikh <stanislav.kholmanskikh@xxxxxxxxxx>
Cc: Alexey Kodanev <alexey.kodanev@xxxxxxxxxx>
Cc: Wanlong Gao <wanlong.gao@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c03e946fdd653c4a23e242aca83da7e9838f5b00
Author: Eric Biggers <ebiggers3@xxxxxxxxx>
Date: Thu Sep 17 16:01:54 2015 -0700
userfaultfd: add missing mmput() in error path
This fixes a memleak if anon_inode_getfile() fails in userfaultfd().
Signed-off-by: Eric Biggers <ebiggers3@xxxxxxxxx>
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 62bef58a55dfa8ada2a22b2496c6340468ecd98a
Author: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
Date: Thu Sep 17 16:01:51 2015 -0700
lib/string_helpers.c: fix infinite loop in string_get_size()
Some string_get_size() calls (e.g.:
string_get_size(1, 512, STRING_UNITS_10, ..., ...)
string_get_size(15, 64, STRING_UNITS_10, ..., ...)
) result in an infinite loop. The problem is that if size is equal to
divisor[units]/blk_size and is smaller than divisor[units] we'll end
up with size == 0 when we start doing sf_cap calculations:
For string_get_size(1, 512, STRING_UNITS_10, ..., ...) case:
...
remainder = do_div(size, divisor[units]); -> size is 0, remainder is 1
remainder *= blk_size; -> remainder is 512
...
size *= blk_size; -> size is still 0
size += remainder / divisor[units]; -> size is still 0
The caller causing the issue is sd_read_capacity(), the problem was
noticed on Hyper-V, such weird size was reported by host when scanning
collides with device removal. This is probably a separate issue worth
fixing, this patch is intended to prevent the library routine from
infinite looping.
Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
Acked-by: James Bottomley <JBottomley@xxxxxxxx>
Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Cc: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Cc: "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 14b97deddf8ddecce9f35165b667c55c73e14638
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Thu Sep 17 16:01:49 2015 -0700
alpha: lib: export __delay
__delay was not exported as a result while building with allmodconfig we
were getting build error of undefined symbol. __delay is being used by:
drivers/net/phy/mdio-octeon.c
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Cc: Richard Henderson <rth@xxxxxxxxxxx>
Cc: Ivan Kokshaysky <ink@xxxxxxxxxxxxxxxxxxxx>
Cc: Matt Turner <mattst88@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 969560d2afca76823cf97ec4f5c0fb7833e18553
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Thu Sep 17 16:01:46 2015 -0700
alpha: io: define ioremap_uc
ioremap_uc was not defined and as a result while building with
allmodconfig were getting build error of: implicit declaration of
function 'ioremap_uc'.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Cc: Richard Henderson <rth@xxxxxxxxxxx>
Cc: Ivan Kokshaysky <ink@xxxxxxxxxxxxxxxxxxxx>
Cc: Matt Turner <mattst88@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 8d77a6d18ae9ccfd5eee1cc551ee4ac27fd41464
Author: Xishi Qiu <qiuxishi@xxxxxxxxxx>
Date: Thu Sep 17 16:01:43 2015 -0700
kasan: fix last shadow judgement in memory_is_poisoned_16()
The shadow which correspond 16 bytes memory may span 2 or 3 bytes. If
the memory is aligned on 8, then the shadow takes only 2 bytes. So we
check "shadow_first_bytes" is enough, and need not to call
"memory_is_poisoned_1(addr + 15);". But the code "if
(likely(!last_byte))" is wrong judgement.
e.g. addr=0, so last_byte = 15 & KASAN_SHADOW_MASK = 7, then the code
will continue to call "memory_is_poisoned_1(addr + 15);"
Signed-off-by: Xishi Qiu <qiuxishi@xxxxxxxxxx>
Acked-by: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx>
Cc: Andrey Konovalov <adech.fo@xxxxxxxxx>
Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Cc: Michal Marek <mmarek@xxxxxxx>
Cc: <zhongjiang@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3aaf14da807a4e9931a37f21e4251abb8a67021b
Author: Luis Henriques <luis.henriques@xxxxxxxxxxxxx>
Date: Thu Sep 17 16:01:40 2015 -0700
zram: fix possible use after free in zcomp_create()
zcomp_create() verifies the success of zcomp_strm_{multi,single}_create()
through comp->stream, which can potentially be pointing to memory that
was freed if these functions returned an error.
While at it, replace a 'ERR_PTR(-ENOMEM)' by a more generic
'ERR_PTR(error)' as in the future zcomp_strm_{multi,siggle}_create()
could return other error codes. Function documentation updated
accordingly.
Fixes: beca3ec71fe5 ("zram: add multi stream functionality")
Signed-off-by: Luis Henriques <luis.henriques@xxxxxxxxxxxxx>
Acked-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Acked-by: Minchan Kim <minchan@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 4671fc6d47e0a0108fe24a4d830347d6a6ef4aa7
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Tue Sep 15 18:29:47 2015 -0700
net/mlx4_en: really allow to change RSS key
When changing rss key, we do not want to overwrite user provided key
by the one provided by netdev_rss_key_fill(), which is the host random
key generated at boot time.
Fixes: 947cbb0ac242 ("net/mlx4_en: Support for configurable RSS hash
function")
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Cc: Eyal Perry <eyalpe@xxxxxxxxxxxx>
CC: Amir Vadai <amirv@xxxxxxxxxxxx>
Acked-by: Or Gerlitz <ogerlitz@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8a1513b49321e503fd6c8b6793e3b1f9a8a3285b
Author: Kyle Evans <kvans32@xxxxxxxxx>
Date: Fri Sep 11 10:40:17 2015 -0500
hp-wmi: limit hotkey enable
Do not write initialize magic on systems that do not have
feature query 0xb. Fixes Bug #82451.
Redefine FEATURE_QUERY to align with 0xb and FEATURE2 with 0xd
for code clearity.
Add a new test function, hp_wmi_bios_2008_later() & simplify
hp_wmi_bios_2009_later(), which fixes a bug in cases where
an improper value is returned. Probably also fixes Bug #69131.
Add missing __init tag.
Signed-off-by: Kyle Evans <kvans32@xxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Darren Hart <dvhart@xxxxxxxxxxxxxxx>
commit 58189ca7b27411c3dc9a5cb9eeee0906da684c59
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 15 15:10:50 2015 -0700
net: Fix vti use case with oif in dst lookups
Steffen reported that the recent change to add oif to dst lookups breaks
the VTI use case. The problem is that with the oif set in the flow struct
the comparison to the nh_oif is triggered. Fix by splitting the
FLOWI_FLAG_VRFSRC into 2 flags -- one that triggers the vrf device cache
bypass (FLOWI_FLAG_VRFSRC) and another telling the lookup to not compare
nh oif (FLOWI_FLAG_SKIP_NH_OIF).
Fixes: 42a7b32b73d6 ("xfrm: Add oif to dst lookups")
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Acked-by: Steffen Klassert <steffen.klassert@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d828755eae637c6ca39e30702e98abaf34cac146
Author: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Date: Tue Sep 15 17:20:09 2015 +0530
cxgb4: add device ID for few T5 adapters
Signed-off-by: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2e64126bb0fb581b55e52e51ec451ebb0d6769c8
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Sep 15 10:33:07 2015 +0200
net: qdisc: enhance default_qdisc documentation
Aside from some lingual cleanup, point out which interfaces are not or
partly covered by this setting.
Signed-off-by: Phil Sutter <phil@xxxxxx>
Acked-by: Cong Wang <cwang@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 562d897d15a6e2bab3cc9b4c172286b612834fe8
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 15 10:50:14 2015 -0600
net: Add documentation for VRF device
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit cc5706056baa3002b844ff240a1cc2199a978795
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Mon Sep 14 11:14:50 2015 -0700
openvswitch: Fix IPv6 exthdr handling with ct helpers.
Static code analysis reveals the following bug:
net/openvswitch/conntrack.c:281 ovs_ct_helper()
warn: unsigned 'protoff' is never less than zero.
This signedness bug breaks error handling for IPv6 extension headers when
using conntrack helpers. Fix the error by using a local signed variable.
Fixes: cae3a2627520: "openvswitch: Allow attaching helpers to ct
action"
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3ec0c97959abff33a42db9081c22132bcff5b4f2
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Mon Sep 14 20:12:21 2015 +0800
nfs/filelayout: Fix NULL reference caused by double freeing of fh_array
If filelayout_decode_layout fail, _filelayout_free_lseg will causes
a double freeing of fh_array.
[ 1179.279800] BUG: unable to handle kernel NULL pointer dereference at
(null)
[ 1179.280198] IP: [<ffffffffa027222d>]
filelayout_free_fh_array.isra.11+0x1d/0x70 [nfs_layout_nfsv41_files]
[ 1179.281010] PGD 0
[ 1179.281443] Oops: 0000 [#1]
[ 1179.281831] Modules linked in: nfs_layout_nfsv41_files(OE) nfsv4(OE)
nfs(OE) fscache(E) xfs libcrc32c coretemp nfsd crct10dif_pclmul ppdev
crc32_pclmul crc32c_intel auth_rpcgss ghash_clmulni_intel nfs_acl lockd
vmw_balloon grace sunrpc parport_pc vmw_vmci parport shpchp i2c_piix4 vmwgfx
drm_kms_helper ttm drm serio_raw mptspi scsi_transport_spi mptscsih e1000
mptbase ata_generic pata_acpi [last unloaded: fscache]
[ 1179.283891] CPU: 0 PID: 13336 Comm: cat Tainted: G OE
4.3.0-rc1-pnfs+ #244
[ 1179.284323] Hardware name: VMware, Inc. VMware Virtual Platform/440BX
Desktop Reference Platform, BIOS 6.00 05/20/2014
[ 1179.285206] task: ffff8800501d48c0 ti: ffff88003e3c4000 task.ti:
ffff88003e3c4000
[ 1179.285668] RIP: 0010:[<ffffffffa027222d>] [<ffffffffa027222d>]
filelayout_free_fh_array.isra.11+0x1d/0x70 [nfs_layout_nfsv41_files]
[ 1179.286612] RSP: 0018:ffff88003e3c77f8 EFLAGS: 00010202
[ 1179.287092] RAX: 0000000000000000 RBX: ffff88001fe78900 RCX:
0000000000000000
[ 1179.287731] RDX: ffffea0000f40760 RSI: ffff88001fe789c8 RDI:
ffff88001fe789c0
[ 1179.288383] RBP: ffff88003e3c7810 R08: ffffea0000f40760 R09:
0000000000000000
[ 1179.289170] R10: 0000000000000000 R11: 0000000000000001 R12:
ffff88001fe789c8
[ 1179.289959] R13: ffff88001fe789c0 R14: ffff88004ec05a80 R15:
ffff88004f935b88
[ 1179.290791] FS: 00007f4e66bb5700(0000) GS:ffffffff81c29000(0000)
knlGS:0000000000000000
[ 1179.291580] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 1179.292209] CR2: 0000000000000000 CR3: 00000000203f8000 CR4:
00000000001406f0
[ 1179.292731] Stack:
[ 1179.293195] ffff88001fe78900 00000000000000d0 ffff88001fe78178
ffff88003e3c7868
[ 1179.293676] ffffffffa0272737 0000000000000001 0000000000000001
ffff88001fe78800
[ 1179.294151] 00000000614fffce ffffffff81727671 ffff88001fe78100
ffff88001fe78100
[ 1179.294623] Call Trace:
[ 1179.295092] [<ffffffffa0272737>] filelayout_alloc_lseg+0xa7/0x2d0
[nfs_layout_nfsv41_files]
[ 1179.295625] [<ffffffff81727671>] ? out_of_line_wait_on_bit+0x81/0xb0
[ 1179.296133] [<ffffffffa040407e>] pnfs_layout_process+0xae/0x320
[nfsv4]
[ 1179.296632] [<ffffffffa03e0a01>] nfs4_proc_layoutget+0x2b1/0x360
[nfsv4]
[ 1179.297134] [<ffffffffa0402983>] pnfs_update_layout+0x853/0xb30
[nfsv4]
[ 1179.297632] [<ffffffffa039db24>] ? nfs_get_lock_context+0x74/0x170
[nfs]
[ 1179.298158] [<ffffffffa0271807>] filelayout_pg_init_read+0x37/0x50
[nfs_layout_nfsv41_files]
[ 1179.298834] [<ffffffffa03a72d9>] __nfs_pageio_add_request+0x119/0x460
[nfs]
[ 1179.299385] [<ffffffffa03a6bd7>] ?
nfs_create_request.part.9+0x37/0x2e0 [nfs]
[ 1179.299872] [<ffffffffa03a7cc3>] nfs_pageio_add_request+0xa3/0x1b0
[nfs]
[ 1179.300362] [<ffffffffa03a8635>] readpage_async_filler+0x85/0x260
[nfs]
[ 1179.300907] [<ffffffff81180cb1>] read_cache_pages+0x91/0xd0
[ 1179.301391] [<ffffffffa03a85b0>] ? nfs_read_completion+0x220/0x220
[nfs]
[ 1179.301867] [<ffffffffa03a8dc8>] nfs_readpages+0x128/0x200 [nfs]
[ 1179.302330] [<ffffffff81180ef3>] __do_page_cache_readahead+0x203/0x280
[ 1179.302784] [<ffffffff81180dc8>] ?
__do_page_cache_readahead+0xd8/0x280
[ 1179.303413] [<ffffffff81181116>] ondemand_readahead+0x1a6/0x2f0
[ 1179.303855] [<ffffffff81181371>] page_cache_sync_readahead+0x31/0x50
[ 1179.304286] [<ffffffff811750a6>] generic_file_read_iter+0x4a6/0x5c0
[ 1179.304711] [<ffffffffa03a0316>] ?
__nfs_revalidate_mapping+0x1f6/0x240 [nfs]
[ 1179.305132] [<ffffffffa039ccf2>] nfs_file_read+0x52/0xa0 [nfs]
[ 1179.305540] [<ffffffff811e343c>] __vfs_read+0xcc/0x100
[ 1179.305936] [<ffffffff811e3d15>] vfs_read+0x85/0x130
[ 1179.306326] [<ffffffff811e4a98>] SyS_read+0x58/0xd0
[ 1179.306708] [<ffffffff8172caaf>] entry_SYSCALL_64_fastpath+0x12/0x76
[ 1179.307094] Code: c4 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44
00 00 55 48 89 e5 41 55 41 54 53 8b 07 49 89 f4 85 c0 74 47 48 8b 06 49 89 fd
<48> 8b 38 48 85 ff 74 22 31 db eb 0c 48 63 d3 48 8b 3c d0 48 85
[ 1179.308357] RIP [<ffffffffa027222d>]
filelayout_free_fh_array.isra.11+0x1d/0x70 [nfs_layout_nfsv41_files]
[ 1179.309177] RSP <ffff88003e3c77f8>
[ 1179.309582] CR2: 0000000000000000
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 0fdea1e8a2853f79d39b8555cc9de16a7e0ab26f
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Wed Sep 16 23:43:17 2015 -0400
SUNRPC: Ensure that we wait for connections to complete before retrying
Commit 718ba5b87343, moved the responsibility for unlocking the socket to
xs_tcp_setup_socket, meaning that the socket will be unlocked before we
know that it has finished trying to connect. The following patch is based
on
an initial patch by Russell King to ensure that we delay clearing the
XPRT_CONNECTING flag until we either know that we failed to initiate
a connection attempt, or the connection attempt itself failed.
Fixes: 718ba5b87343 ("SUNRPC: Add helpers to prevent socket create from
racing")
Reported-by: Russell King <linux@xxxxxxxxxxxxxxxx>
Reported-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Tested-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Tested-by: Benjamin Coddington <bcodding@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 37a1d3611c126fd9782ce5235791f898f053e763
Author: Roopa Prabhu <roopa@xxxxxxxxxxxxxxxxxxx>
Date: Sun Sep 13 10:18:33 2015 -0700
ipv6: include NLM_F_REPLACE in route replace notifications
This patch adds NLM_F_REPLACE flag to ipv6 route replace notifications.
This makes nlm_flags in ipv6 replace notifications consistent
with ipv4.
Signed-off-by: Roopa Prabhu <roopa@xxxxxxxxxxxxxxxxxxx>
Acked-by: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>
Reviewed-by: Michal Kubecek <mkubecek@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 74c600e36455af85c593702670f38709ca1951ce
Author: Martyn Welch <martyn@xxxxxxxxxxxx>
Date: Thu Sep 17 20:38:47 2015 +0100
MAINTAINERS: Update email address for Martyn Welch
I have recently left GE and the email address listed for me in the
maintainers file is no longer valid. Updating email address.
Signed-off-by: Martyn Welch <martyn@xxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 17a9618e984234fda167ea5e07eae6f4f2ea2186
Author: Julia Lawall <Julia.Lawall@xxxxxxx>
Date: Sun Sep 13 14:15:07 2015 +0200
SUNRPC: drop null test before destroy functions
Remove unneeded NULL test.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@ expression x; @@
-if (x != NULL)
\(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x);
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 306a5549355966e480e0dcacdc6b9321d153e0c0
Author: J. Bruce Fields <bfields@xxxxxxxxxx>
Date: Wed Sep 16 17:21:27 2015 -0400
nfs: fix v4.2 SEEK on files over 2 gigs
We're incorrectly assigning a loff_t return to an int. If SEEK_HOLE or
SEEK_DATA returns an offset over 2^31 then the application will see a
weird lseek() result (usually -EIO).
Cc: stable@xxxxxxxxxxxxxxx
Fixes: bdcc2cd14e4e "NFSv4.2: handle NFS-specific llseek errors"
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
Reviewed-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 03c78827db35be20ffa71cb5ccd2cedb192f95d6
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Sep 17 10:42:27 2015 -0400
SUNRPC: Fix races between socket connection and destroy code
When we're destroying the socket transport, we need to ensure that
we cancel any existing delayed connection attempts, and order them
w.r.t. the call to xs_close().
Reported-by:"Suzuki K. Poulose" <suzuki.poulose@xxxxxxx>
Acked-by: Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 048883e0b934d9a5103d40e209cb14b7f33d2933
Author: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Date: Fri Sep 11 11:14:06 2015 +0800
nfs: fix pg_test page count calculation
We really want sizeof(struct page *) instead. Otherwise we limit
maximum IO size to 64 pages rather than 512 pages on a 64bit system.
Fixes 2e11f829(nfs: cap request size to fit a kmalloced page array).
Cc: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Fixes: 2e11f8296d22 ("nfs: cap request size to fit a kmalloced page
array")
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit a41cbe86df3afbc82311a1640e20858c0cd7e065
Author: Olga Kornievskaia <aglo@xxxxxxxxx>
Date: Mon Sep 14 19:54:36 2015 -0400
Failing to send a CLOSE if file is opened WRONLY and server reboots on a
4.x mount
A test case is as the description says:
open(foobar, O_WRONLY);
sleep() --> reboot the server
close(foobar)
The bug is because in nfs4state.c in nfs4_reclaim_open_state() a few
line before going to restart, there is
clear_bit(NFS4CLNT_RECLAIM_NOGRACE, &state->flags).
NFS4CLNT_RECLAIM_NOGRACE is a flag for the client states not open
owner states. Value of NFS4CLNT_RECLAIM_NOGRACE is 4 which is the
value of NFS_O_WRONLY_STATE in nfs4_state->flags. So clearing it wipes
out state and when we go to close it, â??call_closeâ?? doesnâ??t get set
as
state flag is not set and CLOSE doesnâ??t go on the wire.
Signed-off-by: Olga Kornievskaia <aglo@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit c8aa33a7114704f3f5a359893a8e1de9ea2940a5
Author: David Daney <david.daney@xxxxxxxxxx>
Date: Wed Sep 9 15:57:59 2015 -0700
of_pci_irq: Silence bogus "of_irq_parse_pci() failed ..." messages.
It is perfectly legitimate for a PCI device to have an
PCI_INTERRUPT_PIN value of zero. This happens if the device doesn't
use interrupts, or on PCIe devices, where only MSI/MSI-X are
supported.
Silence the annoying "of_irq_parse_pci() failed with rc=-19" error
messages by moving the printing code into of_irq_parse_pci(), and only
emitting the message for cases where PCI_INTERRUPT_PIN == 0 is not the
cause for an early exit.
Signed-off-by: David Daney <david.daney@xxxxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit 31b47ae3f18b31d86f553198e624b3b38f6397a2
Author: Hans de Goede <hdegoede@xxxxxxxxxx>
Date: Sat Sep 12 12:52:49 2015 +0200
devicetree: bindings: Extend the bma180 bindings with bma250 info
The bma180 / bma250 accelerometers share a driver (at least under Linux),
so it makes sense to also have their bindings info in a single .txt.
This commit extends the bma180 bindings with bma250 bindings, specifically
it specifies how the 2 seperate interrupts the bma250 has must be listed
in devicetree. The existing bma180 driver is already fully compatible
with the specified bindings.
Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit 9fa04fbeb78eab6f3817e444644348c46c7e2370
Author: Punit Agrawal <punit.agrawal@xxxxxxx>
Date: Tue Sep 8 12:20:49 2015 +0100
of: thermal: Mark cooling-*-level properties optional
The cooling-{min,max}-level properties are marked as optional in
Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt and the usage
in various device tree matches this, i.e., some cooling device in the
device trees provide these properties while others do not.
Make the bindings in
Documentation/devicetree/bindings/thermal/thermal.txt consistent with
the cpufreq-dt bindings by marking the cooling-*-level properties as
optional.
Signed-off-by: Punit Agrawal <punit.agrawal@xxxxxxx>
Cc: Eduardo Valentin <edubezval@xxxxxxxxx>
Cc: Rob Herring <robh+dt@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Ian Campbell <ijc+devicetree@xxxxxxxxxxxxxx>
Cc: Kumar Gala <galak@xxxxxxxxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit eb168b70dea54578a45119fcdb3b48ad5d75fed9
Author: Punit Agrawal <punit.agrawal@xxxxxxx>
Date: Tue Sep 8 12:20:48 2015 +0100
of: thermal: Fix inconsitency between cooling-*-state and cooling-*-level
The device trees in the kernel as well as the binding description in
Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt use the
cooling-{min,max}-level property.
Fix the inconsistency with the binding description in
Documentation/devicetree/bindings/thermal/thermal.txt by changing
cooling-*-state properties to cooling-*-level.
Signed-off-by: Punit Agrawal <punit.agrawal@xxxxxxx>
Cc: Eduardo Valentin <edubezval@xxxxxxxxx>
Cc: Rob Herring <robh+dt@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Ian Campbell <ijc+devicetree@xxxxxxxxxxxxxx>
Cc: Kumar Gala <galak@xxxxxxxxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit dc4dae00d82fedcd7a632f786f9f76c1f7f929a5
Author: Mark Rutland <mark.rutland@xxxxxxx>
Date: Mon Sep 7 10:49:03 2015 +0100
Docs: dt: add #msi-cells to GICv3 ITS binding
The GICv3 ITS uses sideband master identification data (known as a
DeviceID) to identify which master wrote to a doorbell, and this data is
used to determine how to react in response to the write.
Commit 1e6db000482fa65a ("irqchip/gicv3-its: Add platform MSI support")
added support per this binding, but failed to update the documentation.
This patch fixes the documentation.
Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>
Acked-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: Rob Herring <robh+dt@xxxxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit 8e64a7331702b7888ccf84b2b9ff46ab8e167c7f
Merge: 2e5735f 335c258
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 12:32:40 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client
Pull Ceph fixes from Sage Weil:
"These are both fixes to the new and improved keepalive2 behavior"
* 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
libceph: advertise support for keepalive2
libceph: don't access invalid memory in keepalive2 path
commit 2e5735f4c377377cb738270024083f74ee058877
Merge: d109c4b e11fc21
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 12:25:42 2015 -0700
Merge tag 'for-v4.3-rc' of
git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply
Pull power supply fixes from Sebastian Reichel:
"twl4030-charger fixes"
* tag 'for-v4.3-rc' of
git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
twl4030_charger: fix another compile error
Revert "twl4030_charger: correctly handle -EPROBE_DEFER from
devm_usb_get_phy_by_node"
commit d7ba2a024cf19261b34825f89d30ceef9a5ff864
Author: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Date: Wed Jul 29 18:45:33 2015 +0900
of: add vendor prefix for Socionext Inc.
Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit d34e210ed3a28050441f15228fd5ed929028d9cd
Author: Gabriel Fernandez <gabriel.fernandez@xxxxxxxxxx>
Date: Wed Sep 16 09:42:59 2015 +0200
drivers: clk: st: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x
Use a generic name for this kind of PLL
Correction in dts files are already done here:
commit 5eb26c605909 ("ARM: STi: DT: Rename st_pll3200c32_407_c0_x into
st_pll3200c32_cx_x")
Signed-off-by: Gabriel Fernandez <gabriel.fernandez@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit bf6445631c6f00882b25516a174d5073ce0c6f81
Author: Peter Senna Tschudin <peter.senna@xxxxxxxxx>
Date: Thu Sep 17 12:08:53 2015 +0200
perf tools: Bool functions shouldn't return -1
Returning a negative value for a boolean function seem to have the
undesired effect of returning true. Replace -1 by false in a
bool-returning function.
The diff of the .s file before and after the change (for x86_64):
3907c3907
< movl $1, %ebx
---
> xorl %ebx, %ebx
while if -1 is replaced by true, the diff is empty.
This issue was found by the following Coccinelle semantic patch:
<smpl>
@@
identifier f;
constant C;
typedef bool;
@@
bool f (...){
<+...
* return -C;
...+>
}
</smpl>
Signed-off-by: Peter Senna Tschudin <peter.senna@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Matt Fleming <matt.fleming@xxxxxxxxx>
Cc: Milos Vyletel <milos@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1442484533-19742-1-git-send-email-peter.senna@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit d109c4bb4513b8a63d56117f683901492093bfa9
Merge: 42dc2a3 df057cc
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 11:28:17 2015 -0700
Merge tag 'arm64-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 fixes from Will Deacon:
"This addresses some problems with filesystem writeback due to the
recently merged hardware DBM patches, which caused us to treat some
read-only pages as dirty.
There are also some other, less significant fixes that are described
in the summary below:
A mixture of fixes for regressions introduced during the merge window,
some longer standing problems that we spotted and a couple of hardware
errata. The main changes are:
- Fix fallout from the h/w DBM patches, causing filesystem writeback
issues on both v8 and v8.1 CPUs
- Workaround for Cortex-A53 erratum #843419 in the module loader
- Fix for long-standing issue with compat big-endian signal handlers
using the saved floating point state"
* tag 'arm64-fixes' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64: errata: add module build workaround for erratum #843419
arm64: compat: fix vfp save/restore across signal handlers in big-endian
arm64: cpu hotplug: ensure we mask out CPU_TASKS_FROZEN in notifiers
arm64: head.S: initialise mdcr_el2 in el2_setup
arm64: enable generic idle loop
arm64: pgtable: use a single bit for PTE_WRITE regardless of DBM
arm64: Fix pte_modify() to preserve the hardware dirty information
arm64: Fix the pte_hw_dirty() check when AF/DBM is enabled
arm64: dma-mapping: check whether cma area is initialized or not
commit 42dc2a3048247109b0a5ee6345226cbd3e4f6410
Merge: 1345df2 03da3ff
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 11:01:34 2015 -0700
Merge branch 'x86-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Ingo Molnar:
- misc fixes all around the map
- block non-root vm86(old) if mmap_min_addr != 0
- two small debuggability improvements
- removal of obsolete paravirt op
* 'x86-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/platform: Fix Geode LX timekeeping in the generic x86 build
x86/apic: Serialize LVTT and TSC_DEADLINE writes
x86/ioapic: Force affinity setting in setup_ioapic_dest()
x86/paravirt: Remove the unused pv_time_ops::get_tsc_khz method
x86/ldt: Fix small LDT allocation for Xen
x86/vm86: Fix the misleading CONFIG_VM86 Kconfig help text
x86/cpu: Print family/model/stepping in hex
x86/vm86: Block non-root vm86(old) if mmap_min_addr != 0
x86/alternatives: Make optimize_nops() interrupt safe and synced
x86/mm/srat: Print non-volatile flag in SRAT
x86/cpufeatures: Enable cpuid for Intel SHA extensions
commit 1345df21ac542daa9d8613f89a3f0b5f32d636f8
Merge: c2ea72f eef7635
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 10:55:25 2015 -0700
Merge branch 'timers-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer fixes from Ingo Molnar:
"A fix for an abs()/abs64() bug that caused too slow NTP convergence on
32-bit kernels, plus a removal of an obsolete clockevents driver
facility after all users got converted during the merge window"
* 'timers-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
clockevents: Remove unused set_mode() callback
time: Fix timekeeping_freqadjust()'s incorrect use of abs() instead of
abs64()
commit c2ea72fd869145130969d6b07273c479cf2a22f5
Merge: a706797 5473e0c
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 10:49:42 2015 -0700
Merge branch 'sched-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler fixes from Ingo Molnar:
"A migrate_tasks() locking fix, and a late-coming nohz change plus a
nohz debug check"
* 'sched-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched: 'Annotate' migrate_tasks()
nohz: Assert existing housekeepers when nohz full enabled
nohz: Affine unpinned timers to housekeepers
commit 23c3f310e897837aeb8ffe8700b803cb58e7b35d
Author: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 14:50:20 2015 +0100
regulator: core: Correct return value check in regulator_resolve_supply
The ret pointer passed to regulator_dev_lookup is only filled with a
valid error code if regulator_dev_lookup returned NULL. Currently
regulator_resolve_supply checks this ret value before it checks if a
regulator was returned, this can result in valid regulator lookups being
ignored.
Fixes: 6261b06de565 ("regulator: Defer lookup of supply to regulator_get")
Signed-off-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit a706797febf4ff60ad61f855a01707be9fc3cf4c
Merge: 9786cff f6cf87f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 10:37:46 2015 -0700
Merge branch 'perf-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fixes from Ingo MOlnar:
"Mostly tooling fixes, but also two x86 PMU driver fixes"
* 'perf-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf tests: Fix software clock events test setting maps
perf tests: Fix task exit test setting maps
perf evlist: Fix create_syswide_maps() not propagating maps
perf evlist: Fix add() not propagating maps
perf evlist: Factor out a function to propagate maps for a single evsel
perf evlist: Make create_maps() use set_maps()
perf evlist: Make set_maps() more resilient
perf evsel: Add own_cpus member
perf evlist: Fix missing thread_map__put in propagate_maps()
perf evlist: Fix splice_list_tail() not setting evlist
perf evlist: Add has_user_cpus member
perf evlist: Remove redundant validation from propagate_maps()
perf evlist: Simplify set_maps() logic
perf evlist: Simplify propagate_maps() logic
perf top: Fix segfault pressing -> with no hist entries
perf header: Fixup reading of HEADER_NRCPUS feature
perf/x86/intel: Fix constraint access
perf/x86/intel/bts: Set event->hw.itrace_started in pmu::start to match
the new logic
perf tools: Fix use of wrong event when processing exit events
perf tools: Fix parse_events_add_pmu caller
commit 335c25858218e76ef47f92ecb9d22e919d36140d
Author: Ilya Dryomov <idryomov@xxxxxxxxx>
Date: Mon Sep 14 12:44:22 2015 +0300
libceph: advertise support for keepalive2
We are the client, but advertise keepalive2 anyway - for consistency,
if nothing else. In the future the server might want to know whether
its clients support keepalive2.
Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>
Reviewed-by: Yan, Zheng <zyan@xxxxxxxxxx>
commit 7f61f545657281a3a1b0faf68993165ebdecc51b
Author: Ilya Dryomov <idryomov@xxxxxxxxx>
Date: Mon Sep 14 16:01:05 2015 +0300
libceph: don't access invalid memory in keepalive2 path
This
struct ceph_timespec ceph_ts;
...
con_out_kvec_add(con, sizeof(ceph_ts), &ceph_ts);
wraps ceph_ts into a kvec and adds it to con->out_kvec array, yet
ceph_ts becomes invalid on return from prepare_write_keepalive(). As
a result, we send out bogus keepalive2 stamps. Fix this by encoding
into a ceph_timespec member, similar to how acks are read and written.
Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>
Reviewed-by: Yan, Zheng <zyan@xxxxxxxxxx>
commit 74a093918b2296bed7136a7830821d45d3d5cb1a
Merge: aa1471a 19ab6bc
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 09:39:39 2015 -0700
Merge tag 'usb-serial-4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
Johan writes:
USB-serial fixes for v4.3-rc2
Just some new ZTE device IDs.
Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>
commit b0063dbfb031a7c728ed0d9533257e8329292cf1
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Thu Sep 17 12:54:30 2015 -0300
tools build: Add test for presence of __get_cpuid() gcc builtin
The auxtrace code needed by Intel PT uses the __get_cpuid() gcc builtin,
that is not present in old systems, breaking the build.
Add a test to check for that builtin and disable AUXTRACE in those
systems.
[acme@rhel5 linux]$ make NO_LIBPERL=1 -C tools/perf O=/tmp/build/perf
install-bin
make: Entering directory `/home/acme/git/linux/tools/perf'
BUILD: Doing 'make -j2' parallel build
Auto-detecting system features:
<SNIP>
... lzma: [ on ]
... get_cpuid: [ OFF ]
<SNIP>
config/Makefile:630: Your gcc lacks the __get_cpuid() builtin, disables
support for auxtrace/Intel PT, please install a newer gcc
MKDIR /tmp/build/perf/util/
<SNIP>
This fixes the build on old systems such as RHEL/CentOS 5.11.
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: "Naveen N. Rao" <naveen.n.rao@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Victor Kamensky <victor.kamensky@xxxxxxxxxx>
Cc: Vinson Lee <vlee@xxxxxxxxxxxxxxxx>
Cc: Wang Nan <wangnan0@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-d4puslul0jltoodzpx9r4sje@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit f8ac8606fd3cd72183de8eec2b151ff05040c70f
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Thu Sep 17 12:20:28 2015 -0300
tools build: Add test for presence of numa_num_possible_cpus() in libnuma
The existing numa test checks only if numa.h and numa_available() are
present, but that can be satisfied with an old libnuma that is not
enough for the 'perf bench numa' entry, so add a test to check for that:
[acme@rhel5 linux]$ make NO_AUXTRACE=1 NO_LIBPERL=1 -C tools/perf
O=/tmp/build/perf install-bin
make: Entering directory `/home/acme/git/linux/tools/perf'
BUILD: Doing 'make -j2' parallel build
Auto-detecting system features:
... libelf: [ on ]
... libnuma: [ on ]
... numa_num_possible_cpus: [ OFF ]
... libperl: [ on ]
<SNIP>
config/Makefile:577: Old numa library found, disables 'perf bench numa
mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev >= 2.0.8
INSTALL binaries
<SNIP>
This fixes the build on old systems such as RHEL/CentOS 5.11.
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: "Naveen N. Rao" <naveen.n.rao@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Victor Kamensky <victor.kamensky@xxxxxxxxxx>
Cc: Vinson Lee <vlee@xxxxxxxxxxxxxxxx>
Cc: Wang Nan <wangnan0@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-zqriqkezppi2de2iyjin1tnc@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 179f36dde3cec0f9f05a757b68f6a58e4edbcc95
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Thu Sep 17 11:30:20 2015 -0300
Revert "perf symbols: Fix mismatched declarations for elf_getphdrnum"
This reverts commit f785f2357673d520a0b7b468973cdd197f336494.
We have a test to check if elf_getphdrnum() is present, so, if it fails,
we'll get:
[acme@rhel5 linux]$ cat
/tmp/build/perf/feature/test-libelf-getphdrnum.make.output
cc1: warnings being treated as errors
test-libelf-getphdrnum.c: In function â??mainâ??:
test-libelf-getphdrnum.c:7: warning: implicit declaration of function
â??elf_getphdrnumâ??
[acme@rhel5 linux]$
And this block will not be compiled:
#ifndef HAVE_ELF_GETPHDRNUM_SUPPORT
static int elf_getphdrnum(Elf *elf, size_t *dst)
...
#endif
So, if elf_getphdrnum() is being defined somewhere, there is a problem
with the test that is not detecting that function, go fix it.
Reported-by: Vinson Lee <vlee@xxxxxxxxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: "Naveen N. Rao" <naveen.n.rao@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Victor Kamensky <victor.kamensky@xxxxxxxxxx>
Cc: Wang Nan <wangnan0@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-qn459fal6acvcvm50i8zxx9k@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 994518799930fc363d47cb7cf0d1abed1790bf16
Author: Ming Lei <ming.lei@xxxxxxxxxxxxx>
Date: Fri Sep 18 00:06:28 2015 +0800
block: fix bounce_end_io
When bio bounce is involved, one new bio and its biovecs are
cloned from the comming bio, which can be one fast-cloned bio
from upper layer(such as dm).
So it is obviously wrong to assume the start index of the coming(
original) bio's io vector is zero, which can be any value between
0 and (bi_max_vecs - 1), especially in case of bio split.
This patch fixes Fedora's booting oops on i386, often with the
following kernel log together:
> [ 9.026738] systemd[1]: Switching root.
> [ 9.036467] systemd-journald[149]: Received SIGTERM from PID 1
> (systemd).
> [ 9.082262] BUG: Bad page state in process kworker/u5:1 pfn:372ac
> [ 9.083989] page:f3d32ae0 count:0 mapcount:0 mapping:f2252178
> index:0x16a
> [ 9.085755] flags: 0x40020021(locked|lru|mappedtodisk)
> [ 9.087284] page dumped because: page still charged to cgroup
> [ 9.088772] bad because of flags:
> [ 9.089731] flags: 0x21(locked|lru)
> [ 9.090818] page->mem_cgroup:f2c3e400
Reported-by: Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx>
Tested-by: Adam Williamson <awilliam@xxxxxxxxxx>
Cc: Ming Lin <mlin@xxxxxxxxxx>
Cc: Mike Snitzer <snitzer@xxxxxxxxxx>
Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 52cc6eead9095e2faf2ec7afc013aa3af1f01ac5
Author: Ming Lei <ming.lei@xxxxxxxxxxxxx>
Date: Thu Sep 17 09:58:38 2015 -0600
block: blk-merge: fast-clone bio when splitting rw bios
biovecs has become immutable since v3.13, so it isn't necessary
to allocate biovecs for the new cloned bios, then we can save
one extra biovecs allocation/copy, and the allocation is often
not fixed-length and a bit more expensive.
For example, if the 'max_sectors_kb' of null blk's queue is set
as 16(32 sectors) via sysfs just for making more splits, this patch
can increase throught about ~70% in the sequential read test over
null_blk(direct io, bs: 1M).
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Kent Overstreet <kent.overstreet@xxxxxxxxx>
Cc: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Cc: Dongsu Park <dpark@xxxxxxxxxx>
Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxxxxx>
This fixes a performance regression introduced by commit 54efd50bfd,
and allows us to take full advantage of the fact that we have immutable
bio_vecs. Hand applied, as it rejected violently with commit
5014c311baa2.
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit ba8fe0f85e15d047686caf8a42463b592c63c98c
Author: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Date: Wed Sep 16 14:52:21 2015 -0600
pmem: add proper fencing to pmem_rw_page()
pmem_rw_page() needs to call wmb_pmem() on writes to make sure that the
newly written data is durable. This flow was added to pmem_rw_bytes()
and pmem_make_request() with this commit:
commit 61031952f4c8 ("arch, x86: pmem api for ensuring durability of
persistent memory updates")
...the pmem_rw_page() path was missed.
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 4ca8b57a0af145f4e791f21dbca6ad789da9ee8b
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Wed Sep 16 21:25:38 2015 +0800
libnvdimm: pfn_devs: Fix locking in namespace_store
Always take device_lock() before nvdimm_bus_lock() to prevent deadlock.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 9786cff38a31c452e32fd2f9a479dd7d19d91712
Merge: 1b3dfde 1975dbc
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 08:45:23 2015 -0700
Merge branch 'locking-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull locking fixes from Ingo Molnar:
"Spinlock performance regression fix, plus documentation fixes"
* 'locking-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
locking/static_keys: Fix up the static keys documentation
locking/qspinlock/x86: Only emit the test-and-set fallback when
building guest support
locking/qspinlock/x86: Fix performance regression under unaccelerated
VMs
locking/static_keys: Fix a silly typo
commit 1b3dfde386b7c72b8f5430dc40eee538eb40c948
Merge: 7271484 31409c9
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 17 08:44:27 2015 -0700
Merge branch 'core-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull RCU fix from Ingo Molnar:
"Fix a false positive warning"
* 'core-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
security/device_cgroup: Fix RCU_LOCKDEP_WARN() condition
commit 4be9c1fc3df9c3b03c9bde8aec5e44fc73996a3f
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Wed Sep 16 21:24:47 2015 +0800
libnvdimm: btt_devs: Fix locking in namespace_store
Always take device_lock() before nvdimm_bus_lock() to prevent deadlock.
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit efe4d36a75d4dfd1a9c161b2bbf9b90beb4d9648
Merge: 9bf9fde ef74891
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Thu Sep 17 16:51:59 2015 +0200
Merge tag 'kvm-arm-for-4.3-rc2-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master
Second set of KVM/ARM changes for 4.3-rc2
- Workaround for a Cortex-A57 erratum
- Bug fix for the debugging infrastructure
- Fix for 32bit guests with more than 4GB of address space
on a 32bit host
- A number of fixes for the (unusual) case when we don't use
the in-kernel GIC emulation
- Removal of ThumbEE handling on arm64, since these have been
dropped from the architecture before anyone actually ever
built a CPU
- Remove the KVM_ARM_MAX_VCPUS limitation which has become
fairly pointless
commit 590f07874e8e3c83729b919312c65aea2533c8cf
Author: Junichi Nomura <j-nomura@xxxxxxxxxxxxx>
Date: Mon Sep 14 07:38:36 2015 +0000
x86/pci/dma: Fix gfp flags for coherent DMA memory allocation
Commit 6894258eda2f reversed the order of gfp_flags adjustment in
dma_alloc_attrs() for x86 [arch/x86/kernel/pci-dma.c] As a result,
relevant flags set by dma_alloc_coherent_gfp_flags() are just
discarded and cause coherent DMA memory allocation failure on some
devices.
Fixes: 6894258eda2f ("dma-mapping: consolidate
dma_{alloc,free}_{attrs,coherent}")
Signed-off-by: Jun'ichi Nomura <j-nomura@xxxxxxxxxxxxx>
Tested-by: Tony Luck <tony.luck@xxxxxxxxx>
Acked-by: Christoph Hellwig <hch@xxxxxx>
Link:
http://lkml.kernel.org/r/20150914073834.GA13077@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 6fa92e2bcf6390e64895b12761e851c452d87bd8
Author: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>
Date: Wed Sep 9 15:41:52 2015 +0800
staging: ion: fix corruption of ion_import_dma_buf
we found this issue but still exit in lastest kernel. Simply
keep ion_handle_create under mutex_lock to avoid this race.
WARNING: CPU: 2 PID: 2648 at drivers/staging/android/ion/ion.c:512
ion_handle_add+0xb4/0xc0()
ion_handle_add: buffer already found.
Modules linked in: iwlmvm iwlwifi mac80211 cfg80211 compat
CPU: 2 PID: 2648 Comm: TimedEventQueue Tainted: G W 3.14.0 #7
00000000 00000000 9a3efd2c 80faf273 9a3efd6c 9a3efd5c 80935dc9 811d7fd3
9a3efd88 00000a58 812208a0 00000200 80e128d4 80e128d4 8d4ae00c a8cd8600
a8cd8094 9a3efd74 80935e0e 00000009 9a3efd6c 811d7fd3 9a3efd88 9a3efd9c
Call Trace:
[<80faf273>] dump_stack+0x48/0x69
[<80935dc9>] warn_slowpath_common+0x79/0x90
[<80e128d4>] ? ion_handle_add+0xb4/0xc0
[<80e128d4>] ? ion_handle_add+0xb4/0xc0
[<80935e0e>] warn_slowpath_fmt+0x2e/0x30
[<80e128d4>] ion_handle_add+0xb4/0xc0
[<80e144cc>] ion_import_dma_buf+0x8c/0x110
[<80c517c4>] reg_init+0x364/0x7d0
[<80993363>] ? futex_wait+0x123/0x210
[<80992e0e>] ? get_futex_key+0x16e/0x1e0
[<8099308f>] ? futex_wake+0x5f/0x120
[<80c51e19>] vpu_service_ioctl+0x1e9/0x500
[<80994aec>] ? do_futex+0xec/0x8e0
[<80971080>] ? prepare_to_wait_event+0xc0/0xc0
[<80c51c30>] ? reg_init+0x7d0/0x7d0
[<80a22562>] do_vfs_ioctl+0x2d2/0x4c0
[<80b198ad>] ? inode_has_perm.isra.41+0x2d/0x40
[<80b199cf>] ? file_has_perm+0x7f/0x90
[<80b1a5f7>] ? selinux_file_ioctl+0x47/0xf0
[<80a227a8>] SyS_ioctl+0x58/0x80
[<80fb45e8>] syscall_call+0x7/0x7
[<80fb0000>] ? mmc_do_calc_max_discard+0xab/0xe4
Fixes: 83271f626 ("ion: hold reference to handle...")
Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>
Reviewed-by: Laura Abbott <labbott@xxxxxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx> # 3.14+
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 989e503c929d82f34a3cae51e98cbc2745e7472c
Author: Mark Hounschell <markh@xxxxxxxxxx>
Date: Tue Sep 15 08:56:10 2015 -0400
staging: dgap: Remove myself from the MAINTAINERS file
Removes myself from the MAINTAINERS file for the dgap driver.
There appears to be no way to get the firmware files required
by the dgap driver into the linux-firmware tree. The dgap
driver is useless wihtout this firmware. This product is
considered an obsolete product by Digi. They will not respond
to an inquiry concerning it or its firmware.
Signed-off-by: Mark Hounschell <markh@xxxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 981473c74c0930190aa4651efebb9bb1f784416e
Author: Christian Gromm <christian.gromm@xxxxxxxxxxxxx>
Date: Wed Sep 16 17:33:35 2015 +0200
staging: most: Add dependency to HAS_IOMEM
This patch prevents the module hdm_dim2 from breaking the build in case
HAS_IOMEM is not configured.
Reported-by: <fengguang.wu@xxxxxxxxx>
Signed-off-by: Christian Gromm <christian.gromm@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit f5ab93fa5e79bacd83f0866ad5c3950eee279b66
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Wed Sep 16 22:16:38 2015 +0530
staging: unisys: remove reference of visorutil
commit 53490b545cb0 ("staging: unisys: move periodic_work.c into the
visorbus directory")
has removed the visorutil directory but missed removing the reference in
the Makefile.
Fixes: 53490b545cb0 ("staging: unisys: move periodic_work.c into the
visorbus directory")
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 2110d70c5e58326a10e93cfefdc0b3686e2ada12
Author: Borislav Petkov <bp@xxxxxxx>
Date: Sat Aug 8 10:46:02 2015 +0200
cpu/cacheinfo: Fix teardown path
Philip Müller reported a hang when booting 32-bit 4.1 kernel on an AMD
box. A fragment of the splat was enough to pinpoint the issue:
task: f58e0000 ti: f58e8000 task.ti: f58e800
EIP: 0060:[<c135a903>] EFLAGS: 00010206 CPU: 0
EIP is at free_cache_attributes+0x83/0xd0
EAX: 00000001 EBX: f589d46c ECX: 00000090 EDX: 360c2000
ESI: 00000000 EDI: c1724a80 EBP: f58e9ec0 ESP: f58e9ea0
DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
CR0: 8005003b CR2: 000000ac CR3: 01731000 CR4: 000006d0
cache_shared_cpu_map_setup() did check sibling CPUs cacheinfo descriptor
while the respective teardown path cache_shared_cpu_map_remove() didn't.
Fix that.
>From tglx's version: to be on the safe side, move the cacheinfo
descriptor check to free_cache_attributes(), thus cleaning up the
hotplug path a little and making this even more robust.
Reported-and-tested-by: Philip Müller <philm@xxxxxxxxxxx>
Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Acked-by: Sudeep Holla <sudeep.holla@xxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # 4.1
Cc: Andre Przywara <andre.przywara@xxxxxxx>
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: manjaro-dev@xxxxxxxxxxx
Cc: Philip Müller <philm@xxxxxxxxxxx>
Link: https://lkml.kernel.org/r/55B47BB8.6080202@xxxxxxxxxxx
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ef748917b529847277f07c98c55e1c0ce416449f
Author: Ming Lei <ming.lei@xxxxxxxxxxxxx>
Date: Wed Sep 2 14:31:21 2015 +0800
arm/arm64: KVM: Remove 'config KVM_ARM_MAX_VCPUS'
This patch removes config option of KVM_ARM_MAX_VCPUS,
and like other ARCHs, just choose the maximum allowed
value from hardware, and follows the reasons:
1) from distribution view, the option has to be
defined as the max allowed value because it need to
meet all kinds of virtulization applications and
need to support most of SoCs;
2) using a bigger value doesn't introduce extra memory
consumption, and the help text in Kconfig isn't accurate
because kvm_vpu structure isn't allocated until request
of creating VCPU is sent from QEMU;
3) the main effect is that the field of vcpus[] in 'struct kvm'
becomes a bit bigger(sizeof(void *) per vcpu) and need more cache
lines to hold the structure, but 'struct kvm' is one generic struct,
and it has worked well on other ARCHs already in this way. Also,
the world switch frequecy is often low, for example, it is ~2000
when running kernel building load in VM from APM xgene KVM host,
so the effect is very small, and the difference can't be observed
in my test at all.
Cc: Dann Frazier <dann.frazier@xxxxxxxxxxxxx>
Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxxxxx>
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 34c3faa353db8f5d3ce9966cf854d5643c64c4db
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Tue Sep 15 17:15:33 2015 +0100
arm64: KVM: Remove all traces of the ThumbEE registers
Although the ThumbEE registers and traps were present in earlier
versions of the v8 architecture, it was retrospectively removed and so
we can do the same.
Whilst this breaks migrating a guest started on a previous version of
the kernel, it is much better to kill these (non existent) registers
as soon as possible.
Reviewed-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
[maz: added commend about migration]
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 688bc577ac42ae3d07c889a1f0a72f0b23763d58
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Wed Sep 16 16:18:59 2015 +0100
arm: KVM: Disable virtual timer even if the guest is not using it
When running a guest with the architected timer disabled (with QEMU and
the kernel_irqchip=off option, for example), it is important to make
sure the timer gets turned off. Otherwise, the guest may try to
enable it anyway, leading to a screaming HW interrupt.
The fix is to unconditionally turn off the virtual timer on guest
exit.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit c4cbba9fa078f55d9f6d081dbb4aec7cf969e7c7
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Wed Sep 16 16:18:59 2015 +0100
arm64: KVM: Disable virtual timer even if the guest is not using it
When running a guest with the architected timer disabled (with QEMU and
the kernel_irqchip=off option, for example), it is important to make
sure the timer gets turned off. Otherwise, the guest may try to
enable it anyway, leading to a screaming HW interrupt.
The fix is to unconditionally turn off the virtual timer on guest
exit.
Cc: stable@xxxxxxxxxxxxxxx
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 96d4ee8aaa3cfbfadf137904f3696a9a84fab2d3
Author: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
Date: Mon Sep 7 12:15:56 2015 -0400
s390/s390x: allocate sys_membarrier system call number
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
CC: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
CC: linux-api@xxxxxxxxxxxxxxx
CC: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
CC: linux-s390@xxxxxxxxxxxxxxx
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 3dc636b2dafbf05b86decc2a55989c3261ffd116
Author: Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx>
Date: Tue Sep 15 18:09:20 2015 +0200
s390/configs//zfcpdump_defconfig: Remove CONFIG_MEMSTICK
This config option is completely irrelevant for zfcpdump and
unfortunately causes a kernel panic on recent kernels in
"mspro_block_init()/driver_register()".
Signed-off-by: Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 022435713c0391020b55706c5b80fa1be44ba321
Author: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Date: Wed Sep 9 09:39:58 2015 +0200
s390: wire up userfaultfd system call
Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 61cc37906b45534fcc2bea03c17e135ec010b624
Author: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Date: Thu Sep 10 11:18:20 2015 +0200
s390/vtime: correct scaled cputime for SMT
The scaled cputime is supposed to be derived from the normal per-thread
cputime by dividing it with the average thread density in the last
interval.
The calculation of the scaling values for the average thread density is
incorrect. The current, incorrect calculation:
Ci = cycle count with i active threads
T = unscaled cputime, sT = scaled cputime
sT = T * (C1 + C2 + ... + Cn) / (1*C1 + 2*C2 + ... + n*Cn)
The calculation happens to yield the correct numbers for the simple cases
with only one Ci value not zero. But for cases with multiple Ci values not
zero it fails. E.g. on a SMT-2 system with one thread active half the time
and two threads active for the other half of the time it fails, the
scaling
factor should be 3/4 but the formula gives 2/3.
The correct formula is
sT = T * (C1/1 + C2/2 + ... + Cn/n) / (C1 + C2 + ... + Cn)
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 58f8e9da33eb0104f5bee3e8b3ca44e1583c78b9
Author: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>
Date: Mon Sep 7 10:52:42 2015 +0200
s390/cpum_cf: Corrected return code for unauthorized counter sets
Previously, the cpum_cf PMU returned -EPERM if a counter is requested and
the counter set to which the counter belongs is not authorized. According
to the perf_event_open() system call manual, an error code of EPERM
indicates
an unsupported exclude setting or CAP_SYS_ADMIN is missing.
Use ENOENT to indicate that particular counters are not available when the
counter set which contains the counter is not authorized. For generic
events,
this might trigger a fall back, for example, to a software event.
Signed-off-by: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 8d4bd0ed0439dfc780aab801a085961925ed6838
Author: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Date: Tue Sep 8 15:25:39 2015 +0200
s390/compat: correct uc_sigmask of the compat signal frame
The uc_sigmask in the ucontext structure is an array of words to keep
the 64 signal bits (or 1024 if you ask glibc but the kernel sigset_t
only has 64 bits).
For 64 bit the sigset_t contains a single 8 byte word, but for 31 bit
there are two 4 byte words. The compat signal handler code uses a
simple copy of the 64 bit sigset_t to the 31 bit compat_sigset_t.
As s390 is a big-endian architecture this is incorrect, the two words
in the 31 bit sigset_t array need to be swapped.
Cc: <stable@xxxxxxxxxxxxxxx>
Reported-by: Stefan Liebler <stli@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 9380cf5a884e237fc0e2571d5adf0b43bb4412c8
Author: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Date: Wed Sep 9 13:15:00 2015 +0200
s390: fix floating point register corruption
The critical section cleanup code misses to add the offset of the
thread_struct to the task address.
Therefore, if the critical section code gets executed, it may corrupt
the task struct or restore the contents of the floating point registers
from the wrong memory location.
Fixes d0164ee20d "s390/kernel: remove save_fpu_regs() parameter and use
__LC_CURRENT instead".
Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Reviewed-by: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 88d64253785936d75323c74e7126d180e26de560
Author: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Date: Tue Sep 8 13:59:08 2015 +0200
s390/hibernate: fix save and restore of vector registers
The swsusp_arch_suspend()/swsusp_arch_resume() functions currently only
save and restore the floating point registers. If the task that started
the hibernation process is using vector registers they can get lost.
To fix this just call save_fpu_regs in swsusp_arch_suspend(), the restore
will happen automatically on return to user space.
Reported-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit ad5001cc7cdf9aaee5eb213fdee657e4a3c94776
Author: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
Date: Thu Sep 17 13:37:00 2015 +0200
netfilter: nf_log: wait for rcu grace after logger unregistration
The nf_log_unregister() function needs to call synchronize_rcu() to make
sure
that the objects are not dereferenced anymore on module removal.
Fixes: 5962815a6a56 ("netfilter: nf_log: use an array of loggers instead
of list")
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit df057cc7b4fa59e9b55f07ffdb6c62bf02e99a00
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Tue Mar 17 12:15:02 2015 +0000
arm64: errata: add module build workaround for erratum #843419
Cortex-A53 processors <= r0p4 are affected by erratum #843419 which can
lead to a memory access using an incorrect address in certain sequences
headed by an ADRP instruction.
There is a linker fix to generate veneers for ADRP instructions, but
this doesn't work for kernel modules which are built as unlinked ELF
objects.
This patch adds a new config option for the erratum which, when enabled,
builds kernel modules with the mcmodel=large flag. This uses absolute
addressing for all kernel symbols, thereby removing the use of ADRP as
a PC-relative form of addressing. The ADRP relocs are removed from the
module loader so that we fail to load any potentially affected modules.
Cc: <stable@xxxxxxxxxxxxxxx>
Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit bdec97a855ef1e239f130f7a11584721c9a1bf04
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Tue Sep 15 12:07:06 2015 +0100
arm64: compat: fix vfp save/restore across signal handlers in big-endian
When saving/restoring the VFP registers from a compat (AArch32)
signal frame, we rely on the compat registers forming a prefix of the
native register file and therefore make use of copy_{to,from}_user to
transfer between the native fpsimd_state and the compat_vfp_sigframe.
Unfortunately, this doesn't work so well in a big-endian environment.
Our fpsimd save/restore code operates directly on 128-bit quantities
(Q registers) whereas the compat_vfp_sigframe represents the registers
as an array of 64-bit (D) registers. The architecture packs the compat D
registers into the Q registers, with the least significant bytes holding
the lower register. Consequently, we need to swap the 64-bit halves when
converting between these two representations on a big-endian machine.
This patch replaces the __copy_{to,from}_user invocations in our
compat VFP signal handling code with explicit __put_user loops that
operate on 64-bit values and swap them accordingly.
Cc: <stable@xxxxxxxxxxxxxxx>
Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit e56d82a116176f7af9d642b560abbbd3a2b68013
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Fri Sep 11 15:31:24 2015 +0100
arm64: cpu hotplug: ensure we mask out CPU_TASKS_FROZEN in notifiers
We have a couple of CPU hotplug notifiers for resetting the CPU debug
state to a sane value when a CPU comes online.
This patch ensures that we mask out CPU_TASKS_FROZEN so that we don't
miss any online events occuring due to suspend/resume.
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit d8949aad3eab5d396f4fefcd581773bf07b9a79e
Author: Johan Hedberg <johan.hedberg@xxxxxxxxx>
Date: Fri Sep 4 12:22:46 2015 +0300
Bluetooth: Delay check for conn->smp in smp_conn_security()
There are several actions that smp_conn_security() might make that do
not require a valid SMP context (conn->smp pointer). One of these
actions is to encrypt the link with an existing LTK. If the SMP
context wasn't initialized properly we should still allow the
independent actions to be done, i.e. the check for the context should
only be done at the last possible moment.
Reported-by: Chuck Ebbert <cebbert.lkml@xxxxxxxxx>
Signed-off-by: Johan Hedberg <johan.hedberg@xxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # 4.0+
commit b07bb761cf6a333b2108cdbe4ffee66407189bb1
Author: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Date: Wed Sep 16 08:38:08 2015 -0700
drm/vmwgfx: Only build on X86
ioremap_cache() is currently not available on some architectures.
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
commit 2338f73d407d5abe2036d92716ba25ef5279c3d2
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Mon Sep 7 14:25:01 2015 +0200
leds:lp55xx: Correct Kconfig dependency for f/w user helper
The commit [b67893206fc0: leds:lp55xx: fix firmware loading error]
tries to address the firmware file handling with user helper, but it
sets a wrong Kconfig CONFIG_FW_LOADER_USER_HELPER_FALLBACK. Since the
wrong option was enabled, the system got a regression -- it suffers
from the unexpected long delays for non-present firmware files.
This patch corrects the Kconfig dependency to the right one,
CONFIG_FW_LOADER_USER_HELPER. This doesn't change the fallback
behavior but only enables UMH when needed.
Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=944661
Fixes: b67893206fc0 ('leds:lp55xx: fix firmware loading error')
Cc: <stable@xxxxxxxxxxxxxxx> # v4.2+
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 35bfe456be3ae1e11dd63e83096c95d0c6429c51
Author: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
Date: Mon Sep 7 17:06:05 2015 +0200
leds: leds-ipaq-micro: Add LEDS_CLASS dependency
Fix missing Kconfig LEDS_CLASS dependency.
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 305c324f43a2601cbeb894c17b68c8a8f3c13387
Author: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
Date: Fri Sep 4 12:27:09 2015 +0200
leds: aat1290: add 'static' modifier to init_mm_current_scale
Function init_mm_current_scale is used only locally. Make it static then.
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 98f9cc7ffcf2cb5b695208a4cd4927bb41c550f3
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 23:36:59 2015 +0200
leds: leds-ns2: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit e3df661ff3243ce4d1719c212ee88521e0e7811b
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 23:36:41 2015 +0200
leds: max77693: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 3682c7bdf5065b99638c56adc1be1507ed5c0f0e
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 23:36:15 2015 +0200
leds: ktd2692: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 01736f07cad613937db13f7483b04e8f2af81883
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 23:35:55 2015 +0200
leds: bcm6358: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 6528ca19c1c8d4756b534a1ce9df4c3849f9dd04
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 23:35:38 2015 +0200
leds: bcm6328: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 93a51aa406f61985d12b60f9860f949b4bf7e43d
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 23:35:07 2015 +0200
leds: aat1290: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit aa1471a301f4c0a5988ebcafc8954990335dcf2c
Merge: 6ff33f3 762982d
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 16 21:33:13 2015 -0700
Merge tag 'fixes-for-v4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
Felipe writes:
usb: fixes for v4.3-rc2
First series of fixes for v4.3-rc cycle. The major points are
a fix to a regression which would let gadget driver disable
an endpoint that's already disabled and a fix to MUSB to make
sure IRQs are masked when we're going to suspend and unmasked
on resume.
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 400c47d81ca383fc87d5a3937b234e23e26909fb
Author: LEROY Christophe <christophe.leroy@xxxxxx>
Date: Wed Sep 16 12:04:53 2015 +0200
powerpc32: memset: only use dcbz once cache is enabled
memset() uses instruction dcbz to speed up clearing by not wasting time
loading cache line with data that will be overwritten.
Some platform like mpc52xx do no have cache active at startup and
can therefore not use memset(). Allthough no part of the code
explicitly uses memset(), GCC may make calls to it.
This patch modifies memset() such that at startup, memset()
unconditionally skip the optimised bloc that uses dcbz instruction.
Once the initial MMU is set up, in machine_init() we patch memset()
by replacing this inconditional jump by a NOP
Tested-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Christophe Leroy <christophe.leroy@xxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 1cd03890ea64795e53f17a94928cca22495acb2a
Author: LEROY Christophe <christophe.leroy@xxxxxx>
Date: Wed Sep 16 12:04:51 2015 +0200
powerpc32: memcpy: only use dcbz once cache is enabled
memcpy() uses instruction dcbz to speed up copy by not wasting time
loading cache line with data that will be overwritten.
Some platform like mpc52xx do no have cache active at startup and
can therefore not use memcpy(). Allthough no part of the code
explicitly uses memcpy(), GCC makes calls to it.
This patch modifies memcpy() such that at startup, memcpy()
unconditionally jumps to generic_memcpy() which doesn't use
the dcbz instruction.
Once the initial MMU is set up, in machine_init() we patch memcpy()
by replacing this inconditional jump by a NOP
Reported-by: Michal Sojka <sojkam1@xxxxxxxxxxx>
Tested-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Christophe Leroy <christophe.leroy@xxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 84ad1bab0eebd2e2b2dd3c3db7b88cade22a6de1
Author: Roger Quadros <rogerq@xxxxxx>
Date: Mon Jul 27 16:10:17 2015 +0300
ARM: dts: am57xx-beagle-x15: use palmas-usb for USB2
The VBUS line of USB2 is connected to VBUS detect logic on
the PMIC. Use the palmas-usb driver to report VBUS events
to the USB driver.
As the palmas-usb driver supports GPIO based ID reporting
provide the GPIO for ID pin as well.
Signed-off-by: Roger Quadros <rogerq@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit f4746176f95a0d06f07ea83191375d374611e170
Author: Grazvydas Ignotas <notasas@xxxxxxxxx>
Date: Wed Sep 16 01:36:20 2015 +0300
ARM: omap2plus_defconfig: enable GPIO_PCA953X
This enables tca6424a GPIO expander driver that in turn enables
TPD12S015 HDMI ESD protection and level shifter on OMAP5 uevm.
In other words, it makes HDMI work on OMAP5 uevm.
Signed-off-by: Grazvydas Ignotas <notasas@xxxxxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 1dbdad75074d16c3e3005180f81a01cdc04a7872
Author: Grazvydas Ignotas <notasas@xxxxxxxxx>
Date: Wed Sep 16 01:34:31 2015 +0300
ARM: dts: omap5-uevm.dts: fix i2c5 pinctrl offsets
The i2c5 pinctrl offsets are wrong. If the bootloader doesn't set the
pins up, communication with tca6424a doesn't work (controller timeouts)
and it is not possible to enable HDMI.
Fixes: 9be495c42609 ("ARM: dts: omap5-evm: Add I2c pinctrl data")
Signed-off-by: Grazvydas Ignotas <notasas@xxxxxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 08224a7d410699abce42674ee15a7cf37d54f340
Author: Dave Gerlach <d-gerlach@xxxxxx>
Date: Tue Sep 15 14:47:34 2015 -0500
ARM: OMAP2+: AM43XX: Enable autoidle for clks in am43xx_init_late
Add omap2_clk_enable_autoidle_all to am43xx_init_late otherwise the call
to omap2_clk_disable_autoidle_all in am43xx_init_early may cause some
clocks to always stay active and prevent low power mode transitions.
Signed-off-by: Dave Gerlach <d-gerlach@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 5005296e7408c055a02fc8be9f62218cb4b52b13
Author: Nishanth Menon <nm@xxxxxx>
Date: Thu Sep 3 14:23:45 2015 -0500
ARM: dts: am57xx-beagle-x15: Update Phy supplies
Originally, all the SoC PHY rails were supplied by LDO3. However, as a
result of characterization, it was determined that this posed a risk in
extreme load conditions. Hence the PHY rails are split between two
different LDOs. Update the related node as a result
LDO3/VDDA_1V8_PHYA supplies vdda_usb1, vdda_usb2, vdda_sata, vdda_usb3
LDO4/VDDA_1V8_PHYB supplies vdda_pcie1, vdda_pcie0, vdda_hdmi, vdda_pcie
NOTE: We break compatibility with pre-production boards with this change
since, the PMIC LDO4 is disabled at OTP level.
The new configuration is the plan of record and all pre-production
boards are supposed to be replaced with the latest boards matching the
mentioned configuration.
Some very few 10 something boards have been created and
stopped production till the latest modifications were done (PMIC USB
interrupt, LDO4 etc) - and all of those boards are now getting
scrapped.. If there are any (as per tracking information, there should
not be any), TI should be contacted to have them replaced.
Signed-off-by: Nishanth Menon <nm@xxxxxx>
[tony@xxxxxxxxxxx: updated commit about these being TI internal protos]
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 7ae85dc7687c7e7119053d83d02c560ea217b772
Author: Doug Anderson <armlinux@xxxxxxxxxxxxxx>
Date: Wed Aug 26 18:26:49 2015 +0100
ARM: 8425/1: kgdb: Don't try to stop the machine when setting breakpoints
In (23a4e40 arm: kgdb: Handle read-only text / modules) we moved to
using patch_text() to set breakpoints so that we could handle the case
when we had CONFIG_DEBUG_RODATA. That patch used patch_text().
Unfortunately, patch_text() assumes that we're not in atomic context
when it runs since it needs to grab a mutex and also wait for other
CPUs to stop (which it does with a completion).
This would result in a stack crawl if you had
CONFIG_DEBUG_ATOMIC_SLEEP and tried to set a breakpoint in kgdb. The
crawl looked something like:
BUG: scheduling while atomic: swapper/0/0/0x00010007
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.2.0-rc7-00133-geb63b34 #1073
Hardware name: Rockchip (Device Tree)
(unwind_backtrace) from [<c00133d4>] (show_stack+0x20/0x24)
(show_stack) from [<c05400e8>] (dump_stack+0x84/0xb8)
(dump_stack) from [<c004913c>] (__schedule_bug+0x54/0x6c)
(__schedule_bug) from [<c054065c>] (__schedule+0x80/0x668)
(__schedule) from [<c0540cfc>] (schedule+0xb8/0xd4)
(schedule) from [<c0543a3c>] (schedule_timeout+0x2c/0x234)
(schedule_timeout) from [<c05417c0>] (wait_for_common+0xf4/0x188)
(wait_for_common) from [<c0541874>] (wait_for_completion+0x20/0x24)
(wait_for_completion) from [<c00a0104>] (__stop_cpus+0x58/0x70)
(__stop_cpus) from [<c00a0580>] (stop_cpus+0x3c/0x54)
(stop_cpus) from [<c00a06c4>] (__stop_machine+0xcc/0xe8)
(__stop_machine) from [<c00a0714>] (stop_machine+0x34/0x44)
(stop_machine) from [<c00173e8>] (patch_text+0x28/0x34)
(patch_text) from [<c001733c>] (kgdb_arch_set_breakpoint+0x40/0x4c)
(kgdb_arch_set_breakpoint) from [<c00a0d68>]
(kgdb_validate_break_address+0x2c/0x60)
(kgdb_validate_break_address) from [<c00a0e90>]
(dbg_set_sw_break+0x1c/0xdc)
(dbg_set_sw_break) from [<c00a2e88>] (gdb_serial_stub+0x9c4/0xba4)
(gdb_serial_stub) from [<c00a11cc>] (kgdb_cpu_enter+0x1f8/0x60c)
(kgdb_cpu_enter) from [<c00a18cc>] (kgdb_handle_exception+0x19c/0x1d0)
(kgdb_handle_exception) from [<c0016f7c>]
(kgdb_compiled_brk_fn+0x30/0x3c)
(kgdb_compiled_brk_fn) from [<c00091a4>] (do_undefinstr+0x1a4/0x20c)
(do_undefinstr) from [<c001400c>] (__und_svc_finish+0x0/0x34)
It turns out that when we're in kgdb all the CPUs are stopped anyway
so there's no reason we should be calling patch_text(). We can
instead directly call __patch_text() which assumes that CPUs have
already been stopped.
Fixes: 23a4e4050ba9 ("arm: kgdb: Handle read-only text / modules")
Reported-by: Aapo Vienamo <avienamo@xxxxxxxxxx>
Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
Reviewed-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Acked-by: Kees Cook <keescook@xxxxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 90cde5584a34e210850728bebee4c6fb1a7124ba
Author: Andre Przywara <andre.przywara@xxxxxxx>
Date: Mon Sep 14 17:49:02 2015 +0100
ARM: 8437/1: dma-mapping: fix build warning with new DMA_ERROR_CODE
definition
Commit 96231b2686b5: ("ARM: 8419/1: dma-mapping: harmonize definition
of DMA_ERROR_CODE") changed the definition of DMA_ERROR_CODE to use
dma_addr_t, which makes the compiler barf on assigning this to an
"int" variable on ARM with LPAE enabled:
*************
In file included from /src/linux/include/linux/dma-mapping.h:86:0,
from /src/linux/arch/arm/mm/dma-mapping.c:21:
/src/linux/arch/arm/mm/dma-mapping.c: In function
'__iommu_create_mapping':
/src/linux/arch/arm/include/asm/dma-mapping.h:16:24: warning:
overflow in implicit constant conversion [-Woverflow]
#define DMA_ERROR_CODE (~(dma_addr_t)0x0)
^
/src/linux/arch/arm/mm/dma-mapping.c:1252:15: note: in expansion of
macro DMA_ERROR_CODE'
int i, ret = DMA_ERROR_CODE;
^
*************
Remove the actually unneeded initialization of "ret" in
__iommu_create_mapping() and move the variable declaration inside the
for-loop to make the scope of this variable more clear.
Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 12fc7306e6ffae4e86680892f2286063d7d6eae7
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Wed Sep 16 11:08:49 2015 +0100
ARM: get rid of needless #if in signal handling code
Remove the #if statement which caused trouble for kernels that support
both ARMv6 and ARMv7. Older architectures do not implement these bits,
so it should be safe to always clear them.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 9054a31d603ea82c6ed4914170a8708812a16324
Author: Mans Rullgard <mans@xxxxxxxxx>
Date: Sun Feb 15 12:33:49 2015 +0000
clk: check for invalid parent index of orphans in __clk_init()
If a mux clock is initialised (by hardware or firmware) with an
invalid parent, its ->get_parent() can return an out of range
index. For example, the generic mux clock attempts to return
-EINVAL, which due to the u8 return type ends up a rather large
number. Using this index with the parent_names[] array results
in an invalid pointer and (usually) a crash in the following
strcmp().
This patch adds a check for the parent index being in range,
ignoring clocks reporting invalid values.
Signed-off-by: Mans Rullgard <mans@xxxxxxxxx>
Tested-by: Rhyland Klein <rklein@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit e1595d89ae8180e0d3815cc75336ac3484de0aa0
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Thu Sep 10 15:55:21 2015 +0200
clk: tegra: dfll: Properly protect OPP list
The OPP list needs to be protected against concurrent accesses. Using
simple RCU read locks does the trick and gets rid of the following
lockdep warning:
===============================
[ INFO: suspicious RCU usage. ]
4.2.0-next-20150908 #1 Not tainted
-------------------------------
drivers/base/power/opp.c:460 Missing rcu_read_lock() or
dev_opp_list_lock protection!
other info that might help us debug this:
rcu_scheduler_active = 1, debug_locks = 0
4 locks held by kworker/u8:0/6:
#0: ("%s""deferwq"){++++.+}, at: [<c0040d8c>]
process_one_work+0x118/0x4bc
#1: (deferred_probe_work){+.+.+.}, at: [<c0040d8c>]
process_one_work+0x118/0x4bc
#2: (&dev->mutex){......}, at: [<c03b8194>] __device_attach+0x20/0x118
#3: (prepare_lock){+.+...}, at: [<c054bc08>]
clk_prepare_lock+0x10/0xf8
stack backtrace:
CPU: 2 PID: 6 Comm: kworker/u8:0 Not tainted 4.2.0-next-20150908 #1
Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
Workqueue: deferwq deferred_probe_work_func
[<c001802c>] (unwind_backtrace) from [<c00135a4>] (show_stack+0x10/0x14)
[<c00135a4>] (show_stack) from [<c02a8418>] (dump_stack+0x94/0xd4)
[<c02a8418>] (dump_stack) from [<c03c6f6c>]
(dev_pm_opp_find_freq_ceil+0x108/0x114)
[<c03c6f6c>] (dev_pm_opp_find_freq_ceil) from [<c0551a3c>]
(dfll_calculate_rate_request+0xb8/0x170)
[<c0551a3c>] (dfll_calculate_rate_request) from [<c0551b10>]
(dfll_clk_round_rate+0x1c/0x2c)
[<c0551b10>] (dfll_clk_round_rate) from [<c054de2c>]
(clk_calc_new_rates+0x1b8/0x228)
[<c054de2c>] (clk_calc_new_rates) from [<c054e44c>]
(clk_core_set_rate_nolock+0x44/0xac)
[<c054e44c>] (clk_core_set_rate_nolock) from [<c054e4d8>]
(clk_set_rate+0x24/0x34)
[<c054e4d8>] (clk_set_rate) from [<c0512460>]
(tegra124_cpufreq_probe+0x120/0x230)
[<c0512460>] (tegra124_cpufreq_probe) from [<c03b9cbc>]
(platform_drv_probe+0x44/0xac)
[<c03b9cbc>] (platform_drv_probe) from [<c03b84c8>]
(driver_probe_device+0x218/0x304)
[<c03b84c8>] (driver_probe_device) from [<c03b69b0>]
(bus_for_each_drv+0x60/0x94)
[<c03b69b0>] (bus_for_each_drv) from [<c03b8228>]
(__device_attach+0xb4/0x118)
ata1: SATA link down (SStatus 0 SControl 300)
[<c03b8228>] (__device_attach) from [<c03b77c8>]
(bus_probe_device+0x88/0x90)
[<c03b77c8>] (bus_probe_device) from [<c03b7be8>]
(deferred_probe_work_func+0x58/0x8c)
[<c03b7be8>] (deferred_probe_work_func) from [<c0040dfc>]
(process_one_work+0x188/0x4bc)
[<c0040dfc>] (process_one_work) from [<c004117c>]
(worker_thread+0x4c/0x4f4)
[<c004117c>] (worker_thread) from [<c0047230>] (kthread+0xe4/0xf8)
[<c0047230>] (kthread) from [<c000f7d0>] (ret_from_fork+0x14/0x24)
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Fixes: c4fe70ada40f ("clk: tegra: Add closed loop support for the DFLL")
[vince.h@xxxxxxxxxx: Unlock rcu on error path]
Signed-off-by: Vince Hsu <vince.h@xxxxxxxxxx>
[sboyd@xxxxxxxxxxxxxx: Dropped second hunk that nested the rcu
read lock unnecessarily]
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 02d8dabc50f94353075f2f62b1047c1306e8bf92
Author: Stephane Eranian <eranian@xxxxxxxxxx>
Date: Thu Sep 3 15:23:40 2015 +0200
perf stat: Fix per-pkg event reporting bug
Per-pkg events need to be captured once per processor socket. The code
in check_per_pkg() ensures only one value per processor package is used.
However there is a problem with this function in case the first CPU of
the package does not measure anything for the per-pkg event, but other
CPUs do.
Consider the following:
$ create cgroup FOO; echo $$ >FOO/tasks; taskset -c 1 noploop &
$ perf stat -a -I 1000 -e intel_cqm/llc_occupancy/ -G FOO sleep 100
1.00000 <not counted> Bytes intel_cqm/llc_occupancy/ FOO
The reason for this is that CPU0 in the cgroup has nothing running on it.
Yet check_per_plg() will mark socket0 as processed and no other event
value will be considered for the socket.
This patch fixes the problem by having check_per_pkg() only consider
events which actually ran.
Signed-off-by: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441286620-10117-1-git-send-email-eranian@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 0f1d08dd6aaf7e9dd1039dce910c1f8ff58ee8c1
Author: Andrew F. Davis <afd@xxxxxx>
Date: Tue Sep 15 15:34:22 2015 -0500
regulator: tps65218: Fix missing zero typo
Add missing zero to value. This will be needed when range checking
is implemented.
Signed-off-by: Andrew F. Davis <afd@xxxxxx>
Acked-by: Dan Murphy <dmurphy@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 3c8f7710c1c44fb650bc29b6ef78ed8b60cfaa28
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Tue Sep 15 20:51:31 2015 +0200
ASoC: fix broken pxa SoC support
The previous fix of pxa library support, which was introduced to fix the
library dependency, broke the previous SoC behavior, where a machine
code binding pxa2xx-ac97 with a coded relied on :
- sound/soc/pxa/pxa2xx-ac97.c
- sound/soc/codecs/XXX.c
For example, the mioa701_wm9713.c machine code is currently broken. The
"select ARM" statement wrongly selects the soc/arm/pxa2xx-ac97 for
compilation, as per an unfortunate fate SND_PXA2XX_AC97 is both declared
in sound/arm/Kconfig and sound/soc/pxa/Kconfig.
Fix this by ensuring that SND_PXA2XX_SOC correctly triggers the correct
pxa2xx-ac97 compilation.
Fixes: 846172dfe33c ("ASoC: fix SND_PXA2XX_LIB Kconfig warning")
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit e26d15f735f570a1178c3bba4d85e6f58e098fdd
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Tue Sep 15 14:46:45 2015 +0200
spi: mediatek: fix wrong error return value on probe
Commit adcbcfea15d62 ("spi: mediatek: fix spi clock usage error")
added a new sel_clk but introduced bugs in the error paths since
the wrong struct clk pointers are passed to PTR_ERR().
Fixes: adcbcfea15d62 ("spi: mediatek: fix spi clock usage error")
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 0243ed44ad4a25dbd2e92ad97e5e12a1a6c72d6c
Author: Geliang Tang <geliangtang@xxxxxxx>
Date: Tue Sep 15 04:59:21 2015 -0700
spi: fix kernel-doc warnings in spi.h
Fix the following 'make htmldocs' warnings:
.//include/linux/spi/spi.h:71: warning: No description found for
parameter 'lock'
.//include/linux/spi/spi.h:71: warning: Excess
struct/union/enum/typedef member 'clock' description in 'spi_statistics'
Signed-off-by: Geliang Tang <geliangtang@xxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 92243b6fc8fcb16bf401b055f7a0ba79f70a4115
Merge: a394d63 6ff33f3
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Wed Sep 16 20:44:25 2015 +0100
Merge tag 'v4.3-rc1' into spi-fix-doc
Linux 4.3-rc1
commit 385877c01361401113c101ef5a80a9f0998e072b
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Tue Sep 1 09:52:21 2015 +0800
ARM: pxa: balloon3: Fix build error
irq_data_get_chip() function does not exist, call irq_desc_get_chip()
instead.
Fixes: 9ec97561aa6d ("ARM/pxa: Prepare balloon3_irq_handler for irq
argument removal")
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
commit c2f58514cfb374d5368c9da945f1765cd48eb0da
Author: Pavel Fedin <p.fedin@xxxxxxxxxxx>
Date: Wed Aug 5 11:53:57 2015 +0100
arm/arm64: KVM: vgic: Check for !irqchip_in_kernel() when mapping
resources
Until b26e5fdac43c ("arm/arm64: KVM: introduce per-VM ops"),
kvm_vgic_map_resources() used to include a check on irqchip_in_kernel(),
and vgic_v2_map_resources() still has it.
But now vm_ops are not initialized until we call kvm_vgic_create().
Therefore kvm_vgic_map_resources() can being called without a VGIC,
and we die because vm_ops.map_resources is NULL.
Fixing this restores QEMU's kernel-irqchip=off option to a working state,
allowing to use GIC emulation in userspace.
Fixes: b26e5fdac43c ("arm/arm64: KVM: introduce per-VM ops")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Pavel Fedin <p.fedin@xxxxxxxxxxx>
[maz: reworked commit message]
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 54c3cf65aefd5e49e58201adb3dc7595c4b3ad9f
Merge: 6ff33f3 60fdcb8
Author: Kevin Hilman <khilman@xxxxxxxxxx>
Date: Wed Sep 16 09:27:24 2015 -0700
Merge tag 'omap-for-v4.3/fixes-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
Merge "omap fixes against v4.3-rc1" from Tony Lindgren:
Fixes for omaps against v4.3-rc1:
- Fix long time regression on beagle for tfp410 pin muxing
- Fix dm814x control base address typo and related Ethernet
phy configuration
- Fix igepv2 Ethernet pinmuxing as only some boards have it
- Fix pbias regulator compatible values as a pending regulator
fix needs those for MMC1 to work properly
- Fix beagle-x15 MMC1 regulator and make pcf857x built-in
- Fix omap5 and dra7 Kconfig options when built as the only
SoCs selected
- Fix PM errata for omap5 and dra7 as they too need it
- Fix phycore mpu voltage
Also included are a few cosmetic fixes:
- Remove unused of_irq macros
- Fix dra7 ethernet name
* tag 'omap-for-v4.3/fixes-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: dts: Fixup model name for HP t410 dts
ARM: dts: DRA7: fix a typo in ethernet
ARM: omap2plus_defconfig: make PCF857x built-in
ARM: dts: Use ti,pbias compatible string for pbias
ARM: OMAP5: Cleanup options for SoC only build
ARM: DRA7: Select missing options for SoC only build
ARM: OMAP2+: board-generic: Remove stale of_irq macros
ARM: OMAP4+: PM: erratum is used by OMAP5 and DRA7 as well
ARM: dts: omap3-igep: Move eth IRQ pinmux to IGEPv2 common dtsi
ARM: dts: am57xx-beagle-x15: Add wakeup irq for mcp79410
ARM: dts: am335x-phycore-som: Fix mpu voltage
ARM: dts: am57xx-beagle-x15: Fix regulator populated in MMC1 dt node
ARM: dts: Fix dm814x control base to properly initialize Ethernet PHY
ARM: dts: omap3-beagle: make i2c3, ddc and tfp410 gpio work again
commit 72714841b705a5b9bccf37ee85a62352bee3a3ef
Merge: 3025510 447e9a4
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 16 09:16:20 2015 -0700
Merge tag 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
Pull rdma driver move from Doug Ledford:
"This is a move only, no functional changes.
I tried to get it in prior to the rc1 release, but we were waiting on
IBM to get back to us that they were OK with the deprecation and
eventual removal of this driver. That OK didn't materialize until
last week, so integration and testing time pushed us beyond the rc1
release.
Summary:
- Move ehca driver to staging/rdma and schedule for deletion"
* tag 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
IB/ehca: Deprecate driver, move to staging, schedule deletion
commit 0c986253b939cc14c69d4adbe2b4121bdf4aa220
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Wed Sep 16 11:51:12 2015 -0400
Revert "sched, cgroup: replace signal_struct->group_rwsem with a global
percpu_rwsem"
This reverts commit d59cfc09c32a2ae31f1c3bc2983a0cd79afb3f14.
d59cfc09c32a ("sched, cgroup: replace signal_struct->group_rwsem with
a global percpu_rwsem") and b5ba75b5fc0e ("cgroup: simplify
threadgroup locking") changed how cgroup synchronizes against task
fork and exits so that it uses global percpu_rwsem instead of
per-process rwsem; unfortunately, the write [un]lock paths of
percpu_rwsem always involve synchronize_rcu_expedited() which turned
out to be too expensive.
Improvements for percpu_rwsem are scheduled to be merged in the coming
v4.4-rc1 merge window which alleviates this issue. For now, revert
the two commits to restore per-process rwsem. They will be re-applied
for the v4.4-rc1 merge window.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Link: http://lkml.kernel.org/g/55F8097A.7000206@xxxxxxxxxx
Reported-by: Christian Borntraeger <borntraeger@xxxxxxxxxx>
Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v4.2+
commit f9f9e7b776142fb1c0782cade004cc8e0147a199
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Wed Sep 16 11:51:12 2015 -0400
Revert "cgroup: simplify threadgroup locking"
This reverts commit b5ba75b5fc0e8404e2c50cb68f39bb6a53fc916f.
d59cfc09c32a ("sched, cgroup: replace signal_struct->group_rwsem with
a global percpu_rwsem") and b5ba75b5fc0e ("cgroup: simplify
threadgroup locking") changed how cgroup synchronizes against task
fork and exits so that it uses global percpu_rwsem instead of
per-process rwsem; unfortunately, the write [un]lock paths of
percpu_rwsem always involve synchronize_rcu_expedited() which turned
out to be too expensive.
Improvements for percpu_rwsem are scheduled to be merged in the coming
v4.4-rc1 merge window which alleviates this issue. For now, revert
the two commits to restore per-process rwsem. They will be re-applied
for the v4.4-rc1 merge window.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Link: http://lkml.kernel.org/g/55F8097A.7000206@xxxxxxxxxx
Reported-by: Christian Borntraeger <borntraeger@xxxxxxxxxx>
Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v4.2+
commit 30255100d7c253c82b596a0768235d5865eee2cf
Merge: 9efeaaf cd1faefa
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 16 08:49:41 2015 -0700
Merge tag 'hwmon-for-linus-v4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
Pull hwmon fixes from Guenter Roeck:
"Two patches for the nct6775 driver: add support for NCT6793D, and fix
swapped registers"
* tag 'hwmon-for-linus-v4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
hwmon: (nct6775) Add support for NCT6793D
hwmon: (nct6775) Swap STEP_UP_TIME and STEP_DOWN_TIME registers for
most chips
commit 9efeaaf9a0c1a27c2be8b2d37c73142555702a4f
Merge: d1291eb fa84b52
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 16 08:07:04 2015 -0700
Merge tag 'pinctrl-v4.3-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control fixes from Linus Walleij:
"This is a first set of pin control fixes for the v4.3 series. Nothing
special to say, business as usual.
- Some IS_ERR() fixes from Julia Lawall. I always wanted the
compiler to catch these but error pointers by nailing them as an
err pointer intrinsic type or something seem to be a "no can do".
In any case, cocinelle is obviously up to the task, better than
bugs staying around.
- Better error handling for NULL GPIO chips.
- Fix a compile error from the big irq desc refactoring. I'm
surprised the fallout wasn't bigger than this"
* tag 'pinctrl-v4.3-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
pinctrl: samsung: s3c24xx: fix syntax error
pinctrl: core: Warn about NULL gpio_chip in
pinctrl_ready_for_gpio_range()
pinctrl: join lines that can be a single line within 80 columns
pinctrl: digicolor: convert null test to IS_ERR test
pinctrl: qcom: ssbi: convert null test to IS_ERR test
commit 9bf9fde2c98ba8362ea1d41d8bd8b32a23776e67
Author: Jason J. Herne <jjherne@xxxxxxxxxxxxxxxxxx>
Date: Wed Sep 16 09:13:50 2015 -0400
KVM: s390: Replace incorrect atomic_or with atomic_andnot
The offending commit accidentally replaces an atomic_clear with an
atomic_or instead of an atomic_andnot in kvm_s390_vcpu_request_handled.
The symptom is that kvm guests on s390 hang on startup.
This patch simply replaces the incorrect atomic_or with atomic_andnot
Fixes: 805de8f43c20 (atomic: Replace atomic_{set,clear}_mask() usage)
Signed-off-by: Jason J. Herne <jjherne@xxxxxxxxxxxxxxxxxx>
Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx>
Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Acked-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit d1291ebd85770299857b355160864cd1a9f6e5e9
Merge: aa57e0b 46d4f7c
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 16 07:58:58 2015 -0700
Merge tag 'gpio-v4.3-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio
Pull GPIO fixes from Linus Walleij:
"This is the first round of GPIO fixes for v4.3. Quite a lot of
patches, but the influx of new stuff in the merge window was equally
big, so I'm not surprised.
- Return value checks and thus nicer errorpath for two drivers.
- Make GPIO_RCAR arch neutral.
- Propagate errors from GPIO chip ->get() vtable call. It turned out
these can actually fail sometimes, especially on slowpath
controllers doing I2C traffic and similar.
- Update documentation to be in sync with the massive changes in the
v4.3 merge window, phew.
- Handle deferred probe properly in the OMAP driver.
- Get rid of surplus MODULE_ALIAS() from sx150x"
* tag 'gpio-v4.3-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
gpio: omap: Fix GPIO numbering for deferred probe
Documentation: gpio: Explain that <function>-gpio is also supported
gpio: omap: Fix gpiochip_add() handling for deferred probe
gpio: sx150x: Remove unnecessary MODULE_ALIAS()
Documentation: gpio: board: describe the con_id parameter
Documentation: gpio: board: add flags parameter to gpiod_get*()
functions
gpio: Propagate errors from chip->get()
gpio: rcar: GPIO_RCAR doesn't relate to ARM
gpio: mxs: need to check return value of irq_alloc_generic_chip
gpio: mxc: need to check return value of irq_alloc_generic_chip
commit ae80a2f2d142b97ec68434313f0263256916683d
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Sat Aug 29 18:01:25 2015 -0500
arm64: Remove ununsed set_irq_flags
Now that all users of set_irq_flags and custom flags are converted to
genirq functions, the ARM specific set_irq_flags can be removed.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit eb811129ed9ea50ef2dfe8a83ddde6a16d1eb8d4
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Sat Aug 29 18:01:24 2015 -0500
ARM: Remove ununsed set_irq_flags
Now that all users of set_irq_flags and custom flags are converted to
genirq functions, the ARM specific set_irq_flags can be removed.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Tested-by: Kevin Hilman <khilman@xxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 3e15135b98ecaa0228eb5dad42be7516cac38aa0
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Sat Aug 29 18:01:23 2015 -0500
sh: Kill off set_irq_flags usage
set_irq_flags is ARM specific with custom flags which have genirq
equivalents. Convert drivers to use the genirq interfaces directly, so we
can kill off set_irq_flags. The translation of flags is as follows:
IRQF_VALID -> !IRQ_NOREQUEST
IRQF_PROBE -> !IRQ_NOPROBE
IRQF_NOAUTOEN -> IRQ_NOAUTOEN
For IRQs managed by an irqdomain, the irqdomain core code handles clearing
and setting IRQ_NOREQUEST already, so there is no need to do this in
.map() functions and we can simply remove the set_irq_flags calls. Some
users also modify IRQ_NOPROBE and this has been maintained although it
is not clear that is really needed. There appears to be a great deal of
blind copy and paste of this code.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Acked-by: Simon Horman <horms@xxxxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-sh@xxxxxxxxxxxxxxx
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Magnus Damm <magnus.damm@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440889285-5637-4-git-send-email-robh@xxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit d17cab4451df1f25f3a46369e0aaeaa18390fa6b
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Sat Aug 29 18:01:22 2015 -0500
irqchip: Kill off set_irq_flags usage
set_irq_flags is ARM specific with custom flags which have genirq
equivalents. Convert drivers to use the genirq interfaces directly, so we
can kill off set_irq_flags. The translation of flags is as follows:
IRQF_VALID -> !IRQ_NOREQUEST
IRQF_PROBE -> !IRQ_NOPROBE
IRQF_NOAUTOEN -> IRQ_NOAUTOEN
For IRQs managed by an irqdomain, the irqdomain core code handles clearing
and setting IRQ_NOREQUEST already, so there is no need to do this in
.map() functions and we can simply remove the set_irq_flags calls. Some
users also modify IRQ_NOPROBE and this has been maintained although it
is not clear that is really needed. There appears to be a great deal of
blind copy and paste of this code.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Kukjin Kim <kgene@xxxxxxxxxx>
Cc: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Cc: Stephen Warren <swarren@xxxxxxxxxxxxx>
Cc: Lee Jones <lee@xxxxxxxxxx>
Cc: Alexander Shiyan <shc_work@xxxxxxx>
Cc: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
Cc: linux-rpi-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-samsung-soc@xxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440889285-5637-3-git-send-email-robh@xxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit ca0141de743dc7760fdfeb9210b82dadf6d9b221
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Sat Aug 29 18:01:21 2015 -0500
gpu/drm: Kill off set_irq_flags usage
set_irq_flags is ARM specific with custom flags which have genirq
equivalents. Convert drivers to use the genirq interfaces directly, so we
can kill off set_irq_flags. The translation of flags is as follows:
IRQF_VALID -> !IRQ_NOREQUEST
IRQF_PROBE -> !IRQ_NOPROBE
IRQF_NOAUTOEN -> IRQ_NOAUTOEN
For IRQs managed by an irqdomain, the irqdomain core code handles clearing
and setting IRQ_NOREQUEST already, so there is no need to do this in
.map() functions and we can simply remove the set_irq_flags calls. Some
users also modify IRQ_NOPROBE and this has been maintained although it
is not clear that is really needed. There appears to be a great deal of
blind copy and paste of this code.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: David Airlie <airlied@xxxxxxxx>
Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit aa57e0b281453334267e836d15cfdb933f6d6f97
Merge: 865ca08 84cba17
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 16 07:53:33 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto fixes from Herbert Xu:
"This fixes the following issues:
- The selftest overreads the IV test vector.
- Fix potential infinite loop in sunxi-ss driver.
- Fix powerpc build failure when VMX is set without VSX"
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
crypto: testmgr - don't copy from source IV too much
crypto: sunxi-ss - Fix a possible driver hang with ciphers
crypto: vmx - VMX crypto should depend on CONFIG_VSX
commit 03da3ff1cfcd7774c8780d2547ba0d995f7dc03d
Author: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
Date: Wed Sep 16 14:10:03 2015 +0100
x86/platform: Fix Geode LX timekeeping in the generic x86 build
In 2007, commit 07190a08eef36 ("Mark TSC on GeodeLX reliable")
bypassed verification of the TSC on Geode LX. However, this code
(now in the check_system_tsc_reliable() function in
arch/x86/kernel/tsc.c) was only present if CONFIG_MGEODE_LX was
set.
OpenWRT has recently started building its generic Geode target
for Geode GX, not LX, to include support for additional
platforms. This broke the timekeeping on LX-based devices,
because the TSC wasn't marked as reliable:
https://dev.openwrt.org/ticket/20531
By adding a runtime check on is_geode_lx(), we can also include
the fix if CONFIG_MGEODEGX1 or CONFIG_X86_GENERIC are set, thus
fixing the problem.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Cc: Andres Salomon <dilinger@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Marcelo Tosatti <marcelo@xxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Link: http://lkml.kernel.org/r/1442409003.131189.87.camel@xxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit ca09f02f122b2ecb0f5ddfc5fd47b29ed657d4fd
Author: Marek Majtyka <marek.majtyka@xxxxxxxxx>
Date: Wed Sep 16 12:04:55 2015 +0200
arm: KVM: Fix incorrect device to IPA mapping
A critical bug has been found in device memory stage1 translation for
VMs with more then 4GB of address space. Once vm_pgoff size is smaller
then pa (which is true for LPAE case, u32 and u64 respectively) some
more significant bits of pa may be lost as a shift operation is performed
on u32 and later cast onto u64.
Example: vm_pgoff(u32)=0x00210030, PAGE_SHIFT=12
expected pa(u64): 0x0000002010030000
produced pa(u64): 0x0000000010030000
The fix is to change the order of operations (casting first onto
phys_addr_t
and then shifting).
Reviewed-by: Marc Zyngier <marc.zyngier@xxxxxxx>
[maz: fixed changelog and patch formatting]
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Marek Majtyka <marek.majtyka@xxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 1713e5aa05fff3951e747548b373bd2c81be4e7a
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Wed Sep 16 10:54:37 2015 +0100
arm64: KVM: Fix user access for debug registers
When setting the debug register from userspace, make sure that
copy_from_user() is called with its parameters in the expected
order. It otherwise doesn't do what you think.
Fixes: 84e690bfbed1 ("KVM: arm64: introduce vcpu->arch.debug_ptr")
Reported-by: Peter Maydell <peter.maydell@xxxxxxxxxx>
Cc: Alex Bennée <alex.bennee@xxxxxxxxxx>
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit bd0b9ac405e1794d72533c3d487aa65b6b955a0c
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Sep 14 10:42:37 2015 +0200
genirq: Remove irq argument from irq flow handlers
Most interrupt flow handlers do not use the irq argument. Those few
which use it can retrieve the irq number from the irq descriptor.
Remove the argument.
Search and replace was done with coccinelle and some extra helper
scripts around it. Thanks to Julia for her help!
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
commit b237721c5d95082a803c0be686f56d2dd1de995b
Author: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Date: Mon Jun 1 16:05:43 2015 +0800
genirq: Move field 'msi_desc' from irq_data into irq_common_data
MSI descriptors are per-irq instead of per irqchip, so move it into
struct irq_common_data.
Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Cc: Yinghai Lu <yinghai@xxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Kevin Cernekee <cernekee@xxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Marc Zyngier <marc.zyngier@xxxxxxx>
Link:
http://lkml.kernel.org/r/1433145945-789-35-git-send-email-jiang.liu@xxxxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 9df872faa7e1619e9278bec00ceaed2236533530
Author: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Date: Wed Jun 3 11:47:50 2015 +0800
genirq: Move field 'affinity' from irq_data into irq_common_data
Irq affinity mask is per-irq instead of per irqchip, so move it into
struct irq_common_data.
Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Cc: Yinghai Lu <yinghai@xxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Kevin Cernekee <cernekee@xxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Link:
http://lkml.kernel.org/r/1433303281-27688-1-git-send-email-jiang.liu@xxxxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit af7080e040d223b5e7d0a8de28f7cea24ef017c4
Author: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Date: Mon Jun 1 16:05:21 2015 +0800
genirq: Move field 'handler_data' from irq_data into irq_common_data
Handler data (handler_data) is per-irq instead of per irqchip, so move
it into struct irq_common_data.
Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Cc: Yinghai Lu <yinghai@xxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Kevin Cernekee <cernekee@xxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Marc Zyngier <marc.zyngier@xxxxxxx>
Link:
http://lkml.kernel.org/r/1433145945-789-13-git-send-email-jiang.liu@xxxxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 449e9cae58b06be1293858ec8e5d8cb728238baa
Author: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Date: Mon Jun 1 16:05:16 2015 +0800
genirq: Move field 'node' from irq_data into irq_common_data
NUMA node information is per-irq instead of per-irqchip, so move it into
struct irq_common_data. Also use CONFIG_NUMA to guard
irq_common_data.node.
Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Cc: Yinghai Lu <yinghai@xxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Kevin Cernekee <cernekee@xxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Link:
http://lkml.kernel.org/r/1433145945-789-8-git-send-email-jiang.liu@xxxxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 4df7f54d16ebe9c37631182de84c4347f0e44db3
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Tue Sep 15 13:19:16 2015 +0200
irqchip/gic-v3: Use IRQD_FORWARDED_TO_VCPU flag
Get rid of the handler_data abuse.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Acked-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 714665351cc718e01f0ce34ef5325932d56d8b4e
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Tue Sep 15 12:37:36 2015 +0200
irqchip/gic: Use IRQD_FORWARDED_TO_VCPU flag
Get rid of the handler_data abuse.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Acked-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit fc5697126aa074c289df5e8baae28e115963023f
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Tue Sep 15 12:33:42 2015 +0200
genirq: Provide IRQD_FORWARDED_TO_VCPU status flag
Provide a irq data flag to mark an irq forwarded to a VCPU along with
the accessor functions.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Acked-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 755d119a6204974b2005a98549a48a75a7f5010b
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Wed Sep 16 14:37:12 2015 +0200
genirq: Simplify irq_data_to_desc()
Avoid the lookup of irq_desc and use the same mechanism for
hierarchical and flat irqdomains.
Based-on-a-patch-from: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 123236ccacc933daac3b39c5eb1f0011c70d41d8
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Wed Sep 16 12:54:23 2015 +0200
genirq: Remove __irq_set_handler_locked()
All users converted to irq_set_handler_locked()
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 7c51173adde2ec520348812214704313f5b36f75
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Wed Sep 16 12:52:53 2015 +0200
pinctrl/pistachio: Use irq_set_handler_locked
Use irq_set_handler_locked() as it avoids a redundant lookup of the
irq descriptor. Search and replacement was done with coccinelle:
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
Cc: linux-gpio@xxxxxxxxxxxxxxx
commit a7147db0f5184954687546d430aed65cce483ffa
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Wed Sep 16 12:51:00 2015 +0200
gpio: vf610: Use irq_set_handler_locked
Use irq_set_handler_locked() as it avoids a redundant lookup of the
irq descriptor. Search and replacement was done with coccinelle:
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
Cc: linux-gpio@xxxxxxxxxxxxxxx
commit 9ca86b204b3c874e6ada28309f607e3aa74d60a9
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Tue Jun 23 15:52:36 2015 +0200
powerpc/mpc8xx: Use irq_set_handler_locked()
Use irq_set_handler_locked() as it avoids a redundant lookup of the
irq descriptor.
Search and replacement was done with coccinelle:
@@
struct irq_data *d;
expression E1;
@@
-__irq_set_handler_locked(d->irq, E1);
+irq_set_handler_locked(d, E1);
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
commit 9758a7b0e5fdd5a08bcc73540bb3b98d59295a6d
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Tue Jun 23 15:52:34 2015 +0200
powerpc/ipic: Use irq_set_handler_locked()
Use irq_set_handler_locked() as it avoids a redundant lookup of the
irq descriptor.
Search and replacement was done with coccinelle:
@@
struct irq_data *d;
expression E1;
@@
-__irq_set_handler_locked(d->irq, E1);
+irq_set_handler_locked(d, E1);
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Anton Blanchard <anton@xxxxxxxxx>
Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
commit e9e879a3d6cecc4258294c674627045da648fab0
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Tue Jun 23 15:52:32 2015 +0200
powerpc/cpm2: Use irq_set_handler_locked()
Use irq_set_handler_locked() as it avoids a redundant lookup of the
irq descriptor.
Search and replacement was done with coccinelle:
@@
struct irq_data *d;
expression E1;
@@
-__irq_set_handler_locked(d->irq, E1);
+irq_set_handler_locked(d, E1);
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
commit 6b83bd941479e99f6890ed4b5c54cb1f43c7146f
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Tue Jun 23 15:52:31 2015 +0200
powerpc/mpc52xx: Use irq_set_handler_locked()
Use irq_set_handler_locked() as it avoids a redundant lookup of the
irq descriptor.
Search and replacement was done with coccinelle:
@@
struct irq_data *d;
expression E1;
@@
-__irq_set_handler_locked(d->irq, E1);
+irq_set_handler_locked(d, E1);
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Cc: Anatolij Gustschin <agust@xxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
commit 04bb92e4b4cf06a66889d37b892b78f926faa9d4
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Wed Sep 16 19:31:11 2015 +0800
KVM: vmx: fix VPID is 0000H in non-root operation
Reference SDM 28.1:
The current VPID is 0000H in the following situations:
- Outside VMX operation. (This includes operation in system-management
mode under the default treatment of SMIs and SMM with VMX operation;
see Section 34.14.)
- In VMX root operation.
- In VMX non-root operation when the â??enable VPIDâ?? VM-execution
control
is 0.
The VPID should never be 0000H in non-root operation when "enable VPID"
VM-execution control is 1. However, commit 34a1cd60 ("kvm: x86: vmx:
move some vmx setting from vmx_init() to hardware_setup()") remove the
codes which reserve 0000H for VMX root operation.
This patch fix it by again reserving 0000H for VMX root operation.
Cc: stable@xxxxxxxxxxxxxxx # 3.19+
Fixes: 34a1cd60d17f62c1f077c1478a6c2ca8c3d17af4
Reported-by: Wincy Van <fanwenyi0529@xxxxxxxxx>
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 36b35d5d807b7e57aff7d08e63de8b17731ee211
Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Date: Tue Sep 15 12:30:08 2015 +0530
powerpc/mm: Recompute hash value after a failed update
If we had secondary hash flag set, we ended up modifying hash value in
the updatepp code path. Hence with a failed updatepp we will be using
a wrong hash value for the following hash insert. Fix this by
recomputing hash before insert.
Without this patch we can end up with using wrong slot number in linux
pte. That can result in us missing an hash pte update or invalidate
which can cause memory corruption or even machine check.
Fixes: 6d492ecc6489 ("powerpc/THP: Add code to handle HPTE faults for
hugepages")
Cc: stable@xxxxxxxxxxxxxxx # v3.11+
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Paul Mackerras <paulus@xxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 655471f54c2e395ba29ae4156ba0f49928177cc1
Author: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 15 11:24:17 2015 +1000
powerpc/boot: Specify ABI v2 when building an LE boot wrapper
The kernel does it, not the boot wrapper, which breaks with some
cross compilers that still default to ABI v1.
Fixes: 147c05168fc8 ("powerpc/boot: Add support for 64bit little endian
wrapper")
Cc: stable@xxxxxxxxxxxxxxx # v3.16+
Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit e902e14549e04c040fb6e15785efd35f810a223a
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Wed Sep 16 12:36:04 2015 +0200
genirq: Remove __irq_set_chip_handler_name_locked()
All users converted to irq_set_chip_handler_name_locked()
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit b9a5ec33e32069a2f8af09d46266091602902bf4
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Wed Sep 16 12:32:40 2015 +0200
pinctrl: sunxi: Use irq_set_chip_handler_name_locked()
__irq_set_chip_handler_name_locked() is about to be replaced. Use
irq_set_chip_handler_name_locked() instead.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
Cc: linux-gpio@xxxxxxxxxxxxxxx
commit 62bea5bff486644ecf363fe8a1a2f6f32c614a49
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Tue Sep 15 18:27:57 2015 +0200
KVM: add halt_attempted_poll to VCPU stats
This new statistic can help diagnosing VCPUs that, for any reason,
trigger bad behavior of halt_poll_ns autotuning.
For example, say halt_poll_ns = 480000, and wakeups are spaced exactly
like 479us, 481us, 479us, 481us. Then KVM always fails polling and wastes
10+20+40+80+160+320+480 = 1110 microseconds out of every
479+481+479+481+479+481+479 = 3359 microseconds. The VCPU then
is consuming about 30% more CPU than it would use without
polling. This would show as an abnormally high number of
attempted polling compared to the successful polls.
Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx<
Reviewed-by: David Matlack <dmatlack@xxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit ad2aa04218de9bd734d593adb0ac59854ec0cb68
Author: Pierre Morel <pmorel@xxxxxxxxxxxxxxxxxx>
Date: Thu Sep 10 16:35:08 2015 +0200
virtio/s390: handle failures of READ_VQ_CONF ccw
In virtio_ccw_read_vq_conf() the return value of ccw_io_helper()
was not checked.
If the configuration could not be read properly, we'd wrongly assume a
queue size of 0.
Let's propagate any I/O error to virtio_ccw_setup_vq() so it may
properly fail.
Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx>
Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
commit fd2e8d4300c56f9660679d629c449118e14c00cd
Author: Michael S. Tsirkin <mst@xxxxxxxxxx>
Date: Wed Sep 9 22:26:25 2015 +0300
tools/virtio: propagate V=X to kernel build
Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
commit 4e9fa50c6ccbebef0c4a4aae84090badf81359e6
Author: Michael S. Tsirkin <mst@xxxxxxxxxx>
Date: Wed Sep 9 22:24:56 2015 +0300
vhost: move features to core
virtio 1 and any layout are core features, move them
there. This fixes vhost test.
Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
commit 9b55613f42e8d40d5c9ccb8970bde6af4764b2ab
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Sep 11 16:44:02 2015 +0100
ARM: fix Thumb2 signal handling when ARMv6 is enabled
When a kernel is built covering ARMv6 to ARMv7, we omit to clear the
IT state when entering a signal handler. This can cause the first
few instructions to be conditionally executed depending on the parent
context.
In any case, the original test for >= ARMv7 is broken - ARMv6 can have
Thumb-2 support as well, and an ARMv6T2 specific build would omit this
code too.
Relax the test back to ARMv6 or greater. This results in us always
clearing the IT state bits in the PSR, even on CPUs where these bits
are reserved. However, they're reserved for the IT state, so this
should cause no harm.
Cc: <stable@xxxxxxxxxxxxxxx>
Fixes: d71e1352e240 ("Clear the IT state when invoking a Thumb-2 signal
handler")
Acked-by: Tony Lindgren <tony@xxxxxxxxxxx>
Tested-by: H. Nikolaus Schaller <hns@xxxxxxxxxxxxx>
Tested-by: Grazvydas Ignotas <notasas@xxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit f6cf87f748ff9480f97ff9c5caf6d6faacf52aa1
Merge: 91a4dc9 c5e6bd2
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Wed Sep 16 09:06:54 2015 +0200
Merge tag 'perf-urgent-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
- Fix segfault pressing -> in 'perf top' with no hist entries. (Wang Nan)
E.g:
perf top -e page-faults --pid 11400 # 11400 generates no page-fault
- Fix propagation of thread and cpu maps, that got broken when doing
incomplete
changes to better support events with a PMU cpu mask, leading to Intel
PT to
fail with an error like:
$ perf record -e intel_pt//u uname
Error: The sys_perf_event_open() syscall returned with
22 (Invalid argument) for event (sched:sched_switch).
Because intel_pt adds that sched:sched_switch evsel to the evlist after
the
thread/cpu maps were propagated to the evsels, fix it. (Adrian Hunter)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 8315b77d72c5f0b18ceb513303d845e73166133c
Author: Li Jun <jun.li@xxxxxxxxxxxxx>
Date: Wed Sep 16 14:46:32 2015 +0800
usb: chipidea: imx: fix a typo for imx6sx
Use imx6sx instead of imx6sl's platform flags for imx6sx.
Fixes: e14db48dfcf3 ("usb: chipidea: imx: add runtime power management
support")
Cc: <stable@xxxxxxxxxxxxxxx> # v4.1+
Signed-off-by: Li Jun <jun.li@xxxxxxxxxxxxx>
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit 1f0bd44e937468446d080b98b5669844744c24a1
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Wed Sep 16 02:17:49 2015 +0200
cpufreq: acpi-cpufreq: Use cpufreq_cpu_get_raw() in ->get()
cpufreq_cpu_get() called by get_cur_freq_on_cpu() is overkill,
because the ->get() callback is always invoked in a context in
which all of the conditions checked by cpufreq_cpu_get() are
guaranteed to be satisfied.
Use cpufreq_cpu_get_raw() instead of it and drop the
corresponding cpufreq_cpu_put() from get_cur_freq_on_cpu().
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
commit f0b2e563bc419df7c1b3d2f494574c25125f6aed
Author: Jeff Moyer <jmoyer@xxxxxxxxxx>
Date: Fri Aug 14 16:15:32 2015 -0400
blockdev: don't set S_DAX for misaligned partitions
The dax code doesn't currently support misaligned partitions,
so disable O_DIRECT via dax until such time as that support
materializes.
Cc: <stable@xxxxxxxxxxxxxxx>
Suggested-by: Boaz Harrosh <boaz@xxxxxxxxxxxxx>
Signed-off-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit e94f5a2285fc94202a9efb2c687481f29b64132c
Author: Jeff Moyer <jmoyer@xxxxxxxxxx>
Date: Fri Aug 14 16:15:31 2015 -0400
dax: fix O_DIRECT I/O to the last block of a blockdev
commit bbab37ddc20b (block: Add support for DAX reads/writes to
block devices) caused a regression in mkfs.xfs. That utility
sets the block size of the device to the logical block size
using the BLKBSZSET ioctl, and then issues a single sector read
from the last sector of the device. This results in the dax_io
code trying to do a page-sized read from 512 bytes from the end
of the device. The result is -ERANGE being returned to userspace.
The fix is to align the block to the page size before calling
get_block.
Thanks to willy for simplifying my original patch.
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Tested-by: Linda Knippers <linda.knippers@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 20471ed4d403a5f4de6aa0c10cd1e446f7f2b3c7
Author: Julia Lawall <julia.lawall@xxxxxxx>
Date: Sun Sep 13 14:15:27 2015 +0200
dccp: drop null test before destroy functions
Remove unneeded NULL test.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@
expression x;
@@
-if (x != NULL)
\(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x);
@@
expression x;
@@
-if (x != NULL) {
\(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x);
x = NULL;
-}
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit adf78edac09f9640cd9676571586c4be46fb527c
Author: Julia Lawall <julia.lawall@xxxxxxx>
Date: Sun Sep 13 14:15:18 2015 +0200
net: core: drop null test before destroy functions
Remove unneeded NULL test.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@ expression x; @@
-if (x != NULL) {
\(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x);
x = NULL;
-}
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 58d29e3ce903dcafacee9e355225d64922325cf0
Author: Julia Lawall <julia.lawall@xxxxxxx>
Date: Sun Sep 13 14:15:03 2015 +0200
atm: he: drop null test before destroy functions
Remove unneeded NULL test.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@ expression x; @@
-if (x != NULL)
\(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x);
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 982b527004826b40de1e821b123c70f05b41496c
Author: Jesse Gross <jesse@xxxxxxxxxx>
Date: Fri Sep 11 18:38:28 2015 -0700
openvswitch: Fix mask generation for nested attributes.
Masks were added to OVS flows in a way that was backwards compatible
with userspace programs that did not generate masks. As a result, it is
possible that we may receive flows that do not have a mask and we need
to synthesize one.
Generating a mask requires iterating over attributes and descending into
nested attributes. For each level we need to know the size to generate the
correct mask. We do this with a linked table of attribute types.
Although the logic to handle these nested attributes was there in concept,
there are a number of bugs in practice. Examples include incomplete links
between tables, variable length attributes being treated as nested and
missing sanity checks.
Signed-off-by: Jesse Gross <jesse@xxxxxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 865ca084fdc68cd9b658da4b098008278da8fed3
Author: Luck, Tony <tony.luck@xxxxxxxxx>
Date: Tue Sep 15 13:50:18 2015 -0700
ia64: Enable userfaultfd and membarrier system calls
Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 9fd60088ffed7573c2d409ddc63a2150a5edd5d8
Author: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Date: Sun Sep 6 14:52:26 2015 +0300
iser-target: Skip data copy if all the command data comes as immediate
Given that supporting zcopy immediate data for all IOs requires
iser driver to use its own buffer allocations, we settle with
avoiding data copy for IOs with data length of up to 8K (which
is more latency sensitive anyway).
This trims IO write latency by up to 3us and increase IOPs
by up to 40% by saving CPU time doing sg_copy_from_buffer
(8K IO size is the obvious winner here).
Signed-off-by: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 4366b19ca5eb15e63d6640565ade135cf06be91a
Author: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Date: Sun Sep 6 14:52:25 2015 +0300
iser-target: Change the recv buffers posting logic
iser target batches post recv operations to avoid
the overhead of acquiring the recv queue lock and
posting a HW doorbell for each command.
We change it to be per command in order to support
zcopy immediate data for IOs that fits in the 8K
transfer boundary (in the next patch).
(Fix minor patch fuzz due to ib_mr removal - nab)
Signed-off-by: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit bd3792205aaeb79b994338af2e5499fa503d79c7
Author: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Date: Sun Sep 6 14:52:24 2015 +0300
iser-target: Fix pending connections handling in target stack shutdown
sequnce
Instead of handing a connection to the iscsi stack
for processing right after accepting (rdma_accept) we only hand
the connection to the iscsi core after we reached to a connected
state (ESTABLISHED CM event). This will prevent two error scenrios:
1. race between rdma connection teardown and iscsi login sequence
reported by Nic in: (ce9a9fc20a78a "iser-target: Fix REJECT CM event
use-after-free OOPs")
2. target stack shutdown sequence race with constant login attempts by
multiple initiators.
We address this by maintaining two queues at the isert_np level:
- accepted: connections that were accepted but have not reached
connected state (might get rejected, unreachable or error).
- pending: connections in connected state, but have yet to handed
to the iscsi core for login processing. iser connections are promoted
to the pending queue only from the accepted queue.
This way the iscsi core now will only handle functional iser connections
and once we shutdown the target stack, we look for any stales that
got left behind so we can safely release them.
Signed-off-by: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # v3.10+
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit ed8cb0a4378c0e7035db047987fe0e7309020ab5
Author: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Date: Sun Sep 6 14:52:23 2015 +0300
iser-target: Remove np_ prefix from isert_np members
These are always referenced from np-> so no need
for the prefix.
Signed-off-by: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit f27dfa1f0eb91494577a395e6b8a9aac2832e9cf
Author: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Date: Sun Sep 6 14:52:22 2015 +0300
iser-target: Remove unused variables
Signed-off-by: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 3e03c4b01da3e6a5f3081eb0aa252490fe83e352
Author: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Date: Sun Sep 6 14:52:21 2015 +0300
iser-target: Put the reference on commands waiting for unsol data
The iscsi target core teardown sequence calls wait_conn for
all active commands to finish gracefully by:
- move the queue-pair to error state
- drain all the completions
- wait for the core to finish handling all session commands
However, when tearing down a session while there are sequenced
commands that are still waiting for unsolicited data outs, we can
block forever as these are missing an extra reference put.
We basically need the equivalent of iscsit_free_queue_reqs_for_conn()
which is called after wait_conn has returned. Address this by an
explicit walk on conn_cmd_list and put the extra reference.
Signed-off-by: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # v3.10+
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit a4c15cd957cbd728f685645de7a150df5912591a
Author: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Date: Sun Sep 6 14:52:20 2015 +0300
iser-target: remove command with state ISTATE_REMOVE
As documented in iscsit_sequence_cmd:
/*
* Existing callers for iscsit_sequence_cmd() will silently
* ignore commands with CMDSN_LOWER_THAN_EXP, so force this
* return for CMDSN_MAXCMDSN_OVERRUN as well..
*/
We need to silently finish a command when it's in ISTATE_REMOVE.
This fixes an teardown hang we were seeing where a mis-behaved
initiator (triggered by allocation error injections) sent us a
cmdsn which was lower than expected.
Signed-off-by: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # v3.10+
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 892aa01df2ad67237f213c8f9d9b491e908aa910
Author: Sjoerd Simons <sjoerd.simons@xxxxxxxxxxxxxxx>
Date: Fri Sep 11 22:25:48 2015 +0200
net: stmmac: Use msleep rather then udelay for reset delay
The reset delays used for stmmac are in the order of 10ms to 1 second,
which is far too long for udelay usage, so switch to using msleep.
Practically this fixes the PHY not being reliably detected in some cases
as udelay wouldn't actually delay for long enough to let the phy
reliably be reset.
Signed-off-by: Sjoerd Simons <sjoerd.simons@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d64f69b0373a7d0bcec8b5da7712977518a8f42b
Author: Roopa Prabhu <roopa@xxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 15 14:44:29 2015 -0700
rtnetlink: catch -EOPNOTSUPP errors from ndo_bridge_getlink
problem reported:
kernel 4.1.3
------------
# bridge vlan
port vlan ids
eth0 1 PVID Egress Untagged
90
91
92
93
94
95
96
97
98
99
100
vmbr0 1 PVID Egress Untagged
94
kernel 4.2
-----------
# bridge vlan
port vlan ids
ndo_bridge_getlink can return -EOPNOTSUPP when an interfaces
ndo_bridge_getlink op is set to switchdev_port_bridge_getlink
and CONFIG_SWITCHDEV is not defined. This today can happen to
bond, rocker and team devices. This patch adds -EOPNOTSUPP
checks after calls to ndo_bridge_getlink.
Fixes: 85fdb956726ff2a ("switchdev: cut over to new
switchdev_port_bridge_getlink")
Reported-by: Alexandre DERUMIER <aderumier@xxxxxxxxx>
Signed-off-by: Roopa Prabhu <roopa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit daf158d0d544cec80b7b30deff8cfc59a6e17610
Author: Simon Guinot <simon.guinot@xxxxxxxxxxxx>
Date: Tue Sep 15 22:41:21 2015 +0200
net: mvneta: fix DMA buffer unmapping in mvneta_rx()
This patch fixes a regression introduced by the commit a84e32894191
("net: mvneta: fix refilling for Rx DMA buffers"). Due to this commit
the newly allocated Rx buffers are DMA-unmapped in place of those passed
to the networking stack. Obviously, this causes data corruptions.
This patch fixes the issue by ensuring that the right Rx buffers are
DMA-unmapped.
Reported-by: Oren Laskin <oren@xxxxxxxxxx>
Signed-off-by: Simon Guinot <simon.guinot@xxxxxxxxxxxx>
Fixes: a84e32894191 ("net: mvneta: fix refilling for Rx DMA buffers")
Cc: <stable@xxxxxxxxxxxxxxx> # v3.8+
Tested-by: Oren Laskin <oren@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 244b7f4324895e7c796cc94e8a8f70288ed20bdc
Merge: e8684c8 70da5b5
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Sep 15 14:53:46 2015 -0700
Merge branch 'ip6tunnel_dst'
Martin KaFai Lau says:
====================
ipv6: Fix dst_entry refcnt bugs in ip6_tunnel
v4:
- Fix a compilation error in patch 5 when CONFIG_LOCKDEP is turned on and
re-test it
v3:
- Merge a 'if else if' test in patch 4
- Use rcu_dereference_protected in patch 5 to fix a sparse check when
CONFIG_SPARSE_RCU_POINTER is enabled
v2:
- Add patch 4 and 5 to remove the spinlock
v1:
This patch series is to fix the dst refcnt bugs in ip6_tunnel.
Patch 1 and 2 are the prep works. Patch 3 is the fix.
I can reproduce the bug by adding and removing the ip6gre tunnel
while running a super_netperf TCP_CRR test. I get the following
trace by adding WARN_ON_ONCE(newrefcnt < 0) to dst_release():
[ 312.760432] ------------[ cut here ]------------
[ 312.774664] WARNING: CPU: 2 PID: 10263 at net/core/dst.c:288
dst_release+0xf3/0x100()
[ 312.776041] Modules linked in: k10temp coretemp hwmon ip6_gre
ip6_tunnel tunnel6 ipmi_devintf ipmi_ms\
ghandler ip6table_filter ip6_tables xt_NFLOG nfnetlink_log nfnetlink
xt_comment xt_statistic iptable_fil\
ter ip_tables x_tables nfsv3 nfs_acl nfs fscache lockd grace mptctl
netconsole autofs4 rpcsec_gss_krb5 a\
uth_rpcgss oid_registry sunrpc ipv6 dm_mod loop iTCO_wdt
iTCO_vendor_support serio_raw rtc_cmos pcspkr i\
2c_i801 i2c_core lpc_ich mfd_core ehci_pci ehci_hcd e1000e mlx4_en ptp
pps_core vxlan udp_tunnel ip6_udp\
_tunnel mlx4_core sg button ext3 jbd mpt2sas raid_class
[ 312.785302] CPU: 2 PID: 10263 Comm: netperf Not tainted
4.2.0-rc8-00046-g4db9b63-dirty #15
[ 312.791695] Hardware name: Quanta Freedom /Windmill-EP, BIOS F03_3B04
09/12/2013
[ 312.792965] ffffffff819dca2c ffff8811dfbdf6f8 ffffffff816537de
ffff88123788fdb8
[ 312.794263] 0000000000000000 ffff8811dfbdf738 ffffffff81052646
ffff8811dfbdf768
[ 312.795593] ffff881203a98180 00000000ffffffff ffff88242927a000
ffff88120a2532e0
[ 312.796946] Call Trace:
[ 312.797380] [<ffffffff816537de>] dump_stack+0x45/0x57
[ 312.798288] [<ffffffff81052646>] warn_slowpath_common+0x86/0xc0
[ 312.799699] [<ffffffff8105273a>] warn_slowpath_null+0x1a/0x20
[ 312.800852] [<ffffffff8159f9b3>] dst_release+0xf3/0x100
[ 312.801834] [<ffffffffa03f1308>] ip6_tnl_dst_store+0x48/0x70
[ip6_tunnel]
[ 312.803738] [<ffffffffa03fd0b6>] ip6gre_xmit2+0x536/0x720 [ip6_gre]
[ 312.804774] [<ffffffffa03fd40a>] ip6gre_tunnel_xmit+0x16a/0x410
[ip6_gre]
[ 312.805986] [<ffffffff8159934b>] dev_hard_start_xmit+0x23b/0x390
[ 312.808810] [<ffffffff815a2f5f>] ? neigh_destroy+0xef/0x140
[ 312.809843] [<ffffffff81599a6c>] __dev_queue_xmit+0x48c/0x4f0
[ 312.813931] [<ffffffff81599ae3>] dev_queue_xmit_sk+0x13/0x20
[ 312.814993] [<ffffffff815a0832>] neigh_direct_output+0x12/0x20
[ 312.817448] [<ffffffffa021d633>] ip6_finish_output2+0x183/0x460 [ipv6]
[ 312.818762] [<ffffffff81306fc5>] ? find_next_bit+0x15/0x20
[ 312.819671] [<ffffffffa021fd79>] ip6_finish_output+0x89/0xe0 [ipv6]
[ 312.820720] [<ffffffffa021fe14>] ip6_output+0x44/0xe0 [ipv6]
[ 312.821762] [<ffffffff815c8809>] ? nf_hook_slow+0x69/0xc0
[ 312.823123] [<ffffffffa021d232>] ip6_xmit+0x242/0x4c0 [ipv6]
[ 312.824073] [<ffffffffa021c9f0>] ? ac6_proc_exit+0x20/0x20 [ipv6]
[ 312.825116] [<ffffffffa024c751>] inet6_csk_xmit+0x61/0xa0 [ipv6]
[ 312.826127] [<ffffffff815eb590>] tcp_transmit_skb+0x4f0/0x9b0
[ 312.827441] [<ffffffff815ed267>] tcp_connect+0x637/0x7a0
[ 312.828327] [<ffffffffa0245906>] tcp_v6_connect+0x2d6/0x550 [ipv6]
[ 312.829581] [<ffffffff81606f05>] __inet_stream_connect+0x95/0x2f0
[ 312.830600] [<ffffffff810ae13a>] ? hrtimer_try_to_cancel+0x1a/0xf0
[ 312.833456] [<ffffffff812fba19>] ? timerqueue_add+0x59/0xb0
[ 312.834407] [<ffffffff81607198>] inet_stream_connect+0x38/0x50
[ 312.835886] [<ffffffff8157cb17>] SYSC_connect+0xb7/0xf0
[ 312.840035] [<ffffffff810af6d3>] ? do_setitimer+0x1b3/0x200
[ 312.840983] [<ffffffff810af75a>] ? alarm_setitimer+0x3a/0x70
[ 312.841941] [<ffffffff8157d7ae>] SyS_connect+0xe/0x10
[ 312.842818] [<ffffffff81659297>] entry_SYSCALL_64_fastpath+0x12/0x6a
[ 312.844206] ---[ end trace 43f3ecd86c3b1313 ]---
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 70da5b5c532f0ec8aa76b4f46158da5f010f34b3
Author: Martin KaFai Lau <kafai@xxxxxx>
Date: Tue Sep 15 14:30:09 2015 -0700
ipv6: Replace spinlock with seqlock and rcu in ip6_tunnel
This patch uses a seqlock to ensure consistency between idst->dst and
idst->cookie. It also makes dst freeing from fib tree to undergo a
rcu grace period.
Signed-off-by: Martin KaFai Lau <kafai@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8e3d5be7368107f0c27a1f8126d79b01a47e9567
Author: Martin KaFai Lau <kafai@xxxxxx>
Date: Tue Sep 15 14:30:08 2015 -0700
ipv6: Avoid double dst_free
It is a prep work to get dst freeing from fib tree undergo
a rcu grace period.
The following is a common paradigm:
if (ip6_del_rt(rt))
dst_free(rt)
which means, if rt cannot be deleted from the fib tree, dst_free(rt) now.
1. We don't know the ip6_del_rt(rt) failure is because it
was not managed by fib tree (e.g. DST_NOCACHE) or it had already been
removed from the fib tree.
2. If rt had been managed by the fib tree, ip6_del_rt(rt) failure means
dst_free(rt) has been called already. A second
dst_free(rt) is not always obviously safe. The rt may have
been destroyed already.
3. If rt is a DST_NOCACHE, dst_free(rt) should not be called.
4. It is a stopper to make dst freeing from fib tree undergo a
rcu grace period.
This patch is to use a DST_NOCACHE flag to indicate a rt is
not managed by the fib tree.
Signed-off-by: Martin KaFai Lau <kafai@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit cdf3464e6c6bd764277cbbe992cd12da735b92fb
Author: Martin KaFai Lau <kafai@xxxxxx>
Date: Tue Sep 15 14:30:07 2015 -0700
ipv6: Fix dst_entry refcnt bugs in ip6_tunnel
Problems in the current dst_entry cache in the ip6_tunnel:
1. ip6_tnl_dst_set is racy. There is no lock to protect it:
- One major problem is that the dst refcnt gets messed up. F.e.
the same dst_cache can be released multiple times and then
triggering the infamous dst refcnt < 0 warning message.
- Another issue is the inconsistency between dst_cache and
dst_cookie.
It can be reproduced by adding and removing the ip6gre tunnel
while running a super_netperf TCP_CRR test.
2. ip6_tnl_dst_get does not take the dst refcnt before returning
the dst.
This patch:
1. Create a percpu dst_entry cache in ip6_tnl
2. Use a spinlock to protect the dst_cache operations
3. ip6_tnl_dst_get always takes the dst refcnt before returning
Signed-off-by: Martin KaFai Lau <kafai@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f230d1e891ba1da5953460516960894154f265db
Author: Martin KaFai Lau <kafai@xxxxxx>
Date: Tue Sep 15 14:30:06 2015 -0700
ipv6: Rename the dst_cache helper functions in ip6_tunnel
It is a prep work to fix the dst_entry refcnt bugs in
ip6_tunnel.
This patch rename:
1. ip6_tnl_dst_check() to ip6_tnl_dst_get() to better
reflect that it will take a dst refcnt in the next patch.
2. ip6_tnl_dst_store() to ip6_tnl_dst_set() to have a more
conventional name matching with ip6_tnl_dst_get().
Signed-off-by: Martin KaFai Lau <kafai@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a3c119d392d7d7c68865fe76f5732ca9b8164d68
Author: Martin KaFai Lau <kafai@xxxxxx>
Date: Tue Sep 15 14:30:05 2015 -0700
ipv6: Refactor common ip6gre_tunnel_init codes
It is a prep work to fix the dst_entry refcnt bugs in ip6_tunnel.
This patch refactors some common init codes used by both
ip6gre_tunnel_init and ip6gre_tap_init.
Signed-off-by: Martin KaFai Lau <kafai@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 09a77a885233e2a20dac2635a79c83ccf50a26a1
Author: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
Date: Tue Sep 15 16:03:36 2015 +0100
modsign: Fix GPL/OpenSSL licence incompatibility
The GPL does not permit us to link against the OpenSSL library. Use
LGPL for sign-file and extract-file instead.
[ The whole "openssl isn't compatible with gpl" is really just
fear-mongering, but there's no reason not to make modsign LGPL, so
nobody cares. - Linus ]
Reported-by: Julian Andres Klode <jak@xxxxxxxxxxxxx>
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Reviewed-by: Julian Andres Klode <jak@xxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 237865f195f6b10e4724ce49eeb3972641da882a
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Tue Sep 15 13:18:04 2015 -0500
PCI: Revert "PCI: Call pci_read_bridge_bases() from core instead of arch
code"
Revert dff22d2054b5 ("PCI: Call pci_read_bridge_bases() from core instead
of arch code").
Reading PCI bridge windows is not arch-specific in itself, but there is
PCI
core code that doesn't work correctly if we read them too early. For
example, Hannes found this case on an ARM Freescale i.mx6 board:
pci_bus 0000:00: root bus resource [mem 0x01000000-0x01efffff]
pci 0000:00:00.0: PCI bridge to [bus 01-ff]
pci 0000:00:00.0: BAR 8: no space for [mem size 0x01000000] (mem window)
pci 0000:01:00.0: BAR 2: failed to assign [mem size 0x00200000]
pci 0000:01:00.0: BAR 1: failed to assign [mem size 0x00004000]
pci 0000:01:00.0: BAR 0: failed to assign [mem size 0x00000100]
The 00:00.0 mem window needs to be at least 3MB: the 01:00.0 device needs
0x204100 of space, and mem windows are megabyte-aligned.
Bus sizing can increase a bridge window size, but never *decrease* it (see
d65245c3297a ("PCI: don't shrink bridge resources")). Prior to
dff22d2054b5, ARM didn't read bridge windows at all, so the "original
size"
was zero, and we assigned a 3MB window.
After dff22d2054b5, we read the bridge windows before sizing the bus. The
firmware programmed a 16MB window (size 0x01000000) in 00:00.0, and since
we never decrease the size, we kept 16MB even though we only needed 3MB.
But 16MB doesn't fit in the host bridge aperture, so we failed to assign
space for the window and the downstream devices.
I think this is a defect in the PCI core: we shouldn't rely on the
firmware
to assign sensible windows.
Ray reported a similar problem, also on ARM, with Broadcom iProc.
Issues like this are too hard to fix right now, so revert dff22d2054b5.
Reported-by: Hannes <oe5hpm@xxxxxxxxx>
Reported-by: Ray Jui <rjui@xxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/CAAa04yFQEUJm7Jj1qMT57-LG7ZGtnhNDBe=PpSRa70Mj+XhW-A@xxxxxxxxxxxxxx
Link: http://lkml.kernel.org/r/55F75BB8.4070405@xxxxxxxxxxxx
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Acked-by: Yinghai Lu <yinghai@xxxxxxxxxx>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
commit 6584d84c3e504c76ad291cc2e381bbeed59798ab
Author: Huang Shijie <shijie.huang@xxxxxxx>
Date: Tue Sep 1 10:35:50 2015 +0800
genirq: Update the comment for generic_handle_irq_desc
__do_IRQ() was removed by commit 1c77ff2 "genirq: Remove __do_IRQ",
but the comment referring to __do_IRQ() was left.
Update the comment for generic_handle_irq_desc().
Signed-off-by: Huang Shijie <shijie.huang@xxxxxxx>
Cc: jiang.liu@xxxxxxxxxxxxxxx
Cc: peterz@xxxxxxxxxxxxx
Cc: rafael.j.wysocki@xxxxxxxxx
Cc: jason@xxxxxxxxxxxxxx
Cc: marc.zyngier@xxxxxxx
Link:
http://lkml.kernel.org/r/1441074950-3893-1-git-send-email-shijie.huang@xxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 3829c664b1eec243f2a355829efa40f0f414de8d
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Tue Sep 15 13:47:24 2015 +0200
genirq: Remove stale comment
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 4cd7863ecb90010533c178fba6ecc84d5529b402
Author: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Date: Tue Sep 8 19:00:36 2015 +0200
irqchip/renesas-irqc: Propagate wake-up settings to parent
The renesas-irqc interrupt controller is cascaded to the GIC, but its
driver doesn't propagate wake-up settings to the parent interrupt
controller.
Since commit aec89ef72ba6c944 ("irqchip/gic: Enable SKIP_SET_WAKE and
MASK_ON_SUSPEND"), the GIC driver masks interrupts during suspend, and
wake-up through gpio-keys now fails on r8a73a4/ape6evm.
Fix this by propagating wake-up settings to the parent interrupt
controller. There's no need to handle irq_set_irq_wake() failures, as
the renesas-irqc interrupt controller is always cascaded to a GIC, and
the GIC driver always sets SKIP_SET_WAKE since the aforementioned
commit.
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Cc: Sudeep Holla <sudeep.holla@xxxxxxx>
Cc: Magnus Damm <magnus.damm@xxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Marc Zyngier <marc.zyngier@xxxxxxx>
Link:
http://lkml.kernel.org/r/1441731636-17610-3-git-send-email-geert%2Brenesas@xxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit f4e209cdc7a00f934007f40cf885471799073b0d
Author: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Date: Tue Sep 8 19:00:35 2015 +0200
irqchip/renesas-intc-irqpin: Propagate wake-up settings to parent
The renesas-intc-irqpin interrupt controller is cascaded to the GIC, but
its driver doesn't propagate wake-up settings to the parent interrupt
controller.
Since commit aec89ef72ba6c944 ("irqchip/gic: Enable SKIP_SET_WAKE and
MASK_ON_SUSPEND"), the GIC driver masks interrupts during suspend, and
wake-up through gpio-keys now fails on r8a7740/armadillo and
sh73a0/kzm9g.
Fix this by propagating wake-up settings to the parent interrupt
controller. There's no need to handle irq_set_irq_wake() failures, as
the renesas-intc-irqpin interrupt controller is always cascaded to a
GIC, and the GIC driver always sets SKIP_SET_WAKE since the
aforementioned commit.
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Cc: Sudeep Holla <sudeep.holla@xxxxxxx>
Cc: Magnus Damm <magnus.damm@xxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Marc Zyngier <marc.zyngier@xxxxxxx>
Link:
http://lkml.kernel.org/r/1441731636-17610-2-git-send-email-geert%2Brenesas@xxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 769b5cf78e6c653c2f513649ee6c4e7a06723872
Author: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Date: Wed Sep 9 13:42:54 2015 +0200
irqchip/renesas-intc-irqpin: Use a separate lockdep class
The renesas-intc-irqpin interrupt controller is cascaded to the GIC.
Hence when propagating wake-up settings to its parent interrupt
controller, the following lockdep warning is printed:
=============================================
[ INFO: possible recursive locking detected ]
4.2.0-armadillo-10725-g50fcd7643c034198 #781 Not tainted
---------------------------------------------
s2ram/1179 is trying to acquire lock:
(&irq_desc_lock_class){-.-...}, at: [<c005bb54>]
__irq_get_desc_lock+0x78/0x94
but task is already holding lock:
(&irq_desc_lock_class){-.-...}, at: [<c005bb54>]
__irq_get_desc_lock+0x78/0x94
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(&irq_desc_lock_class);
lock(&irq_desc_lock_class);
*** DEADLOCK ***
May be due to missing lock nesting notation
7 locks held by s2ram/1179:
#0: (sb_writers#7){.+.+.+}, at: [<c00c9708>]
__sb_start_write+0x64/0xb8
#1: (&of->mutex){+.+.+.}, at: [<c0125a00>]
kernfs_fop_write+0x78/0x1a0
#2: (s_active#23){.+.+.+}, at: [<c0125a08>]
kernfs_fop_write+0x80/0x1a0
#3: (autosleep_lock){+.+.+.}, at: [<c0058244>]
pm_autosleep_lock+0x18/0x20
#4: (pm_mutex){+.+.+.}, at: [<c0057e50>] pm_suspend+0x54/0x248
#5: (&dev->mutex){......}, at: [<c0243a20>]
__device_suspend+0xdc/0x240
#6: (&irq_desc_lock_class){-.-...}, at: [<c005bb54>]
__irq_get_desc_lock+0x78/0x94
stack backtrace:
CPU: 0 PID: 1179 Comm: s2ram Not tainted
4.2.0-armadillo-10725-g50fcd7643c034198
Hardware name: Generic R8A7740 (Flattened Device Tree)
[<c00129f4>] (dump_backtrace) from [<c0012bec>] (show_stack+0x18/0x1c)
[<c0012bd4>] (show_stack) from [<c03f5d94>] (dump_stack+0x20/0x28)
[<c03f5d74>] (dump_stack) from [<c00514d4>]
(__lock_acquire+0x67c/0x1b88)
[<c0050e58>] (__lock_acquire) from [<c0052df8>]
(lock_acquire+0x9c/0xbc)
[<c0052d5c>] (lock_acquire) from [<c03fb068>]
(_raw_spin_lock_irqsave+0x44/0x58)
[<c03fb024>] (_raw_spin_lock_irqsave) from [<c005bb54>]
(__irq_get_desc_lock+0x78/0x94
[<c005badc>] (__irq_get_desc_lock) from [<c005c3d8>]
(irq_set_irq_wake+0x28/0x100)
[<c005c3b0>] (irq_set_irq_wake) from [<c01e50d0>]
(intc_irqpin_irq_set_wake+0x24/0x4c)
[<c01e50ac>] (intc_irqpin_irq_set_wake) from [<c005c17c>]
(set_irq_wake_real+0x3c/0x50
[<c005c140>] (set_irq_wake_real) from [<c005c414>]
(irq_set_irq_wake+0x64/0x100)
[<c005c3b0>] (irq_set_irq_wake) from [<c02a19b4>]
(gpio_keys_suspend+0x60/0xa0)
[<c02a1954>] (gpio_keys_suspend) from [<c023b750>]
(platform_pm_suspend+0x3c/0x5c)
Avoid this false positive by using a separate lockdep class for INTC
External IRQ Pin interrupts.
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Cc: Grygorii Strashko <grygorii.strashko@xxxxxx>
Cc: Magnus Damm <magnus.damm@xxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441798974-25716-3-git-send-email-geert%2Brenesas@xxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit b1370658804510f6a1c0517a8ff1c9534d371edd
Author: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Date: Wed Sep 9 13:42:53 2015 +0200
irqchip/renesas-irqc: Use a separate lockdep class
The renesas-irqc interrupt controller is cascaded to the GIC. Hence when
propagating wake-up settings to its parent interrupt controller, the
following lockdep warning is printed:
=============================================
[ INFO: possible recursive locking detected ]
4.2.0-ape6evm-10725-g50fcd7643c034198 #280 Not tainted
---------------------------------------------
s2ram/1072 is trying to acquire lock:
(&irq_desc_lock_class){-.-...}, at: [<c008d3fc>]
__irq_get_desc_lock+0x58/0x98
but task is already holding lock:
(&irq_desc_lock_class){-.-...}, at: [<c008d3fc>]
__irq_get_desc_lock+0x58/0x98
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(&irq_desc_lock_class);
lock(&irq_desc_lock_class);
*** DEADLOCK ***
May be due to missing lock nesting notation
6 locks held by s2ram/1072:
#0: (sb_writers#7){.+.+.+}, at: [<c012eb14>]
__sb_start_write+0xa0/0xa8
#1: (&of->mutex){+.+.+.}, at: [<c019396c>]
kernfs_fop_write+0x4c/0x1bc
#2: (s_active#24){.+.+.+}, at: [<c0193974>]
kernfs_fop_write+0x54/0x1bc
#3: (pm_mutex){+.+.+.}, at: [<c008213c>] pm_suspend+0x10c/0x510
#4: (&dev->mutex){......}, at: [<c02af3c4>]
__device_suspend+0xdc/0x2cc
#5: (&irq_desc_lock_class){-.-...}, at: [<c008d3fc>]
__irq_get_desc_lock+0x58/0x98
stack backtrace:
CPU: 0 PID: 1072 Comm: s2ram Not tainted
4.2.0-ape6evm-10725-g50fcd7643c034198 #280
Hardware name: Generic R8A73A4 (Flattened Device Tree)
[<c0018078>] (unwind_backtrace) from [<c00144f0>]
(show_stack+0x10/0x14)
[<c00144f0>] (show_stack) from [<c0451f14>] (dump_stack+0x88/0x98)
[<c0451f14>] (dump_stack) from [<c007b29c>]
(__lock_acquire+0x15cc/0x20e4)
[<c007b29c>] (__lock_acquire) from [<c007c6e0>]
(lock_acquire+0xac/0x12c)
[<c007c6e0>] (lock_acquire) from [<c0457c00>]
(_raw_spin_lock_irqsave+0x40/0x54)
[<c0457c00>] (_raw_spin_lock_irqsave) from [<c008d3fc>]
(__irq_get_desc_lock+0x58/0x98)
[<c008d3fc>] (__irq_get_desc_lock) from [<c008ebbc>]
(irq_set_irq_wake+0x20/0xf8)
[<c008ebbc>] (irq_set_irq_wake) from [<c0260770>]
(irqc_irq_set_wake+0x20/0x4c)
[<c0260770>] (irqc_irq_set_wake) from [<c008ec28>]
(irq_set_irq_wake+0x8c/0xf8)
[<c008ec28>] (irq_set_irq_wake) from [<c02cb8c0>]
(gpio_keys_suspend+0x74/0xc0)
[<c02cb8c0>] (gpio_keys_suspend) from [<c02ae8cc>]
(dpm_run_callback+0x54/0x124)
Avoid this false positive by using a separate lockdep class for IRQC
interrupts.
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Cc: Grygorii Strashko <grygorii.strashko@xxxxxx>
Cc: Magnus Damm <magnus.damm@xxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441798974-25716-2-git-send-email-geert%2Brenesas@xxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 157add60cb35913b8a848a3d7e6456b8ed134796
Author: Pavel Fedin <p.fedin@xxxxxxxxxxx>
Date: Sun Sep 13 12:14:33 2015 +0100
irqchip/GICv2m: Fix GICv2m build warning on 32 bits
After GICv2m was enabled for 32-bit ARM kernel, a warning popped up:
drivers/irqchip/irq-gic-v2m.c: In function gicv2m_compose_msi_msg:
drivers/irqchip/irq-gic-v2m.c:100:2: warning: right shift count >= width
of type [enabled by default]
msg->address_hi = (u32) (addr >> 32);
^
This patch fixes it by using proper macros for splitting up the value.
Signed-off-by: Pavel Fedin <p.fedin@xxxxxxxxxxx>
Reviewed-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Stuart Yoder <stuart.yoder@xxxxxxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1442142873-20213-4-git-send-email-marc.zyngier@xxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 5a9a8915c8888b615521b17d70a4342187eae60b
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Sun Sep 13 12:14:32 2015 +0100
irqchip/gic-v3-its: Add missing cache flushes
When the ITS is configured for non-cacheable transactions, make sure
that the allocated, zeroed memory is flushed to the Point of
Coherency, allowing the ITS to observe the zeros instead of random
garbage (or even get its own data overwritten by zeros being evicted
from the cache...).
Fixes: 241a386c7dbb "irqchip: gicv3-its: Use non-cacheable accesses when
no shareability"
Reported-and-tested-by: Stuart Yoder <stuart.yoder@xxxxxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Pavel Fedin <p.fedin@xxxxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1442142873-20213-3-git-send-email-marc.zyngier@xxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 12e14066f4835f5ee1ca795f0309415b54c067a9
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Sun Sep 13 12:14:31 2015 +0100
irqchip/GIC: Add workaround for aliased GIC400
The GICv2 architecture mandates that the two 4kB GIC regions are
contiguous, and on two separate physical pages (so that access to
the second page can be trapped by a hypervisor). This doesn't work
very well when PAGE_SIZE is 64kB.
A relatively common hack^Wway to work around this is to alias each
4kB region over its own 64kB page. Of course in this case, the base
address you want to use is not really the begining of the region,
but base + 60kB (so that you get a contiguous 8kB region over two
distinct pages).
Normally, this would be described in DT with a new property, but
some HW is already out there, and the firmware makes sure that
it will override whatever you put in the GIC node. Duh. And of course,
said firmware source code is not available, despite being based
on u-boot.
The workaround is to detect the case where the CPU interface size
is set to 128kB, and verify the aliasing by checking that the ID
register for GIC400 (which is the only GIC wired this way so far)
is the same at base and base + 0xF000. In this case, we update
the GIC base address and let it roll.
And if you feel slightly sick by looking at this, rest assured that
I do too...
Reported-by: Julien Grall <julien.grall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Stuart Yoder <stuart.yoder@xxxxxxxxxxxxx>
Cc: Pavel Fedin <p.fedin@xxxxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1442142873-20213-2-git-send-email-marc.zyngier@xxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit e4084a16bbe07957811c75dfb7c9bf25c5862ba0
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Sun Sep 13 13:37:03 2015 +0100
platform-msi: Do not cache msi_desc in handler_data
The current implementation of platform MSI caches the msi_desc
pointer in irq_data::handler_data. This is a bit silly, as
we also have irq_data::msi_desc, which is perfectly valid.
Remove the useless assignment and simplify the whole flow.
Reported-by: Ma Jun <majun258@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Reviewed-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1442147824-20971-1-git-send-email-marc.zyngier@xxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit dc2ec62f75fd9be78d07b3b453aeb0d201ead419
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Tue Sep 15 13:34:05 2015 +0200
net/mlx4_en: Use access helper irq_data_get_affinity_mask()
This is a preparatory patch for moving irq_data struct members. Search
and replace was done with coccinelle
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Amir Vadai <amirv@xxxxxxxxxxxx>
commit da92b4eb7e2ec9866f14a0c8f453788e8052dee7
Author: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Date: Mon Jun 1 16:05:33 2015 +0800
powerpc, irq: Use access helper irq_data_get_affinity_mask()
Use access helper irq_data_get_affinity_mask() so we can move the
affinity mask to irq_common_data.
Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1433145945-789-25-git-send-email-jiang.liu@xxxxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 8f4216c7d28976f7ec1b2bcbfa0a9f787133c45e
Author: Jason Wang <jasowang@xxxxxxxxxx>
Date: Tue Sep 15 14:41:57 2015 +0800
kvm: fix zero length mmio searching
Currently, if we had a zero length mmio eventfd assigned on
KVM_MMIO_BUS. It will never be found by kvm_io_bus_cmp() since it
always compares the kvm_io_range() with the length that guest
wrote. This will cause e.g for vhost, kick will be trapped by qemu
userspace instead of vhost. Fixing this by using zero length if an
iodevice is zero length.
Cc: stable@xxxxxxxxxxxxxxx
Cc: Gleb Natapov <gleb@xxxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>
Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit eefd6b06b17c5478e7c24bea6f64beaa2c431ca6
Author: Jason Wang <jasowang@xxxxxxxxxx>
Date: Tue Sep 15 14:41:56 2015 +0800
kvm: fix double free for fast mmio eventfd
We register wildcard mmio eventfd on two buses, once for KVM_MMIO_BUS
and once on KVM_FAST_MMIO_BUS but with a single iodev
instance. This will lead to an issue: kvm_io_bus_destroy() knows
nothing about the devices on two buses pointing to a single dev. Which
will lead to double free[1] during exit. Fix this by allocating two
instances of iodevs then registering one on KVM_MMIO_BUS and another
on KVM_FAST_MMIO_BUS.
CPU: 1 PID: 2894 Comm: qemu-system-x86 Not tainted 3.19.0-26-generic
#28-Ubuntu
Hardware name: LENOVO 2356BG6/2356BG6, BIOS G7ET96WW (2.56 ) 09/12/2013
task: ffff88009ae0c4b0 ti: ffff88020e7f0000 task.ti: ffff88020e7f0000
RIP: 0010:[<ffffffffc07e25d8>] [<ffffffffc07e25d8>]
ioeventfd_release+0x28/0x60 [kvm]
RSP: 0018:ffff88020e7f3bc8 EFLAGS: 00010292
RAX: dead000000200200 RBX: ffff8801ec19c900 RCX: 000000018200016d
RDX: ffff8801ec19cf80 RSI: ffffea0008bf1d40 RDI: ffff8801ec19c900
RBP: ffff88020e7f3bd8 R08: 000000002fc75a01 R09: 000000018200016d
R10: ffffffffc07df6ae R11: ffff88022fc75a98 R12: ffff88021e7cc000
R13: ffff88021e7cca48 R14: ffff88021e7cca50 R15: ffff8801ec19c880
FS: 00007fc1ee3e6700(0000) GS:ffff88023e240000(0000)
knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f8f389d8000 CR3: 000000023dc13000 CR4: 00000000001427e0
Stack:
ffff88021e7cc000 0000000000000000 ffff88020e7f3be8 ffffffffc07e2622
ffff88020e7f3c38 ffffffffc07df69a ffff880232524160 ffff88020e792d80
0000000000000000 ffff880219b78c00 0000000000000008 ffff8802321686a8
Call Trace:
[<ffffffffc07e2622>] ioeventfd_destructor+0x12/0x20 [kvm]
[<ffffffffc07df69a>] kvm_put_kvm+0xca/0x210 [kvm]
[<ffffffffc07df818>] kvm_vcpu_release+0x18/0x20 [kvm]
[<ffffffff811f69f7>] __fput+0xe7/0x250
[<ffffffff811f6bae>] ____fput+0xe/0x10
[<ffffffff81093f04>] task_work_run+0xd4/0xf0
[<ffffffff81079358>] do_exit+0x368/0xa50
[<ffffffff81082c8f>] ? recalc_sigpending+0x1f/0x60
[<ffffffff81079ad5>] do_group_exit+0x45/0xb0
[<ffffffff81085c71>] get_signal+0x291/0x750
[<ffffffff810144d8>] do_signal+0x28/0xab0
[<ffffffff810f3a3b>] ? do_futex+0xdb/0x5d0
[<ffffffff810b7028>] ? __wake_up_locked_key+0x18/0x20
[<ffffffff810f3fa6>] ? SyS_futex+0x76/0x170
[<ffffffff81014fc9>] do_notify_resume+0x69/0xb0
[<ffffffff817cb9af>] int_signal+0x12/0x17
Code: 5d c3 90 0f 1f 44 00 00 55 48 89 e5 53 48 89 fb 48 83 ec 08 48 8b
7f 20 e8 06 d6 a5 c0 48 8b 43 08 48 8b 13 48 89 df 48 89 42 08 <48> 89 10 48 b8
00 01 10 00 00
RIP [<ffffffffc07e25d8>] ioeventfd_release+0x28/0x60 [kvm]
RSP <ffff88020e7f3bc8>
Cc: stable@xxxxxxxxxxxxxxx
Cc: Gleb Natapov <gleb@xxxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>
Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 85da11ca587c8eb73993a1b503052391a73586f9
Author: Jason Wang <jasowang@xxxxxxxxxx>
Date: Tue Sep 15 14:41:55 2015 +0800
kvm: factor out core eventfd assign/deassign logic
This patch factors out core eventfd assign/deassign logic and leaves
the argument checking and bus index selection to callers.
Cc: stable@xxxxxxxxxxxxxxx
Cc: Gleb Natapov <gleb@xxxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>
Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 8453fecbecae26edb3f278627376caab05d9a88d
Author: Jason Wang <jasowang@xxxxxxxxxx>
Date: Tue Sep 15 14:41:54 2015 +0800
kvm: don't try to register to KVM_FAST_MMIO_BUS for non mmio eventfd
We only want zero length mmio eventfd to be registered on
KVM_FAST_MMIO_BUS. So check this explicitly when arg->len is zero to
make sure this.
Cc: stable@xxxxxxxxxxxxxxx
Cc: Gleb Natapov <gleb@xxxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>
Reviewed-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit d10bcd473301888f957ec4b6b12aa3621be78d59
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Wed Sep 2 18:49:28 2015 +0100
arm64: head.S: initialise mdcr_el2 in el2_setup
When entering the kernel at EL2, we fail to initialise the MDCR_EL2
register which controls debug access and PMU capabilities at EL1.
This patch ensures that the register is initialised so that all traps
are disabled and all the PMU counters are available to the host. When a
guest is scheduled, KVM takes care to configure trapping appropriately.
Cc: <stable@xxxxxxxxxxxxxxx>
Acked-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit 2314ee4d444e28d4670ff80c84df68c25887decb
Author: Leo Yan <leo.yan@xxxxxxxxxx>
Date: Fri Aug 21 04:40:22 2015 +0100
arm64: enable generic idle loop
Enable generic idle loop for ARM64, so can support for hlt/nohlt
command line options to override default idle loop behavior.
Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit c5e6bd2ed3e81df443e4ae11e95ed71ff77bf9e5
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:59:02 2015 +0300
perf tests: Fix software clock events test setting maps
The test titled "Test software clock events have valid period values"
was setting cpu/thread maps directly. Make it use the proper function
perf_evlist__set_maps() especially now that it also propagates the maps.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-15-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 2998272275fc31fc3d478ef9c95e7eaef67dafa3
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:59:01 2015 +0300
perf tests: Fix task exit test setting maps
The test titled "Test number of exit event of a simple workload" was
setting cpu/thread maps directly. Make it use the proper function
perf_evlist__set_maps() especially now that it also propagates the maps.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-14-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 8c0498b6891d7ca5c379c6283de7fc7fe8eebe5c
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:59:00 2015 +0300
perf evlist: Fix create_syswide_maps() not propagating maps
Fix it by making it call perf_evlist__set_maps() instead of setting the
maps itself.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-13-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 44c42d71c659527c81bf169808959c9339116d85
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:58:59 2015 +0300
perf evlist: Fix add() not propagating maps
If evsels are added after maps are created, then they won't have any
maps propagated to them. Fix that.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-12-git-send-email-adrian.hunter@xxxxxxxxx
[ Moved the moving of propagate_maps() to the patch before, so that this
one does _just_ the one lile fix calling in add()]
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit adc0c3e87b0e1baeccabe09b6dba738f17d0e91d
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:58:58 2015 +0300
perf evlist: Factor out a function to propagate maps for a single evsel
Subsequent fixes will need a function that just propagates maps for a
single evsel so factor it out.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-11-git-send-email-adrian.hunter@xxxxxxxxx
[ Moved them to before perf_evlist__add() to avoid having to move it in
the next patch ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 74bfd2b25de354feb4484c553dce4fe8d9c3b60b
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:58:57 2015 +0300
perf evlist: Make create_maps() use set_maps()
Since there is a function to set maps, perf_evlist__create_maps() should
use it.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-10-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 934e0f2053ce299893ca48a411bf7fdc8ac6254f
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:58:56 2015 +0300
perf evlist: Make set_maps() more resilient
Make perf_evlist__set_maps() more resilient by allowing for the
possibility that one or another of the maps isn't being changed and
therefore should not be "put".
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-9-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit fce4d296b405b03fba033a55017348bf55b10db6
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:58:55 2015 +0300
perf evsel: Add own_cpus member
perf_evlist__propagate_maps() cannot easily tell if an evsel has its own
cpu map. To make that simpler, keep a copy of the PMU cpu map and
adjust the propagation logic accordingly.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-8-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit b278c364b35ae940b05f6a9edf8061fc886cd09e
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:58:54 2015 +0300
perf evlist: Fix missing thread_map__put in propagate_maps()
perf_evlist__propagate_maps() incorrectly assumes evsel->threads is NULL
before reassigning it, but it won't be NULL when perf_evlist__set_maps()
is used to set different (or NULL) maps. Thus thread_map__put must be
used, which works even if evsel->threads is NULL.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-7-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit f114d6eff76d20b521d8716e969e71b1f56f82b5
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:58:53 2015 +0300
perf evlist: Fix splice_list_tail() not setting evlist
Commit d49e46950772 ("perf evsel: Add a backpointer to the evlist a
evsel is in") updated perf_evlist__add() but not
perf_evlist__splice_list_tail().
This illustrates that it is better if perf_evlist__splice_list_tail()
calls perf_evlist__add() instead of duplicating the logic, so do that.
This will also simplify a subsequent fix for propagating maps.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-6-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit ec9a77a7e3346a05b1287597982d0dd09dd1c3bd
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:58:52 2015 +0300
perf evlist: Add has_user_cpus member
Subsequent patches will need to call perf_evlist__propagate_maps without
reference to a "target". Add evlist->has_user_cpus to record whether
the user has specified which cpus to target (and therefore whether that
list of cpus should override the default settings for a selected event
i.e. the cpu maps should be propagated)
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-5-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit d5bc056e73841d4bc941474a342ef9b6a207ac84
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:58:51 2015 +0300
perf evlist: Remove redundant validation from propagate_maps()
The validation checks that the values that were just assigned, got
assigned i.e. the error can't ever happen. Subsequent patches will call
this code in places where errors are not being returned. Changing those
code paths to return this non-existent error is counter-productive, so
just remove it.
That in turn results in perf_evlist__set_maps not needing to return an
error, but callers aren't checking it either, so remove that too.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-4-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 725e06b2e2754fbff61521fa76fee51cee5bcb5f
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:58:50 2015 +0300
perf evlist: Simplify set_maps() logic
Don't need to check for NULL when "putting" evlist->maps and
evlist->threads because the "put" functions already do that.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-3-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit a69b09e2342a9c144b0291b9aeb849ab7d5843bf
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 8 10:58:49 2015 +0300
perf evlist: Simplify propagate_maps() logic
If evsel->cpus is to be reassigned then the current value must be "put",
which works even if it is NULL. Simplify the current logic by moving
the "put" next to the assignment.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441699142-18905-2-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 2cd55c68c0a49a75433b15c7dbd1991fef81e662
Author: Ian Munsie <imunsie@xxxxxxxxxxx>
Date: Tue Sep 15 15:48:34 2015 +1000
cxl: Fix build failure due to -Wunused-variable behaviour change
A recent change in gcc caused this build failure:
/var/lib/jenkins/workspace/gcc_kernel_build/linux/drivers/misc/cxl/cxl.h:72:27:
error: â??CXL_PSL_DLCNTLâ?? defined but not used
[-Werror=unused-const-variable]
static const cxl_p1_reg_t CXL_PSL_DLCNTL = {0x0060};
Because of this gcc commit:
Commit 1bca8cbd0c68366f07277f98ce6963e10c2aa617 by mark
PR28901 -Wunused-variable ignores unused const initialised variables in C
12 years ago it was decided that -Wunused-variable shouldn't warn about
static const variables because some code used const static char rcsid[]
strings which were never used but wanted in the code anyway. But as the
bug points out this hides some real bugs. These days the usage of
rcsids is not very popular anymore. So this patch changes the default
to warn about unused static const variables in C with
-Wunused-variable. And it adds a new option -Wno-unused-const-variable
to turn this warning off. For C++ this new warning is off by default,
since const variables can be used as #defines in C++. New testcases for
the new defaults in C and C++ are included testing the new warning and
suppressing it with an unused attribute or using
-Wno-unused-const-variable. gcc/ChangeLog
The cxl driver uses static consts in place of #defines in some cases
for type safety, so this change causes the driver to fail to build on
new copilers as these constants are not all used in every file that
imports the header. Suppress the warning for this driver to return to
the old behaviour of -Wunused-variable.
Reported-by: Anton Blanchard <anton@xxxxxxxxxxx>
Signed-off-by: Ian Munsie <imunsie@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 2925c2fdf1e0eb642482f5b30577e9435aaa8edb
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Tue Sep 15 15:04:07 2015 +1000
cxl: Fix unbalanced pci_dev_get in cxl_probe
Currently the first thing we do in cxl_probe is to grab a reference
on the pci device. Later on, we call device_register on our adapter.
In our remove path, we call device_unregister, but we never call
pci_dev_put. We therefore leak the device every time we do a
reflash.
device_register/unregister is sufficient to hold the reference.
Therefore, drop the call to pci_dev_get.
Here's why this is safe.
The proposed cxl_probe(pdev) calls cxl_adapter_init:
a) init calls cxl_adapter_alloc, which creates a struct cxl,
conventionally called adapter. This struct contains a
device entry, adapter->dev.
b) init calls cxl_configure_adapter, where we set
adapter->dev.parent = &dev->dev (here dev is the pci dev)
So at this point, the cxl adapter's device's parent is the PCI
device that I want to be refcounted properly.
c) init calls cxl_register_adapter
*) cxl_register_adapter calls device_register(&adapter->dev)
So now we're in device_register, where dev is the adapter device, and
we want to know if the PCI device is safe after we return.
device_register(&adapter->dev) calls device_initialize() and then
device_add().
device_add() does a get_device(). device_add() also explicitly grabs
the device's parent, and calls get_device() on it:
parent = get_device(dev->parent);
So therefore, device_register() takes a lock on the parent PCI dev,
which is what pci_dev_get() was guarding. pci_dev_get() can therefore
be safely removed.
Fixes: f204e0b8cedd ("cxl: Driver code for powernv PCIe based cards for
userspace access")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Acked-by: Ian Munsie <imunsie@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit c1ceb5fff01c0357de0386f87a620a4636ca68d1
Author: Nathan Sullivan <nathan.sullivan@xxxxxx>
Date: Mon Aug 31 09:49:52 2015 -0500
Documentation: bindings: add doc for zynq USB
Document the binding for the zynq specific chipidea UDC binding.
Signed-off-by: Nathan Sullivan <nathan.sullivan@xxxxxx>
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit 84bc70f94d81f1d3107dbcdafc1b193169e82131
Author: Nathan Sullivan <nathan.sullivan@xxxxxx>
Date: Mon Aug 31 09:49:51 2015 -0500
usb: chipidea: add xilinx zynq platform data
Due to having hardware tx buffers less than 512 bytes in size, streaming
must be enabled on the Zynq for the udc to work at all. Add platform data
specific to the Zynq udc, which does not set the CI_HDRC_DISABLE_STREAMING
flag.
Based on a patch by the same name from the Xilinx vendor tree.
Signed-off-by: Nathan Sullivan <nathan.sullivan@xxxxxx>
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit 56ffa1d154c7e12af16273f0cdc42690dd05caf5
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Mon Aug 24 14:10:07 2015 +0800
usb: chipidea: udc: using the correct stall implementation
According to spec, there are functional and protocol stalls.
For functional stall, it is for bulk and interrupt endpoints,
below are cases for it:
- Host sends SET_FEATURE request for Set-Halt, the udc driver
needs to set stall, and return true unconditionally.
- The gadget driver may call usb_ep_set_halt to stall certain
endpoints, if there is a transfer in pending, the udc driver
should not set stall, and return -EAGAIN accordingly.
These two kinds of stall need to be cleared by host using CLEAR_FEATURE
request (Clear-Halt).
For protocol stall, it is for control endpoint, this stall will
be set if the control request has failed. This stall will be
cleared by next setup request (hardware will do it).
It fixed usbtest (drivers/usb/misc/usbtest.c) Test 13 "set/clear halt"
test failure, meanwhile, this change has been verified by
USB2 CV Compliance Test and MSC Tests.
Cc: <stable@xxxxxxxxxxxxxxx> #3.10+
Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
Cc: Felipe Balbi <balbi@xxxxxx>
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit e30f3963f2c3c03119d71f1804bdb94ccd33580b
Author: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Date: Mon Sep 14 01:24:41 2015 -0700
drm/ttm: Fix memory space allocation v2
In the event that TTM doesn't find a compatible memory type for the
driver's first placement choice (placement without eviction), TTM
returns -EINVAL without trying the driver's second choice.
This causes problems on vmwgfx when VRAM is disabled before first modeset
and during VT switches when fbdev is not enabled.
Fix this by also trying the driver's second choice before returning
-EINVAL.
v2: Also check that man->use_type is true for the driver's second choice.
Fixes a bug where disallowed memory types could be used.
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Reviewed-by: Brian Paul <brianp@xxxxxxxxxx>
Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
commit 1975dbc276c6ab62230cf4f9df5ddc9ff0e0e473
Author: Jonathan Corbet <corbet@xxxxxxx>
Date: Mon Sep 14 17:11:05 2015 -0600
locking/static_keys: Fix up the static keys documentation
Fix a few small mistakes in the static key documentation and
delete an unneeded sentence.
Suggested-by: Jason Baron <jbaron@xxxxxxxxxx>
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/20150914171105.511e1e21@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit a30e577c96f59b1e1678ea5462432b09bf7d5cbc
Author: Jeff Mahoney <jeffm@xxxxxxxx>
Date: Fri Sep 11 21:44:17 2015 -0400
btrfs: skip waiting on ordered range for special files
In btrfs_evict_inode, we properly truncate the page cache for evicted
inodes but then we call btrfs_wait_ordered_range for every inode as well.
It's the right thing to do for regular files but results in incorrect
behavior for device inodes for block devices.
filemap_fdatawrite_range gets called with inode->i_mapping which gets
resolved to the block device inode before getting passed to
wbc_attach_fdatawrite_inode and ultimately to inode_to_bdi. What happens
next depends on whether there's an open file handle associated with the
inode. If there is, we write to the block device, which is unexpected
behavior. If there isn't, we through normally and inode->i_data is used.
We can also end up racing against open/close which can result in crashes
when i_mapping points to a block device inode that has been closed.
Since there can't be any page cache associated with special file inodes,
it's safe to skip the btrfs_wait_ordered_range call entirely and avoid
the problem.
Cc: <stable@xxxxxxxxxxxxxxx>
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=100911
Tested-by: Christoph Biedl <linux-kernel.bfrz@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
Reviewed-by: Filipe Manana <fdmanana@xxxxxxxx>
commit bcb2b0b2bae2de744223c68521cd51c57feb486c
Author: Sudeep Holla <Sudeep.Holla@xxxxxxx>
Date: Mon Sep 14 16:01:55 2015 +0100
ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED()
This commit removes all CONFIG_.*{,_MODULE} in ACPI code, replacing it
with IS_ENABLED().
Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit cf3a51059efd653aa38667db799e85d77231af9d
Author: Sudeep Holla <Sudeep.Holla@xxxxxxx>
Date: Mon Sep 14 16:01:54 2015 +0100
ACPI: int340x_thermal: add missing CONFIG_ prefix
This patch adds the missing CONFIG_ prefix to INTEL_SOC_DTS_THERMAL
macros.
Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 005efedf2c7d0a270ffbe28d8997b03844f3e3e7
Author: Filipe Manana <fdmanana@xxxxxxxx>
Date: Mon Sep 14 09:09:31 2015 +0100
Btrfs: fix read corruption of compressed and shared extents
If a file has a range pointing to a compressed extent, followed by
another range that points to the same compressed extent and a read
operation attempts to read both ranges (either completely or part of
them), the pages that correspond to the second range are incorrectly
filled with zeroes.
Consider the following example:
File layout
[0 - 8K] [8K - 24K]
| |
| |
points to extent X, points to extent X,
offset 4K, length of 8K offset 0, length 16K
[extent X, compressed length = 4K uncompressed length = 16K]
If a readpages() call spans the 2 ranges, a single bio to read the extent
is submitted - extent_io.c:submit_extent_page() would only create a new
bio to cover the second range pointing to the extent if the extent it
points to had a different logical address than the extent associated with
the first range. This has a consequence of the compressed read end io
handler (compression.c:end_compressed_bio_read()) finish once the extent
is decompressed into the pages covering the first range, leaving the
remaining pages (belonging to the second range) filled with zeroes (done
by compression.c:btrfs_clear_biovec_end()).
So fix this by submitting the current bio whenever we find a range
pointing to a compressed extent that was preceded by a range with a
different extent map. This is the simplest solution for this corner
case. Making the end io callback populate both ranges (or more, if we
have multiple pointing to the same extent) is a much more complex
solution since each bio is tightly coupled with a single extent map and
the extent maps associated to the ranges pointing to the shared extent
can have different offsets and lengths.
The following test case for fstests triggers the issue:
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
tmp=/tmp/$$
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_cleanup()
{
rm -f $tmp.*
}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
# real QA test starts here
_need_to_be_root
_supported_fs btrfs
_supported_os Linux
_require_scratch
_require_cloner
rm -f $seqres.full
test_clone_and_read_compressed_extent()
{
local mount_opts=$1
_scratch_mkfs >>$seqres.full 2>&1
_scratch_mount $mount_opts
# Create a test file with a single extent that is compressed (the
# data we write into it is highly compressible no matter which
# compression algorithm is used, zlib or lzo).
$XFS_IO_PROG -f -c "pwrite -S 0xaa 0K 4K" \
-c "pwrite -S 0xbb 4K 8K" \
-c "pwrite -S 0xcc 12K 4K" \
$SCRATCH_MNT/foo | _filter_xfs_io
# Now clone our extent into an adjacent offset.
$CLONER_PROG -s $((4 * 1024)) -d $((16 * 1024)) -l $((8 * 1024)) \
$SCRATCH_MNT/foo $SCRATCH_MNT/foo
# Same as before but for this file we clone the extent into a lower
# file offset.
$XFS_IO_PROG -f -c "pwrite -S 0xaa 8K 4K" \
-c "pwrite -S 0xbb 12K 8K" \
-c "pwrite -S 0xcc 20K 4K" \
$SCRATCH_MNT/bar | _filter_xfs_io
$CLONER_PROG -s $((12 * 1024)) -d 0 -l $((8 * 1024)) \
$SCRATCH_MNT/bar $SCRATCH_MNT/bar
echo "File digests before unmounting filesystem:"
md5sum $SCRATCH_MNT/foo | _filter_scratch
md5sum $SCRATCH_MNT/bar | _filter_scratch
# Evicting the inode or clearing the page cache before reading
# again the file would also trigger the bug - reads were returning
# all bytes in the range corresponding to the second reference to
# the extent with a value of 0, but the correct data was persisted
# (it was a bug exclusively in the read path). The issue happened
# only if the same readpages() call targeted pages belonging to the
# first and second ranges that point to the same compressed extent.
_scratch_remount
echo "File digests after mounting filesystem again:"
# Must match the same digests we got before.
md5sum $SCRATCH_MNT/foo | _filter_scratch
md5sum $SCRATCH_MNT/bar | _filter_scratch
}
echo -e "\nTesting with zlib compression..."
test_clone_and_read_compressed_extent "-o compress=zlib"
_scratch_unmount
echo -e "\nTesting with lzo compression..."
test_clone_and_read_compressed_extent "-o compress=lzo"
status=0
exit
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Filipe Manana <fdmanana@xxxxxxxx>
Reviewed-by: Qu Wenruo<quwenruo@xxxxxxxxxxxxxx>
Reviewed-by: Liu Bo <bo.li.liu@xxxxxxxxxx>
commit d25ed277fbd4c20247286fda2014ae6a2b88316b
Merge: 9c488de 3bba75a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 14 16:58:35 2015 -0700
Merge tag 'clk-fixes-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
Pull clk fixes from Stephen Boyd:
"A couple build fixes for drivers introduced in the merge window and a
handful of patches to add more critical clocks on rockchip SoCs that
are affected by newly introduced gpio clock handling"
* tag 'clk-fixes-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
clk: rockchip: Add pclk_peri to critical clocks on RK3066/RK3188
clk: rockchip: add pclk_cpu to the list of rk3188 critical clocks
clk: rockchip: handle critical clocks after registering all clocks
clk: Hi6220: separately build stub clock driver
clk: h8s2678: Fix compile error
commit 4184a8fc57a43faa2625988cc87031db77af9d98
Merge: 6ff33f3 5f25f066
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 15 01:29:43 2015 +0200
Merge branch 'for-rafael' of
https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq into pm-devfreq
Pull devfreq updates for v4.3 from MyungJoo Ham.
* 'for-rafael' of
https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq:
PM / devfreq: Fix incorrect type issue.
PM / devfreq: tegra: Update governor to use devfreq_update_stats()
PM / devfreq: comments for get_dev_status usage updated
PM / devfreq: drop comment about thermal setting max_freq
PM / devfreq: cache the last call to get_dev_status()
PM / devfreq: Drop unlikely before IS_ERR(_OR_NULL)
PM / devfreq: exynos-ppmu: bit-wise operation bugfix.
PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2
PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433
PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding
Conflicts:
drivers/devfreq/event/exynos-ppmu.c
commit ae7858180510d6fd0dfaf66d209bc6103db1678f
Author: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Date: Wed Sep 9 21:06:29 2015 +0800
selftests: exec: revert to default emit rule
With the previous patch, the installation method change from install
to rsync. There is no need to create subdir during test, the
default EMIT_TESTS is enough.
This patch essentially revert commit 84cbd9e4 ("selftests/exec: do not
install subdir as it is already created").
Suggested-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Signed-off-by: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
commit 900d65ee11aae3a23cb963f484b65eb3e269dd9c
Author: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Date: Wed Sep 9 21:06:28 2015 +0800
selftests: change install command to rsync
The command of install could not handle the special files in exec
testcases, change the default rule to rsync to fix this.
The installation is unchanged after this commit.
Suggested-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Signed-off-by: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
commit b11054b959cf921a646b64983bc35193c1597739
Author: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Date: Wed Sep 9 21:06:27 2015 +0800
selftests: mqueue: simplify the Makefile
Use make's implict rule for building simple C programs.
Suggested-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Signed-off-by: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
commit cc19ada7340b5ed87a94ea381ff7ade6a053b2f3
Author: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Date: Wed Sep 9 21:06:26 2015 +0800
selftests: mqueue: allow extra cflags
Change from = to += in order to allows the user to pass whatever
CFLAGS they wish(E.g. pass the proper headers and librareis
(popt.h and libpopt.so) in cross-compiling)
Suggested-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Signed-off-by: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Acked-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
commit 1087d019176df7e406387de3fe76129c74d24081
Author: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Date: Wed Sep 9 21:06:25 2015 +0800
selftests: rename jump label to static_keys
Commit 2bf9e0ab08c6 ("locking/static_keys: Provide a selftest")
renamed jump_label directory to static_keys and failed to update
the Makefile, causing the selftests build to fail.
This commit fixes it by updating the Makefile with the new name
and also moves the entry into the correct position to keep the
list alphabetically sorted.
Fixes: 2bf9e0ab08c6 ("locking/static_keys: Provide a selftest")
Signed-off-by: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Acked-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Acked-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
commit b623c4daadb5a4bfaef62783085b95bd9ba5a77c
Author: Kees Cook <keescook@xxxxxxxxxxxx>
Date: Fri Aug 21 11:22:35 2015 -0700
selftests/seccomp: add support for s390
This adds support for s390 to the seccomp selftests. Some improvements
were made to enhance the accuracy of failure reporting, and additional
tests were added to validate assumptions about the currently traced
syscall. Also adds early asserts for running on older kernels to avoid
noise when the seccomp syscall is not implemented.
Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
commit 7ef7cc9fdf9853b3027c55b9481991695ad5e5b2
Author: Zhang Zhen <zhenzhang.zhang@xxxxxxxxxx>
Date: Mon Sep 14 12:13:27 2015 +0800
seltests/zram: fix syntax error
Not all shells define a variable UID. This is a bash and zsh feature only.
In other shells, the UID variable is not defined, so here test command
expands to [ != 0 ] which is a syntax error.
Without this patch:
root@HGH1000007090:/opt/work/linux/tools/testing/selftests/zram# sh
zram.sh
zram.sh: 8: [: !=: unexpected operator
zram.sh : No zram.ko module or /dev/zram0 device file not found
zram.sh : CONFIG_ZRAM is not set
With this patch:
root@HGH1000007090:/opt/work/linux/tools/testing/selftests/zram# sh
./zram.sh
zram.sh : No zram.ko module or /dev/zram0 device file not found
zram.sh : CONFIG_ZRAM is not set
Signed-off-by: Zhang Zhen <zhenzhang.zhang@xxxxxxxxxx>
Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
commit 7168e947291f0ead07e5638b4599fb7845288b69
Merge: 21b430d 60fdcb8
Author: Tony Lindgren <tony@xxxxxxxxxxx>
Date: Mon Sep 14 13:42:11 2015 -0700
Merge branch 'fixes-rc1' into omap-for-v4.3/fixes
commit 60fdcb8863d9b4a8b6c6b367886fadb50d4c0b07
Author: Nicolas Chauvet <kwizart@xxxxxxxxx>
Date: Thu Sep 3 17:34:40 2015 +0200
ARM: dts: Fixup model name for HP t410 dts
This fix the model name for the device.
Whole string taken from the HP support center web page
Signed-off-by: Nicolas Chauvet <kwizart@xxxxxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit c263a5b8120523b736ed4641657075f2024e75b7
Author: Vishal Mahaveer <vishalm@xxxxxx>
Date: Tue Aug 25 13:57:49 2015 -0500
ARM: dts: DRA7: fix a typo in ethernet
Register address in name of the node is wrong
Signed-off-by: Vishal Mahaveer <vishalm@xxxxxx>
Acked-by: Mugunthan V N <mugunthanvnm@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 3ab74b89c4d50e6d29d3ace2d400a8a3f1e6de3f
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Wed Aug 5 19:13:49 2015 +0530
ARM: omap2plus_defconfig: make PCF857x built-in
One of the lines from PCF857x is connected to the vdd line of MMC1
in DRA74x and DRA72x EVMs and is modelled as a regulator. If PCF857x
is not made as built-in, the regulator_get in omap_hsmmc fails making
it difficult to use MMC1 as rootfs.
Make PCF857x built-in.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Signed-off-by: Sekhar Nori <nsekhar@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 737f146fe0dd1353f5e2c6153fedd81f48b5cd65
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Fri Sep 4 17:30:25 2015 +0530
ARM: dts: Use ti,pbias compatible string for pbias
Use platform specific compatible strings instead of the common
"ti,pbias-omap" compatible string.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Acked-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 380528f742796e1244e931c51e77c9ed664f566c
Author: Heiko Stübner <heiko@xxxxxxxxx>
Date: Sun Sep 13 13:20:36 2015 +0200
clk: rockchip: add critical clock for rk3368
Again a result of the gpio-clock-liberation the rk3368 needs the
pclk_pd_pmu marked as critical, to boot successfully.
Reported-by: Mark Rutland <mark.rutland@xxxxxxx>
Signed-off-by: Heiko Stuebner <heiko@xxxxxxxxx>
Tested-by: Mark Rutland <mark.rutland@xxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 9c488de24f7264f08d341024bffdd637b4d04c96
Merge: 57e6bbc eda2116
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 14 12:49:15 2015 -0700
Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6
Pull CIFS fixes from Steve French:
"Two small cifs fixes"
* 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
[CIFS] mount option sec=none not displayed properly in /proc/mounts
CIFS: fix type confusion in copy offload ioctl
commit 57e6bbcb4beb4c87aa93e78a1db08fdaab9ee65f
Merge: 6ff33f3 c2172ce
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 14 12:24:10 2015 -0700
Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Pull ARM fixes from Russell King:
"A number of fixes for the merge window, fixing a number of cases
missed when testing the uaccess code, particularly cases which only
show up with certain compiler versions"
* 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
ARM: 8431/1: fix alignement of __bug_table section entries
arm/xen: Enable user access to the kernel before issuing a privcmd call
ARM: domains: add memory dependencies to get_domain/set_domain
ARM: domains: thread_info.h no longer needs asm/domains.h
ARM: uaccess: fix undefined instruction on ARMv7M/noMMU
ARM: uaccess: remove unneeded uaccess_save_and_disable macro
ARM: swpan: fix nwfpe for uaccess changes
ARM: 8429/1: disable GCC SRA optimization
commit d8f8004ec7048fb2faa6967ab51259b5603562fb
Author: Nishanth Menon <nm@xxxxxx>
Date: Wed Sep 9 16:18:14 2015 -0500
ARM: OMAP5: Cleanup options for SoC only build
OMAP5 SoC has Cortex-A15 which does not use TWD timer. It uses
ARCH_TIMER instead, clean up unwanted configuration and enable
OMAP_INTERCONNECT and OPP which is necessary for expected functionality
on the SoC.
Reported-by: Carlos Hernandez <ceh@xxxxxx>
Reported-by: Felipe Balbi <balbi@xxxxxx>
Signed-off-by: Nishanth Menon <nm@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit d2e104c63a81e64574a6af9806f2a5d5a48248d9
Author: Nishanth Menon <nm@xxxxxx>
Date: Wed Sep 9 16:18:13 2015 -0500
ARM: DRA7: Select missing options for SoC only build
DRA7 does use OPP, uses OMAP interconnect and also does require SCU.
These are missing in the SoC only build of DRA7 breaking various PM
features in DRA7 only build.
Reported-by: Carlos Hernandez <ceh@xxxxxx>
Signed-off-by: Nishanth Menon <nm@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit a3b7470951ab49e5592d20c2bcfe5ee675221591
Author: Nishanth Menon <nm@xxxxxx>
Date: Wed Sep 9 16:18:12 2015 -0500
ARM: OMAP2+: board-generic: Remove stale of_irq macros
When commit c4082d499fa2 ("ARM: omap2+: board-generic: clean up the
irq data from board file") cleaned up the direct usage of gic_of_init
and omap_intc_of_init, it failed to clean up the macros properly.
Since these macros are no longer used, lets just remove them.
Fixes: c4082d499fa2 ("ARM: omap2+: board-generic: clean up the irq data
from board file")
Reported-by: Carlos Hernandez <ceh@xxxxxx>
Signed-off-by: Nishanth Menon <nm@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 6d785c963a660b0279c43a2b1cd9b1c89ce5514b
Author: Nishanth Menon <nm@xxxxxx>
Date: Wed Sep 9 16:18:11 2015 -0500
ARM: OMAP4+: PM: erratum is used by OMAP5 and DRA7 as well
OMAP5 and DRA7 reuse the same pm44xx_erratum variable so, enable the
same, else PM features such as Suspend to ram is broken in a SoC only
build configuration.
Reported-by: Carlos Hernandez <ceh@xxxxxx>
Signed-off-by: Nishanth Menon <nm@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit d34cf0d56658ff040c707313b4a71e86a767cbc2
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Mon Sep 7 18:24:18 2015 +0200
ARM: dts: omap3-igep: Move eth IRQ pinmux to IGEPv2 common dtsi
Only the IGEPv2 boards have a LAN9221i chip connected to the GPMC
so the pinmux configuration for the GPIO connected to the IRQ line
of the LAN chip should not be defined in the IGEP common dtsi but
in the one common to the IGEPv2 boards.
While there, use the OMAP3_CORE1_IOPAD() macro for the padconf reg.
Suggested-by: Ladislav Michl <ladis@xxxxxxxxxxxxxx>
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Acked-by: Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit c22c7f3e667bece46efe97780ab2df3af700aea0
Author: Nishanth Menon <nm@xxxxxx>
Date: Thu Sep 3 14:24:00 2015 -0500
ARM: dts: am57xx-beagle-x15: Add wakeup irq for mcp79410
With the support in the generic PM framework for wakeirq and capability
added to the rtc-ds1307 driver to support this, we can now define the
optional wakeup irq to allow the RTC to wakeup the system from low power
modes as part of suspend.
Signed-off-by: Nishanth Menon <nm@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 259c0c04acde19d6286def1661ed22d0fb3b05b9
Author: Teresa Remmet <t.remmet@xxxxxxxxx>
Date: Thu Sep 3 14:00:06 2015 +0200
ARM: dts: am335x-phycore-som: Fix mpu voltage
Fix the mpu voltage as it is set too low for the silicon
revision 2.1.
Signed-off-by: Teresa Remmet <t.remmet@xxxxxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 423fe5f3c35ff0f374d5452eb2db93a28bf6b9e2
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Wed Jul 29 16:39:42 2015 +0530
ARM: dts: am57xx-beagle-x15: Fix regulator populated in MMC1 dt node
For beagle x15, both the vdd and io lines are connected to the
same regulator (ldo1_reg). However vmmc_aux is populated to vdd_3v3.
Remove it.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Acked-by: Nishanth Menon <nm@xxxxxx>
[tony@xxxxxxxxxxx: updated to apply]
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 87ee15ec26000c6edc10e63c415bee1239e042c8
Author: Tony Lindgren <tony@xxxxxxxxxxx>
Date: Mon Sep 14 07:07:28 2015 -0700
ARM: dts: Fix dm814x control base to properly initialize Ethernet PHY
Looks like I made a typo on the control base, all the 81xx
SoCs have it at 0x48140000 base. We've just gotten away with
the typo as the Ethernet phy was configured by the bootloader
on my test system and we're not yet using the pinctrl.
In addition to fixing the contol base, we need to also use the
right Ethernet phy flags to initialize it. And we are still
missing the PLL driver for dm814x and only relying on the
divider and mux clocks.
Fixes: f3d953ea3721 ("ARM: dts: Add minimal dm814x support")
Cc: Matthijs van Duin <matthijsvanduin@xxxxxxxxx>
Cc: Nicolas Chauvet <kwizart@xxxxxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 3a2fa775bd1d0579113666c1a2e37654a34018a0
Author: Carl Frederik Werner <frederik@xxxxxxx>
Date: Wed Sep 2 10:07:57 2015 +0900
ARM: dts: omap3-beagle: make i2c3, ddc and tfp410 gpio work again
Let's fix pinmux address of gpio 170 used by tfp410 powerdown-gpio.
According to the OMAP35x Technical Reference Manual
CONTROL_PADCONF_I2C3_SDA[15:0] 0x480021C4 mode0: i2c3_sda
CONTROL_PADCONF_I2C3_SDA[31:16] 0x480021C4 mode4: gpio_170
the pinmux address of gpio 170 must be 0x480021C6.
The former wrong address broke i2c3 (used by hdmi ddc), resulting in
kernel message:
omap_i2c 48060000.i2c: controller timed out
Fixes: 8cecf52befd7 ("ARM: omap3-beagle.dts: add display information")
Cc: stable@xxxxxxxxxxxxxxx # v3.15+
Signed-off-by: Carl Frederik Werner <frederik@xxxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit df5c79e982b38eec1d184668d66f9ce0c426e2a1
Merge: f17b329 721b51f
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Mon Sep 14 19:53:39 2015 +0100
Merge branch 'fix/rt5645' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-fix-rt5645
commit 295c3405a8bbd69ee8c8eb6580f30b0b8739b33a
Author: Jyri Sarha <jsarha@xxxxxx>
Date: Wed Sep 9 21:27:42 2015 +0300
ASoC: davinci-mcasp: Set .symmetric_rates = 1 in snd_soc_dai_driver
The TX and RX direction share the same bit clock and frame sync, so
the samplerate must be the same to both directions.
Signed-off-by: Jyri Sarha <jsarha@xxxxxx>
Acked-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit bd315aab8a3ab1bc7074774b89a5d8ec7c1ff7ab
Author: Wang Nan <wangnan0@xxxxxxxxxx>
Date: Mon Sep 14 10:23:55 2015 +0000
perf top: Fix segfault pressing -> with no hist entries
'perf top' segfaults with following operation:
# perf top -e page-faults -p 11400 # 11400 never generates page-fault
Then on the resulting empty interface, press right key:
# ./perf top -e page-faults -p 11400
perf: Segmentation fault
-------- backtrace --------
./perf[0x535428]
/lib64/libc.so.6(+0x3545f)[0x7f0dd360745f]
./perf[0x531d46]
./perf(perf_evlist__tui_browse_hists+0x96)[0x5340d6]
./perf[0x44ba2f]
/lib64/libpthread.so.0(+0x81d0)[0x7f0dd49dc1d0]
/lib64/libc.so.6(clone+0x6c)[0x7f0dd36b90dc]
The bug resides in perf_evsel__hists_browse() that, in the above
circumstance browser->selection can be NULL, but code after
skip_annotation doesn't consider it.
This patch fix it by checking browser->selection before fetching
browser->selection->map.
Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Zefan Li <lizefan@xxxxxxxxxx>
Cc: pi3orama@xxxxxxx
Link:
http://lkml.kernel.org/r/1442226235-117265-1-git-send-email-wangnan0@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 921e54680aefe52f28d9ce9485edb1bfef4b92a8
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Tue Sep 1 14:50:15 2015 +0800
ASoC: au1x: psc-i2s: Fix unused variable 'ret' warning
Fix below build warning:
sound/soc/au1x/psc-i2s.c: In function 'au1xpsc_i2s_drvprobe':
sound/soc/au1x/psc-i2s.c:299:6: warning: unused variable 'ret'
[-Wunused-variable]
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 42617869bf095c650e67aad4001cab4224e7fa98
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Tue Sep 1 12:31:24 2015 +0800
ASoC: SPEAr: Make SND_SPEAR_SOC select SND_SOC_GENERIC_DMAENGINE_PCM
devm_snd_dmaengine_pcm_register() is guarded by
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit e4fba9b5be12d577d2e2c19fdca6b0744c3f271e
Author: Koro Chen <koro.chen@xxxxxxxxxxxx>
Date: Mon Sep 14 14:51:17 2015 +0800
ASoC: mediatek: Increase periods_min in capture
In capture, there is chance that hw_ptr reported at IRQ is
a little smaller than period_size due to internal AFE buffer.
In the case of ping-pong buffer:
|xxxxxxxxxxxxxxxxxxxxxxxxxxxx--|-----------------------------|
hw_ptr < period_size
This available buffer will not be read since its size is smaller than
avail_min (which is period_size by default), and read thread continues
to sleep. If the next hw_ptr is just a little larger than buffer_size,
overrun occurs. One more period can hold the possible unread buffer.
Signed-off-by: Koro Chen <koro.chen@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 81523aac01a7f68af2576800c8623edfb6323017
Author: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 14:12:53 2015 +0800
KVM: make the declaration of functions within 80 characters
After 'commit 0b8ba4a2b658 ("KVM: fix checkpatch.pl errors in
kvm/coalesced_mmio.h")', the declaration of the two function will exceed
80
characters.
This patch reduces the TAPs to make each line in 80 characters.
Signed-off-by: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 5d7c631d926b59aa16f3c56eaeb83f1036c81dc7
Author: Shaohua Li <shli@xxxxxx>
Date: Thu Jul 30 16:24:43 2015 -0700
x86/apic: Serialize LVTT and TSC_DEADLINE writes
The APIC LVTT register is MMIO mapped but the TSC_DEADLINE register is an
MSR. The write to the TSC_DEADLINE MSR is not serializing, so it's not
guaranteed that the write to LVTT has reached the APIC before the
TSC_DEADLINE MSR is written. In such a case the write to the MSR is
ignored and as a consequence the local timer interrupt never fires.
The SDM decribes this issue for xAPIC and x2APIC modes. The
serialization methods recommended by the SDM differ.
xAPIC:
"1. Memory-mapped write to LVT Timer Register, setting bits 18:17 to 10b.
2. WRMSR to the IA32_TSC_DEADLINE MSR a value much larger than current
time-stamp counter.
3. If RDMSR of the IA32_TSC_DEADLINE MSR returns zero, go to step 2.
4. WRMSR to the IA32_TSC_DEADLINE MSR the desired deadline."
x2APIC:
"To allow for efficient access to the APIC registers in x2APIC mode,
the serializing semantics of WRMSR are relaxed when writing to the
APIC registers. Thus, system software should not use 'WRMSR to APIC
registers in x2APIC mode' as a serializing instruction. Read and write
accesses to the APIC registers will occur in program order. A WRMSR to
an APIC register may complete before all preceding stores are globally
visible; software can prevent this by inserting a serializing
instruction, an SFENCE, or an MFENCE before the WRMSR."
The xAPIC method is to just wait for the memory mapped write to hit
the LVTT by checking whether the MSR write has reached the hardware.
There is no reason why a proper MFENCE after the memory mapped write would
not do the same. Andi Kleen confirmed that MFENCE is sufficient for the
xAPIC case as well.
Issue MFENCE before writing to the TSC_DEADLINE MSR. This can be done
unconditionally as all CPUs which have TSC_DEADLINE also have MFENCE
support.
[ tglx: Massaged the changelog ]
Signed-off-by: Shaohua Li <shli@xxxxxx>
Reviewed-by: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: <Kernel-team@xxxxxx>
Cc: <lenb@xxxxxxxxxx>
Cc: <fenghua.yu@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx #v3.7+
Link:
http://lkml.kernel.org/r/20150909041352.GA2059853@xxxxxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 723831927e8813b5b336d383174f686ad708bf10
Author: Peter Ujfalusi <peter.ujfalusi@xxxxxx>
Date: Mon Sep 14 16:06:48 2015 +0300
ASoC: davinci-mcasp: Revise the FIFO threshold calculation
The FIFO threshold for McASP should be <=[tx/rx]numevt so the initial
value
for the refining should meet this requirement as well.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 4857c91f0d195f05908fff296ba1ec5fca87066c
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Sep 14 12:00:55 2015 +0200
x86/ioapic: Force affinity setting in setup_ioapic_dest()
The recent ioapic cleanups changed the affinity setting in
setup_ioapic_dest() from a direct write to the hardware to the delayed
affinity setup via irq_set_affinity().
That results in a warning from chained_irq_exit():
WARNING: CPU: 0 PID: 5 at kernel/irq/migration.c:32 irq_move_masked_irq
[<ffffffff810a0a88>] irq_move_masked_irq+0xb8/0xc0
[<ffffffff8103c161>] ioapic_ack_level+0x111/0x130
[<ffffffff812bbfe8>] intel_gpio_irq_handler+0x148/0x1c0
The reason is that irq_set_affinity() does not write directly to the
hardware. It marks the affinity setting as pending and executes it
from the next interrupt. The chained handler infrastructure does not
take the irq descriptor lock for performance reasons because such a
chained interrupt is not visible to any interfaces. So the delayed
affinity setting triggers the warning in irq_move_masked_irq().
Restore the old behaviour by calling the set_affinity function of the
ioapic chip in setup_ioapic_dest(). This is safe as none of the
interrupts can be on the fly at this point.
Fixes: aa5cb97f14a2 'x86/irq: Remove x86_io_apic_ops.set_affinity and
related interfaces'
Reported-and-tested-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: jarkko.nikula@xxxxxxxxxxxxxxx
commit ba378ca9c04a5fc1b2cf0f0274a9d02eb3d1bad9
Author: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
Date: Mon Sep 14 18:04:09 2015 +0200
netfilter: nft_compat: skip family comparison in case of NFPROTO_UNSPEC
Fix lookup of existing match/target structures in the corresponding list
by skipping the family check if NFPROTO_UNSPEC is used.
This is resulting in the allocation and insertion of one match/target
structure for each use of them. So this not only bloats memory
consumption but also severely affects the time to reload the ruleset
from the iptables-compat utility.
After this patch, iptables-compat-restore and iptables-compat take
almost the same time to reload large rulesets.
Fixes: 0ca743a55991 ("netfilter: nf_tables: add compatibility layer for
x_tables")
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit 63cdbc06b357dcb3a7104a421ee4a4550d7fadfd
Author: Florian Westphal <fw@xxxxxxxxx>
Date: Mon Sep 14 17:06:27 2015 +0200
netfilter: bridge: fix routing of bridge frames with call-iptables=1
We can't re-use the physoutdev storage area.
1. When using NFQUEUE in PREROUTING, we attempt to bump a bogus
refcnt since nf_bridge->physoutdev is garbage (ipv4/ipv6 address)
2. for same reason, we crash in physdev match in FORWARD or later if
skb is routed instead of bridged.
This increases nf_bridge_info to 40 bytes, but we have no other choice.
Fixes: 72b1e5e4cac7 ("netfilter: bridge: reduce nf_bridge_info to 32
bytes again")
Reported-by: Sander Eikelenboom <linux@xxxxxxxxxxxxxx>
Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit 586b286b110e94eb31840ac5afc0c24e0881fe34
Author: Mike Snitzer <snitzer@xxxxxxxxxx>
Date: Wed Sep 9 21:34:51 2015 -0400
dm crypt: constrain crypt device's max_segment_size to PAGE_SIZE
Setting the dm-crypt device's max_segment_size to PAGE_SIZE is an
unfortunate constraint that is required to avoid the potential for
exceeding dm-crypt's underlying device's max_segments limits -- due to
crypt_alloc_buffer() possibly allocating pages for the encryption bio
that are not as physically contiguous as the original bio.
It is interesting to note that this problem was already fixed back in
2007 via commit 91e106259 ("dm crypt: use bio_add_page"). But Linux 4.0
commit cf2f1abfb ("dm crypt: don't allocate pages for a partial
request") regressed dm-crypt back to _not_ using bio_add_page(). But
given dm-crypt's cpu parallelization changes all depend on commit
cf2f1abfb's abandoning of the more complex io fragments processing that
dm-crypt previously had we cannot easily go back to using
bio_add_page().
So all said the cleanest way to resolve this issue is to fix dm-crypt to
properly constrain the original bios entering dm-crypt so the encryption
bios that dm-crypt generates from the original bios are always
compatible with the underlying device's max_segments queue limits.
It should be noted that technically Linux 4.3 does _not_ need this fix
because of the block core's new late bio-splitting capability. But, it
is reasoned, there is little to be gained by having the block core split
the encrypted bio that is composed of PAGE_SIZE segments. That said, in
the future we may revert this change.
Fixes: cf2f1abfb ("dm crypt: don't allocate pages for a partial request")
Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=104421
Suggested-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # 4.0+
commit 43297dda0a51e4ffed0888ce727c218cfb7474b6
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Mon Sep 14 16:06:03 2015 +0100
KVM: arm64: add workaround for Cortex-A57 erratum #852523
When restoring the system register state for an AArch32 guest at EL2,
writes to DACR32_EL2 may not be correctly synchronised by Cortex-A57,
which can lead to the guest effectively running with junk in the DACR
and running into unexpected domain faults.
This patch works around the issue by re-ordering our restoration of the
AArch32 register aliases so that they happen before the AArch64 system
registers. Ensuring that the registers are restored in this order
guarantees that they will be correctly synchronised by the core.
Cc: <stable@xxxxxxxxxxxxxxx>
Reviewed-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 762982db33b23029e98c844611e2e8beeb75bc0d
Author: Roger Quadros <rogerq@xxxxxx>
Date: Thu Aug 13 13:28:42 2015 +0300
usb: phy: phy-generic: Fix reset behaviour on legacy boot
The gpio-desc migration done in v4.0 caused a regression
with legacy boots due to reversed reset logic.
e.g. omap3-beagle USB host breaks on legacy boot.
Request the reset GPIO with GPIOF_ACTIVE_LOW flag so that
it matches the driver logic and pin behaviour.
Fixes: e9f2cefb0cdc ("usb: phy: generic: migrate to gpio_desc")
Cc: <stable@xxxxxxxxxxxxxxx> # 4.0+
Tested-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Roger Quadros <rogerq@xxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 523d5daf86e5e8b540bdc91e090197b5665f0519
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 17:45:37 2015 +0200
usb: musb: ux500: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 6fc6f4b87cb32fcd0bf5e5bce434301958a3b624
Author: Pascal Huerst <pascal.huerst@xxxxxxxxx>
Date: Thu Sep 3 10:50:58 2015 +0200
usb: musb: Disable interrupts on suspend, enable them on resume
In certain situations, an interrupt triggers on resume, before
musb_start()
has been called. This has been observed to cause enumeration issues after
suspend/resume cycles with AM335x.
Signed-off-by: Pascal Huerst <pascal.huerst@xxxxxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 6527cc27761a124de8c08e6488ce17fdcc74dbba
Author: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
Date: Sun Sep 6 01:11:51 2015 +0300
usb: gadget: amd5536udc: fix error handling in udc_pci_probe()
If a failure happens early in udc_pci_probe(), error handling code
just kfree(dev) and returns. The patch adds proper resource
deallocations in udc_pci_probe() itself,
since udc_pci_remove() is not suitabe to be called so early
in initialization process.
By the way, iounmap(dev->regs) is replaced by iounmap(dev->virt_addr)
in udc_pci_remove() for clarity.
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 88ccdbd5fc59ce8c69261a20746ca2533be7e358
Author: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Date: Thu Sep 10 10:37:39 2015 -0700
usb: phy: fix phy-qcom-8x16-usb build
Fix build errors that happen when USB_QCOM_8X16_PHY=y and EXTCON=m:
drivers/built-in.o: In function `phy_8x16_init':
phy-qcom-8x16-usb.c:(.text+0x86ef4): undefined reference to
`extcon_get_cable_state'
drivers/built-in.o: In function `phy_8x16_probe':
phy-qcom-8x16-usb.c:(.text+0x870bf): undefined reference to
`extcon_get_edev_by_phandle'
phy-qcom-8x16-usb.c:(.text+0x87133): undefined reference to
`extcon_register_interest'
phy-qcom-8x16-usb.c:(.text+0x87151): undefined reference to
`extcon_unregister_interest'
drivers/built-in.o: In function `phy_8x16_remove':
phy-qcom-8x16-usb.c:(.text+0x872ec): undefined reference to
`extcon_unregister_interest'
Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Cc: Felipe Balbi <balbi@xxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 40af177efc9385af15c49a40976f71e58e6af418
Author: Bin Liu <b-liu@xxxxxx>
Date: Mon Sep 14 09:12:34 2015 -0500
usb: musb: ensure in peripheral mode when checking session
The change ensures otg is not in a A- state when checking for VBUS in
peripheral mode.
musb_start() where VBUS checking is in can be called in many situations.
One example is in babble recovery routine, in which otg is transitioning
from A-HOST to A-WAIT-BCON, but VBUS discharge takes time, so
musb->is_active could be set to 1 due to this improper checking, then it
causes musb_bus_suspend() failed which leads to warning log message
flooding.
Signed-off-by: Bin Liu <b-liu@xxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 51256484c033a6d57d71aa8f788c24e5dc82348a
Merge: edb9272 0c06729
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Mon Sep 14 17:07:35 2015 +0200
Merge tag 'kvm-arm-for-4.3-rc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master
KVM/ARM changes for 4.3-rc2
- Fix timer interrupt injection after the rework
that went in during the merge window
- Reset the timer to zero on reboot
- Make sure the TCR_EL2 RES1 bits are really set to 1
- Fix a PSCI affinity bug for non-existing vcpus
commit edb9272f35d8bc97c86101a13f67d0ba16f3eecc
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Mon Sep 14 17:38:51 2015 +0800
KVM: fix polling for guest halt continued even if disable it
If there is already some polling ongoing, it's impossible to disable the
polling, since as soon as somebody sets halt_poll_ns to 0, polling will
never stop, as grow and shrink are only handled if halt_poll_ns is != 0.
This patch fix it by reset vcpu->halt_poll_ns in order to stop polling
when polling is disabled.
Reported-by: Christian Borntraeger <borntraeger@xxxxxxxxxx>
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit e2ae0692bf6f71c8b841889b655d0dc08413e4e3
Author: Felipe Balbi <balbi@xxxxxx>
Date: Tue Aug 25 12:07:45 2015 -0500
usb: dwc3: omap: enable irqs lately
If we enable IRQs before requesting our
extcon device, we might fall into a situation
where and IRQ fires before we're ready to
handle it.
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit e4c1b1ba7f663fd77204201eef83baf58e2e5777
Author: Robert Baldyga <r.baldyga@xxxxxxxxxxx>
Date: Fri Aug 21 11:01:29 2015 +0200
usb: gadget: fix possible regression introduced with ep->claimed
This patch fixes possible regression introduced by
patch reworking endpoint claiming mechanism. It restores
setring ep->driver_data to NULL in usb_ep_autoconfig_reset(),
which was removed by patch commit cc476b42a39d.
Fixes: cc476b42a39d ("usb: gadget: encapsulate endpoint
claiming mechanism")
Reported-by: Felipe Balbi <balbi@xxxxxx>
Signed-off-by: Robert Baldyga <r.baldyga@xxxxxxxxxxx>
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit f5cbb182586ea36c6ad0e90e3534d18a5e9af094
Author: Javi Merino <javi.merino@xxxxxxx>
Date: Mon Sep 14 14:23:53 2015 +0100
thermal: power_allocator: don't require tzp to be present for the thermal
zone
Thermal zones created using thermal_zone_device_create() may not have
tzp. As the governor gets its parameters from there, allocate it while
the governor is bound to the thermal zone so that it can operate in it.
In this case, tzp is freed when the thermal zone switches to another
governor.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: Eduardo Valentin <edubezval@xxxxxxxxx>
Reviewed-by: Daniel Kurtz <djkurtz@xxxxxxxxxxxx>
Signed-off-by: Javi Merino <javi.merino@xxxxxxx>
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 8b7b390f805f09ff252351468a79ebabde1ab55a
Author: Javi Merino <javi.merino@xxxxxxx>
Date: Mon Sep 14 14:23:52 2015 +0100
thermal: power_allocator: relax the requirement of two passive trip points
The power allocator governor currently requires that the thermal zone
has at least two passive trip points. If there aren't, the governor
refuses to bind to the thermal zone.
This commit relaxes that requirement. Now the governor will bind to all
thermal zones regardless of how many trip points they have.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: Eduardo Valentin <edubezval@xxxxxxxxx>
Reviewed-by: Daniel Kurtz <djkurtz@xxxxxxxxxxxx>
Signed-off-by: Javi Merino <javi.merino@xxxxxxx>
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit e055bb0f9a6e5c09bedf41c2a5b881edbd7f2ed0
Author: Javi Merino <javi.merino@xxxxxxx>
Date: Mon Sep 14 14:23:51 2015 +0100
thermal: power_allocator: relax the requirement of a sustainable_power in
tzp
The power allocator governor currently requires that a sustainable power
is passed as part of the thermal zone's thermal zone parameters. If
that parameter is not provided, it doesn't register with the thermal
zone.
While this parameter is strongly recommended for optimal performance, it
doesn't need to be mandatory. Relax the requirement and allow the
governor to bind to thermal zones that don't provide it by estimating it
from the cooling devices' power model.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: Eduardo Valentin <edubezval@xxxxxxxxx>
Reviewed-by: Daniel Kurtz <djkurtz@xxxxxxxxxxxx>
Signed-off-by: Javi Merino <javi.merino@xxxxxxx>
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit c973c3bcec3752455c4d7545edd42935cd7942d9
Author: Javi Merino <javi.merino@xxxxxxx>
Date: Mon Sep 14 14:23:50 2015 +0100
thermal: Add a function to get the minimum power
The thermal core already has a function to get the maximum power of a
cooling device: power_actor_get_max_power(). Add a function to get the
minimum power of a cooling device.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: Eduardo Valentin <edubezval@xxxxxxxxx>
Reviewed-by: Daniel Kurtz <djkurtz@xxxxxxxxxxxx>
Signed-off-by: Javi Merino <javi.merino@xxxxxxx>
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 205ee117d4dc4a11ac3bd9638bb9b2e839f4de9a
Author: Florian Westphal <fw@xxxxxxxxx>
Date: Wed Sep 9 02:57:21 2015 +0200
netfilter: nf_log: don't zap all loggers on unregister
like nf_log_unset, nf_log_unregister must not reset the list of loggers.
Otherwise, a call to nf_log_unregister() will render loggers of other nf
protocols unusable:
iptables -A INPUT -j LOG
modprobe nf_log_arp ; rmmod nf_log_arp
iptables -A INPUT -j LOG
iptables: No chain/target/match by that name
Fixes: 30e0c6a6be ("netfilter: nf_log: prepare net namespace support for
loggers")
Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit cda34fc774d114afe98515a21c2063a803f922bc
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Mon Sep 14 12:42:23 2015 +0200
x86/paravirt: Remove the unused pv_time_ops::get_tsc_khz method
It's not used anywhere.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Acked-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Brian Gerst <brgerst@xxxxxxxxx>
Cc: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: akataria@xxxxxxxxxx
Cc: chrisw@xxxxxxxxxxxx
Cc: jeremy@xxxxxxxx
Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1442227343-403-1-git-send-email-jgross@xxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit bf950040a53da35522e38066d9eb6ab7a1c9d136
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Fri Sep 11 18:22:02 2015 +0100
arm64: pgtable: use a single bit for PTE_WRITE regardless of DBM
Depending on CONFIG_ARM64_HW_AFDBM, we use either bit 57 or 51 of the
pte to represent PTE_WRITE. Given that bit 51 is reserved prior to
ARMv8.1, we can just use that bit regardless of the config option. That
also matches what happens if a kernel configured with ARM64_HW_AFDBM=y
is run on a CPU without the DBM functionality.
Cc: Julien Grall <julien.grall@xxxxxxxxxx>
Tested-by: Julien Grall <julien.grall@xxxxxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit 62d96c71d248834af2891293dc23cc344ae2ec36
Author: Catalin Marinas <catalin.marinas@xxxxxxx>
Date: Fri Sep 11 18:22:01 2015 +0100
arm64: Fix pte_modify() to preserve the hardware dirty information
The pte_modify() function with hardware AF/DBM enabled must transfer the
hardware dirty information to the software PTE_DIRTY bit. However, it
was setting this bit in newprot and the mask does not cover such bit.
This patch sets PTE_DIRTY on the original pte which will be preserved in
the returned value.
Fixes: 2f4b829c625e ("arm64: Add support for hardware updates of the
access and dirty pte bits")
Cc: Julien Grall <julien.grall@xxxxxxxxxx>
Tested-by: Julien Grall <julien.grall@xxxxxxxxxx>
Tested-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit b847415ce96efef819534b230d84695b1bc6d36b
Author: Catalin Marinas <catalin.marinas@xxxxxxx>
Date: Fri Sep 11 18:22:00 2015 +0100
arm64: Fix the pte_hw_dirty() check when AF/DBM is enabled
Commit 2f4b829c625e ("arm64: Add support for hardware updates of the
access and dirty pte bits") introduced support for handling hardware
updates of the access flag and dirty status. The PTE is automatically
dirtied in hardware (if supported) by clearing the PTE_RDONLY bit when
the PTE_DBM/PTE_WRITE bit is set. The pte_hw_dirty() macro was added to
detect a hardware dirtied pte. The pte_dirty() macro checks for both
software PTE_DIRTY and pte_hw_dirty().
Functions like pte_modify() clear the PTE_RDONLY bit since it is meant
to be set in set_pte_at() when written to memory. In such cases,
pte_hw_dirty() would return true even though such pte is clean. This
patch changes pte_hw_dirty() to test the PTE_DBM/PTE_WRITE bit together
with PTE_RDONLY.
Fixes: 2f4b829c625e ("arm64: Add support for hardware updates of the
access and dirty pte bits")
Reported-by: Julien Grall <julien.grall@xxxxxxxxxx>
Tested-by: Julien Grall <julien.grall@xxxxxxxxxx>
Tested-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit ba9cc453c400049f632d4eb2f2835e2f96654ddc
Author: Jisheng Zhang <jszhang@xxxxxxxxxxx>
Date: Fri Sep 11 08:49:47 2015 +0100
arm64: dma-mapping: check whether cma area is initialized or not
If CMA is turned on and CMA size is set to zero, kernel should
behave as if CMA was not enabled at compile time.
Every dma allocation should check existence of cma area
before requesting memory.
Arm has done this by commit e464ef16c4f0 ("arm: dma-mapping: add
checking cma area initialized"), also do this for arm64.
Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Signed-off-by: Jisheng Zhang <jszhang@xxxxxxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit f454b478861325f067fd58ba7ee9f1b5c4a9d6a0
Author: Jan Beulich <JBeulich@xxxxxxxx>
Date: Wed Sep 2 09:45:58 2015 -0600
x86/ldt: Fix small LDT allocation for Xen
While the following commit:
37868fe113 ("x86/ldt: Make modify_ldt synchronous")
added a nice comment explaining that Xen needs page-aligned
whole page chunks for guest descriptor tables, it then
nevertheless used kzalloc() on the small size path.
As I'm unaware of guarantees for kmalloc(PAGE_SIZE, ) to return
page-aligned memory blocks, I believe this needs to be switched
back to __get_free_page() (or better get_zeroed_page()).
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Brian Gerst <brgerst@xxxxxxxxx>
Cc: David Vrabel <david.vrabel@xxxxxxxxxx>
Cc: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/55E735D6020000780009F1E6@xxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit eef7635a22f6b144206b5ca2f1398f637acffc4d
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Fri Sep 11 09:34:26 2015 +0530
clockevents: Remove unused set_mode() callback
All users are migrated to the per-state callbacks, get rid of the
unused interface and the core support code.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: John Stultz <john.stultz@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/fd60de14cf6d125489c031207567bb255ad946f6.1441943991.git.viresh.kumar@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 1e6428124fe22906be0de1622c8fed8e50e5de05
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Sat Sep 5 08:58:10 2015 +0200
x86/vm86: Fix the misleading CONFIG_VM86 Kconfig help text
The CONFIG_VM86 Kconfig help text is actively misleading, so fix it:
- Don't mark it 'obsolete' in the text as we'll support the ABI as long
as CPUs
support it.
- Qualify the part about software emulation and mention that for some
apps you
want a real vm86 mode.
- Don't scare users away from the option, instead explain what it does.
Reported-by: Stas Sergeev <stsp@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
Cc: Austin S Hemmelgarn <ahferroin7@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Brian Gerst <brgerst@xxxxxxxxx>
Cc: Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx>
Cc: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Matthew Garrett <mjg59@xxxxxxxxxxxxx>
Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit b838c950b397ebed94eb11b473f1f17428a1443d
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Sep 14 10:20:25 2015 +0200
soc: dove: Prepare irq handler for irq argument removal
The irq argument of most interrupt flow handlers is unused or merily
used instead of a local variable. The handlers which need the irq
argument can retrieve the irq number from the irq descriptor.
Search and update was done with coccinelle and the invaluable help of
Julia Lawall.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx>
commit 5230347ea70a811f0a526e8e4f0f529ac31b7d18
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Sep 14 10:27:13 2015 +0200
soc: dove: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
Search and replace done with coccinelle
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
commit 391de7f9ef9e6a500343d977ccd037b70e62aa45
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Sep 14 10:17:00 2015 +0200
powerpc/cell: Prepare irq handler for irq argument removal
The irq argument of most interrupt flow handlers is unused or merily
used instead of a local variable. The handlers which need the irq
argument can retrieve the irq number from the irq descriptor.
Search and update was done with coccinelle and the invaluable help of
Julia Lawall.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
commit 0a0dbd92584061549d9775030269365dc16ad289
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Sep 14 10:13:42 2015 +0200
powerpc/85xx: Prepare irq handlers for irq argument removal
The irq argument of most interrupt flow handlers is unused or merily
used instead of a local variable. The handlers which need the irq
argument can retrieve the irq number from the irq descriptor.
Search and update was done with coccinelle and the invaluable help of
Julia Lawall.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Scott Wood <scottwood@xxxxxxxxxxxxx>
Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
commit 5aac2d3368210f15c2fc73f158e2110a0bb611ca
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Sep 14 10:11:26 2015 +0200
powerpc/mpc5121_ads_cpld: Prepare irq handler for irq argument removal
The irq argument of most interrupt flow handlers is unused or merily
used instead of a local variable. The handlers which need the irq
argument can retrieve the irq number from the irq descriptor.
Search and update was done with coccinelle and the invaluable help of
Julia Lawall.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Anatolij Gustschin <agust@xxxxxxx>
Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
commit 2e586a7e017a502410ba1c1a7411179e1d3fbb2b
Author: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Date: Mon Sep 14 01:17:43 2015 -0700
drm/vmwgfx: Map the fifo as cached
On the guest kernel side, previously the FIFO has been mapped write-
combined. This has worked since VMs up to now has not honored the mapping
type and mapped the FIFO cached anyway. Since the FIFO is accessed cached
by the CPU on the virtual device side, this leads to inconsistent
mappings once the guest starts to honor the mapping types.
So ask for cached mappings when we map the FIFO. We do this by
using ioremap_cache() instead of ioremap_wc(), and remove the MTRR setup.
On the TTM side, MOBs, GMRs and VRAM buffers are already requesting
cached mappings for kernel- and user-space.
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
commit 54c12bc374408faddbff75dbf1a6167c19af39c4
Author: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Date: Mon Sep 14 01:13:11 2015 -0700
drm/vmwgfx: Fix up user_dmabuf refcounting
If user space calls unreference on a user_dmabuf it will typically
kill the struct ttm_base_object member which is responsible for the
user-space visibility. However the dmabuf part may still be alive and
refcounted. In some situations, like for shared guest-backed surface
referencing/opening, the driver may try to reference the
struct ttm_base_object member again, causing an immediate kernel warning
and a later kernel NULL pointer dereference.
Fix this by always maintaining a reference on the struct
ttm_base_object member, in situations where it might subsequently be
referenced.
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Reviewed-by: Brian Paul <brianp@xxxxxxxxxx>
Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
commit 19ab6bc5674a30fdb6a2436b068d19a3c17dc73e
Author: Liu.Zhao <lzsos369@xxxxxxx>
Date: Mon Aug 24 08:36:12 2015 -0700
USB: option: add ZTE PIDs
This is intended to add ZTE device PIDs on kernel.
Signed-off-by: Liu.Zhao <lzsos369@xxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx>
[johan: sort the new entries ]
Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>
commit 91a4dc9f71e4b8f9b8da547d19f80e7be89d7539
Merge: ebfb498 caa4704
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Mon Sep 14 09:29:22 2015 +0200
Merge tag 'perf-urgent-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/urgent fix from Arnaldo Carvalho de Melo:
- The values of _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN
(sysconf(3)) were
being read from perf.data files in the inverse order they are
written, fix it.
(Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit fa84b52cb681b27e6b5e003457562e25a239b9c4
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Tue Sep 8 16:46:40 2015 +0200
pinctrl: samsung: s3c24xx: fix syntax error
?SYNTAX ERROR
irq_desc_get_irq_chip() does not exist. It should
be irq_desc_get_chip(). Tested by compiling
s3c2410_defconfig.
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Reported-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 942cde724075f840ded89390b10dce1a47a4d712
Author: Tony Lindgren <tony@xxxxxxxxxxx>
Date: Thu Sep 3 10:34:30 2015 -0700
pinctrl: core: Warn about NULL gpio_chip in pinctrl_ready_for_gpio_range()
If the gpio driver is confused about the numbers for gpio-ranges,
pinctrl_ready_for_gpio_range() may get called with invalid GPIO
causing a NULL pointer exception. Let's instead provide a warning
that allows fixing the problem and return with error.
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 163dc9f39a26b41fc49319fce4145b35f9705789
Author: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Date: Sat Aug 1 13:22:38 2015 +0900
pinctrl: join lines that can be a single line within 80 columns
There is no reason to break a line shorter than 80 columns.
Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 5a99233e9bcacc7ea23e173a75bbb7301abd3e6f
Author: Julia Lawall <Julia.Lawall@xxxxxxx>
Date: Mon Aug 24 23:12:27 2015 +0200
pinctrl: digicolor: convert null test to IS_ERR test
Since commit 323de9efdf3e ("pinctrl: make pinctrl_register() return proper
error code"), pinctrl_register returns an error code rather than NULL on
failure. Update a driver that was introduced more recently.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@
expression e,e1,e2;
@@
e = pinctrl_register(...)
... when != e = e1
if (
- e == NULL
+ IS_ERR(e)
) {
...
return
- e2
+ PTR_ERR(e)
;
}
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Acked-by: Baruch Siach <baruch@xxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit d259ec26a6c541a5437e9ed0a1e1891342af3cff
Author: Julia Lawall <Julia.Lawall@xxxxxxx>
Date: Mon Aug 24 23:12:26 2015 +0200
pinctrl: qcom: ssbi: convert null test to IS_ERR test
Since commit 323de9efdf3e ("pinctrl: make pinctrl_register() return proper
error code"), pinctrl_register returns an error code rather than NULL on
failure. Update some drivers that were introduced more recently.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@
expression e,e1,e2;
@@
e = pinctrl_register(...)
... when != e = e1
if (
- e == NULL
+ IS_ERR(e)
) {
...
return
- e2
+ PTR_ERR(e)
;
}
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 46d4f7c25e1bb59b1663878b843a7ec06eaf5806
Author: Tony Lindgren <tony@xxxxxxxxxxx>
Date: Thu Sep 3 10:31:27 2015 -0700
gpio: omap: Fix GPIO numbering for deferred probe
If gpio-omap probe fails with -EPROBE_DEFER, the GPIO numbering
keeps increasing. Only increase the gpio count if gpiochip_add()
was successful as otherwise the numbers will increase for each
probe attempt.
Cc: Javier Martinez Canillas <javier@xxxxxxxxxxxx>
Cc: Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx>
Cc: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Reviewed-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit ae80d64ee8c88b77c58254bcdc5c0981faab672d
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 10:46:15 2015 +0200
Documentation: gpio: Explain that <function>-gpio is also supported
The GPIO documentation mentions that GPIOs are mapped by defining a
<function>-gpios property in the consumer device's node but a -gpio
sufix is also supported after commit:
dd34c37aa3e8 ("gpio: of: Allow -gpio suffix for property names")
Update the documentation to match the implementation.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 5e606abef57a89b3ca25f5d97a953c6cdad7cbac
Author: Tony Lindgren <tony@xxxxxxxxxxx>
Date: Fri Aug 28 11:44:49 2015 -0700
gpio: omap: Fix gpiochip_add() handling for deferred probe
Currently we gpio-omap breaks if gpiochip_add() returns -EPROBE_DEFER:
[ 0.570000] gpiochip_add: GPIOs 0..31 (gpio) failed to register
[ 0.570000] omap_gpio 48310000.gpio: Could not register gpio chip -517
...
[ 3.670000] omap_gpio 48310000.gpio: Unbalanced pm_runtime_enable!
Let's fix the issue by adding the missing pm_runtime_put() on error.
Cc: Grygorii Strashko <grygorii.strashko@xxxxxx>
Cc: Javier Martinez Canillas <javier@xxxxxxxxxxxx>
Cc: Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx>
Cc: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Acked-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit e799f35c32ea940222b568abf38d6abcab7fa8c1
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Sun Aug 30 23:58:44 2015 +0200
gpio: sx150x: Remove unnecessary MODULE_ALIAS()
The driver has a I2C device id table that is used to create the module
aliases and also "sx150x" isn't a supported I2C id, so it's never used.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 87e77e46c61a9333227ab41cdefb1875758a4f13
Author: Dirk Behme <dirk.behme@xxxxxxxxx>
Date: Wed Sep 2 20:07:10 2015 +0200
Documentation: gpio: board: describe the con_id parameter
The con_id parameter has to match the GPIO description and is
automatically
extended by the GPIO suffix if not NULL. I had to look into the code to
understand this and properly find the GPIO I've been looking for, so
document
this.
Signed-off-by: Dirk Behme <dirk.behme@xxxxxxxxx>
Acked-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 69de52ba321dda8dd7f632d1e480983494325ba0
Author: Dirk Behme <dirk.behme@xxxxxxxxx>
Date: Wed Sep 2 20:07:09 2015 +0200
Documentation: gpio: board: add flags parameter to gpiod_get*() functions
With commit 39b2bbe3d715 ("gpio: add flags argument to gpiod_get*()
functions") the gpiod_get*() functions got a 'flags' parameter. Reflect
this in the documentation, too.
Signed-off-by: Dirk Behme <dirk.behme@xxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit e20538b82f1ffcc06e68feb117f24f211cff7a4d
Author: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Date: Fri Aug 28 09:44:18 2015 -0700
gpio: Propagate errors from chip->get()
It's possible to have gpio chips hanging off unreliable remote buses
where the get() operation will fail to acquire a readout of the current
gpio state. Propagate these errors to the consumer so that they can
act on, retry or ignore these failing reads, instead of treating them as
the line being held high.
Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Reviewed-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit aad38b75fb632200eb64282469458d21ce2cc39a
Author: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>
Date: Tue Aug 25 09:12:43 2015 +0000
gpio: rcar: GPIO_RCAR doesn't relate to ARM
8cd1470("gpio: rcar: Add r8a7795 (R-Car H3) support") added
GPIO support for r8a7795. r8a7795 based on CONFIG_ARM64.
OTOH, GPIO_RCAR driver can be compiled fine on non-ARM.
This patch removed ARM dependency for it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>
Acked-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Acked-by: Simon Horman <horms+renesas@xxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 1bbc557d976b4e5ae9a41d619bd79f09ccac9afc
Author: Peng Fan <van.freenix@xxxxxxxxx>
Date: Sun Aug 23 21:11:53 2015 +0800
gpio: mxs: need to check return value of irq_alloc_generic_chip
Need to check return value of irq_alloc_generic_chip, because
it may return NULL.
1. Change mxs_gpio_init_gc return type from void to int.
2. Add a new lable out_irqdomain_remove to remove the irq domain
when mxc_gpio_init_gc fail.
Signed-off-by: Peng Fan <van.freenix@xxxxxxxxx>
Cc: Alexandre Courbot <gnurou@xxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 9e26b0b114adb321a9bf41520bac304ef49e77d1
Author: Peng Fan <van.freenix@xxxxxxxxx>
Date: Sun Aug 23 21:11:52 2015 +0800
gpio: mxc: need to check return value of irq_alloc_generic_chip
Need to check return value of irq_alloc_generic_chip, because
it may return NULL.
1. Change mxc_gpio_init_gc return type from void to int.
2. Add a new lable out_irqdomain_remove to remove the irq domain
when mxc_gpio_init_gc fail.
Signed-off-by: Peng Fan <van.freenix@xxxxxxxxx>
Cc: Alexandre Courbot <gnurou@xxxxxxxxx>
[Manually rebased]
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit eba4f88d5af84e0fcaa5d6eb4fe35a75c47203cb
Author: Javi Merino <javi.merino@xxxxxxx>
Date: Mon Aug 17 19:21:43 2015 +0100
thermal: cpu_cooling: free power table on error or when unregistering
The power table is not being freed on error from cpufreq_cooling
register or when unregistering. Free it.
Fixes: c36cf0717631 ("thermal: cpu_cooling: implement the power cooling
device API")
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: Eduardo Valentin <edubezval@xxxxxxxxx>
Signed-off-by: Javi Merino <javi.merino@xxxxxxx>
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 459ac37506d195713b5e82271a2ac44a777e47df
Author: Javi Merino <javi.merino@xxxxxxx>
Date: Mon Aug 17 19:21:42 2015 +0100
thermal: cpu_cooling: don't call kcalloc() under rcu_read_lock
build_dyn_power_table() allocates the power table while holding
rcu_read_lock. kcalloc using GFP_KERNEL may sleep, so it can't be
called in an RCU read-side path.
Move the rcu protection to the part of the function that really needs
it: the part that handles the dev_pm_opp pointer received from
dev_pm_opp_find_freq_ceil(). In the unlikely case that there is an OPP
added to the cpu while this function is running, return -EAGAIN.
Fixes: c36cf0717631 ("thermal: cpu_cooling: implement the power cooling
device API")
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: Eduardo Valentin <edubezval@xxxxxxxxx>
Signed-off-by: Javi Merino <javi.merino@xxxxxxx>
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 0847e26a84faa0fcb4572d7e42d0a44cab69a83d
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 13:10:14 2015 +0200
thermal: db8500_cpufreq_cooling: Fix module autoload for OF platform
driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 64e05d8bcc837bc66cb2c6e71796c8883aa45939
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Thu Aug 27 07:32:11 2015 +0530
thermal: cpu_cooling: Add MAINTAINERS entry
None of the patches are reaching Viresh or Daniel directly as
get_maintainers doesn't report us as maintainers. Looks like file header
or history of commits isn't able to do that properly.
Add a separate entry for cpu_cooling driver in MAINTAINERS.
Acked-by: Eduardo Valentin <edubezval@xxxxxxxxx>
Acked-by: Amit Daniel Kachhap <amit.daniel@xxxxxxxxxxx>
Acked-by: Amit Daniel Kachhap <amit.kachhap@xxxxxxxxx>
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit ec2feb475f4880246166a47e066e7a601a6103af
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Wed Sep 9 21:13:41 2015 -0700
thermal: ti-soc: Kconfig fix to avoid menu showing wrongly
Move the dependencies to menu, so we avoid showing it wrongly.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: linux-pm@xxxxxxxxxxxxxxx
Cc: linux-omap@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 41ae3c02743e8f1f21ceebca614342d26b4eb080
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Wed Sep 9 20:58:36 2015 -0700
thermal: ti-soc: allow compile test
Adding COMPILE_TEST flag to ti-soc driver to facilitate
maintenance.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: linux-pm@xxxxxxxxxxxxxxx
Cc: linux-omap@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit cb7fb4d342023d03070fcc1ed73fcd43682973d7
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Wed Sep 9 20:56:26 2015 -0700
thermal: qcom_spmi: allow compile test
Adding COMPILE_TEST flag to qcom_spmi driver to facilitate
maintenance.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: linux-pm@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 2bf427353eb606481d15d2843c76cdffa29ed418
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Wed Sep 9 20:53:35 2015 -0700
thermal: exynos: allow compile test
Adding COMPILE_TEST flag to exynos driver to facilitate
maintenance.
Cc: Lukasz Majewski <l.majewski@xxxxxxxxxxx>
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: linux-pm@xxxxxxxxxxxxxxx
Cc: linux-samsung-soc@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 1b1582672121e1c1138e68b64128d94e7f61d10c
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Wed Sep 9 20:48:00 2015 -0700
thermal: armada: allow compile test
Adding COMPILE_TEST flag to armada driver to facilitate
maintenance.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: linux-pm@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 07fffd5ccab70bc00fd69b9ce2297a5e8d05b838
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Wed Sep 9 20:45:25 2015 -0700
thermal: dove: allow compile test
Adding COMPILE_TEST flag to dove driver to facilitate
maintenance.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: linux-pm@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 9c8aa959e13f5cb082ad244d2c9b806a67d9a8b6
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Wed Sep 9 20:44:46 2015 -0700
thermal: kirkwood: allow compile test
Adding COMPILE_TEST flag to kirkwood driver to facilitate
maintenance.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: linux-pm@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 444f9b00073668f028db0c14f609cf08abc9a2b3
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Wed Sep 9 20:43:57 2015 -0700
thermal: rockchip: allow compile test
Adding COMPILE_TEST flag to rockchip driver to facilitate
maintenance.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: Heiko Stuebner <heiko@xxxxxxxxx>
Cc: linux-pm@xxxxxxxxxxxxxxx
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-rockchip@xxxxxxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit aa2937b73a45e49704b24db8d9163d83002332d9
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Wed Sep 9 20:42:01 2015 -0700
thermal: spear: allow compile test
Adding COMPILE_TEST flag to spear driver to facilitate
maintenance.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: linux-pm@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit f9e2b05218e64fc6c614b90a650863981701f974
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Wed Sep 9 20:39:44 2015 -0700
thermal: hisi: allow compile test
Adding COMPILE_TEST flag to hisi driver to facilitate maintenance.
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Cc: linux-pm@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit cd33dc9ac2977ebe30cecbf39d2992190fbac5b4
Author: Punit Agrawal <punit.agrawal@xxxxxxx>
Date: Tue Sep 8 14:51:12 2015 +0100
thermal: Fix thermal_zone_of_sensor_register to match documentation
thermal_zone_of_sensor_register is documented as returning a pointer
to either a valid thermal_zone_device on success, or a corresponding
ERR_PTR() value.
In contrast, the function returns NULL when THERMAL_OF is configured
off. Fix this.
Signed-off-by: Punit Agrawal <punit.agrawal@xxxxxxx>
Acked-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Eduardo Valentin <edubezval@xxxxxxxxx>
Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
commit 216076705d6ac291d42e0f8dd85e6a0da98c0fa3
Author: Mike Snitzer <snitzer@xxxxxxxxxx>
Date: Tue Sep 8 08:56:13 2015 -0400
dm thin: disable discard support for thin devices if pool's is disabled
If the pool is configured with 'ignore_discard' its discard support is
disabled. The pool's thin devices should also have queue_limits that
reflect discards are disabled.
Fixes: 34fbcf62 ("dm thin: range discard support")
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # 4.1+
commit cbc41d0a761bffb3166a413a3c77100a737c0cd7
Author: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Date: Tue Aug 4 14:28:15 2015 +0200
drivers: sh: Disable PM runtime for multi-platform ARM with genpd
If the default PM Domain using PM_CLK is used for PM runtime, the real
Clock Domain cannot be registered from DT later.
Hence do not enable it when running a multi-platform kernel with genpd
support on R-Car or RZ. The CPG/MSTP Clock Domain driver will take care
of PM runtime management of the module clocks.
Now most multi-platform ARM shmobile platforms (SH-Mobile, R-Mobile,
R-Car, RZ) use DT-based PM Domains to take care of PM runtime management
of the module clocks, simplify the platform logic by replacing the
explicit SoC checks by a single check for the presence of MSTP clocks in
DT.
Backwards-compatiblity with old DTs (mainly for R-Car Gen2) is provided
by checking for the presence of a "#power-domain-cells" property in DT.
The default PM Domain is still needed for:
- backwards-compatibility with old DTs that lack PM Domain properties,
- the CONFIG_PM=n case,
- legacy (non-DT) ARM/shmobile platforms without genpd support
(r8a7778, r8a7779),
- legacy SuperH.
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Reviewed-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Signed-off-by: Simon Horman <horms+renesas@xxxxxxxxxxxx>
commit 9b302c1acf4114d51b7f0962df0b0ddee0dc75cd
Author: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Date: Tue Aug 4 14:28:14 2015 +0200
drivers: sh: Disable legacy default PM Domain on emev2
EMMA Mobile EV2 doesn't have MSTP clocks. All its device drivers manage
clocks explicitly, without relying on Runtime PM, so it doesn't need the
legacy default PM Domain.
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Reviewed-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Signed-off-by: Simon Horman <horms+renesas@xxxxxxxxxxxx>
commit 8b5081c876bde9b1df5e96ee6990d5acd20c128b
Author: Benjamin Romer <benjamin.romer@xxxxxxxxxx>
Date: Fri Sep 4 12:01:33 2015 -0400
staging: unisys: visornic: handle error return from device registration
There is no code to handle an error return in visornic, when it tries to
register with visorbus. This patch handles an error return from
visorbus_register_visor_driver() by dropping out of initialization.
Signed-off-by: Benjamin Romer <benjamin.romer@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 6155a3cf11a6d4ed102ef5a30f655d4d2a38076b
Author: Benjamin Romer <benjamin.romer@xxxxxxxxxx>
Date: Fri Sep 4 12:01:32 2015 -0400
staging: unisys: stop device registration before visorbus registration
In cases where visorbus is compiled directly into the kernel, if
visorbus registration fails for any reason, it is still possible for
other drivers to call visorbus_register_visor_driver(), which could
cause an oops. Prevent this by saving the result of the call to
create_bus() in a static variable, and return an error code when the bus
hasn't been registered successfully.
Signed-off-by: Benjamin Romer <benjamin.romer@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 418627ddc6d1ed50a3dfd2c8f938741b0cbcc1ed
Author: David Kershner <david.kershner@xxxxxxxxxx>
Date: Fri Sep 4 12:01:31 2015 -0400
staging: unisys: visorbus: Unregister driver on error
If there is an error in registering driver attributes, unregister
the driver as well.
Signed-off-by: David Kershner <david.kershner@xxxxxxxxxx>
Signed-off-by: Benjamin Romer <benjamin.romer@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit f6b6a8ec9a3bcba8cc9a9c302b514cf3848e7d35
Author: David Kershner <david.kershner@xxxxxxxxxx>
Date: Fri Sep 4 12:01:30 2015 -0400
staging: unisys: visornic: Fix receive bytes statistics
The receive byte statistics was wrong in /proc/net/dev.
Move the collection of statistics after the proper amount
of bytes has been calculated and make sure you add it to
rx_bytes instead of just replacing it.
Signed-off-by: David Kershner <david.kershner@xxxxxxxxxx>
Signed-off-by: Benjamin Romer <benjamin.romer@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 5b12100a53c11ef760e78c2899be8f1bf33812ca
Author: David Kershner <david.kershner@xxxxxxxxxx>
Date: Fri Sep 4 12:01:29 2015 -0400
staging: unisys: unregister netdev when create debugfs fails
Noticed we were not unregistering the netdevice if we failed to
create the debugfs entries. This patch fixes that problem.
Signed-off-by: David Kershner <david.kershner@xxxxxxxxxx>
Signed-off-by: Benjamin Romer <benjamin.romer@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit dd3afa57c515801f37071734f56be9035fdeaa8c
Author: Stefan Wahren <stefan.wahren@xxxxxxxx>
Date: Tue Aug 25 21:04:12 2015 +0000
staging: fbtft: replace master->setup() with spi_setup()
Calling the setup of the SPI master directly causes a NULL pointer
dereference with master drivers without a separate setup function.
This problem is reproduceable on ARM MXS platform.
So fix this issue by using spi_setup() instead.
Signed-off-by: Stefan Wahren <stefan.wahren@xxxxxxxx>
Acked-by: Noralf Trønnes <noralf@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit cabb5b2a2866829177df2f1cee70f0dd42ee6ae0
Author: Stefan Wahren <stefan.wahren@xxxxxxxx>
Date: Tue Aug 25 21:04:11 2015 +0000
staging: fbtft: fix 9-bit SPI support detection
Since the result of the setup function isn't adequate to check
9-bit SPI support, we better check bits_per_word_mask. Btw this
change avoids a NULL pointer dereference with master drivers
without a separate setup function.
Signed-off-by: Stefan Wahren <stefan.wahren@xxxxxxxx>
Acked-by: Noralf Trønnes <noralf@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit d98229f0299d5d5a741873c5900159844b2b2de5
Author: Andreas Dilger <andreas.dilger@xxxxxxxxx>
Date: Mon Aug 24 11:11:49 2015 -0400
staging/lustre: change Lustre URLs and mailing list
Now that the lustre.org domain has been liberated we can again
use that for the main website URL and mailing list.
Also update the URL for userspace tools downloads and Git repo.
Signed-off-by: Andreas Dilger <andreas.dilger@xxxxxxxxx>
Signed-off-by: Oleg Drokin <oleg.drokin@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit a6ee5ac15ddf2425a066339f1ab030c97ec74b25
Author: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Fri Aug 21 14:02:57 2015 -0700
staging/android: Update ION TODO per LPC discussion
We discussed a bit with the folks on the Cc: list below what to do
with ION. Two big take-aways:
- High-performance drivers (like gpus) always want to play tricks with
coherency and will lie to the dma api (radeon, nouveau, i915 gpu
drivers all do so in upstream). What needs to be done here is fill
gaps in dma-buf so that we can do this without breaking the dma-api
expections of other clients like v4l. The consesus is that hw won't
stop needing these tricks anytime soon.
- Placement constraints for shared buffers won't be solved any other
way than through something platform-specific like ion with
platform-specific knowledge in userspace in something like gralloc.
For general-purpose devices where this assumption would be painful
for userspace (like servers) the consensus is that such devices will
have proper MMUs where placement constraint handling is fairly
irrelevant.
Hence it is reasonable to destage ion as-is without changing the
overall design to enable these use-cases and just fixing up a these
few fairly minor things. Since there won't relly be an open-source
userspace for ion (and hence drm maintainers won't take it) the
proposal is to eventually move it to drivers/android/ion.[hc]. Laura
would be ok with being maintainer once this is all done and ion is
destaged.
Note that Thiago is working on exposing the cpu cache flushing for
cpu access from userspace through mmaps so this is alread in progress.
Also adding him to the Cc: list.
v2: Add ION_IOC_IMPORT to the list of ioctl that probably should go.
Cc: Laura Abbott <labbott@xxxxxxxxxx>
Cc: sumit.semwal@xxxxxxxxxx
Cc: laurent.pinchart@xxxxxxxxxxxxxxxx
Cc: ghackmann@xxxxxxxxxx
Cc: robdclark@xxxxxxxxx
Cc: david.brown@xxxxxxx
Cc: romlem@xxxxxxxxxx
Cc: Tiago Vignatti <tiago.vignatti@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit b786a8ad6a34b45ff6e40cf9c21f9c13c38e2f70
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Tue Sep 1 22:05:58 2015 +0200
Staging: most: MOST and MOSTCORE should depend on HAS_DMA
If NO_DMA=y:
ERROR: "dma_free_coherent"
[drivers/staging/most/mostcore/mostcore.ko] undefined!
ERROR: "dma_alloc_coherent"
[drivers/staging/most/mostcore/mostcore.ko] undefined!
As all MOST sub drivers use DMA functionality, add a dependency on
HAS_DMA to MOSTCORE, and to MOST, which selects MOSTCORE.
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Acked-by: Christian Gromm <christian.gromm@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 4de2ced795272db3ee5d668510b3a91a2bf1d1fb
Author: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Date: Mon Aug 17 11:08:23 2015 -0700
staging: most: fix HDM_USB dependencies and build errors
Fix kconfig dependency warning and build errors.
warning: (HDM_USB) selects AIM_NETWORK which has unmet direct
dependencies (STAGING && MOST && NET)
drivers/built-in.o: In function `aim_resume_tx_channel':
networking.c:(.text+0xd6f7a2): undefined reference to
`netif_tx_wake_queue'
drivers/built-in.o: In function `aim_rx_data':
networking.c:(.text+0xd6f8c5): undefined reference to `__netdev_alloc_skb'
networking.c:(.text+0xd6f99a): undefined reference to `skb_put'
networking.c:(.text+0xd6fa44): undefined reference to `eth_type_trans'
networking.c:(.text+0xd6fa6f): undefined reference to `netif_rx'
drivers/built-in.o: In function `most_nd_setup':
networking.c:(.text+0xd6fad2): undefined reference to `ether_setup'
drivers/built-in.o: In function `most_nd_set_mac_address':
networking.c:(.text+0xd6fb0f): undefined reference to `eth_mac_addr'
drivers/built-in.o: In function `most_nd_open':
networking.c:(.text+0xd6fd37): undefined reference to
`netif_tx_wake_queue'
drivers/built-in.o: In function `aim_probe_channel':
networking.c:(.text+0xd6febb): undefined reference to `alloc_netdev_mqs'
networking.c:(.text+0xd6ff18): undefined reference to `register_netdev'
networking.c:(.text+0xd6ff4a): undefined reference to `free_netdev'
drivers/built-in.o: In function `most_net_rm_netdev_safe.isra.0':
networking.c:(.text+0xd6ffcf): undefined reference to `unregister_netdev'
networking.c:(.text+0xd6ffdf): undefined reference to `free_netdev'
drivers/built-in.o: In function `most_nd_start_xmit':
networking.c:(.text+0xd70390): undefined reference to `kfree_skb'
drivers/built-in.o: In function `most_deliver_netinfo':
(.text+0xd70499): undefined reference to `netif_tx_wake_queue'
Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Cc: Christian Gromm <christian.gromm@xxxxxxxxxxxxx>
Cc: Michael Fabry <Michael.Fabry@xxxxxxxxxxxxx>
Cc: Christian Gromm <chris@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit caa470475d9b59eeff093ae650800d34612c4379
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Fri Sep 11 12:36:12 2015 -0300
perf header: Fixup reading of HEADER_NRCPUS feature
The original patch introducing this header wrote the number of CPUs
available
and online in one order and then swapped those values when reading, fix
it.
Before:
# perf record usleep 1
# perf report --header-only | grep 'nrcpus \(online\|avail\)'
# nrcpus online : 4
# nrcpus avail : 4
# echo 0 > /sys/devices/system/cpu/cpu2/online
# perf record usleep 1
# perf report --header-only | grep 'nrcpus \(online\|avail\)'
# nrcpus online : 4
# nrcpus avail : 3
# echo 0 > /sys/devices/system/cpu/cpu1/online
# perf record usleep 1
# perf report --header-only | grep 'nrcpus \(online\|avail\)'
# nrcpus online : 4
# nrcpus avail : 2
After the fix, bringing back the CPUs online:
# perf report --header-only | grep 'nrcpus \(online\|avail\)'
# nrcpus online : 2
# nrcpus avail : 4
# echo 1 > /sys/devices/system/cpu/cpu2/online
# perf record usleep 1
# perf report --header-only | grep 'nrcpus \(online\|avail\)'
# nrcpus online : 3
# nrcpus avail : 4
# echo 1 > /sys/devices/system/cpu/cpu1/online
# perf record usleep 1
# perf report --header-only | grep 'nrcpus \(online\|avail\)'
# nrcpus online : 4
# nrcpus avail : 4
Acked-by: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Wang Nan <wangnan0@xxxxxxxxxx>
Fixes: fbe96f29ce4b ("perf tools: Make perf.data more self-descriptive
(v8)")
Link: http://lkml.kernel.org/r/20150911153323.GP23511@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit a797451b3a595759b4df48150e611237d4bd204a
Author: Douglas Anderson <dianders@xxxxxxxxxxxx>
Date: Wed Sep 2 14:25:48 2015 -0700
ARM: dts: Add ddc i2c reference to veyron
The ddc-i2c-bus property was missing from the veyron dtsi file since
downstream the ddc-i2c-bus was still being specified in rk3288.dtsi and
nobody noticed when the veyron dtsi was sent upstream. Add it.
Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
Tested-by: Brian Norris <briannorris@xxxxxxxxxxxx>
Signed-off-by: Heiko Stuebner <heiko@xxxxxxxxx>
commit b692cb83b14d2f741f513221f5f78042c674c2a9
Author: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>
Date: Mon Sep 7 10:23:01 2015 +0300
ARM: pxa: ssp: Fix build error by removing originally incorrect DT binding
Commit 03fbf488cece ("spi: pxa2xx: Differentiate Intel LPSS types") caused
build error here because it removed the type LPSS_SSP and I didn't notice
the type was used here too.
I believe commit a6e56c28a178 ("ARM: pxa: ssp: add DT bindings") added it
accidentally by copying all enum pxa_ssp_type types from
include/linux/pxa2xx_ssp.h even LPSS_SSP was for Intel LPSS SPI devices.
Fix the build error by removing this incorrect binding.
Fixes: 03fbf488cece ("spi: pxa2xx: Differentiate Intel LPSS types")
Signed-off-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>
Reported-by: Axel Lin <axel.lin@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # 4.2
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
commit adf3442cc890f04af1e8e2c0b335c84e5092dca9
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Sun Aug 23 21:13:57 2015 +0200
ARM: pxa: fix DFI bus lockups on startup
After the conversion of pxa architecture to common clock framework, the
NAND clock can be disabled on startup if no nand driver claims it.
In this case, it happens that if the bootloader used the NAND and set
the DFI arbitration bit, the next access to a static memory controller
area, such as an ethernet card, the system bus will stall, and the core
will be stalled forever.
Fix this by clearing the DFI arbritration bit in pxa3xx startup. The bit
will be enabled the pxa3xx-nand driver on need anyway. The only left
requirement is that upon pxa3xx-nand removal, the bit should be cleared
before the clock is disabled.
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
commit 2619d7e9c92d524cb155ec89fd72875321512e5b
Author: John Stultz <john.stultz@xxxxxxxxxx>
Date: Wed Sep 9 16:07:30 2015 -0700
time: Fix timekeeping_freqadjust()'s incorrect use of abs() instead of
abs64()
The internal clocksteering done for fine-grained error
correction uses a logarithmic approximation, so any time
adjtimex() adjusts the clock steering, timekeeping_freqadjust()
quickly approximates the correct clock frequency over a series
of ticks.
Unfortunately, the logic in timekeeping_freqadjust(), introduced
in commit:
dc491596f639 ("timekeeping: Rework frequency adjustments to work better
w/ nohz")
used the abs() function with a s64 error value to calculate the
size of the approximated adjustment to be made.
Per include/linux/kernel.h:
"abs() should not be used for 64-bit types (s64, u64, long long) - use
abs64()".
Thus on 32-bit platforms, this resulted in the clocksteering to
take a quite dampended random walk trying to converge on the
proper frequency, which caused the adjustments to be made much
slower then intended (most easily observed when large
adjustments are made).
This patch fixes the issue by using abs64() instead.
Reported-by: Nuno Gonçalves <nunojpg@xxxxxxxxx>
Tested-by: Nuno Goncalves <nunojpg@xxxxxxxxx>
Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # v3.17+
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Miroslav Lichvar <mlichvar@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Prarit Bhargava <prarit@xxxxxxxxxx>
Cc: Richard Cochran <richardcochran@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441840051-20244-1-git-send-email-john.stultz@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit ebfb4988f0378e2ac3b4a0aa1ea20d724293f392
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Thu Sep 10 11:58:27 2015 +0200
perf/x86/intel: Fix constraint access
Sasha reported that we can get here with .idx==-1, and
cpuc->event_constraints unallocated.
Suggested-by: Stephane Eranian <eranian@xxxxxxxxxx>
Reported-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Fixes: b371b5943178 ("perf/x86: Fix event/group validation")
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 7c5b190e115a2f7a51a85f261e7d7dca4b4bbe64
Author: Borislav Petkov <bp@xxxxxxx>
Date: Thu Sep 10 21:55:27 2015 +0200
x86/cpu: Print family/model/stepping in hex
924e101a7ab6 ("x86/debug: Dump family, model, stepping of the
boot CPU") had its good intentions to dump the exact F/M/S as an
aid during debugging sessions but its output can be ambiguous.
Fix that:
-smpboot: CPU0: Intel Core Processor (Broadwell) (fam: 06, model: 47,
stepping: 02)
+smpboot: CPU0: Intel Core Processor (Broadwell) (family: 0x6, model:
0x47, stepping: 0x2)
Also, spell out "family".
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441914927-32037-1-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit cd1faefa66425c3fa338777773c5c017edea3439
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Sun Aug 30 19:45:19 2015 -0700
hwmon: (nct6775) Add support for NCT6793D
NCT6793D is register compatible with NCT6792D.
Also move nct6775_sio_names[] closer to enum kinds to simplify
adding new chips.
Tested-by: Grazvydas Ignotas <notasas@xxxxxxxxx>
Reviewed-by: Jean Delvare <jdelvare@xxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 728d29400488d54974d3317fe8a232b45fdb42ee
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Aug 31 16:13:47 2015 -0700
hwmon: (nct6775) Swap STEP_UP_TIME and STEP_DOWN_TIME registers for most
chips
The STEP_UP_TIME and STEP_DOWN_TIME registers are swapped for all chips
but
NCT6775.
Reported-by: Grazvydas Ignotas <notasas@xxxxxxxxx>
Reviewed-by: Jean Delvare <jdelvare@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v3.10+
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 6ff33f3902c3b1c5d0db6b1e2c70b6d76fba357f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 12 16:35:56 2015 -0700
Linux 4.3-rc1
commit 6917b51dee54f21816706af2278517b7af218f9a
Merge: 10fbd36 254a0f4
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 12 12:24:29 2015 -0700
Merge tag 'cris-for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris
Pull CRIS updates from Jesper Nilsson:
"Mostly removal of old cruft of which we can use a generic version, or
fixes for code not commonly run in the cris port, but also additions
to enable some good debug"
* tag 'cris-for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris: (25 commits)
CRISv10: delete unused lib/dmacopy.c
CRISv10: delete unused lib/old_checksum.c
CRIS: fix switch_mm() lockdep splat
CRISv32: enable LOCKDEP_SUPPORT
CRIS: add STACKTRACE_SUPPORT
CRISv32: annotate irq enable in idle loop
CRISv32: add support for irqflags tracing
CRIS: UAPI: use generic types.h
CRIS: UAPI: use generic shmbuf.h
CRIS: UAPI: use generic msgbuf.h
CRIS: UAPI: use generic socket.h
CRIS: UAPI: use generic sembuf.h
CRIS: UAPI: use generic sockios.h
CRIS: UAPI: use generic auxvec.h
CRIS: UAPI: use generic headers via Kbuild
CRIS: UAPI: fix elf.h export
CRIS: don't make asm/elf.h depend on asm/user.h
CRIS: UAPI: fix ptrace.h
CRISv32: Squash compile warnings for axisflashmap
CRISv32: Add GPIO driver to the default configs
...
commit 10fbd36e362a0f367e34a7cd876a81295d8fc5ca
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed May 27 15:32:15 2015 -0700
blk: rq_data_dir() should not return a boolean
rq_data_dir() returns either READ or WRITE (0 == READ, 1 == WRITE), not
a boolean value.
Now, admittedly the "!= 0" doesn't really change the value (0 stays as
zero, 1 stays as one), but it's not only redundant, it confuses gcc, and
causes gcc to warn about the construct
switch (rq_data_dir(req)) {
case READ:
...
case WRITE:
...
that we have in a few drivers.
Now, the gcc warning is silly and stupid (it seems to warn not about the
switch value having a different type from the case statements, but about
_any_ boolean switch value), but in this case the code itself is silly
and stupid too, so let's just change it, and get rid of warnings like
this:
drivers/block/hd.c: In function â??hd_requestâ??:
drivers/block/hd.c:630:11: warning: switch condition has boolean value
[-Wswitch-bool]
switch (rq_data_dir(req)) {
The odd '!= 0' came in when "cmd_flags" got turned into a "u64" in
commit 5953316dbf90 ("block: make rq->cmd_flags be 64-bit") and is
presumably because the old code (that just did a logical 'and' with 1)
would then end up making the type of rq_data_dir() be u64 too.
But if we want to retain the old regular integer type, let's just cast
the result to 'int' rather than use that rather odd '!= 0'.
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e1df8b0a1bb2ac8254616d6075e40f9ca447fa29
Merge: dfb22fc 505a666
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 12 11:19:01 2015 -0700
Merge branch 'writeback-plugging'
Fix up the writeback plugging introduced in commit d353d7587d02
("writeback: plug writeback at a high level") that then caused problems
due to the unplug happening with a spinlock held.
* writeback-plugging:
writeback: plug writeback in wb_writeback() and writeback_inodes_wb()
Revert "writeback: plug writeback at a high level"
commit 505a666ee3fc611518e85df203eb8c707995ceaa
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 13:37:19 2015 -0700
writeback: plug writeback in wb_writeback() and writeback_inodes_wb()
We had to revert the pluggin in writeback_sb_inodes() because the
wb->list_lock is held, but we could easily plug at a higher level before
taking that lock, and unplug after releasing it. This does that.
Chris will run performance numbers, just to verify that this approach is
comparable to the alternative (we could just drop and re-take the lock
around the blk_finish_plug() rather than these two commits.
I'd have preferred waiting for actual performance numbers before picking
one approach over the other, but I don't want to release rc1 with the
known "sleeping function called from invalid context" issue, so I'll
pick this cleanup version for now. But if the numbers show that we
really want to plug just at the writeback_sb_inodes() level, and we
should just play ugly games with the spinlock, we'll switch to that.
Cc: Chris Mason <clm@xxxxxx>
Cc: Josef Bacik <jbacik@xxxxxx>
Cc: Dave Chinner <david@xxxxxxxxxxxxx>
Cc: Neil Brown <neilb@xxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 31409c97640ff5f1a49e34ac7f3c82097bf57bec
Merge: e713c80 dc3a04d
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Sat Sep 12 10:26:24 2015 +0200
Merge branch 'for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/urgent
Pull RCU fix from Paul E. McKenney, fixing an inverted RCU_LOCKDEP_WARN()
condition.
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit dfb22fc5c0eb7645f47a752ce537bfb2c8a6aea6
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 20:06:59 2015 -0700
thermal: fix intel PCH thermal driver mismerge
I didn't notice this when merging the thermal code from Zhang, but his
merge (commit 5a924a07f882: "Merge branches 'thermal-core' and
'thermal-intel' of .git into next") of the thermal-core and
thermal-intel branches was wrong.
In thermal-core, commit 17e8351a7739 ("thermal: consistently use int for
temperatures") converted the thermal layer to use "int" for
temperatures.
But in parallel, in the thermal-intel branch commit d0a12625d2ff
("thermal: Add Intel PCH thermal driver") added support for the intel
PCH thermal sensor using the old interfaces that used "unsigned long"
pointers.
This resulted in warnings like this:
drivers/thermal/intel_pch_thermal.c:184:14: warning: initialization
from incompatible pointer type [-Wincompatible-pointer-types]
.get_temp = pch_thermal_get_temp,
^
drivers/thermal/intel_pch_thermal.c:184:14: note: (near initialization
for â??tzd_ops.get_tempâ??)
drivers/thermal/intel_pch_thermal.c:186:19: warning: initialization
from incompatible pointer type [-Wincompatible-pointer-types]
.get_trip_temp = pch_get_trip_temp,
^
drivers/thermal/intel_pch_thermal.c:186:19: note: (near initialization
for â??tzd_ops.get_trip_tempâ??)
This fixes it.
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 01b0c014eeb0bb857a5dc572cd108be7becddfe7
Merge: 3ebb054 e527b22
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 19:34:09 2015 -0700
Merge branch 'akpm' (patches from Andrew)
Merge fourth patch-bomb from Andrew Morton:
- sys_membarier syscall
- seq_file interface changes
- a few misc fixups
* emailed patches from Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>:
revert "ocfs2/dlm: use list_for_each_entry instead of list_for_each"
mm/early_ioremap: add explicit #include of asm/early_ioremap.h
fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void
selftests: enhance membarrier syscall test
selftests: add membarrier syscall test
sys_membarrier(): system-wide memory barrier (generic, x86)
MODSIGN: fix a compilation warning in extract-cert
commit 3ebb0540c20d6670396ccee9ff6794c095fa9311
Author: Vineet Gupta <Vineet.Gupta1@xxxxxxxxxxxx>
Date: Fri Sep 11 16:32:22 2015 -0700
ARCv2: [axs103_smp] Reduce clk for SMP FPGA configs
Newer bitfiles needs the reduced clk even for SMP builds
Cc: <stable@xxxxxxxxxxxxxxx> #4.2
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ded0e250b58a27af6034a8ab9226cbcdf7c0d847
Merge: f0c032d 9a07826
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 19:29:00 2015 -0700
Merge tag 'ntb-4.3' of git://github.com/jonmason/ntb
Pull NTB fixes from Jon Mason:
"NTB bug and documentation fixes, new device IDs, performance
improvements, and adding a mailing list to MAINTAINERS for NTB"
* tag 'ntb-4.3' of git://github.com/jonmason/ntb:
NTB: Fix range check on memory window index
NTB: Improve index handling in B2B MW workaround
NTB: Fix documentation for ntb_peer_db_clear.
NTB: Fix documentation for ntb_link_is_up
NTB: Use unique DMA channels for TX and RX
NTB: Remove dma_sync_wait from ntb_async_rx
NTB: Clean up QP stats info
NTB: Make the transport list in order of discovery
NTB: Add PCI Device IDs for Broadwell Xeon
NTB: Add flow control to the ntb_netdev
NTB: Add list to MAINTAINERS
commit f0c032d81f58c99b63a6e57cf883e923db910928
Merge: fa9a67e 53431d0
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 19:17:28 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull more input updates from Dmitry Torokhov:
"Second round of updates for the input subsystem.
This introduces two brand new touchscreen drivers (Colibri and
imx6ul_tsc), some small driver fixes, and we are no longer report
errors from evdev_flush() as users do not really have a way of
handling errors, error codes that we were returning were not on the
list of errors supposed to be returned by close(), and errors were
causing issues with one of older versions of systemd"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: imx_keypad - remove obsolete comment
Input: touchscreen - add imx6ul_tsc driver support
Input: Add touchscreen support for Colibri VF50
Input: i8042 - lower log level for "no controller" message
Input: evdev - do not report errors form flush()
Input: elants_i2c - extend the calibration timeout to 12 seconds
Input: sparcspkr - fix module autoload for OF platform drivers
Input: regulator-haptic - fix module autoload for OF platform driver
Input: pwm-beeper - fix module autoload for OF platform driver
Input: ab8500-ponkey - Fix module autoload for OF platform driver
Input: cyttsp - remove unnecessary MODULE_ALIAS()
Input: elan_i2c - add ACPI ID "ELAN1000"
commit fa9a67ef9de48de5474ea1e5a358340369e78b74
Merge: 05c7808 4614e0c
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 19:11:06 2015 -0700
Merge tag 'pm+acpi-4.3-rc1-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull more power management and ACPI updates from Rafael Wysocki:
"These are mostly fixes and cleanups on top of the previous PM+ACPI
pull request (cpufreq core and drivers, cpuidle, generic power domains
framework). Some of them didn't make to that pull request and some
fix issues introduced by it.
The only really new thing is the support for suspend frequency in the
cpufreq-dt driver, but it is needed to fix an issue with Exynos
platforms.
Specifics:
- build fix for the new Mediatek MT8173 cpufreq driver (Guenter
Roeck).
- generic power domains framework fixes (power on error code path,
subdomain removal) and cleanup of a deprecated API user (Geert
Uytterhoeven, Jon Hunter, Ulf Hansson).
- cpufreq-dt driver fixes including two fixes for bugs related to the
new Operating Performance Points Device Tree bindings introduced
recently (Viresh Kumar).
- suspend frequency support for the cpufreq-dt driver (Bartlomiej
Zolnierkiewicz, Viresh Kumar).
- cpufreq core cleanups (Viresh Kumar).
- intel_pstate driver fixes (Chen Yu, Kristen Carlson Accardi).
- additional sanity check in the cpuidle core (Xunlei Pang).
- fix for a comment related to CPU power management (Lina Iyer)"
* tag 'pm+acpi-4.3-rc1-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
intel_pstate: fix PCT_TO_HWP macro
intel_pstate: Fix user input of min/max to legal policy region
PM / OPP: Return suspend_opp only if it is enabled
cpufreq-dt: add suspend frequency support
cpufreq: allow cpufreq_generic_suspend() to work without suspend
frequency
PM / OPP: add dev_pm_opp_get_suspend_opp() helper
staging: board: Migrate away from __pm_genpd_name_add_device()
cpufreq: Use __func__ to print function's name
cpufreq: staticize cpufreq_cpu_get_raw()
PM / Domains: Ensure subdomain is not in use before removing
cpufreq: Add ARM_MT8173_CPUFREQ dependency on THERMAL
cpuidle/coupled: Add sanity check for safe_state_index
PM / Domains: Try power off masters in error path of
__pm_genpd_poweron()
cpufreq: dt: Tolerance applies on both sides of target voltage
cpufreq: dt: Print error on failing to mark OPPs as shared
cpufreq: dt: Check OPP count before marking them shared
kernel/cpu_pm: fix cpu_cluster_pm_exit comment
commit 05c78081d2d8eaf04bf60946fcc53380febf3376
Merge: 8e78b7d ac64a2c
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 19:00:42 2015 -0700
Merge branch 'for-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
Pull SCSI target updates from Nicholas Bellinger:
"Here are the outstanding target-pending updates for v4.3-rc1.
Mostly bug-fixes and minor changes this round. The fallout from the
big v4.2-rc1 RCU conversion have (thus far) been minimal.
The highlights this round include:
- Move sense handling routines into scsi_common code (Sagi)
- Return ABORTED_COMMAND sense key for PI errors (Sagi)
- Add tpg_enabled_sendtargets attribute for disabled iscsi-target
discovery (David)
- Shrink target struct se_cmd by rearranging fields (Roland)
- Drop iSCSI use of mutex around max_cmd_sn increment (Roland)
- Replace iSCSI __kernel_sockaddr_storage with sockaddr_storage (Andy +
Chris)
- Honor fabric max_data_sg_nents I/O transfer limit (Arun + Himanshu +
nab)
- Fix EXTENDED_COPY >= v4.1 regression OOPsen (Alex + nab)"
* 'for-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (37 commits)
target: use stringify.h instead of own definition
target/user: Fix UFLAG_UNKNOWN_OP handling
target: Remove no-op conditional
target/user: Remove unused variable
target: Fix max_cmd_sn increment w/o cmdsn mutex regressions
target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess
target/qla2xxx: Honor max_data_sg_nents I/O transfer limit
target/iscsi: Replace __kernel_sockaddr_storage with sockaddr_storage
target/iscsi: Replace conn->login_ip with login_sockaddr
target/iscsi: Keep local_ip as the actual sockaddr
target/iscsi: Fix np_ip bracket issue by removing np_ip
target: Drop iSCSI use of mutex around max_cmd_sn increment
qla2xxx: Update tcm_qla2xxx module description to 24xx+
iscsi-target: Add tpg_enabled_sendtargets for disabled discovery
drivers: target: Drop unlikely before IS_ERR(_OR_NULL)
target: check DPO/FUA usage for COMPARE AND WRITE
target: Shrink struct se_cmd by rearranging fields
target: Remove cmd->se_ordered_id (unused except debug log lines)
target: add support for START_STOP_UNIT SCSI opcode
target: improve unsupported opcode message
...
commit 8e78b7dc93c580c050435b0f88991c26e02166bc
Merge: 06a660a 294ab78
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 18:15:18 2015 -0700
Merge tag 'scsi-misc' of
git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull second round of SCSI updates from James Bottomley:
"There's one late arriving patch here (added today), fixing a build
issue which the scsi_dh patch set in here uncovered. Other than that,
everything has been incubated in -next and the checkers for a week.
The major pieces of this patch are a set patches facilitating better
integration between scsi and scsi_dh (the device handling layer used
by multi-path; all the dm parts are acked by Mike Snitzer).
This also includes driver updates for mp3sas, scsi_debug and an
assortment of bug fixes"
* tag 'scsi-misc' of
git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (50 commits)
scsi_dh: fix randconfig build error
scsi: fix scsi_error_handler vs. scsi_host_dev_release race
fcoe: Convert use of __constant_htons to htons
mpt2sas: setpci reset kernel oops fix
pm80xx: Don't override ts->stat on IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY
lpfc: Fix possible use-after-free and double free in
lpfc_mbx_cmpl_rdp_page_a2()
bfa: Fix incorrect de-reference of pointer
bfa: Fix indentation
scsi_transport_sas: Remove check for SAS expander when querying
bay/enclosure IDs.
scsi_debug: resp_request: remove unused variable
scsi_debug: fix REPORT LUNS Well Known LU
scsi_debug: schedule_resp fix input variable check
scsi_debug: make dump_sector static
scsi_debug: vfree is null safe so drop the check
scsi_debug: use SCSI_W_LUN_REPORT_LUNS instead of SAM2_WLUN_REPORT_LUNS;
scsi_debug: define pr_fmt() for consistent logging
mpt2sas: Refcount fw_events and fix unsafe list usage
mpt2sas: Refcount sas_device objects and fix unsafe list usage
scsi_dh: return SCSI_DH_NOTCONN in scsi_dh_activate()
scsi_dh: don't allow to detach device handlers at runtime
...
commit eda2116f4ab6d79cfcffc202b5d2bbb0797ba013
Author: Steve French <smfrench@xxxxxxxxx>
Date: Fri Sep 11 19:24:19 2015 -0500
[CIFS] mount option sec=none not displayed properly in /proc/mounts
When the user specifies "sec=none" in a cifs mount, we set
sec_type as unspecified (and set a flag and the username will be
null) rather than setting sectype as "none" so
cifs_show_security was not properly displaying it in
cifs /proc/mounts entries.
Signed-off-by: Steve French <steve.french@xxxxxxxxxxxxxxx>
Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
commit 06a660ada2064bbdcd09aeb8173f2ad128c71978
Merge: d9b44fe 63540f0
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 16:42:39 2015 -0700
Merge tag 'media/v4.3-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab:
"A series of patches that move part of the code used to allocate memory
from the media subsystem to the mm subsystem"
[ The mm parts have been acked by VM people, and the series was
apparently in -mm for a while - Linus ]
* tag 'media/v4.3-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
[media] drm/exynos: Convert g2d_userptr_get_dma_addr() to use
get_vaddr_frames()
[media] media: vb2: Remove unused functions
[media] media: vb2: Convert vb2_dc_get_userptr() to use frame vector
[media] media: vb2: Convert vb2_vmalloc_get_userptr() to use frame
vector
[media] media: vb2: Convert vb2_dma_sg_get_userptr() to use frame vector
[media] vb2: Provide helpers for mapping virtual addresses
[media] media: omap_vout: Convert omap_vout_uservirt_to_phys() to use
get_vaddr_pfns()
[media] mm: Provide new get_vaddr_frames() helper
[media] vb2: Push mmap_sem down to memops
commit d9b44fe30fb8637b23f804eab2e7afbce129d714
Merge: 9ebd051 12f0721
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 16:21:12 2015 -0700
Merge tag 'edac/v4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac
Pull edac updates from Mauro Carvalho Chehab:
"Two EDAC fixes for Intel systems (Haswell and Ivy Bridge)"
* tag 'edac/v4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac:
sb_edac: correctly fetch DIMM width on Ivy Bridge and Haswell
sb_edac: look harder for DDRIO on Haswell systems
commit e8684c88774c0ddfeefdbed0aa469b25b9962f3e
Author: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
Date: Sat Sep 12 00:34:48 2015 +0300
irda: ali-ircc: Fix deadlock in ali_ircc_sir_change_speed()
ali_ircc_sir_change_speed() is always called with self->lock held,
so acquiring the lock inside it leads to unavoidable deadlock.
Call graph:
ali_ircc_sir_change_speed() is called from ali_ircc_change_speed()
ali_ircc_fir_hard_xmit() under spin_lock_irqsave(&self->lock, flags);
ali_ircc_sir_hard_xmit() under spin_lock_irqsave(&self->lock, flags);
ali_ircc_net_ioctl() under spin_lock_irqsave(&self->lock, flags);
ali_ircc_dma_xmit_complete()
ali_ircc_fir_interrupt()
ali_ircc_interrupt() under spin_lock(&self->lock);
ali_ircc_sir_write_wakeup()
ali_ircc_sir_interrupt()
ali_ircc_interrupt() under spin_lock(&self->lock);
The patch removes spin_lock/unlock from ali_ircc_sir_change_speed().
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9ebd051a7d5aa7b0ce813c3c2e5b9c851e7774b9
Merge: 51a73ba 5a924a0
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 16:13:47 2015 -0700
Merge branch 'next' of
git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
Pull thermal updates from Zhang Rui:
- use int instead of unsigned long to represent temperature to avoid
bogus overheat detection when negative temperature reported. From
Sascha Hauer.
- export available thermal governors information to user space via
sysfs. From Wei Ni.
- introduce new thermal driver for Wildcat Point platform controller
hub, which uses PCH thermal sensor and associated critical and hot
trip points. From Tushar Dave.
- add suuport for Intel Skylake and Denlow platforms in powerclamp
driver.
- some small cleanups in thermal core.
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
thermal: Add Intel PCH thermal driver
thermal: Add comment explaining test for critical temperature
thermal: Use IS_ENABLED instead of #ifdef
thermal: remove unnecessary call to thermal_zone_device_set_polling
thermal: trivial: fix typo in comment
thermal: consistently use int for temperatures
thermal: add available policies sysfs attribute
thermal/powerclamp: add cpu id for denlow platform
thermal/powerclamp: add cpu id for Skylake u/y
thermal/powerclamp: add cpu id for skylake h/s
commit 38c089d1d8d058f5dff018a811568aa8e8bc47fc
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Fri Sep 11 15:01:16 2015 -0700
openvswitch: Fix dependency on IPv6 defrag.
When NF_CONNTRACK is built-in, NF_DEFRAG_IPV6 is a module, and
OPENVSWITCH is built-in, the following build error would occur:
net/built-in.o: In function `ovs_ct_execute':
(.text+0x10f587): undefined reference to `nf_ct_frag6_gather'
Fixes: 7f8a436eaa2c ("openvswitch: Add conntrack action")
Reported-by: Jim Davis <jim.epost@xxxxxxxxx>
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e527b22c3f63c02832ac4cb8ed0ec3a9b638bbdf
Author: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 13:07:53 2015 -0700
revert "ocfs2/dlm: use list_for_each_entry instead of list_for_each"
Revert commit f83c7b5e9fd6 ("ocfs2/dlm: use list_for_each_entry instead
of list_for_each").
list_for_each_entry() will dereference its `pos' argument, which can be
NULL in dlm_process_recovery_data().
Reported-by: Julia Lawall <julia.lawall@xxxxxxx>
Reported-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Cc: Joseph Qi <joseph.qi@xxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 4f1af60bcc2fc6caa7fa3036238b5994708e9a84
Author: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Date: Fri Sep 11 13:07:50 2015 -0700
mm/early_ioremap: add explicit #include of asm/early_ioremap.h
Commit 6b0f68e32ea8 ("mm: add utility for early copy from unmapped ram")
introduces a function copy_from_early_mem() into mm/early_ioremap.c
which itself calls early_memremap()/early_memunmap(). However, since
early_memunmap() has not been declared yet at this point in the .c file,
nor by any explicitly included header files, we are depending on a
transitive include of asm/early_ioremap.h to declare it, which is
fragile.
So instead, include this header explicitly.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Acked-by: Mark Salter <msalter@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 6798a8caaf64fa68b9ab2044e070fe4545034e03
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Fri Sep 11 13:07:48 2015 -0700
fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void
The seq_<foo> function return values were frequently misused.
See: commit 1f33c41c03da ("seq_file: Rename seq_overflow() to
seq_has_overflowed() and make public")
All uses of these return values have been removed, so convert the
return types to void.
Miscellanea:
o Move seq_put_decimal_<type> and seq_escape prototypes closer the
other seq_vprintf prototypes
o Reorder seq_putc and seq_puts to return early on overflow
o Add argument names to seq_vprintf and seq_printf
o Update the seq_escape kernel-doc
o Convert a couple of leading spaces to tabs in seq_escape
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Mark Brown <broonie@xxxxxxxxxx>
Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Cc: Joerg Roedel <jroedel@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c9946c4208a3725e116c05180d93154eb406d451
Author: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
Date: Fri Sep 11 13:07:45 2015 -0700
selftests: enhance membarrier syscall test
Update the membarrier syscall self-test to match the membarrier
interface. Extend coverage of the interface. Consider ENOSYS as a
"SKIP" test, since it is a valid configuration, but does not allow
testing the system call.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Pranith Kumar <bobby.prani@xxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b6d973441675222a4e6c8cad8208c2fe098a0b25
Author: Pranith Kumar <bobby.prani@xxxxxxxxx>
Date: Fri Sep 11 13:07:42 2015 -0700
selftests: add membarrier syscall test
Add a self test for the membarrier system call.
Signed-off-by: Pranith Kumar <bobby.prani@xxxxxxxxx>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 5b25b13ab08f616efd566347d809b4ece54570d1
Author: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
Date: Fri Sep 11 13:07:39 2015 -0700
sys_membarrier(): system-wide memory barrier (generic, x86)
Here is an implementation of a new system call, sys_membarrier(), which
executes a memory barrier on all threads running on the system. It is
implemented by calling synchronize_sched(). It can be used to
distribute the cost of user-space memory barriers asymmetrically by
transforming pairs of memory barriers into pairs consisting of
sys_membarrier() and a compiler barrier. For synchronization primitives
that distinguish between read-side and write-side (e.g. userspace RCU
[1], rwlocks), the read-side can be accelerated significantly by moving
the bulk of the memory barrier overhead to the write-side.
The existing applications of which I am aware that would be improved by
this system call are as follows:
* Through Userspace RCU library (http://urcu.so)
- DNS server (Knot DNS) https://www.knot-dns.cz/
- Network sniffer (http://netsniff-ng.org/)
- Distributed object storage (https://sheepdog.github.io/sheepdog/)
- User-space tracing (http://lttng.org)
- Network storage system (https://www.gluster.org/)
- Virtual routers
(https://events.linuxfoundation.org/sites/events/files/slides/DPDK_RCU_0MQ.pdf)
- Financial software (https://lkml.org/lkml/2015/3/23/189)
Those projects use RCU in userspace to increase read-side speed and
scalability compared to locking. Especially in the case of RCU used by
libraries, sys_membarrier can speed up the read-side by moving the bulk of
the memory barrier cost to synchronize_rcu().
* Direct users of sys_membarrier
- core dotnet garbage collector
(https://github.com/dotnet/coreclr/issues/198)
Microsoft core dotnet GC developers are planning to use the mprotect()
side-effect of issuing memory barriers through IPIs as a way to implement
Windows FlushProcessWriteBuffers() on Linux. They are referring to
sys_membarrier in their github thread, specifically stating that
sys_membarrier() is what they are looking for.
To explain the benefit of this scheme, let's introduce two example
threads:
Thread A (non-frequent, e.g. executing liburcu synchronize_rcu())
Thread B (frequent, e.g. executing liburcu
rcu_read_lock()/rcu_read_unlock())
In a scheme where all smp_mb() in thread A are ordering memory accesses
with respect to smp_mb() present in Thread B, we can change each
smp_mb() within Thread A into calls to sys_membarrier() and each
smp_mb() within Thread B into compiler barriers "barrier()".
Before the change, we had, for each smp_mb() pairs:
Thread A Thread B
previous mem accesses previous mem accesses
smp_mb() smp_mb()
following mem accesses following mem accesses
After the change, these pairs become:
Thread A Thread B
prev mem accesses prev mem accesses
sys_membarrier() barrier()
follow mem accesses follow mem accesses
As we can see, there are two possible scenarios: either Thread B memory
accesses do not happen concurrently with Thread A accesses (1), or they
do (2).
1) Non-concurrent Thread A vs Thread B accesses:
Thread A Thread B
prev mem accesses
sys_membarrier()
follow mem accesses
prev mem accesses
barrier()
follow mem accesses
In this case, thread B accesses will be weakly ordered. This is OK,
because at that point, thread A is not particularly interested in
ordering them with respect to its own accesses.
2) Concurrent Thread A vs Thread B accesses
Thread A Thread B
prev mem accesses prev mem accesses
sys_membarrier() barrier()
follow mem accesses follow mem accesses
In this case, thread B accesses, which are ensured to be in program
order thanks to the compiler barrier, will be "upgraded" to full
smp_mb() by synchronize_sched().
* Benchmarks
On Intel Xeon E5405 (8 cores)
(one thread is calling sys_membarrier, the other 7 threads are busy
looping)
1000 non-expedited sys_membarrier calls in 33s =3D 33 milliseconds/call.
* User-space user of this system call: Userspace RCU library
Both the signal-based and the sys_membarrier userspace RCU schemes
permit us to remove the memory barrier from the userspace RCU
rcu_read_lock() and rcu_read_unlock() primitives, thus significantly
accelerating them. These memory barriers are replaced by compiler
barriers on the read-side, and all matching memory barriers on the
write-side are turned into an invocation of a memory barrier on all
active threads in the process. By letting the kernel perform this
synchronization rather than dumbly sending a signal to every process
threads (as we currently do), we diminish the number of unnecessary wake
ups and only issue the memory barriers on active threads. Non-running
threads do not need to execute such barrier anyway, because these are
implied by the scheduler context switches.
Results in liburcu:
Operations in 10s, 6 readers, 2 writers:
memory barriers in reader: 1701557485 reads, 2202847 writes
signal-based scheme: 9830061167 reads, 6700 writes
sys_membarrier: 9952759104 reads, 425 writes
sys_membarrier (dyn. check): 7970328887 reads, 425 writes
The dynamic sys_membarrier availability check adds some overhead to
the read-side compared to the signal-based scheme, but besides that,
sys_membarrier slightly outperforms the signal-based scheme. However,
this non-expedited sys_membarrier implementation has a much slower grace
period than signal and memory barrier schemes.
Besides diminishing the number of wake-ups, one major advantage of the
membarrier system call over the signal-based scheme is that it does not
need to reserve a signal. This plays much more nicely with libraries,
and with processes injected into for tracing purposes, for which we
cannot expect that signals will be unused by the application.
An expedited version of this system call can be added later on to speed
up the grace period. Its implementation will likely depend on reading
the cpu_curr()->mm without holding each CPU's rq lock.
This patch adds the system call to x86 and to asm-generic.
[1] http://urcu.so
membarrier(2) man page:
MEMBARRIER(2) Linux Programmer's Manual
MEMBARRIER(2)
NAME
membarrier - issue memory barriers on a set of threads
SYNOPSIS
#include <linux/membarrier.h>
int membarrier(int cmd, int flags);
DESCRIPTION
The cmd argument is one of the following:
MEMBARRIER_CMD_QUERY
Query the set of supported commands. It returns a
bitmask of
supported commands.
MEMBARRIER_CMD_SHARED
Execute a memory barrier on all threads running on the
system.
Upon return from system call, the caller thread is ensured
that
all running threads have passed through a state where all
memory
accesses to user-space addresses match program order
between
entry to and return from the system call (non-running
threads
are de facto in such a state). This covers threads from all
pro=E2=80=90
cesses running on the system. This command returns 0.
The flags argument needs to be 0. For future extensions.
All memory accesses performed in program order from each
targeted
thread is guaranteed to be ordered with respect to
sys_membarrier(). If
we use the semantic "barrier()" to represent a compiler barrier
forcing
memory accesses to be performed in program order across the
barrier,
and smp_mb() to represent explicit memory barriers forcing full
memory
ordering across the barrier, we have the following ordering
table for
each pair of barrier(), sys_membarrier() and smp_mb():
The pair ordering is detailed as (O: ordered, X: not ordered):
barrier() smp_mb() sys_membarrier()
barrier() X X O
smp_mb() X O O
sys_membarrier() O O O
RETURN VALUE
On success, these system calls return zero. On error, -1 is
returned,
and errno is set appropriately. For a given command, with flags
argument set to 0, this system call is guaranteed to always return
the
same value until reboot.
ERRORS
ENOSYS System call is not implemented.
EINVAL Invalid arguments.
Linux 2015-04-15
MEMBARRIER(2)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
Reviewed-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
Cc: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Nicholas Miell <nmiell@xxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Alan Cox <gnomes@xxxxxxxxxxxxxxxxxxx>
Cc: Lai Jiangshan <laijs@xxxxxxxxxxxxxx>
Cc: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: David Howells <dhowells@xxxxxxxxxx>
Cc: Pranith Kumar <bobby.prani@xxxxxxxxx>
Cc: Michael Kerrisk <mtk.manpages@xxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7c0d35a339db612aae5496424030307128f088a9
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Fri Sep 11 13:07:36 2015 -0700
MODSIGN: fix a compilation warning in extract-cert
Fix the following warning when compiling extract-cert:
scripts/extract-cert.c: In function `write_cert':
scripts/extract-cert.c:89:2: warning: format not a string literal and
no format arguments [-Wformat-security]
ERR(!i2d_X509_bio(wb, x509), cert_dst);
^
whereby the ERR() macro is taking cert_dst as the format string. "%s"
should be used as the format string as the path could contain special
characters.
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Reported-by: Jim Davis <jim.epost@xxxxxxxxx>
Acked-by : David Woodhouse <david.woodhouse@xxxxxxxxx>
Cc: James Morris <jmorris@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 447e9a4d27484175a84daaa8e03d35c650f443b7
Author: Doug Ledford <dledford@xxxxxxxxxx>
Date: Fri Sep 11 12:52:26 2015 -0400
IB/ehca: Deprecate driver, move to staging, schedule deletion
The ehca driver is only supported on IBM machines with a custom EBus.
As they have opted to build their newer machines using more industry
standard technology and haven't really been pushing EBus capable
machines for a while, this driver can now safely be moved to the
staging area and scheduled for eventual removal. This plan was brought
to IBM's attention and received their sign-off.
Cc: alexs@xxxxxxxxxxxxxxxxxx
Cc: hnguyen@xxxxxxxxxx
Cc: raisch@xxxxxxxxxx
Cc: stefan.roscher@xxxxxxxxxx
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 51a73ba5f409ef6f419c8ec3a0d1257633500aaa
Merge: e91eb62 6551881
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 15:12:59 2015 -0700
Merge git://www.linux-watchdog.org/linux-watchdog
Pull watchdog updates from Wim Van Sebroeck:
- new driver for NXP LPC18xx Watchdog Timer
- new driver for SAMA5D4 watchdog timer
- add support for MCP79 to nv_tco driver
- clean-up and improvement of the mpc8xxx watchdog driver
- improvements to gpio-wdt
- at91sam9_wdt clock improvements
... and other small fixes and improvements
* git://www.linux-watchdog.org/linux-watchdog: (25 commits)
Watchdog: Fix parent of watchdog_devices
watchdog: at91rm9200: Correct check for syscon_node_to_regmap() errors
watchdog: at91sam9: get and use slow clock
Documentation: dt: binding: atmel-sama5d4-wdt: for SAMA5D4 watchdog
driver
watchdog: add a driver to support SAMA5D4 watchdog timer
watchdog: mpc8xxx: allow to compile for MPC512x
watchdog: mpc8xxx: use better error code when watchdog cannot be enabled
watchdog: mpc8xxx: use dynamic memory for device specific data
watchdog: mpc8xxx: use devm_ioremap_resource to map memory
watchdog: mpc8xxx: make use of of_device_get_match_data
watchdog: mpc8xxx: simplify registration
watchdog: mpc8xxx: remove dead code
watchdog: lpc18xx_wdt_get_timeleft() can be static
DT: watchdog: Add NXP LPC18xx Watchdog Timer binding documentation
watchdog: NXP LPC18xx Watchdog Timer Driver
watchdog: gpio-wdt: ping already at startup for always running devices
watchdog: gpio-wdt: be more strict about hw_algo matching
Documentation: watchdog: at91sam9_wdt: add clocks property
watchdog: booke_wdt: Use infrastructure to check timeout limits
watchdog: (nv_tco) add support for MCP79
...
commit c2d4fbd2163e607915cc05798ce7fb7f31117cc1
Author: Linus Lüssing <linus.luessing@xxxxxxxxx>
Date: Fri Sep 11 18:39:48 2015 +0200
bridge: fix igmpv3 / mldv2 report parsing
With the newly introduced helper functions the skb pulling is hidden in
the checksumming function - and undone before returning to the caller.
The IGMPv3 and MLDv2 report parsing functions in the bridge still
assumed that the skb is pointing to the beginning of the IGMP/MLD
message while it is now kept at the beginning of the IPv4/6 header,
breaking the message parsing and creating packet loss.
Fixing this by taking the offset between IP and IGMP/MLD header into
account, too.
Fixes: 9afd85c9e455 ("net: Export IGMP/MLD message validation code")
Reported-by: Tobias Powalowski <tobias.powalowski@xxxxxxxxxxxxxx>
Tested-by: Tobias Powalowski <tobias.powalowski@xxxxxxxxxxxxxx>
Signed-off-by: Linus Lüssing <linus.luessing@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a19a19de8310fb8ca2ca0621a9db1aab082943c5
Author: Arnd Bergmann <arnd@xxxxxxxx>
Date: Fri Sep 11 11:33:01 2015 +0200
bnx2x: use ktime_get_seconds() for timestamp
commit c48f350ff5e7 "bnx2x: Add MFW dump support" added the
bnx2x_update_mfw_dump() function that reads the current time and stores
it in a 32-bit field that gets passed into a buffer in a fixed format.
This is potentially broken when the epoch overflows in 2038, and
otherwise overflows in 2106. As we're trying to avoid uses of
struct timeval for this reason, I noticed the addition of this
function, and tried to rewrite it in a way that is more explicit
about the overflow and that will keep working once we deprecate
struct timeval.
I assume that it is not possible to change the ABI any more, otherwise
we should try to use a 64-bit field for the seconds right away.
Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Yuval Mintz <Yuval.Mintz@xxxxxxxxxx>
Cc: Ariel Elior <Ariel.Elior@xxxxxxxxxx>
Acked-by: Yuval Mintz <Yuval.Mintz@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8e2d61e0aed2b7c4ecb35844fe07e0b2b762dee4
Author: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Date: Thu Sep 10 17:31:15 2015 -0300
sctp: fix race on protocol/netns initialization
Consider sctp module is unloaded and is being requested because an user
is creating a sctp socket.
During initialization, sctp will add the new protocol type and then
initialize pernet subsys:
status = sctp_v4_protosw_init();
if (status)
goto err_protosw_init;
status = sctp_v6_protosw_init();
if (status)
goto err_v6_protosw_init;
status = register_pernet_subsys(&sctp_net_ops);
The problem is that after those calls to sctp_v{4,6}_protosw_init(), it
is possible for userspace to create SCTP sockets like if the module is
already fully loaded. If that happens, one of the possible effects is
that we will have readers for net->sctp.local_addr_list list earlier
than expected and sctp_net_init() does not take precautions while
dealing with that list, leading to a potential panic but not limited to
that, as sctp_sock_init() will copy a bunch of blank/partially
initialized values from net->sctp.
The race happens like this:
CPU 0 | CPU 1
socket() |
__sock_create | socket()
inet_create | __sock_create
list_for_each_entry_rcu( |
answer, &inetsw[sock->type], |
list) { | inet_create
/* no hits */ |
if (unlikely(err)) { |
... |
request_module() |
/* socket creation is blocked |
* the module is fully loaded |
*/ |
sctp_init |
sctp_v4_protosw_init |
inet_register_protosw |
list_add_rcu(&p->list, |
last_perm); |
| list_for_each_entry_rcu(
| answer, &inetsw[sock->type],
sctp_v6_protosw_init | list) {
| /* hit, so assumes protocol
| * is already loaded
| */
| /* socket creation continues
| * before netns is initialized
| */
register_pernet_subsys |
Simply inverting the initialization order between
register_pernet_subsys() and sctp_v4_protosw_init() is not possible
because register_pernet_subsys() will create a control sctp socket, so
the protocol must be already visible by then. Deferring the socket
creation to a work-queue is not good specially because we loose the
ability to handle its errors.
So, as suggested by Vlad, the fix is to split netns initialization in
two moments: defaults and control socket, so that the defaults are
already loaded by when we register the protocol, while control socket
initialization is kept at the same moment it is today.
Fixes: 4db67e808640 ("sctp: Make the address lists per network namespace")
Signed-off-by: Vlad Yasevich <vyasevich@xxxxxxxxx>
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 19539ce783dd27768d4f7f3b753152bf983db65b
Author: Tycho Andersen <tycho.andersen@xxxxxxxxxxxxx>
Date: Thu Sep 10 18:25:07 2015 -0600
ebpf: emit correct src_reg for conditional jumps
Instead of always emitting BPF_REG_X, let's emit BPF_REG_X only when the
source actually is BPF_X. This causes programs generated by the classic
converter to not be importable via bpf(), as the eBPF verifier checks that
the src_reg is correct or 0. While not a problem yet, this will be a
problem when BPF_PROG_DUMP lands, and we can potentially dump and
re-import
programs generated by the converter.
Signed-off-by: Tycho Andersen <tycho.andersen@xxxxxxxxxxxxx>
CC: Alexei Starovoitov <ast@xxxxxxxxxx>
CC: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Acked-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1853c949646005b5959c483becde86608f548f24
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Thu Sep 10 20:05:46 2015 +0200
netlink, mmap: transform mmap skb into full skb on taps
Ken-ichirou reported that running netlink in mmap mode for receive in
combination with nlmon will throw a NULL pointer dereference in
__kfree_skb() on nlmon_xmit(), in my case I can also trigger an "unable
to handle kernel paging request". The problem is the skb_clone() in
__netlink_deliver_tap_skb() for skbs that are mmaped.
I.e. the cloned skb doesn't have a destructor, whereas the mmap netlink
skb has it pointed to netlink_skb_destructor(), set in the handler
netlink_ring_setup_skb(). There, skb->head is being set to NULL, so
that in such cases, __kfree_skb() doesn't perform a skb_release_data()
via skb_release_all(), where skb->head is possibly being freed through
kfree(head) into slab allocator, although netlink mmap skb->head points
to the mmap buffer. Similarly, the same has to be done also for large
netlink skbs where the data area is vmalloced. Therefore, as discussed,
make a copy for these rather rare cases for now. This fixes the issue
on my and Ken-ichirou's test-cases.
Reference: http://thread.gmane.org/gmane.linux.network/371129
Fixes: bcbde0d449ed ("net: netlink: virtual tap device management")
Reported-by: Ken-ichirou MATSUZAWA <chamaken@xxxxxxxxx>
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Tested-by: Ken-ichirou MATSUZAWA <chamaken@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0ba13fd19d39b7cb672bcec052bc813389c079a4
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 13:26:39 2015 -0700
Revert "writeback: plug writeback at a high level"
This reverts commit d353d7587d02116b9732d5c06615aed75a4d3a47.
Doing the block layer plug/unplug inside writeback_sb_inodes() is
broken, because that function is actually called with a spinlock held:
wb->list_lock, as pointed out by Chris Mason.
Chris suggested just dropping and re-taking the spinlock around the
blk_finish_plug() call (the plgging itself can happen under the
spinlock), and that would technically work, but is just disgusting.
We do something fairly similar - but not quite as disgusting because we
at least have a better reason for it - in writeback_single_inode(), so
it's not like the caller can depend on the lock being held over the
call, but in this case there just isn't any good reason for that
"release and re-take the lock" pattern.
[ In general, we should really strive to avoid the "release and retake"
pattern for locks, because in the general case it can easily cause
subtle bugs when the caller caches any state around the call that
might be invalidated by dropping the lock even just temporarily. ]
But in this case, the plugging should be easy to just move up to the
callers before the spinlock is taken, which should even improve the
effectiveness of the plug. So there is really no good reason to play
games with locking here.
I'll send off a test-patch so that Dave Chinner can verify that that
plug movement works. In the meantime this just reverts the problematic
commit and adds a comment to the function so that we hopefully don't
make this mistake again.
Reported-by: Chris Mason <clm@xxxxxx>
Cc: Josef Bacik <jbacik@xxxxxx>
Cc: Dave Chinner <david@xxxxxxxxxxxxx>
Cc: Neil Brown <neilb@xxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e91eb6204fb826116453e43d4f5cf0f666bf46fe
Merge: e013f74 527afb4
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 12:38:25 2015 -0700
Merge branch 'for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs
Pull btrfs cleanups and fixes from Chris Mason:
"These are small cleanups, and also some fixes for our async worker
thread initialization.
I was having some trouble testing these, but it ended up being a
combination of changing around my test servers and a shiny new
schedule while atomic from the new start/finish_plug in
writeback_sb_inodes().
That one only hits on btrfs raid5/6 or MD raid10, and if I wasn't
changing a bunch of things in my test setup at once it would have been
really clear. Fix for writeback_sb_inodes() on the way as well"
* 'for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
Btrfs: cleanup: remove unnecessary check before btrfs_free_path is
called
btrfs: async_thread: Fix workqueue 'max_active' value when initializing
btrfs: Add raid56 support for updating
num_tolerated_disk_barrier_failures in btrfs_balance
btrfs: Cleanup for btrfs_calc_num_tolerated_disk_barrier_failures
btrfs: Remove noused chunk_tree and chunk_objectid from
scrub_enumerate_chunks and scrub_chunk
btrfs: Update out-of-date "skip parity stripe" comment
commit e013f74b60bbd37ee8c3a55214eb351ea3101c15
Merge: 01cab55 4383868
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 12:33:03 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client
Pull Ceph update from Sage Weil:
"There are a few fixes for snapshot behavior with CephFS and support
for the new keepalive protocol from Zheng, a libceph fix that affects
both RBD and CephFS, a few bug fixes and cleanups for RBD from Ilya,
and several small fixes and cleanups from Jianpeng and others"
* 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
ceph: improve readahead for file holes
ceph: get inode size for each append write
libceph: check data_len in ->alloc_msg()
libceph: use keepalive2 to verify the mon session is alive
rbd: plug rbd_dev->header.object_prefix memory leak
rbd: fix double free on rbd_dev->header_name
libceph: set 'exists' flag for newly up osd
ceph: cleanup use of ceph_msg_get
ceph: no need to get parent inode in ceph_open
ceph: remove the useless judgement
ceph: remove redundant test of head->safe and silence static analysis
warnings
ceph: fix queuing inode to mdsdir's snaprealm
libceph: rename con_work() to ceph_con_workfn()
libceph: Avoid holding the zero page on ceph_msgr_slab_init errors
libceph: remove the unused macro AES_KEY_SIZE
ceph: invalidate dirty pages after forced umount
ceph: EIO all operations after forced umount
commit 01cab5549c3e9a0fe7248fc5ad0fd79361cc0d39
Merge: 64d1def 8f7e0a8
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 12:23:51 2015 -0700
Merge tag 'gfs2-merge-window' of
git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2
Pull GFS2 updates from Bob Peterson:
"Here is a list of patches we've accumulated for GFS2 for the current
upstream merge window. This time we've only got six patches, many of
which are very small:
- three cleanups from Andreas Gruenbacher, including a nice cleanup
of the sequence file code for the sbstats debugfs file.
- a patch from Ben Hutchings that changes statistics variables from
signed to unsigned.
- two patches from me that increase GFS2's glock scalability by
switching from a conventional hash table to rhashtable"
* tag 'gfs2-merge-window' of
git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
gfs2: A minor "sbstats" cleanup
gfs2: Fix a typo in a comment
gfs2: Make statistics unsigned, suitable for use with do_div()
GFS2: Use resizable hash table for glocks
GFS2: Move glock superblock pointer to field gl_name
gfs2: Simplify the seq file code for "sbstats"
commit 294ab783ad98066b87296db1311c7ba2a60206a5
Author: Christoph Hellwig <hch@xxxxxx>
Date: Wed Sep 9 18:04:18 2015 +0200
scsi_dh: fix randconfig build error
It looks like the Kconfig check that was meant to fix this (commit
fe9233fb6914a0eb20166c967e3020f7f0fba2c9 [SCSI] scsi_dh: fix kconfig
related
build errors) was actually reversed, but no-one noticed until the new set
of
patches which separated DM and SCSI_DH).
Fixes: fe9233fb6914a0eb20166c967e3020f7f0fba2c9
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Tested-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit c2172ce2303051764829d4958bd50a11ada0590f
Merge: a4a5a73 0b61f2c
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Sep 11 19:18:28 2015 +0100
Merge branch 'uaccess' into fixes
commit a4a5a7379e4ca03c192b732d61e446994eb67bbc
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Fri Sep 11 17:12:27 2015 +0100
ARM: 8431/1: fix alignement of __bug_table section entries
On old ARM chips, unaligned accesses to memory are not trapped and
fixed. On module load, symbols are relocated, and the relocation of
__bug_table symbols is done on a u32 basis. Yet the section is not
aligned to a multiple of 4 address, but to a multiple of 2.
This triggers an Oops on pxa architecture, where address 0xbf0021ea
is the first relocation in the __bug_table section :
apply_relocate(): pxa3xx_nand: section 13 reloc 0 sym ''
Unable to handle kernel paging request at virtual address bf0021ea
pgd = e1cd0000
[bf0021ea] *pgd=c1cce851, *pte=c1cde04f, *ppte=c1cde01f
Internal error: Oops: 23 [#1] ARM
Modules linked in:
CPU: 0 PID: 606 Comm: insmod Not tainted
4.2.0-rc8-next-20150828-cm-x300+ #887
Hardware name: CM-X300 module
task: e1c68700 ti: e1c3e000 task.ti: e1c3e000
PC is at apply_relocate+0x2f4/0x3d4
LR is at 0xbf0021ea
pc : [<c000e7c8>] lr : [<bf0021ea>] psr: 80000013
sp : e1c3fe30 ip : 60000013 fp : e49e8c60
r10: e49e8fa8 r9 : 00000000 r8 : e49e7c58
r7 : e49e8c38 r6 : e49e8a58 r5 : e49e8920 r4 : e49e8918
r3 : bf0021ea r2 : bf007034 r1 : 00000000 r0 : bf000000
Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
Control: 0000397f Table: c1cd0018 DAC: 00000051
Process insmod (pid: 606, stack limit = 0xe1c3e198)
[<c000e7c8>] (apply_relocate) from [<c005ce5c>]
(load_module+0x1248/0x1f5c)
[<c005ce5c>] (load_module) from [<c005dc54>]
(SyS_init_module+0xe4/0x170)
[<c005dc54>] (SyS_init_module) from [<c000a420>]
(ret_fast_syscall+0x0/0x38)
Fix this by ensuring entries in __bug_table are all aligned to at least
of multiple of 4. This transforms a module section __bug_table as :
- [12] __bug_table PROGBITS 00000000 002232 000018 00 A
0 0 1
+ [12] __bug_table PROGBITS 00000000 002232 000018 00 A
0 0 4
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Reviewed-by: Dave Martin <Dave.Martin@xxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 0b61f2c0f37983c98ed4207f3f5e265938371b68
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Fri Sep 11 17:25:59 2015 +0100
arm/xen: Enable user access to the kernel before issuing a privcmd call
When Xen is copying data to/from the guest it will check if the kernel
has the right to do the access. If not, the hypercall will return an
error.
After the commit a5e090acbf545c0a3b04080f8a488b17ec41fe02 "ARM:
software-based privileged-no-access support", the kernel can't access
any longer the user space by default. This will result to fail on every
hypercall made by the userspace (i.e via privcmd).
We have to enable the userspace access and then restore the correct
permission every time the privcmd is used to made an hypercall.
I didn't find generic helpers to do a these operations, so the change
is only arm32 specific.
Reported-by: Riku Voipio <riku.voipio@xxxxxxxxxx>
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 64d1def7d33856824d2c5c6fd6d4579d4d54bb87
Merge: 04d78e3 5ee20bc
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 09:42:32 2015 -0700
Merge tag 'sound-fix-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai:
"A collection of small fixes since the last update: the HD-audio quirks
as usual with a USB-audio fix and a trivial fix for the old sparc
driver"
* tag 'sound-fix-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: usb-audio: Change internal PCM order
ALSA: hda - Fix white noise on Dell M3800
ALSA: hda - Use ALC880_FIXUP_FUJITSU for FSC Amilo M1437
ALSA: hda - Enable headphone jack detect on old Fujitsu laptops
ALSA: sparc: amd7930: Fix module autoload for OF platform driver
ALSA: hda - Add some FIXUP quirks for white noise on Dell laptop.
commit 04d78e39ee1a7aa3712fce016b37b43a03f810c1
Merge: b0a1ea5 9fbcc7c
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 11 09:35:56 2015 -0700
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie:
"Just a bunch of fixes to squeeze in before -rc1:
- three nouveau regression fixes
- one qxl regression fix
- a bunch of i915 fixes
... and some core displayport/atomic fixes"
* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
drm/nouveau/device: enable c800 quirk for tecra w50
drm/nouveau/clk/gt215: Unbreak engine pausing for GT21x/MCP7x
drm/nouveau/gr/nv04: fix big endian setting on gr context
drm/qxl: validate monitors config modes
drm/i915: Allow DSI dual link to be configured on any pipe
drm/i915: Don't try to use DDR DVFS on CHV when disabled in the BIOS
drm/i915: Fix CSR MMIO address check
drm/i915: Limit the number of loops for reading a split 64bit register
drm/i915: Fix broken mst get_hw_state.
drm/i915: Pass hpd_status_i915[] to intel_get_hpd_pins() in pre-g4x
uapi/drm/i915_drm.h: fix userspace compilation.
drm/i915: Always mark the object as dirty when used by the GPU
drm/dp: Add dp_aux_i2c_speed_khz module param to set the assume i2c bus
speed
drm/dp: Adjust i2c-over-aux retry count based on message size and i2c
bus speed
drm/dp: Define AUX_RETRY_INTERVAL as 500 us
drm/atomic: Fix bookkeeping with TEST_ONLY, v3.
commit 53431d0a3534263168c8ee576bad1c2c3a4cd9e0
Merge: 01b944f ade9c1a
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Fri Sep 11 09:02:36 2015 -0700
Merge branch 'next' into for-linus
Prepare second round of input updates for 4.3 merge window.
commit 6e8f580d1fcc18e290713984c379cb97131c015a
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Sep 11 08:34:52 2015 +0100
ARM: domains: add memory dependencies to get_domain/set_domain
We need to have memory dependencies on get_domain/set_domain to avoid
the compiler over-optimising these inline assembly instructions.
Loads/stores must not be reordered across a set_domain(), so introduce
a compiler barrier for that assembly.
The value of get_domain() must not be cached across a set_domain(), but
we still want to allow the compiler to optimise it away. Introduce a
dependency on current_thread_info()->cpu_domain to avoid this; the new
memory clobber in set_domain() should therefore cause the compiler to
re-load this. The other advantage of using this is we should have its
address in the register set already, or very soon after at most call
sites.
Tested-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 716ff1921a86c637b8875c7bb312fc6755fa9300
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Sep 11 08:17:39 2015 +0100
ARM: domains: thread_info.h no longer needs asm/domains.h
As of 1eef5d2f1b46 ("ARM: domains: switch to keeping domain value in
register") we no longer need to include asm/domains.h into
asm/thread_info.h. Remove it.
Tested-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 6fe810bda0bd9a5d7674fc671fac27b8aa8ec243
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Sat Sep 5 15:47:36 2015 -0400
block: blkg_destroy_all() should clear q->root_blkg and ->root_rl.blkg
While making the root blkg unconditional, ec13b1d6f0a0 ("blkcg: always
create the blkcg_gq for the root blkcg") removed the part which clears
q->root_blkg and ->root_rl.blkg during q exit. This leaves the two
pointers dangling after blkg_destroy_all(). blk-throttle exit path
performs blkg traversals and dereferences ->root_blkg and can lead to
the following oops.
BUG: unable to handle kernel NULL pointer dereference at 0000000000000558
IP: [<ffffffff81389746>] __blkg_lookup+0x26/0x70
...
task: ffff88001b4e2580 ti: ffff88001ac0c000 task.ti: ffff88001ac0c000
RIP: 0010:[<ffffffff81389746>] [<ffffffff81389746>]
__blkg_lookup+0x26/0x70
...
Call Trace:
[<ffffffff8138d14a>] blk_throtl_drain+0x5a/0x110
[<ffffffff8138a108>] blkcg_drain_queue+0x18/0x20
[<ffffffff81369a70>] __blk_drain_queue+0xc0/0x170
[<ffffffff8136a101>] blk_queue_bypass_start+0x61/0x80
[<ffffffff81388c59>] blkcg_deactivate_policy+0x39/0x100
[<ffffffff8138d328>] blk_throtl_exit+0x38/0x50
[<ffffffff8138a14e>] blkcg_exit_queue+0x3e/0x50
[<ffffffff8137016e>] blk_release_queue+0x1e/0xc0
...
While the bug is a straigh-forward use-after-free bug, it is tricky to
reproduce because blkg release is RCU protected and the rest of exit
path usually finishes before RCU grace period.
This patch fixes the bug by updating blkg_destro_all() to clear
q->root_blkg and ->root_rl.blkg.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Reported-by: "Richard W.M. Jones" <rjones@xxxxxxxxxx>
Reported-by: Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/g/CA+5PVA5rzQ0s4723n5rHBcxQa9t0cW8BPPBekr_9aMRoWt2aYg@xxxxxxxxxxxxxx
Fixes: ec13b1d6f0a0 ("blkcg: always create the blkcg_gq for the root
blkcg")
Cc: stable@xxxxxxxxxxxxxxx # v4.2+
Tested-by: Richard W.M. Jones <rjones@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 46348456c1791053dcbe5a9e21825b10a3c8a8fb
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Sep 3 19:28:23 2015 +0300
block: Copy a user iovec if it includes gaps
For drivers that don't support gaps in the SG lists handed to
them we must bounce (copy the user buffers) and pass a bio that
does not include gaps. This doesn't matter for any current user,
but will help to allow iser which can't handle gaps to use the
block virtual boundary instead of using driver-local bounce
buffering when handling SG_IO commands.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 87a816df537e096d404add543ef47b796906c130
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Tue Sep 8 09:33:35 2015 -0600
block: Refuse adding appending a gapped integrity page to a bio
This is only theoretical at the moment given that the only
subsystems that generate integrity payloads are the block layer
itself and the scsi target (which generate well aligned integrity
payloads). But when we will expose integrity meta-data to user-space,
we'll need to refuse appending a page with a gap (if the queue
virtual boundary is set).
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 7f39add3b08cbbdb99abe50e6d7c342e6800d684
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Fri Sep 11 09:03:04 2015 -0600
block: Refuse request/bio merges with gaps in the integrity payload
If a driver sets the block queue virtual boundary mask, it means that
it cannot handle gaps so we must not allow those in the integrity
payload as well.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Fixed up by me to have duplicate integrity merge functions, depending
on whether block integrity is enabled or not. Fixes a compilations
issue with CONFIG_BLK_DEV_INTEGRITY unset.
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 4c17a6d56bb0cad3066a714e94f7185a24b40f49
Author: Jann Horn <jann@xxxxxxxxx>
Date: Fri Sep 11 16:27:27 2015 +0200
CIFS: fix type confusion in copy offload ioctl
This might lead to local privilege escalation (code execution as
kernel) for systems where the following conditions are met:
- CONFIG_CIFS_SMB2 and CONFIG_CIFS_POSIX are enabled
- a cifs filesystem is mounted where:
- the mount option "vers" was used and set to a value >=2.0
- the attacker has write access to at least one file on the filesystem
To attack this, an attacker would have to guess the target_tcon
pointer (but guessing wrong doesn't cause a crash, it just returns an
error code) and win a narrow race.
CC: Stable <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Jann Horn <jann@xxxxxxxxx>
Signed-off-by: Steve French <smfrench@xxxxxxxxx>
commit 84cba178a3b88efe2668a9039f70abda072faa21
Author: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx>
Date: Thu Sep 10 13:11:55 2015 +0300
crypto: testmgr - don't copy from source IV too much
While the destination buffer 'iv' is MAX_IVLEN size,
the source 'template[i].iv' could be smaller, thus
memcpy may read read invalid memory.
Use crypto_skcipher_ivsize() to get real ivsize
and pass it to memcpy.
Signed-off-by: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 4614e0cc66a8ea1d163efc364ba743424dee5c0a
Merge: 3e66c4b 21dd33b abceaa9 f33b774
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Fri Sep 11 15:37:36 2015 +0200
Merge branches 'pm-cpu', 'pm-cpuidle' and 'pm-domains'
* pm-cpu:
kernel/cpu_pm: fix cpu_cluster_pm_exit comment
* pm-cpuidle:
cpuidle/coupled: Add sanity check for safe_state_index
* pm-domains:
staging: board: Migrate away from __pm_genpd_name_add_device()
PM / Domains: Ensure subdomain is not in use before removing
PM / Domains: Try power off masters in error path of
__pm_genpd_poweron()
commit 3e66c4b86035884e00f008086b183b925fb0592b
Merge: 7c97666 74da56c
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Fri Sep 11 15:37:25 2015 +0200
Merge branch 'pm-cpufreq'
* pm-cpufreq:
intel_pstate: fix PCT_TO_HWP macro
intel_pstate: Fix user input of min/max to legal policy region
cpufreq-dt: add suspend frequency support
cpufreq: allow cpufreq_generic_suspend() to work without suspend
frequency
cpufreq: Use __func__ to print function's name
cpufreq: staticize cpufreq_cpu_get_raw()
cpufreq: Add ARM_MT8173_CPUFREQ dependency on THERMAL
cpufreq: dt: Tolerance applies on both sides of target voltage
cpufreq: dt: Print error on failing to mark OPPs as shared
cpufreq: dt: Check OPP count before marking them shared
commit 7c976664d537bca19c9bf892b4d9e5ab7ecea927
Merge: ae98207 1b2b90c
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Fri Sep 11 15:37:17 2015 +0200
Merge branch 'pm-opp'
* pm-opp:
PM / OPP: Return suspend_opp only if it is enabled
PM / OPP: add dev_pm_opp_get_suspend_opp() helper
commit 7e90f9b2b56669260e5f6f97974735d187f79b7d
Author: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Date: Wed Sep 9 19:29:11 2015 +0800
ASoC: wm8960: correct gain value for input PGA and add microphone PGA
The input PGAs have a gain range from -17.25dB to +30dB in 0.75dB steps.
The boost stage can provide additional gain. For line inputs, -12dB to
+6dB gain is available on the boost mixer. For micphone inputs, it can
provide up to +29dB additional gain from the microphone PGA.
Signed-off-by: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Acked-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 3758ff5f3dab57cd768d54279962a2f6bbc17188
Author: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Date: Wed Sep 9 19:29:10 2015 +0800
ASoC: wm8960: correct the min gain value of some PGA
The min gain is the corresponding gain value when the register value is 0
instead of 1, just correct it.
Signed-off-by: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Acked-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit dd85ebf681ef0ee1fc985c353dd45e8b53b5dc1e
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Thu Sep 10 16:48:13 2015 +0530
spi: spidev: fix possible NULL dereference
During the last close we are freeing spidev if spidev->spi is NULL, but
just before checking if spidev->spi is NULL we are dereferencing it.
Lets add a check there to avoid the NULL dereference.
Fixes: 9169051617df ("spi: spidev: Don't mangle max_speed_hz in
underlying spi device")
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Reviewed-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>
Tested-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit f17b329b73a0393dc9d5fc5b4457189f92e5bbef
Author: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Date: Thu Sep 10 13:40:16 2015 +0800
ASoC: rt5645: Remove incorrect settings
The patch removes the incorrect settings to avoid the pop sound in the
first playback with headphone after boot.
Signed-off-by: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 75881df3fd7708f234c1e2573ade812eb5701708
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Thu Sep 10 18:01:44 2015 +0530
ASoC: dapm: fix memory leak
Incase of an unknown event we were directly returning but we missed
freeing params.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit d249872939bfa86c9cce44a56a8cbdbc7086519b
Author: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Date: Fri Jul 17 16:34:10 2015 +0300
perf/x86/intel/bts: Set event->hw.itrace_started in pmu::start to match
the new logic
Since event->hw.itrace_started is now set in pmu::start() to signal the
beginning of
the trace, do so also in the intel_bts driver.
Signed-off-by: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: acme@xxxxxxxxxxxxx
Cc: adrian.hunter@xxxxxxxxx
Cc: hpa@xxxxxxxxx
Link:
http://lkml.kernel.org/r/1437140050-23363-4-git-send-email-alexander.shishkin@xxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit ac64a2ce509104a746321a4f9646b6750cf281eb
Author: David Disseldorp <ddiss@xxxxxxx>
Date: Fri Sep 4 01:39:56 2015 +0200
target: use stringify.h instead of own definition
Signed-off-by: David Disseldorp <ddiss@xxxxxxx>
Acked-by: Andy Grover <agrover@xxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit ed97d0cd78a337450e17eb613bdeec15e729af46
Author: Andy Grover <agrover@xxxxxxxxxx>
Date: Thu Sep 3 16:03:44 2015 -0700
target/user: Fix UFLAG_UNKNOWN_OP handling
Calling transport_generic_request_failure() from here causes list
corruption. We should be using target_complete_cmd() instead.
Which we do in all other cases, so the UNKNOWN_OP case can become just
another member of the big else/if chain in tcmu_handle_completion().
Signed-off-by: Andy Grover <agrover@xxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 06b967e429cfb76494badb9ffdd69e934ba72c77
Author: Andy Grover <agrover@xxxxxxxxxx>
Date: Thu Sep 3 16:03:43 2015 -0700
target: Remove no-op conditional
This does nothing, and there are many other places where
transport_cmd_check_stop_to_fabric()'s retval is not checked>, If we
wanted to check it here, we should probably do it those other places too.
Signed-off-by: Andy Grover <agrover@xxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 4824640ec3fc84337cb2baa9fb780e95864feb88
Author: Andy Grover <agrover@xxxxxxxxxx>
Date: Thu Sep 3 16:03:42 2015 -0700
target/user: Remove unused variable
We don't use it any more.
Signed-off-by: Andy Grover <agrover@xxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 7dd03aca9d61a9b64cd2a8cf6f5ea6f1f5391e8d
Author: Roland Dreier <roland@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 06:14:18 2015 -0700
target: Fix max_cmd_sn increment w/o cmdsn mutex regressions
Current for-next iscsi target is broken:
commit 109e2381749c1cfd94a0d22b2b54142539024973
Author: Roland Dreier <roland@xxxxxxxxxxxxxxx>
Date: Thu Jul 23 14:53:32 2015 -0700
target: Drop iSCSI use of mutex around max_cmd_sn increment
This patch fixes incorrect pr_debug() + atomic_inc_return() usage
within iscsit_increment_maxcmdsn() code.
Also fix funny iscsit_determine_maxcmdsn() usage and update
iscsi_target_do_tx_login_io() code.
Reported-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Cc: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Roland Dreier <roland@xxxxxxxxxxxxxxx>
Cc: Roland Dreier <roland@xxxxxxxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 4416f89b8cfcb794d040fc3b68e5fb159b7d8d02
Author: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
Date: Thu Sep 3 06:30:45 2015 +0000
target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess
This patch is a >= v4.1 regression bug-fix where control CDB
emulation logic in commit 38b57f82 now expects a se_cmd->se_sess
pointer to exist when determining T10-PI support is to be exposed
for initiator host ports.
To address this bug, go ahead and add locally generated se_cmd
descriptors for copy-offload block-copy to it's own stand-alone
se_session nexus, while the parent EXTENDED_COPY se_cmd descriptor
remains associated with it's originating se_cmd->se_sess nexus.
Note a valid se_cmd->se_sess is also required for future support
of WRITE_INSERT and READ_STRIP software emulation when submitting
backend I/O to se_device that exposes T10-PI suport.
Reported-by: Alex Gorbachev <ag@xxxxxxxxxxxxxxxxxxx>
Tested-by: Alex Gorbachev <ag@xxxxxxxxxxxxxxxxxxx>
Cc: "Martin K. Petersen" <martin.petersen@xxxxxxxxxx>
Cc: Hannes Reinecke <hare@xxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Cc: Doug Gilbert <dgilbert@xxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # v4.1+
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 8f9b565482c537821588444e09ff732c7d65ed6e
Author: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
Date: Thu Jul 30 18:28:13 2015 -0700
target/qla2xxx: Honor max_data_sg_nents I/O transfer limit
This patch adds an optional fabric driver provided SGL limit
that target-core will honor as it's own internal I/O maximum
transfer length limit, as exposed by EVPD=0xb0 block limits
parameters.
This is required for handling cases when host I/O transfer
length exceeds the requested EVPD block limits maximum
transfer length. The initial user of this logic is qla2xxx,
so that we can avoid having to reject I/Os from some legacy
FC hosts where EVPD=0xb0 parameters are not honored.
When se_cmd payload length exceeds the provided limit in
target_check_max_data_sg_nents() code, se_cmd->data_length +
se_cmd->prot_length are reset with se_cmd->residual_count
plus underflow bit for outgoing TFO response callbacks.
It also checks for existing CDB level underflow + overflow
and recalculates final residual_count as necessary.
Note this patch currently assumes 1:1 mapping of PAGE_SIZE
per struct scatterlist entry.
Reported-by: Craig Watson <craig.watson@xxxxxxxxxxxxxxxxxxx>
Cc: Craig Watson <craig.watson@xxxxxxxxxxxxxxxxxxx>
Tested-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Cc: Roland Dreier <roland@xxxxxxxxxxxxxxx>
Cc: Arun Easi <arun.easi@xxxxxxxxxx>
Cc: Giridhar Malavali <giridhar.malavali@xxxxxxxxxx>
Cc: Andrew Vasquez <andrew.vasquez@xxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Cc: Hannes Reinecke <hare@xxxxxxx>
Cc: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 5473e0cc37c03c576adbda7591a6cc8e37c1bb7f
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Fri Aug 28 14:55:56 2015 +0800
sched: 'Annotate' migrate_tasks()
Kernel testing triggered this warning:
| WARNING: CPU: 0 PID: 13 at kernel/sched/core.c:1156
do_set_cpus_allowed+0x7e/0x80()
| Modules linked in:
| CPU: 0 PID: 13 Comm: migration/0 Not tainted 4.2.0-rc1-00049-g25834c7 #2
| Call Trace:
| dump_stack+0x4b/0x75
| warn_slowpath_common+0x8b/0xc0
| warn_slowpath_null+0x22/0x30
| do_set_cpus_allowed+0x7e/0x80
| cpuset_cpus_allowed_fallback+0x7c/0x170
| select_fallback_rq+0x221/0x280
| migration_call+0xe3/0x250
| notifier_call_chain+0x53/0x70
| __raw_notifier_call_chain+0x1e/0x30
| cpu_notify+0x28/0x50
| take_cpu_down+0x22/0x40
| multi_cpu_stop+0xd5/0x140
| cpu_stopper_thread+0xbc/0x170
| smpboot_thread_fn+0x174/0x2f0
| kthread+0xc4/0xe0
| ret_from_kernel_thread+0x21/0x30
As Peterz pointed out:
| So the normal rules for changing task_struct::cpus_allowed are holding
| both pi_lock and rq->lock, such that holding either stabilizes the mask.
|
| This is so that wakeup can happen without rq->lock and load-balance
| without pi_lock.
|
| From this we already get the relaxation that we can omit acquiring
| rq->lock if the task is not on the rq, because in that case
| load-balancing will not apply to it.
|
| ** these are the rules currently tested in do_set_cpus_allowed() **
|
| Now, since __set_cpus_allowed_ptr() uses task_rq_lock() which
| unconditionally acquires both locks, we could get away with holding just
| rq->lock when on_rq for modification because that'd still exclude
| __set_cpus_allowed_ptr(), it would also work against
| __kthread_bind_mask() because that assumes !on_rq.
|
| That said, this is all somewhat fragile.
|
| Now, I don't think dropping rq->lock is quite as disastrous as it
| usually is because !cpu_active at this point, which means load-balance
| will not interfere, but that too is somewhat fragile.
|
| So we end up with a choice of two fragile..
This patch fixes it by following the rules for changing
task_struct::cpus_allowed with both pi_lock and rq->lock held.
Reported-by: kernel test robot <ying.huang@xxxxxxxxx>
Reported-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
[ Modified changelog and patch. ]
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/BLU436-SMTP1660820490DE202E3934ED3806E0@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit a6b277857fd2c990bc208ca1958d3f34d26052f7
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Sat Sep 5 16:55:05 2015 +0200
locking/qspinlock/x86: Only emit the test-and-set fallback when building
guest support
Only emit the test-and-set fallback for Hypervisors lacking
PARAVIRT_SPINLOCKS support when building for guests.
Suggested-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: stable@xxxxxxxxxxxxxxx # 4.2
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 43b3f02899f74ae9914a39547cc5492156f0027a
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Fri Sep 4 17:25:23 2015 +0200
locking/qspinlock/x86: Fix performance regression under unaccelerated VMs
Dave ran into horrible performance on a VM without PARAVIRT_SPINLOCKS
set and Linus noted that the test-and-set implementation was retarded.
One should spin on the variable with a load, not a RMW.
While there, remove 'queued' from the name, as the lock isn't queued
at all, but a simple test-and-set.
Suggested-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Reported-by: Dave Chinner <david@xxxxxxxxxxxxx>
Tested-by: Dave Chinner <david@xxxxxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Waiman Long <Waiman.Long@xxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v4.2+
Link:
http://lkml.kernel.org/r/20150904152523.GR18673@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 5f25f066f75a67835abb5e400471a27abd09395b
Author: Xiaolong Ye <yexl@xxxxxxxxxxx>
Date: Fri Sep 11 11:05:23 2015 +0800
PM / devfreq: Fix incorrect type issue.
time_in_state in struct devfreq is defined as unsigned long, so
devm_kzalloc should use sizeof(unsigned long) as argument instead
of sizeof(unsigned int), otherwise it will cause unexpected result
in 64bit system.
Signed-off-by: Xiaolong Ye <yexl@xxxxxxxxxxx>
Signed-off-by: Kevin Liu <kliu5@xxxxxxxxxxx>
Signed-off-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
commit 14de3903181ca41dde73d57ad4f7a79a314ee6bf
Author: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
Date: Tue Aug 18 13:47:41 2015 +0900
PM / devfreq: tegra: Update governor to use devfreq_update_stats()
Direct invocation of get_dev_status() is no more recommended.
Signed-off-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
commit d54cdf3fc91aae3780433471d15d73413a845bc0
Author: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
Date: Tue Aug 18 13:45:49 2015 +0900
PM / devfreq: comments for get_dev_status usage updated
With the introduction of devfreq_update_stats(), governors
are not recommended to use get_dev_status() directly.
Signed-off-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
commit d3b7e1745c0d1be2add1bb58065eef142c5a098f
Author: Javi Merino <javi.merino@xxxxxxx>
Date: Fri Aug 14 18:57:00 2015 +0100
PM / devfreq: drop comment about thermal setting max_freq
The thermal infrastructure should use the devfreq cooling device, which
uses the OPP library to disable OPPs as necessary.
Fix a couple of typos in the same comment while we are at it.
Signed-off-by: Javi Merino <javi.merino@xxxxxxx>
Signed-off-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
commit 08e75e754a6d9838e490b74551d19fc04d0fd6f9
Author: Javi Merino <javi.merino@xxxxxxx>
Date: Fri Aug 14 18:56:56 2015 +0100
PM / devfreq: cache the last call to get_dev_status()
The return value of get_dev_status() can be reused. Cache it so that
other parts of the kernel can reuse it instead of having to call the
same function again.
Cc: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
Signed-off-by: Javi Merino <javi.merino@xxxxxxx>
Signed-off-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
commit 9348da2f1c2ca8e064d4907cdc5b3a19477df933
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Aug 10 11:42:25 2015 +0530
PM / devfreq: Drop unlikely before IS_ERR(_OR_NULL)
IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there
is no need to do that again from its callers. Drop it.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
commit 86fa4cdb0f1e16d7e27278e29e4f0b9ba22f1a9b
Author: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
Date: Wed Aug 5 10:55:10 2015 +0900
PM / devfreq: exynos-ppmu: bit-wise operation bugfix.
Make it u64 before left-shifting 32bits.
Signed-off-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
commit d80f02231a1ee891f56f06ee6e4646db6ba28836
Author: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Date: Fri Jul 24 13:17:25 2015 +0900
PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2
This patch updates the documentation to include the information of PPMUv2.
The PPMUv2 is used for Exynos5433 and Exynos7420 to monitor the
performance
of each IP in Exynos SoC.
Cc: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
Cc: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
Signed-off-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
commit 77fe46a301a75795cf1d43ed2988a15c1600d1b5
Author: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Date: Fri Jul 24 13:17:24 2015 +0900
PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433
This patch adds the support for PPMU (Platform Performance Monitoring
Unit)
version 2.0 for Exynos5433 SoC. Exynos5433 SoC must need PPMUv2 which is
quite different from PPMUv1.1. The exynos-ppmu.c driver supports both
PPMUv1.1
and PPMUv2.
Cc: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
Cc: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
Signed-off-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
commit f47ff87f79a0f65db6af5b6bebd67b8f011994d1
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Mon Jul 13 08:58:51 2015 +0200
PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding
The exynos-ppmu driver is only a clock consumer and not a clock provider
but its Device Tree binding listed #clock-cells as an optional property.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Reviewed-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Signed-off-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
commit 9fbcc7c007ea200357e2453c6b2b153646fbc165
Merge: d1031d5 778613e5
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Sep 11 14:38:36 2015 +1000
Merge branch 'linux-4.3' of
git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next
three nouveau regression fixes.
* 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
drm/nouveau/device: enable c800 quirk for tecra w50
drm/nouveau/clk/gt215: Unbreak engine pausing for GT21x/MCP7x
drm/nouveau/gr/nv04: fix big endian setting on gr context
commit b0a1ea51bda4c2bcdde460221e1772f3a4f8c44f
Merge: 33e247c 69d7fde
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 10 18:56:14 2015 -0700
Merge branch 'for-4.3/blkcg' of git://git.kernel.dk/linux-block
Pull blk-cg updates from Jens Axboe:
"A bit later in the cycle, but this has been in the block tree for a a
while. This is basically four patchsets from Tejun, that improve our
buffered cgroup writeback. It was dependent on the other cgroup
changes, but they went in earlier in this cycle.
Series 1 is set of 5 patches that has cgroup writeback updates:
- bdi_writeback iteration fix which could lead to some wb's being
skipped or repeated during e.g. sync under memory pressure.
- Simplification of wb work wait mechanism.
- Writeback tracepoints updated to report cgroup.
Series 2 is is a set of updates for the CFQ cgroup writeback handling:
cfq has always charged all async IOs to the root cgroup. It didn't
have much choice as writeback didn't know about cgroups and there
was no way to tell who to blame for a given writeback IO.
writeback finally grew support for cgroups and now tags each
writeback IO with the appropriate cgroup to charge it against.
This patchset updates cfq so that it follows the blkcg each bio is
tagged with. Async cfq_queues are now shared across cfq_group,
which is per-cgroup, instead of per-request_queue cfq_data. This
makes all IOs follow the weight based IO resource distribution
implemented by cfq.
- Switched from GFP_ATOMIC to GFP_NOWAIT as suggested by Jeff.
- Other misc review points addressed, acks added and rebased.
Series 3 is the blkcg policy cleanup patches:
This patchset contains assorted cleanups for blkcg_policy methods
and blk[c]g_policy_data handling.
- alloc/free added for blkg_policy_data. exit dropped.
- alloc/free added for blkcg_policy_data.
- blk-throttle's async percpu allocation is replaced with direct
allocation.
- all methods now take blk[c]g_policy_data instead of blkcg_gq or
blkcg.
And finally, series 4 is a set of patches cleaning up the blkcg stats
handling:
blkcg's stats have always been somwhat of a mess. This patchset
tries to improve the situation a bit.
- The following patches added to consolidate blkcg entry point and
blkg creation. This is in itself is an improvement and helps
colllecting common stats on bio issue.
- per-blkg stats now accounted on bio issue rather than request
completion so that bio based and request based drivers can behave
the same way. The issue was spotted by Vivek.
- cfq-iosched implements custom recursive stats and blk-throttle
implements custom per-cpu stats. This patchset make blkcg core
support both by default.
- cfq-iosched and blk-throttle keep track of the same stats
multiple times. Unify them"
* 'for-4.3/blkcg' of git://git.kernel.dk/linux-block: (45 commits)
blkcg: use CGROUP_WEIGHT_* scale for io.weight on the unified hierarchy
blkcg: s/CFQ_WEIGHT_*/CFQ_WEIGHT_LEGACY_*/
blkcg: implement interface for the unified hierarchy
blkcg: misc preparations for unified hierarchy interface
blkcg: separate out tg_conf_updated() from tg_set_conf()
blkcg: move body parsing from blkg_conf_prep() to its callers
blkcg: mark existing cftypes as legacy
blkcg: rename subsystem name from blkio to io
blkcg: refine error codes returned during blkcg configuration
blkcg: remove unnecessary NULL checks from __cfqg_set_weight_device()
blkcg: reduce stack usage of blkg_rwstat_recursive_sum()
blkcg: remove cfqg_stats->sectors
blkcg: move io_service_bytes and io_serviced stats into blkcg_gq
blkcg: make blkg_[rw]stat_recursive_sum() to be able to index into
blkcg_gq
blkcg: make blkcg_[rw]stat per-cpu
blkcg: add blkg_[rw]stat->aux_cnt and replace cfq_group->dead_stats
with it
blkcg: consolidate blkg creation in blkcg_bio_issue_check()
blk-throttle: improve queue bypass handling
blkcg: move root blkg lookup optimization from throtl_lookup_tg() to
__blkg_lookup()
blkcg: inline [__]blkg_lookup()
...
commit 778613e583994d947960a7f177226d0e7b5ef124
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Sep 3 12:39:45 2015 +1000
drm/nouveau/device: enable c800 quirk for tecra w50
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c5bf4609e03e296d74cbbfe124ba49e0f907feb3
Author: Roy Spliet <rspliet@xxxxxxxxxx>
Date: Wed Sep 2 23:21:02 2015 +0100
drm/nouveau/clk/gt215: Unbreak engine pausing for GT21x/MCP7x
Typo that snuck in with commit 6979c6303a4abf263753cd9d577d79f05c6e8c47
Signed-off-by: Roy Spliet <rspliet@xxxxxxxxxx>
Reported-by: Pierre Moreau <pierre.morrow@xxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 15ee005893c5ac8aabb66c2ad0033ef31dbdcfa3
Author: Ilia Mirkin <imirkin@xxxxxxxxxxxx>
Date: Mon Aug 31 22:50:28 2015 -0400
drm/nouveau/gr/nv04: fix big endian setting on gr context
Broken since "gr: convert user classes to new-style nvkm_object"
Tested on a PPC64 G5 + NV34
Signed-off-by: Ilia Mirkin <imirkin@xxxxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 33e247c7e58d335d70ecb84fd869091e2e4b8dcb
Merge: d71fc23 452e06a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 10 18:19:42 2015 -0700
Merge branch 'akpm' (patches from Andrew)
Merge third patch-bomb from Andrew Morton:
- even more of the rest of MM
- lib/ updates
- checkpatch updates
- small changes to a few scruffy filesystems
- kmod fixes/cleanups
- kexec updates
- a dma-mapping cleanup series from hch
* emailed patches from Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>: (81
commits)
dma-mapping: consolidate dma_set_mask
dma-mapping: consolidate dma_supported
dma-mapping: cosolidate dma_mapping_error
dma-mapping: consolidate dma_{alloc,free}_noncoherent
dma-mapping: consolidate dma_{alloc,free}_{attrs,coherent}
mm: use vma_is_anonymous() in create_huge_pmd() and wp_huge_pmd()
mm: make sure all file VMAs have ->vm_ops set
mm, mpx: add "vm_flags_t vm_flags" arg to do_mmap_pgoff()
mm: mark most vm_operations_struct const
namei: fix warning while make xmldocs caused by namei.c
ipc: convert invalid scenarios to use WARN_ON
zlib_deflate/deftree: remove bi_reverse()
lib/decompress_unlzma: Do a NULL check for pointer
lib/decompressors: use real out buf size for gunzip with kernel
fs/affs: make root lookup from blkdev logical size
sysctl: fix int -> unsigned long assignments in INT_MIN case
kexec: export KERNEL_IMAGE_SIZE to vmcoreinfo
kexec: align crash_notes allocation to make it be inside one physical
page
kexec: remove unnecessary test in kimage_alloc_crash_control_pages()
kexec: split kexec_load syscall from kexec core code
...
commit d71fc239b6915a8b750e9a447311029ff45b6580
Merge: 519f526 c6e59bd
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 10 17:59:04 2015 -0700
Merge tag 'armsoc-late' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull late ARM SoC updates from Kevin Hilman:
"This is a collection of a few late fixes and other misc stuff that had
dependencies on things being merged from other trees.
The bulk of the changes are for samsung/exynos SoCs for some changes
that needed a few minor reworks so ended up a bit late. The others
are mainly for qcom SoCs: a couple fixes and some DTS updates"
* tag 'armsoc-late' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (37 commits)
ARM: multi_v7_defconfig: Enable PBIAS regulator
soc: qcom: smd: Correct fBLOCKREADINTR handling
soc: qcom: smd: Use correct remote processor ID
soc: qcom: smem: Fix errant private access
ARM: dts: qcom: msm8974-sony-xperia-honami: Use stdout-path
ARM: dts: qcom: msm8960-cdp: Use stdout-path
ARM: dts: qcom: msm8660-surf: Use stdout-path
ARM: dts: qcom: ipq8064-ap148: Use stdout-path
ARM: dts: qcom: apq8084-mtp: Use stdout-path
ARM: dts: qcom: apq8084-ifc6540: Use stdout-path
ARM: dts: qcom: apq8074-dragonboard: Use stdout-path
ARM: dts: qcom: apq8064-ifc6410: Use stdout-path
ARM: dts: qcom: apq8064-cm-qs600: Use stdout-path
ARM: dts: qcom: Label serial nodes for aliasing and stdout-path
reset: ath79: Fix missing spin_lock_init
reset: Add (devm_)reset_control_get stub functions
ARM: EXYNOS: switch to using generic cpufreq driver for exynos4x12
cpufreq: exynos: Remove unselectable rule for arm-exynos-cpufreq.o
ARM: dts: add iommu property to JPEG device for exynos4
ARM: dts: enable SPI1 for exynos4412-odroidu3
...
commit d1031d576d7398ab2e2fce53796d733c5be13d64
Merge: 91b6fc0 f36203b
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Sep 11 10:52:37 2015 +1000
Merge tag 'topic/drm-fixes-2015-09-09' of
git://anongit.freedesktop.org/drm-intel into drm-next
bunch of drm fixes.
* tag 'topic/drm-fixes-2015-09-09' of
git://anongit.freedesktop.org/drm-intel:
drm/dp: Add dp_aux_i2c_speed_khz module param to set the assume i2c bus
speed
drm/dp: Adjust i2c-over-aux retry count based on message size and i2c
bus speed
drm/dp: Define AUX_RETRY_INTERVAL as 500 us
drm/atomic: Fix bookkeeping with TEST_ONLY, v3.
commit 91b6fc02a258422bf342992add24cfe70a029eca
Merge: bd3e1c7 8242578
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Sep 11 10:52:08 2015 +1000
Merge tag 'drm-intel-next-fixes-2015-09-10' of
git://anongit.freedesktop.org/drm-intel into drm-next
Fixes headed for v4.3-rc1, including Maarten's DP MST state checker fix
you requested.
* tag 'drm-intel-next-fixes-2015-09-10' of
git://anongit.freedesktop.org/drm-intel:
drm/i915: Allow DSI dual link to be configured on any pipe
drm/i915: Don't try to use DDR DVFS on CHV when disabled in the BIOS
drm/i915: Fix CSR MMIO address check
drm/i915: Limit the number of loops for reading a split 64bit register
drm/i915: Fix broken mst get_hw_state.
drm/i915: Pass hpd_status_i915[] to intel_get_hpd_pins() in pre-g4x
uapi/drm/i915_drm.h: fix userspace compilation.
drm/i915: Always mark the object as dirty when used by the GPU
commit bd3e1c7c6de9f5f70d97cdb6c817151c0477c5e3
Author: Jonathon Jongsma <jjongsma@xxxxxxxxxx>
Date: Thu Aug 20 14:04:32 2015 -0500
drm/qxl: validate monitors config modes
Due to some recent changes in
drm_helper_probe_single_connector_modes_merge_bits(), old custom modes
were not being pruned properly. In current kernels,
drm_mode_validate_basic() is called to sanity-check each mode in the
list. If the sanity-check passes, the mode's status gets set to to
MODE_OK. In older kernels this check was not done, so old custom modes
would still have a status of MODE_UNVERIFIED at this point, and would
therefore be pruned later in the function.
As a result of this new behavior, the list of modes for a device always
includes every custom mode ever configured for the device, with the
largest one listed first. Since desktop environments usually choose the
first preferred mode when a hotplug event is emitted, this had the
result of making it very difficult for the user to reduce the size of
the display.
The qxl driver did implement the mode_valid connector function, but it
was empty. In order to restore the old behavior where old custom modes
are pruned, we implement a proper mode_valid function for the qxl
driver. This function now checks each mode against the last configured
custom mode and the list of standard modes. If the mode doesn't match
any of these, its status is set to MODE_BAD so that it will be pruned as
expected.
Signed-off-by: Jonathon Jongsma <jjongsma@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 519f526d391b0ef775aeb04c4b6f632ea6b3ee50
Merge: 06ab838 ba60c41
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 10 16:42:49 2015 -0700
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull more kvm updates from Paolo Bonzini:
"ARM:
- Full debug support for arm64
- Active state switching for timer interrupts
- Lazy FP/SIMD save/restore for arm64
- Generic ARMv8 target
PPC:
- Book3S: A few bug fixes
- Book3S: Allow micro-threading on POWER8
x86:
- Compiler warnings
Generic:
- Adaptive polling for guest halt"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (49
commits)
kvm: irqchip: fix memory leak
kvm: move new trace event outside #ifdef CONFIG_KVM_ASYNC_PF
KVM: trace kvm_halt_poll_ns grow/shrink
KVM: dynamic halt-polling
KVM: make halt_poll_ns per-vCPU
Silence compiler warning in arch/x86/kvm/emulate.c
kvm: compile process_smi_save_seg_64() only for x86_64
KVM: x86: avoid uninitialized variable warning
KVM: PPC: Book3S: Fix typo in top comment about locking
KVM: PPC: Book3S: Fix size of the PSPB register
KVM: PPC: Book3S HV: Exit on H_DOORBELL if HOST_IPI is set
KVM: PPC: Book3S HV: Fix race in starting secondary threads
KVM: PPC: Book3S: correct width in XER handling
KVM: PPC: Book3S HV: Fix preempted vcore stolen time calculation
KVM: PPC: Book3S HV: Fix preempted vcore list locking
KVM: PPC: Book3S HV: Implement H_CLEAR_REF and H_CLEAR_MOD
KVM: PPC: Book3S HV: Fix bug in dirty page tracking
KVM: PPC: Book3S HV: Fix race in reading change bit when removing HPTE
KVM: PPC: Book3S HV: Implement dynamic micro-threading on POWER8
KVM: PPC: Book3S HV: Make use of unused threads when running guests
...
commit 06ab838c2024db468855118087db16d8fa905ddc
Merge: 573c577 5f51042
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 10 16:21:11 2015 -0700
Merge tag 'for-linus-4.3-rc0b-tag' of
git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip
Pull xen terminology fixes from David Vrabel:
"Use the correct GFN/BFN terms more consistently"
* tag 'for-linus-4.3-rc0b-tag' of
git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
xen/xenbus: Rename the variable xen_store_mfn to xen_store_gfn
xen/privcmd: Further s/MFN/GFN/ clean-up
hvc/xen: Further s/MFN/GFN clean-up
video/xen-fbfront: Further s/MFN/GFN clean-up
xen/tmem: Use xen_page_to_gfn rather than pfn_to_gfn
xen: Use correctly the Xen memory terminologies
arm/xen: implement correctly pfn_to_mfn
xen: Make clear that swiotlb and biomerge are dealing with DMA address
commit 573c577af079184ca523984e3279644eb37756a3
Merge: 0cdf5a4 b141327
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 10 16:20:00 2015 -0700
Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze
Pull microblaze update from Michal Simek.
* 'next' of git://git.monstr.eu/linux-2.6-microblaze:
elf-em.h: move EM_MICROBLAZE to the common header
commit 0cdf5a464070c8a2980a27113c47fb8e71babb9c
Merge: 65c61bc 02cc2cc
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 10 16:19:07 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel
Pull hexagon updates from Richard Kuo:
"Just two fixes -- one for a uapi header and one for a timer interface"
* 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel:
Revert "Hexagon: fix signal.c compile error"
hexagon/time: Migrate to new 'set-state' interface
commit 53147b6cabee5e8d1997b5682fcc0c3b72ddf9c2
Author: Azael Avalos <coproscefalo@xxxxxxxxx>
Date: Wed Sep 9 11:25:45 2015 -0600
toshiba_acpi: Fix hotkeys registration on some toshiba models
Commit a2b3471b5b13 ("toshiba_acpi: Use the Hotkey Event Type function
for keymap choosing") changed the *setup_keyboard function to query for
the Hotkey Event Type to help choose the correct keymap, but turns out
that here are certain Toshiba models out there not implementing this
feature, and thus, failing to continue the input device registration and
leaving such laptops without hotkey support.
This patch changes such check, and instead of returning an error if
the Hotkey Event Type is not present, we simply inform userspace about it,
changing the message printed from err to notice, making the function
responsible for registering the input device to continue.
This issue was found on a Toshiba Portege Z30-B, but there might be
some other models out there affected by this regression as well.
Cc: <stable@xxxxxxxxxxxxxxx> # 4.1+
Signed-off-by: Azael Avalos <coproscefalo@xxxxxxxxx>
Signed-off-by: Darren Hart <dvhart@xxxxxxxxxxxxxxx>
commit cf680eae34d26bd474c2ed3bd7d3aff59054aed5
Author: Azael Avalos <coproscefalo@xxxxxxxxx>
Date: Wed Sep 9 11:25:44 2015 -0600
toshiba_acpi: Fix USB Sleep and Music always disabled
Commit e1a949c1b988 ("toshiba_acpi: Refactor *{get, set} functions return
value") made changes on the return type of the HCI/SCI functions, but a
typo on the USB Sleep and Music code is always reporting non existent
support for such feature.
This patch corrects the typo, changing an assignment to a comparison,
making the laptops with actual support for such feature to work again.
Signed-off-by: Azael Avalos <coproscefalo@xxxxxxxxx>
Signed-off-by: Darren Hart <dvhart@xxxxxxxxxxxxxxx>
commit 3bba75a2ec32bd5fa7024a4de3b8cf9ee113a76a
Author: Romain Perier <romain.perier@xxxxxxxxx>
Date: Sun Aug 23 11:32:37 2015 +0200
clk: rockchip: Add pclk_peri to critical clocks on RK3066/RK3188
Now that the rockchip clock subsystem does clock gating with GPIO banks,
these are no longer enabled once during probe and no longer stay enabled
for eternity. When all these clocks are disabled, the parent clock
pclk_peri
might be disabled too, as no other child claims it. So, we need to add
pclk_peri
to the critical clocks.
Signed-off-by: Romain Perier <romain.perier@xxxxxxxxx>
Tested-by: Michael Niewoehner <linux@xxxxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 1166160ab531198f7abc773992c0e04d0f9b7600
Author: Michael Niewoehner <linux@xxxxxxxxxxxxxx>
Date: Tue Aug 25 22:22:07 2015 +0200
clk: rockchip: add pclk_cpu to the list of rk3188 critical clocks
pclk_cpu needs to keep running because it is needed for devices like
the act8865 regulator but with the recent gpio clock handling this is
not always the case anymore. So add it to the list of critical clocks.
Signed-off-by: Michael Niewoehner <linux@xxxxxxxxxxxxxx>
Reviewed-by: Heiko Stuebner <heiko@xxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit bb0f73616396e7929b68d3bdea70064003599d33
Author: Heiko Stuebner <heiko@xxxxxxxxx>
Date: Fri Aug 21 19:51:41 2015 +0200
clk: rockchip: handle critical clocks after registering all clocks
Currently the registration of critical clocks is done in the function
shared between rk3066 and rk3188 clock trees. That results in them
getting handled maybe before all of them are registered.
Therefore move the critical clock handling down to the end of the soc-
specific clock registration function, so that all clocks are registered
before they're maybe handled as critical clock.
Signed-off-by: Heiko Stuebner <heiko@xxxxxxxxx>
Tested-by: Michael Niewoehner <linux@xxxxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 65c61bc5dbbcfa1ff38e58aa834cb9a88e84a886
Merge: b8889c4 3092752
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 10 13:53:15 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller:
1) Fix out-of-bounds array access in netfilter ipset, from Jozsef
Kadlecsik.
2) Use correct free operation on netfilter conntrack templates, from
Daniel Borkmann.
3) Fix route leak in SCTP, from Marcelo Ricardo Leitner.
4) Fix sizeof(pointer) in mac80211, from Thierry Reding.
5) Fix cache pointer comparison in ip6mr leading to missed unlock of
mrt_lock. From Richard Laing.
6) rds_conn_lookup() needs to consider network namespace in key
comparison, from Sowmini Varadhan.
7) Fix deadlock in TIPC code wrt broadcast link wakeups, from Kolmakov
Dmitriy.
8) Fix fd leaks in bpf syscall, from Daniel Borkmann.
9) Fix error recovery when installing ipv6 multipath routes, we would
delete the old route before we would know if we could fully commit
to the new set of nexthops. Fix from Roopa Prabhu.
10) Fix run-time suspend problems in r8152, from Hayes Wang.
11) In fec, don't program the MAC address into the chip when the clocks
are gated off. From Fugang Duan.
12) Fix poll behavior for netlink sockets when using rx ring mmap, from
Daniel Borkmann.
13) Don't allocate memory with GFP_KERNEL from get_stats64 in r8169
driver, from Corinna Vinschen.
14) In TCP Cubic congestion control, handle idle periods better where we
are application limited, in order to keep cwnd from growing out of
control. From Eric Dumzet.
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (65 commits)
tcp_cubic: better follow cubic curve after idle period
tcp: generate CA_EVENT_TX_START on data frames
xen-netfront: respect user provided max_queues
xen-netback: respect user provided max_queues
r8169: Fix sleeping function called during get_stats64, v2
ether: add IEEE 1722 ethertype - TSN
netlink, mmap: fix edge-case leakages in nf queue zero-copy
netlink, mmap: don't walk rx ring on poll if receive queue non-empty
cxgb4: changes for new firmware 1.14.4.0
net: fec: add netif status check before set mac address
r8152: fix the runtime suspend issues
r8152: split DRIVER_VERSION
ipv6: fix ifnullfree.cocci warnings
add microchip LAN88xx phy driver
stmmac: fix check for phydev being open
net: qlcnic: delete redundant memsets
net: mv643xx_eth: use kzalloc
net: jme: use kzalloc() instead of kmalloc+memset
net: cavium: liquidio: use kzalloc in setup_glist()
net: ipv6: use common fib_default_rule_pref
...
commit 452e06af1f0149b01201f94264d452cd7a95db7a
Author: Christoph Hellwig <hch@xxxxxx>
Date: Wed Sep 9 15:39:53 2015 -0700
dma-mapping: consolidate dma_set_mask
Almost everyone implements dma_set_mask the same way, although some time
that's hidden in ->set_dma_mask methods.
This patch consolidates those into a common implementation that either
calls ->set_dma_mask if present or otherwise uses the default
implementation. Some architectures used to only call ->set_dma_mask
after the initial checks, and those instance have been fixed to do the
full work. h8300 implemented dma_set_mask bogusly as a no-ops and has
been fixed.
Unfortunately some architectures overload unrelated semantics like
changing
the dma_ops into it so we still need to allow for an architecture override
for now.
[jcmvbkbc@xxxxxxxxx: fix xtensa]
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>
Cc: Michal Simek <monstr@xxxxxxxxx>
Cc: Jonas Bonn <jonas@xxxxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Guan Xuetao <gxt@xxxxxxxxxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ee196371d5cb1942ebdccc16bdce389812aa265e
Author: Christoph Hellwig <hch@xxxxxx>
Date: Wed Sep 9 15:39:49 2015 -0700
dma-mapping: consolidate dma_supported
Most architectures just call into ->dma_supported, but some also return 1
if the method is not present, or 0 if no dma ops are present (although
that should never happeb). Consolidate this more broad version into
common code.
Also fix h8300 which inorrectly always returned 0, which would have been
a problem if it's dma_set_mask implementation wasn't a similarly buggy
noop.
As a few architectures have much more elaborate implementations, we
still allow for arch overrides.
[jcmvbkbc@xxxxxxxxx: fix xtensa]
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>
Cc: Michal Simek <monstr@xxxxxxxxx>
Cc: Jonas Bonn <jonas@xxxxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Guan Xuetao <gxt@xxxxxxxxxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit efa21e432c7b3c8ae976039d614a017799b6e874
Author: Christoph Hellwig <hch@xxxxxx>
Date: Wed Sep 9 15:39:46 2015 -0700
dma-mapping: cosolidate dma_mapping_error
Currently there are three valid implementations of dma_mapping_error:
(1) call ->mapping_error
(2) check for a hardcoded error code
(3) always return 0
This patch provides a common implementation that calls ->mapping_error
if present, then checks for DMA_ERROR_CODE if defined or otherwise
returns 0.
[jcmvbkbc@xxxxxxxxx: fix xtensa]
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>
Cc: Michal Simek <monstr@xxxxxxxxx>
Cc: Jonas Bonn <jonas@xxxxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Guan Xuetao <gxt@xxxxxxxxxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1e8937526e2309d48fccd81bb30a590ac21a5516
Author: Christoph Hellwig <hch@xxxxxx>
Date: Wed Sep 9 15:39:42 2015 -0700
dma-mapping: consolidate dma_{alloc,free}_noncoherent
Most architectures do not support non-coherent allocations and either
define dma_{alloc,free}_noncoherent to their coherent versions or stub
them out.
Openrisc uses dma_{alloc,free}_attrs to implement them, and only Mips
implements them directly.
This patch moves the Openrisc version to common code, and handles the
DMA_ATTR_NON_CONSISTENT case in the mips dma_map_ops instance.
Note that actual non-coherent allocations require a dma_cache_sync
implementation, so if non-coherent allocations didn't work on
an architecture before this patch they still won't work after it.
[jcmvbkbc@xxxxxxxxx: fix xtensa]
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>
Cc: Michal Simek <monstr@xxxxxxxxx>
Cc: Jonas Bonn <jonas@xxxxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Guan Xuetao <gxt@xxxxxxxxxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 6894258eda2f9badc28c878086c0e54bd5b7fb30
Author: Christoph Hellwig <hch@xxxxxx>
Date: Wed Sep 9 15:39:39 2015 -0700
dma-mapping: consolidate dma_{alloc,free}_{attrs,coherent}
Since 2009 we have a nice asm-generic header implementing lots of DMA API
functions for architectures using struct dma_map_ops, but unfortunately
it's still missing a lot of APIs that all architectures still have to
duplicate.
This series consolidates the remaining functions, although we still need
arch opt outs for two of them as a few architectures have very
non-standard implementations.
This patch (of 5):
The coherent DMA allocator works the same over all architectures
supporting
dma_map operations.
This patch consolidates them and converges the minor differences:
- the debug_dma helpers are now called from all architectures, including
those that were previously missing them
- dma_alloc_from_coherent and dma_release_from_coherent are now always
called from the generic alloc/free routines instead of the ops
dma-mapping-common.h always includes dma-coherent.h to get the
defintions
for them, or the stubs if the architecture doesn't support this feature
- checks for ->alloc / ->free presence are removed. There is only one
magic instead of dma_map_ops without them (mic_dma_ops) and that one
is x86 only anyway.
Besides that only x86 needs special treatment to replace a default devices
if none is passed and tweak the gfp_flags. An optional arch hook is
provided
for that.
[linux@xxxxxxxxxxxx: fix build]
[jcmvbkbc@xxxxxxxxx: fix xtensa]
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>
Cc: Michal Simek <monstr@xxxxxxxxx>
Cc: Jonas Bonn <jonas@xxxxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Guan Xuetao <gxt@xxxxxxxxxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit fb6dd5fa4165c4b82f1a11416c2fc192ae3a84e2
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 15:39:35 2015 -0700
mm: use vma_is_anonymous() in create_huge_pmd() and wp_huge_pmd()
Let's use helper rather than direct check of vma->vm_ops to distinguish
anonymous VMA.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 6dc296e7df4c9a0857491cc3f55da16a9eeeeae7
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 15:39:32 2015 -0700
mm: make sure all file VMAs have ->vm_ops set
We rely on vma->vm_ops == NULL to detect anonymous VMA: see
vma_is_anonymous(), but some drivers doesn't set ->vm_ops.
As a result we can end up with anonymous page in private file mapping.
That should not lead to serious misbehaviour, but nevertheless is wrong.
Let's fix by setting up dummy ->vm_ops for file mmapping if f_op->mmap()
didn't set its own.
The patch also adds sanity check into __vma_link_rb(). It will help
catch broken VMAs which inserted directly into mm_struct via
insert_vm_struct().
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1fcfd8db7f82fa1f533a6f0e4155614ff4144d56
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Wed Sep 9 15:39:29 2015 -0700
mm, mpx: add "vm_flags_t vm_flags" arg to do_mmap_pgoff()
Add the additional "vm_flags_t vm_flags" argument to do_mmap_pgoff(),
rename it to do_mmap(), and re-introduce do_mmap_pgoff() as a simple
wrapper on top of do_mmap(). Perhaps we should update the callers of
do_mmap_pgoff() and kill it later.
This way mpx_mmap() can simply call do_mmap(vm_flags => VM_MPX) and do not
play with vm internals.
After this change mmap_region() has a single user outside of mmap.c,
arch/tile/mm/elf.c:arch_setup_additional_pages(). It would be nice to
change arch/tile/ and unexport mmap_region().
[kirill@xxxxxxxxxxxxx: fix build]
[akpm@xxxxxxxxxxxxxxxxxxxx: coding-style fixes]
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Acked-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Tested-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7cbea8dc0127a95226c7722a738ac6534950ef67
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 15:39:26 2015 -0700
mm: mark most vm_operations_struct const
With two exceptions (drm/qxl and drm/radeon) all vm_operations_struct
structs should be constant.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 2a78b857d3755a6f8d0c70d7e365e473925987c1
Author: Masanari Iida <standby24x7@xxxxxxxxx>
Date: Wed Sep 9 15:39:23 2015 -0700
namei: fix warning while make xmldocs caused by namei.c
Fix the following warnings:
Warning(.//fs/namei.c:2422): No description found for parameter 'nd'
Warning(.//fs/namei.c:2422): Excess function parameter 'nameidata'
description in 'path_mountpoint'
Signed-off-by: Masanari Iida <standby24x7@xxxxxxxxx>
Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d0edd8528362c07216498340e928159510595e7b
Author: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Date: Wed Sep 9 15:39:20 2015 -0700
ipc: convert invalid scenarios to use WARN_ON
Considering Linus' past rants about the (ab)use of BUG in the kernel, I
took a look at how we deal with such calls in ipc. Given that any errors
or corruption in ipc code are most likely contained within the set of
processes participating in the broken mechanisms, there aren't really many
strong fatal system failure scenarios that would require a BUG call.
Also, if something is seriously wrong, ipc might not be the place for such
a BUG either.
1. For example, recently, a customer hit one of these BUG_ONs in shm
after failing shm_lock(). A busted ID imho does not merit a BUG_ON,
and WARN would have been better.
2. MSG_COPY functionality of posix msgrcv(2) for checkpoint/restore.
I don't see how we can hit this anyway -- at least it should be IS_ERR.
The 'copy' arg from do_msgrcv is always set by calling prepare_copy()
first and foremost. We could also probably drop this check altogether.
Either way, it does not merit a BUG_ON.
3. No ->fault() callback for the fs getting the corresponding page --
seems selfish to make the system unusable.
Signed-off-by: Davidlohr Bueso <dbueso@xxxxxxx>
Cc: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 8b235f2f16a472b8cfc10e8ef1286fcd3331e033
Author: yalin wang <yalin.wang2010@xxxxxxxxx>
Date: Wed Sep 9 15:39:18 2015 -0700
zlib_deflate/deftree: remove bi_reverse()
Remove bi_reverse() and use generic bitrev32() instead - it should have
better performance on some platforms.
Signed-off-by: yalin wang <yalin.wang2010@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e4e29dc4841d21943bec1bc5378ab421d2320d83
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Wed Sep 9 15:39:15 2015 -0700
lib/decompress_unlzma: Do a NULL check for pointer
Compare pointer-typed values to NULL rather than 0.
The semantic patch that makes this change is available
in scripts/coccinelle/null/badzero.cocci.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 2d3862d26e67a59340ba1cf1748196c76c5787de
Author: Yinghai Lu <yinghai@xxxxxxxxxx>
Date: Wed Sep 9 15:39:12 2015 -0700
lib/decompressors: use real out buf size for gunzip with kernel
When loading x86 64bit kernel above 4GiB with patched grub2, got kernel
gunzip error.
| early console in decompress_kernel
| decompress_kernel:
| input: [0x807f2143b4-0x807ff61aee]
| output: [0x807cc00000-0x807f3ea29b] 0x027ea29c: output_len
| boot via startup_64
| KASLR using RDTSC...
| new output: [0x46fe000000-0x470138cfff] 0x0338d000: output_run_size
| decompress: [0x46fe000000-0x47007ea29b] <===
[0x807f2143b4-0x807ff61aee]
|
| Decompressing Linux... gz...
|
| uncompression error
|
| -- System halted
the new buffer is at 0x46fe000000ULL, decompressor_gzip is using
0xffffffb901ffffff as out_len. gunzip in lib/zlib_inflate/inflate.c cap
that len to 0x01ffffff and decompress fails later.
We could hit this problem with crashkernel booting that uses kexec loading
kernel above 4GiB.
We have decompress_* support:
1. inbuf[]/outbuf[] for kernel preboot.
2. inbuf[]/flush() for initramfs
3. fill()/flush() for initrd.
This bug only affect kernel preboot path that use outbuf[].
Add __decompress and take real out_buf_len for gunzip instead of guessing
wrong buf size.
Fixes: 1431574a1c4 (lib/decompressors: fix "no limit" output buffer
length)
Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx>
Cc: Alexandre Courbot <acourbot@xxxxxxxxxx>
Cc: Jon Medhurst <tixy@xxxxxxxxxx>
Cc: Stephen Warren <swarren@xxxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e852d82a5b55b44ce8be89078d0dfbddbeae3211
Author: Pranay Kr. Srivastava <pranjas@xxxxxxxxx>
Date: Wed Sep 9 15:39:09 2015 -0700
fs/affs: make root lookup from blkdev logical size
This patch resolves https://bugzilla.kernel.org/show_bug.cgi?id=16531.
When logical blkdev size > 512 then sector numbers become larger than the
device can support.
Make affs start lookup based on the device's logical sector size instead
of 512.
Reported-by: Mark <markk@xxxxxxxxxxx>
Suggested-by: Mark <markk@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 9a5bc726d559221a3394bb8ef97d0abc1ee94d00
Author: Ilya Dryomov <idryomov@xxxxxxxxx>
Date: Wed Sep 9 15:39:06 2015 -0700
sysctl: fix int -> unsigned long assignments in INT_MIN case
The following
if (val < 0)
*lvalp = (unsigned long)-val;
is incorrect because the compiler is free to assume -val to be positive
and use a sign-extend instruction for extending the bit pattern. This is
a problem if val == INT_MIN:
# echo -2147483648 >/proc/sys/dev/scsi/logging_level
# cat /proc/sys/dev/scsi/logging_level
-18446744071562067968
Cast to unsigned long before negation - that way we first sign-extend and
then negate an unsigned, which is well defined. With this:
# cat /proc/sys/dev/scsi/logging_level
-2147483648
Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>
Cc: Mikulas Patocka <mikulas@xxxxxxxxxxxxx>
Cc: Robert Xiao <nneonneo@xxxxxxxxx>
Cc: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
Cc: Kees Cook <keescook@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1303a27c9c32020a3b6ac89be270d2ab1f28be24
Author: Baoquan He <bhe@xxxxxxxxxx>
Date: Wed Sep 9 15:39:03 2015 -0700
kexec: export KERNEL_IMAGE_SIZE to vmcoreinfo
In x86_64, since v2.6.26 the KERNEL_IMAGE_SIZE is changed to 512M, and
accordingly the MODULES_VADDR is changed to 0xffffffffa0000000. However,
in v3.12 Kees Cook introduced kaslr to randomise the location of kernel.
And the kernel text mapping addr space is enlarged from 512M to 1G. That
means now KERNEL_IMAGE_SIZE is variable, its value is 512M when kaslr
support is not compiled in and 1G when kaslr support is compiled in.
Accordingly the MODULES_VADDR is changed too to be:
#define MODULES_VADDR (__START_KERNEL_map + KERNEL_IMAGE_SIZE)
So when kaslr is compiled in and enabled, the kernel text mapping addr
space and modules vaddr space need be adjusted. Otherwise makedumpfile
will collapse since the addr for some symbols is not correct.
Hence KERNEL_IMAGE_SIZE need be exported to vmcoreinfo and got in
makedumpfile to help calculate MODULES_VADDR.
Signed-off-by: Baoquan He <bhe@xxxxxxxxxx>
Acked-by: Kees Cook <keescook@xxxxxxxxxxxx>
Acked-by: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit bbb78b8f3f4ea8eca14937b693bfe244838e1d4d
Author: Baoquan He <bhe@xxxxxxxxxx>
Date: Wed Sep 9 15:39:00 2015 -0700
kexec: align crash_notes allocation to make it be inside one physical page
People reported that crash_notes in /proc/vmcore were corrupted and this
cause crash kdump failure. With code debugging and log we got the root
cause. This is because percpu variable crash_notes are allocated in 2
vmalloc pages. Currently percpu is based on vmalloc by default. Vmalloc
can't guarantee 2 continuous vmalloc pages are also on 2 continuous
physical pages. So when 1st kernel exports the starting address and size
of crash_notes through sysfs like below:
/sys/devices/system/cpu/cpux/crash_notes
/sys/devices/system/cpu/cpux/crash_notes_size
kdump kernel use them to get the content of crash_notes. However the 2nd
part may not be in the next neighbouring physical page as we expected if
crash_notes are allocated accross 2 vmalloc pages. That's why
nhdr_ptr->n_namesz or nhdr_ptr->n_descsz could be very huge in
update_note_header_size_elf64() and cause note header merging failure or
some warnings.
In this patch change to call __alloc_percpu() to passed in the align value
by rounding crash_notes_size up to the nearest power of two. This makes
sure the crash_notes is allocated inside one physical page since
sizeof(note_buf_t) in all ARCHS is smaller than PAGE_SIZE. Meanwhile add
a BUILD_BUG_ON to break compile if size is bigger than PAGE_SIZE since
crash_notes definitely will be in 2 pages. That need be avoided, and need
be reported if it's unavoidable.
[akpm@xxxxxxxxxxxxxxxxxxxx: use correct comment layout]
Signed-off-by: Baoquan He <bhe@xxxxxxxxxx>
Cc: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Dave Young <dyoung@xxxxxxxxxx>
Cc: Lisa Mitchell <lisa.mitchell@xxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 04e9949b2d26ae1f0acd1181876a2a8ece92112d
Author: Minfei Huang <mnfhuang@xxxxxxxxx>
Date: Wed Sep 9 15:38:58 2015 -0700
kexec: remove unnecessary test in kimage_alloc_crash_control_pages()
Transforming PFN(Page Frame Number) to struct page is never failure, so we
can simplify the code logic to do the image->control_page assignment
directly in the loop, and remove the unnecessary conditional judgement.
Signed-off-by: Minfei Huang <mnfhuang@xxxxxxxxx>
Acked-by: Dave Young <dyoung@xxxxxxxxxx>
Acked-by: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Simon Horman <horms@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 2965faa5e03d1e71e9ff9aa143fff39e0a77543a
Author: Dave Young <dyoung@xxxxxxxxxx>
Date: Wed Sep 9 15:38:55 2015 -0700
kexec: split kexec_load syscall from kexec core code
There are two kexec load syscalls, kexec_load another and kexec_file_load.
kexec_file_load has been splited as kernel/kexec_file.c. In this patch I
split kexec_load syscall code to kernel/kexec.c.
And add a new kconfig option KEXEC_CORE, so we can disable kexec_load and
use kexec_file_load only, or vice verse.
The original requirement is from Ted Ts'o, he want kexec kernel signature
being checked with CONFIG_KEXEC_VERIFY_SIG enabled. But kexec-tools use
kexec_load syscall can bypass the checking.
Vivek Goyal proposed to create a common kconfig option so user can compile
in only one syscall for loading kexec kernel. KEXEC/KEXEC_FILE selects
KEXEC_CORE so that old config files still work.
Because there's general code need CONFIG_KEXEC_CORE, so I updated all the
architecture Kconfig with a new option KEXEC_CORE, and let KEXEC selects
KEXEC_CORE in arch Kconfig. Also updated general kernel code with to
kexec_load syscall.
[akpm@xxxxxxxxxxxxxxxxxxxx: coding-style fixes]
Signed-off-by: Dave Young <dyoung@xxxxxxxxxx>
Cc: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Petr Tesarik <ptesarik@xxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx>
Cc: David Howells <dhowells@xxxxxxxxxx>
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit a43cac0d9dc2073ff2245a171429ddbe1accece7
Author: Dave Young <dyoung@xxxxxxxxxx>
Date: Wed Sep 9 15:38:51 2015 -0700
kexec: split kexec_file syscall code to kexec_file.c
Split kexec_file syscall related code to another file kernel/kexec_file.c
so that the #ifdef CONFIG_KEXEC_FILE in kexec.c can be dropped.
Sharing variables and functions are moved to kernel/kexec_internal.h per
suggestion from Vivek and Petr.
[akpm@xxxxxxxxxxxxxxxxxxxx: fix bisectability]
[akpm@xxxxxxxxxxxxxxxxxxxx: declare the various arch_kexec functions]
[akpm@xxxxxxxxxxxxxxxxxxxx: fix build]
Signed-off-by: Dave Young <dyoung@xxxxxxxxxx>
Cc: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Petr Tesarik <ptesarik@xxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx>
Cc: David Howells <dhowells@xxxxxxxxxx>
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit a202fbbf56e819de83876827c4bf5da2bfbac5ec
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 15:38:48 2015 -0700
drivers/net/wireless/ath/wil6210: use seq_hex_dump() to dump buffers
Instead of custom approach let's use recently introduced seq_hex_dump()
helper.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Cc: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Cc: Helge Deller <deller@xxxxxx>
Cc: Ingo Tuchscherer <ingo.tuchscherer@xxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Vladimir Kondratiev <qca_vkondrat@xxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 6fc37c4900765d579f25fbd293fcda7be5037896
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 15:38:45 2015 -0700
kmemleak: use seq_hex_dump() to dump buffers
Instead of custom approach let's use recently introduced seq_hex_dump()
helper.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Cc: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Cc: Helge Deller <deller@xxxxxx>
Cc: Ingo Tuchscherer <ingo.tuchscherer@xxxxxxxxxx>
Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Vladimir Kondratiev <qca_vkondrat@xxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 5d2fe875c9e822aa55579ea2032153e2891db57a
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 15:38:42 2015 -0700
drivers/s390/crypto/zcrypt_api.c: use seq_hex_dump() to dump buffers
Instead of custom approach let's use recently introduced seq_hex_dump()
helper.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Acked-by: Ingo Tuchscherer <ingo.tuchscherer@xxxxxxxxxx>
Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Cc: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Cc: Helge Deller <deller@xxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Vladimir Kondratiev <qca_vkondrat@xxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b342a65dd71c02f606dfea51e99773c333a2439d
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 15:38:39 2015 -0700
parisc: use seq_hex_dump() to dump buffers
Instead of custom approach let's use recently introduced seq_hex_dump()
helper.
In one case it changes the output from
1111111122222222333333334444444455555555666666667777777788888888
to
11111111 22222222 33333333 44444444 55555555 66666666 77777777 88888888
though it seems it prints same data (by meaning) in both cases. I decide
to choose to use the space divided one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Acked-by: Helge Deller <deller@xxxxxx>
Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Cc: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Cc: Ingo Tuchscherer <ingo.tuchscherer@xxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Vladimir Kondratiev <qca_vkondrat@xxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d0cce062217fedb448cf7f36e0b82a80ac9e1243
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 15:38:36 2015 -0700
drivers/crypto/qat: use seq_hex_dump() to dump buffers
Instead of custom approach let's use recently introduced seq_hex_dump()
helper.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Acked-by: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Cc: Helge Deller <deller@xxxxxx>
Cc: Ingo Tuchscherer <ingo.tuchscherer@xxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Vladimir Kondratiev <qca_vkondrat@xxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 37607102c4426cf92aeb5da1b1d9a79ba6d95e3f
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 15:38:33 2015 -0700
seq_file: provide an analogue of print_hex_dump()
This introduces a new helper and switches current users to use it. All
patches are compiled tested. kmemleak is tested via its own test suite.
This patch (of 6):
The new seq_hex_dump() is a complete analogue of print_hex_dump().
We have few users of this functionality already. It allows to reduce their
codebase.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Cc: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Cc: Helge Deller <deller@xxxxxx>
Cc: Ingo Tuchscherer <ingo.tuchscherer@xxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Vladimir Kondratiev <qca_vkondrat@xxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 40f705a736eac10e7dca7ab5dd5ed675a6df031d
Author: Jann Horn <jann@xxxxxxxxx>
Date: Wed Sep 9 15:38:30 2015 -0700
fs: Don't dump core if the corefile would become world-readable.
On a filesystem like vfat, all files are created with the same owner
and mode independent of who created the file. When a vfat filesystem
is mounted with root as owner of all files and read access for everyone,
root's processes left world-readable coredumps on it (but other
users' processes only left empty corefiles when given write access
because of the uid mismatch).
Given that the old behavior was inconsistent and insecure, I don't see
a problem with changing it. Now, all processes refuse to dump core unless
the resulting corefile will only be readable by their owner.
Signed-off-by: Jann Horn <jann@xxxxxxxxx>
Acked-by: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit fbb1816942c04429e85dbf4c1a080accc534299e
Author: Jann Horn <jann@xxxxxxxxx>
Date: Wed Sep 9 15:38:28 2015 -0700
fs: if a coredump already exists, unlink and recreate with O_EXCL
It was possible for an attacking user to trick root (or another user) into
writing his coredumps into an attacker-readable, pre-existing file using
rename() or link(), causing the disclosure of secret data from the victim
process' virtual memory. Depending on the configuration, it was also
possible to trick root into overwriting system files with coredumps. Fix
that issue by never writing coredumps into existing files.
Requirements for the attack:
- The attack only applies if the victim's process has a nonzero
RLIMIT_CORE and is dumpable.
- The attacker can trick the victim into coredumping into an
attacker-writable directory D, either because the core_pattern is
relative and the victim's cwd is attacker-writable or because an
absolute core_pattern pointing to a world-writable directory is used.
- The attacker has one of these:
A: on a system with protected_hardlinks=0:
execute access to a folder containing a victim-owned,
attacker-readable file on the same partition as D, and the
victim-owned file will be deleted before the main part of the attack
takes place. (In practice, there are lots of files that fulfill
this condition, e.g. entries in Debian's /var/lib/dpkg/info/.)
This does not apply to most Linux systems because most distros set
protected_hardlinks=1.
B: on a system with protected_hardlinks=1:
execute access to a folder containing a victim-owned,
attacker-readable and attacker-writable file on the same partition
as D, and the victim-owned file will be deleted before the main part
of the attack takes place.
(This seems to be uncommon.)
C: on any system, independent of protected_hardlinks:
write access to a non-sticky folder containing a victim-owned,
attacker-readable file on the same partition as D
(This seems to be uncommon.)
The basic idea is that the attacker moves the victim-owned file to where
he expects the victim process to dump its core. The victim process dumps
its core into the existing file, and the attacker reads the coredump from
it.
If the attacker can't move the file because he does not have write access
to the containing directory, he can instead link the file to a directory
he controls, then wait for the original link to the file to be deleted
(because the kernel checks that the link count of the corefile is 1).
A less reliable variant that requires D to be non-sticky works with link()
and does not require deletion of the original link: link() the file into
D, but then unlink() it directly before the kernel performs the link count
check.
On systems with protected_hardlinks=0, this variant allows an attacker to
not only gain information from coredumps, but also clobber existing,
victim-writable files with coredumps. (This could theoretically lead to a
privilege escalation.)
Signed-off-by: Jann Horn <jann@xxxxxxxxx>
Cc: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit bb304a5c6fc63d8506cd9741a3a5f35b73605625
Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Date: Wed Sep 9 15:38:25 2015 -0700
kmod: handle UMH_WAIT_PROC from system unbound workqueue
The UMH_WAIT_PROC handler runs in its own thread in order to make sure
that waiting for the exec kernel thread completion won't block other
usermodehelper queued jobs.
On older workqueue implementations, worklets couldn't sleep without
blocking the rest of the queue. But now the workqueue subsystem handles
that. Khelper still had the older limitation due to its singlethread
properties but we replaced it to system unbound workqueues.
Those are affine to the current node and can block up to some number of
instances.
They are a good candidate to handle UMH_WAIT_PROC assuming that we have
enough system unbound workers to handle lots of parallel usermodehelper
jobs.
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 90f023030e26ce8f981b3e688cb79329d8d07cc3
Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Date: Wed Sep 9 15:38:22 2015 -0700
kmod: use system_unbound_wq instead of khelper
We need to launch the usermodehelper kernel threads with the widest
affinity and this is partly why we use khelper. This workqueue has
unbound properties and thus a wide affinity inherited by all its children.
Now khelper also has special properties that we aren't much interested in:
ordered and singlethread. There is really no need about ordering as all
we do is creating kernel threads. This can be done concurrently. And
singlethread is a useless limitation as well.
The workqueue engine already proposes generic unbound workqueues that
don't share these useless properties and handle well parallel jobs.
The only worrysome specific is their affinity to the node of the current
CPU. It's fine for creating the usermodehelper kernel threads but those
inherit this affinity for longer jobs such as requesting modules.
This patch proposes to use these node affine unbound workqueues assuming
that a node is sufficient to handle several parallel usermodehelper
requests.
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b639e86bae431db3fbc9fae8d09a9bbf97b74711
Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Date: Wed Sep 9 15:38:19 2015 -0700
kmod: add up-to-date explanations on the purpose of each asynchronous
levels
There seem to be quite some confusions on the comments, likely due to
changes that came after them.
Now since it's very non obvious why we have 3 levels of asynchronous code
to implement usermodehelpers, it's important to comment in detail the
reason of this layout.
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d097c0240ae8085dd39aa6ca9bd9960969b2b38e
Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Date: Wed Sep 9 15:38:16 2015 -0700
kmod: remove unecessary explicit wide CPU affinity setting
Khelper is affine to all CPUs. Now since it creates the
call_usermodehelper_exec_[a]sync() kernel threads, those inherit the wide
affinity.
As such explicitly forcing a wide affinity from those kernel threads
is like a no-op.
Just remove it. It's needless and it breaks CPU isolation users who
rely on workqueue affinity tuning.
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b6b50a814d0ece9c1f98f2b3b5c2a251a5c9a211
Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Date: Wed Sep 9 15:38:13 2015 -0700
kmod: bunch of internal functions renames
This patchset does a bunch of cleanups and converts khelper to use system
unbound workqueues. The 3 first patches should be uncontroversial. The
last 2 patches are debatable.
Kmod creates kernel threads that perform userspace jobs and we want those
to have a large affinity in order not to contend busy CPUs. This is
(partly) why we use khelper which has a wide affinity that the kernel
threads it create can inherit from. Now khelper is a dedicated workqueue
that has singlethread properties which we aren't interested in.
Hence those two debatable changes:
_ We would like to use generic workqueues. System unbound workqueues are
a very good candidate but they are not wide affine, only node affine.
Now probably a node is enough to perform many parallel kmod jobs.
_ We would like to remove the wait_for_helper kernel thread (UMH_WAIT_PROC
handler) to use the workqueue. It means that if the workqueue blocks,
and no other worker can take pending kmod request, we can be screwed.
Now if we have 512 threads, this should be enough.
This patch (of 5):
Underscores on function names aren't much verbose to explain the purpose
of a function. And kmod has interesting such flavours.
Lets rename the following functions:
* __call_usermodehelper -> call_usermodehelper_exec_work
* ____call_usermodehelper -> call_usermodehelper_exec_async
* wait_for_helper -> call_usermodehelper_exec_sync
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 60b61a6f42f36e4fbfbc0139b7e86ce1494d2d9b
Author: NeilBrown <neilb@xxxxxxxx>
Date: Wed Sep 9 15:38:10 2015 -0700
kmod: correct documentation of return status of request_module
If request_module() successfully runs modprobe, but modprobe exits with a
non-zero status, then the return value from request_module() will be that
(positive) error status. So the return from request_module can be:
negative errno
zero for success
positive exit code.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
Cc: Goldwyn Rodrigues <rgoldwyn@xxxxxxx>
Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b4cc0efea4f0bfa2477c56af406cfcf3d3e58680
Author: Hin-Tak Leung <htl10@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 15:38:07 2015 -0700
hfs: fix B-tree corruption after insertion at position 0
Fix B-tree corruption when a new record is inserted at position 0 in the
node in hfs_brec_insert().
This is an identical change to the corresponding hfs b-tree code to Sergei
Antonov's "hfsplus: fix B-tree corruption after insertion at position 0",
to keep similar code paths in the hfs and hfsplus drivers in sync, where
appropriate.
Signed-off-by: Hin-Tak Leung <htl10@xxxxxxxxxxxxxxxxxxxxx>
Cc: Sergei Antonov <saproj@xxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Reviewed-by: Vyacheslav Dubeyko <slava@xxxxxxxxxxx>
Cc: Anton Altaparmakov <anton@xxxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7cb74be6fd827e314f81df3c5889b87e4c87c569
Author: Hin-Tak Leung <htl10@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 15:38:04 2015 -0700
hfs,hfsplus: cache pages correctly between bnode_create and bnode_free
Pages looked up by __hfs_bnode_create() (called by hfs_bnode_create() and
hfs_bnode_find() for finding or creating pages corresponding to an inode)
are immediately kmap()'ed and used (both read and write) and kunmap()'ed,
and should not be page_cache_release()'ed until hfs_bnode_free().
This patch fixes a problem I first saw in July 2012: merely running "du"
on a large hfsplus-mounted directory a few times on a reasonably loaded
system would get the hfsplus driver all confused and complaining about
B-tree inconsistencies, and generates a "BUG: Bad page state". Most
recently, I can generate this problem on up-to-date Fedora 22 with shipped
kernel 4.0.5, by running "du /" (="/" + "/home" + "/mnt" + other smaller
mounts) and "du /mnt" simultaneously on two windows, where /mnt is a
lightly-used QEMU VM image of the full Mac OS X 10.9:
$ df -i / /home /mnt
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/fedora-root 3276800 551665 2725135 17% /
/dev/mapper/fedora-home 52879360 716221 52163139 2% /home
/dev/nbd0p2 4294967295 1387818 4293579477 1% /mnt
After applying the patch, I was able to run "du /" (60+ times) and "du
/mnt" (150+ times) continuously and simultaneously for 6+ hours.
There are many reports of the hfsplus driver getting confused under load
and generating "BUG: Bad page state" or other similar issues over the
years. [1]
The unpatched code [2] has always been wrong since it entered the kernel
tree. The only reason why it gets away with it is that the
kmap/memcpy/kunmap follow very quickly after the page_cache_release() so
the kernel has not had a chance to reuse the memory for something else,
most of the time.
The current RW driver appears to have followed the design and development
of the earlier read-only hfsplus driver [3], where-by version 0.1 (Dec
2001) had a B-tree node-centric approach to
read_cache_page()/page_cache_release() per bnode_get()/bnode_put(),
migrating towards version 0.2 (June 2002) of caching and releasing pages
per inode extents. When the current RW code first entered the kernel [2]
in 2005, there was an REF_PAGES conditional (and "//" commented out code)
to switch between B-node centric paging to inode-centric paging. There
was a mistake with the direction of one of the REF_PAGES conditionals in
__hfs_bnode_create(). In a subsequent "remove debug code" commit [4], the
read_cache_page()/page_cache_release() per bnode_get()/bnode_put() were
removed, but a page_cache_release() was mistakenly left in (propagating
the "REF_PAGES <-> !REF_PAGE" mistake), and the commented-out
page_cache_release() in bnode_release() (which should be spanned by
!REF_PAGES) was never enabled.
References:
[1]:
Michael Fox, Apr 2013
http://www.spinics.net/lists/linux-fsdevel/msg63807.html
("hfsplus volume suddenly inaccessable after 'hfs: recoff %d too large'")
Sasha Levin, Feb 2015
http://lkml.org/lkml/2015/2/20/85 ("use after free")
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/740814
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1027887
https://bugzilla.kernel.org/show_bug.cgi?id=42342
https://bugzilla.kernel.org/show_bug.cgi?id=63841
https://bugzilla.kernel.org/show_bug.cgi?id=78761
[2]:
http://git.kernel.org/cgit/linux/kernel/git/tglx/history.git/commit/\
fs/hfs/bnode.c?id=d1081202f1d0ee35ab0beb490da4b65d4bc763db
commit d1081202f1d0ee35ab0beb490da4b65d4bc763db
Author: Andrew Morton <akpm@xxxxxxxx>
Date: Wed Feb 25 16:17:36 2004 -0800
[PATCH] HFS rewrite
http://git.kernel.org/cgit/linux/kernel/git/tglx/history.git/commit/\
fs/hfsplus/bnode.c?id=91556682e0bf004d98a529bf829d339abb98bbbd
commit 91556682e0bf004d98a529bf829d339abb98bbbd
Author: Andrew Morton <akpm@xxxxxxxx>
Date: Wed Feb 25 16:17:48 2004 -0800
[PATCH] HFS+ support
[3]:
http://sourceforge.net/projects/linux-hfsplus/
http://sourceforge.net/projects/linux-hfsplus/files/Linux%202.4.x%20patch/hfsplus%200.1/
http://sourceforge.net/projects/linux-hfsplus/files/Linux%202.4.x%20patch/hfsplus%200.2/
http://linux-hfsplus.cvs.sourceforge.net/viewvc/linux-hfsplus/linux/\
fs/hfsplus/bnode.c?r1=1.4&r2=1.5
Date: Thu Jun 6 09:45:14 2002 +0000
Use buffer cache instead of page cache in bnode.c. Cache inode extents.
[4]:
http://git.kernel.org/cgit/linux/kernel/git/\
stable/linux-stable.git/commit/?id=a5e3985fa014029eb6795664c704953720cc7f7d
commit a5e3985fa014029eb6795664c704953720cc7f7d
Author: Roman Zippel <zippel@xxxxxxxxxxxxxx>
Date: Tue Sep 6 15:18:47 2005 -0700
[PATCH] hfs: remove debug code
Signed-off-by: Hin-Tak Leung <htl10@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Sergei Antonov <saproj@xxxxxxxxx>
Reviewed-by: Anton Altaparmakov <anton@xxxxxxxxxx>
Reported-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Vyacheslav Dubeyko <slava@xxxxxxxxxxx>
Cc: Sougata Santra <sougata@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3725e9dd5bef376ab87d41e40c437a6b2a20eb59
Author: Jan Harkes <jaharkes@xxxxxxxxxx>
Date: Wed Sep 9 15:38:01 2015 -0700
fs/coda: fix readlink buffer overflow
Dan Carpenter discovered a buffer overflow in the Coda file system
readlink code. A userspace file system daemon can return a 4096 byte
result which then triggers a one byte write past the allocated readlink
result buffer.
This does not trigger with an unmodified Coda implementation because Coda
has a 1024 byte limit for symbolic links, however other userspace file
systems using the Coda kernel module could be affected.
Although this is an obvious overflow, I don't think this has to be handled
as too sensitive from a security perspective because the overflow is on
the Coda userspace daemon side which already needs root to open Coda's
kernel device and to mount the file system before we get to the point that
links can be read.
[akpm@xxxxxxxxxxxxxxxxxxxx: coding-style fixes]
Signed-off-by: Jan Harkes <jaharkes@xxxxxxxxxx>
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c5595fa2f1ce3c1a74dbd2ddc949257e80d81dc0
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:37:58 2015 -0700
checkpatch: add constant comparison on left side test
"CONST <comparison> variable" checks like:
if (NULL != foo)
and
while (0 < bar(...))
where a constant (or what appears to be a constant like an upper case
identifier) is on the left of a comparison are generally preferred to be
written using the constant on the right side like:
if (foo != NULL)
and
while (bar(...) > 0)
Add a test for this.
Add a --fix option too, but only do it when the code is immediately
surrounded by parentheses to avoid misfixing things like "(0 < bar() +
constant)"
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Cc: Nicolas Morey Chaisemartin <nmorey@xxxxxxxxx>
Cc: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 54507b5183cc4f8e4f1a58a312e1f30c130658b7
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:37:55 2015 -0700
checkpatch: add __pmem to $Sparse annotations
commit 61031952f4c8 ("arch, x86: pmem api for ensuring durability of
persistent memory updates") added a new __pmem annotation for sparse
verification. Add __pmem to the $Sparse variable so checkpatch can
appropriately ignore uses of this attribute too.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Reviewed-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Acked-by: Andy Whitcroft <apw@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 4e5d56bdf892e18832a6540b63ebf709966bce2a
Author: Eddie Kovsky <ewk@xxxxxxxxxxxx>
Date: Wed Sep 9 15:37:52 2015 -0700
checkpatch: fix left brace warning
Using checkpatch.pl with Perl 5.22.0 generates the following warning:
Unescaped left brace in regex is deprecated, passed through in regex;
This patch fixes the warnings by escaping occurrences of the left brace
inside the regular expression.
Signed-off-by: Eddie Kovsky <ewk@xxxxxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit bf4daf12a9fbc818029051c97b65fbfca6366a44
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:37:50 2015 -0700
checkpatch: avoid some commit message long line warnings
Fixes: and Link: lines may exceed 75 chars in the commit log.
So too can stack dump and dmesg lines and lines that seem
like filenames.
And Fixes: lines don't need to have a "commit" prefix before the
commit id.
Add exceptions for these types of lines.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Reported-by: Paul Bolle <pebolle@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 6e30075742316a1d72b7e8f794f6e0bd44d774e2
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:37:47 2015 -0700
checkpatch: emit an error on formats with 0x%<decimal>
Using 0x%d is wrong. Emit a message when it happens.
Miscellanea:
Improve the %Lu warning to match formats like %16Lu.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7bd7e483c27d884c2f59e286e42623abba413f83
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:37:44 2015 -0700
checkpatch: make --strict the default for drivers/staging files and
patches
Making --strict the default for staging may help some people submit
patches without obvious defects.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Cc: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 86406b1cb7ac4fa5e7691eae5f2fb10c9af03dc3
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:37:41 2015 -0700
checkpatch: always check block comment styles
Some of the block comment tests that are used only for networking are
appropriate for all patches.
For example, these styles are not encouraged:
/*
block comment without introductory *
*/
and
/*
* block comment with line terminating */
Remove the networking specific test and add comments.
There are some infrequent false positives where code is lazily
commented out using /* and */ rather than using #if 0/#endif blocks
like:
/* case foo:
case bar: */
case baz:
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7d3a9f673e1bdb45f86d15a67e230e4a9b050850
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:37:39 2015 -0700
checkpatch: report the right line # when using --emacs and --file
commit 34d8815f9512 ("checkpatch: add --showfile to allow input via pipe
to show filenames") broke the --emacs with --file option.
Fix it.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 100425deeb7586c9d401f787aeab3b43a4c6a0c6
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:37:36 2015 -0700
checkpatch: add some <foo>_destroy functions to NEEDLESS_IF tests
Sergey Senozhatsky has modified several destroy functions that can
now be called with NULL values.
- kmem_cache_destroy()
- mempool_destroy()
- dma_pool_destroy()
Update checkpatch to warn when those functions are preceded by an if.
Update checkpatch to --fix all the calls too only when the code style
form is using leading tabs.
from:
if (foo)
<func>(foo);
to:
<func>(foo);
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Tested-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3e838b6c41e8ac86c992bdaaa78625faf528a578
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:37:33 2015 -0700
checkpatch: Allow longer declaration macros
Some really long declaration macros exist.
For instance;
DEFINE_DMA_BUF_EXPORT_INFO(exp_info);
and
DECLARE_DM_KCOPYD_THROTTLE_WITH_MODULE_PARM(name, description)
Increase the limit from 2 words to 6 after DECLARE/DEFINE uses.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 9f5af480f4554aac12e002b6f5c2b04895857700
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:37:30 2015 -0700
checkpatch: improve SUSPECT_CODE_INDENT test
Many lines exist like
if (foo)
bar;
where the tabbed indentation of the branch is not one more than the "if"
line above it.
checkpatch should emit a warning on those lines.
Miscellenea:
o Remove comments from branch blocks
o Skip blank lines in block
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 9d3e3c705eb395528fd8f17208c87581b134da48
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:37:27 2015 -0700
checkpatch: add warning on BUG/BUG_ON use
Using BUG/BUG_ON crashes the kernel and is just unfriendly.
Enable code that emits a warning on BUG/BUG_ON use.
Make the code emit the message at WARNING level when scanning a patch and
at CHECK level when scanning files so that script users don't feel an
obligation to fix code that might be above their pay grade.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Reported-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Tested-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit fe043ea1205695f2224b279ac9f5cc1742d18f0b
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:37:25 2015 -0700
checkpatch: warn on bare SHA-1 commit IDs in commit logs
Commit IDs should have commit descriptions too. Warn when a 12 to 40 byte
SHA-1 is used in commit logs.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 6b4a35fc19a9229080dead8a9c316e8857b3e94d
Author: Wang Long <long.wanglong@xxxxxxxxxx>
Date: Wed Sep 9 15:37:22 2015 -0700
lib/test_kasan.c: make kmalloc_oob_krealloc_less more correctly
In kmalloc_oob_krealloc_less, I think it is better to test
the size2 boundary.
If we do not call krealloc, the access of position size1 will still cause
out-of-bounds and access of position size2 does not. After call krealloc,
the access of position size2 cause out-of-bounds. So using size2 is more
correct.
Signed-off-by: Wang Long <long.wanglong@xxxxxxxxxx>
Cc: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 9789d8e0cfc6b5e265d9b0aa6e86b394a6d216a1
Author: Wang Long <long.wanglong@xxxxxxxxxx>
Date: Wed Sep 9 15:37:19 2015 -0700
lib/test_kasan.c: fix a typo
Signed-off-by: Wang Long <long.wanglong@xxxxxxxxxx>
Cc: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b40bdb7fb2b8359d5dfe19a91c147465c3d0359b
Author: Kees Cook <keescook@xxxxxxxxxxxx>
Date: Wed Sep 9 15:37:16 2015 -0700
lib/string_helpers: rename "esc" arg to "only"
To further clarify the purpose of the "esc" argument, rename it to "only"
to reflect that it is a limit, not a list of additional characters to
escape.
Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
Suggested-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d89a3f7335bb5d9e572ecc287b300161200364eb
Author: Kees Cook <keescook@xxxxxxxxxxxx>
Date: Wed Sep 9 15:37:14 2015 -0700
lib/string_helpers: clarify esc arg in string_escape_mem
The esc argument is used to reduce which characters will be escaped. For
example, using " " with ESCAPE_SPACE will not produce any escaped spaces.
Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Cc: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Cc: Mathias Krause <minipli@xxxxxxxxxxxxxx>
Cc: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit cdf17449af1d9b596742c260134edd6c1fac2792
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Wed Sep 9 15:37:11 2015 -0700
hexdump: do not print debug dumps for !CONFIG_DEBUG
print_hex_dump_debug() is likely supposed to be analogous to pr_debug() or
dev_dbg() & friends. Currently it will adhere to dynamic debug, but will
not stub out prints if CONFIG_DEBUG is not set. Let's make it do the
right thing, because I am tired of having my dmesg buffer full of hex
dumps on production systems.
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 9bf98f168b7b004c94c766a6989071e0f858def3
Author: Pan Xinhui <xinhuix.pan@xxxxxxxxx>
Date: Wed Sep 9 15:37:08 2015 -0700
lib/bitmap.c: bitmap_parselist can accept string with whitespaces on head
or tail
In __bitmap_parselist we can accept whitespaces on head or tail during
every parsing procedure. If input has valid ranges, there is no reason to
reject the user.
For example, bitmap_parselist(" 1-3, 5, ", &mask, nmaskbits). After
separating the string, we get " 1-3", " 5", and " ". It's possible and
reasonable to accept such string as long as the parsing result is correct.
Signed-off-by: Pan Xinhui <xinhuix.pan@xxxxxxxxx>
Cc: Yury Norov <yury.norov@xxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Cc: Sudeep Holla <sudeep.holla@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d9282cb66353be502aae09aae75d05a6863eb979
Author: Pan Xinhui <xinhuix.pan@xxxxxxxxx>
Date: Wed Sep 9 15:37:05 2015 -0700
lib/bitmap.c: fix a special string handling bug in __bitmap_parselist
If string end with '-', for exapmle, bitmap_parselist("1,0-",&mask,
nmaskbits), It is not in a valid pattern, so add a check after loop.
Return -EINVAL on such condition.
Signed-off-by: Pan Xinhui <xinhuix.pan@xxxxxxxxx>
Cc: Yury Norov <yury.norov@xxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Cc: Sudeep Holla <sudeep.holla@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d21c3d4d1c6b2a0b85aeae5cc774b1bacc64e5b4
Author: Pan Xinhui <xinhuix.pan@xxxxxxxxx>
Date: Wed Sep 9 15:37:02 2015 -0700
lib/bitmap.c: correct a code style and do some, optimization
We can avoid in-loop incrementation of ndigits. Save current totaldigits
to ndigits before loop, and check ndigits against totaldigits after the
loop.
Signed-off-by: Pan Xinhui <xinhuix.pan@xxxxxxxxx>
Cc: Yury Norov <yury.norov@xxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Cc: Sudeep Holla <sudeep.holla@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 774636e19ed514cdf560006813c0473409616de8
Author: Alexey Dobriyan <adobriyan@xxxxxxxxx>
Date: Wed Sep 9 15:36:59 2015 -0700
proc: convert to kstrto*()/kstrto*_from_user()
Convert from manual allocation/copy_from_user/... to kstrto*() family
which were designed for exactly that.
One case can not be converted to kstrto*_from_user() to make code even
more simpler because of whitespace stripping, oh well...
Signed-off-by: Alexey Dobriyan <adobriyan@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 2d2e4715a65ca7e81b292d01ae009a03ccedb9b5
Author: Alexey Dobriyan <adobriyan@xxxxxxxxx>
Date: Wed Sep 9 15:36:17 2015 -0700
kstrto*: accept "-0" for signed conversion
strtol(3) et al accept "-0", so should we.
Signed-off-by: Alexey Dobriyan <adobriyan@xxxxxxxxx>
Cc: David Howells <dhowells@xxxxxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3cdea4d71439fb5676b7334a333dab0f7b1bd2e9
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:36:14 2015 -0700
MAINTAINERS/CREDITS: mark MaxRAID as Orphan, move Anil Ravindranath to
CREDITS
Anil's email address bounces and he hasn't had a signoff
in over 5 years.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Cc: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 515a9adce0f0c3d2ef20f869c12902d03851a273
Author: Jason A. Donenfeld <Jason@xxxxxxxxx>
Date: Wed Sep 9 15:36:12 2015 -0700
include/linux/printk.h: include pr_fmt in pr_debug_ratelimited
The other two implementations of pr_debug_ratelimited include pr_fmt,
along with every other pr_* function. But pr_debug_ratelimited forgot to
add it with the CONFIG_DYNAMIC_DEBUG implementation.
This patch unifies the behavior.
Signed-off-by: Jason A. Donenfeld <Jason@xxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 52aa8536f8f41367d5f2938ad67aa87957e70010
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Sep 9 15:36:09 2015 -0700
kernel/cred.c: remove unnecessary kdebug atomic reads
Commit e0e817392b9a ("CRED: Add some configurable debugging [try #6]")
added the kdebug mechanism to this file back in 2009.
The kdebug macro calls no_printk which always evaluates arguments.
Most of the kdebug uses have an unnecessary call of
atomic_read(&cred->usage)
Make the kdebug macro do nothing by defining it with
do { if (0) no_printk(...); } while (0)
when not enabled.
$ size kernel/cred.o* (defconfig x86-64)
text data bss dec hex filename
2748 336 8 3092 c14 kernel/cred.o.new
2788 336 8 3132 c3c kernel/cred.o.old
Miscellanea:
o Neaten the #define kdebug macros while there
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Cc: David Howells <dhowells@xxxxxxxxxx>
Cc: James Morris <jmorris@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 2307e1a3c0780d7b908f6809f34034a04f954806
Author: Wei Yongjun <yongjun_wei@xxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 15:36:06 2015 -0700
kernel/extable.c: remove duplicated include
Signed-off-by: Wei Yongjun <yongjun_wei@xxxxxxxxxxxxxxxxx>
Acked-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 8b839635e73575990e92cce1f19f5b1d7febd3fa
Author: Vasily Kulikov <segoon@xxxxxxxxxxxx>
Date: Wed Sep 9 15:36:03 2015 -0700
include/linux/poison.h: remove not-used poison pointer macros
Signed-off-by: Vasily Kulikov <segoon@xxxxxxxxxxxx>
Cc: Solar Designer <solar@xxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 8a5e5e02fc83aaf67053ab53b359af08c6c49aaf
Author: Vasily Kulikov <segoon@xxxxxxxxxxxx>
Date: Wed Sep 9 15:36:00 2015 -0700
include/linux/poison.h: fix LIST_POISON{1,2} offset
Poison pointer values should be small enough to find a room in
non-mmap'able/hardly-mmap'able space. E.g. on x86 "poison pointer space"
is located starting from 0x0. Given unprivileged users cannot mmap
anything below mmap_min_addr, it should be safe to use poison pointers
lower than mmap_min_addr.
The current poison pointer values of LIST_POISON{1,2} might be too big for
mmap_min_addr values equal or less than 1 MB (common case, e.g. Ubuntu
uses only 0x10000). There is little point to use such a big value given
the "poison pointer space" below 1 MB is not yet exhausted. Changing it
to a smaller value solves the problem for small mmap_min_addr setups.
The values are suggested by Solar Designer:
http://www.openwall.com/lists/oss-security/2015/05/02/6
Signed-off-by: Vasily Kulikov <segoon@xxxxxxxxxxxx>
Cc: Solar Designer <solar@xxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ecf1a3dfff22bd165532a3af64f32697ae97c1ef
Author: Waiman Long <Waiman.Long@xxxxxx>
Date: Wed Sep 9 15:35:57 2015 -0700
proc: change proc_subdir_lock to a rwlock
The proc_subdir_lock spinlock is used to allow only one task to make
change to the proc directory structure as well as looking up information
in it. However, the information lookup part can actually be entered by
more than one task as the pde_get() and pde_put() reference count update
calls in the critical sections are atomic increment and decrement
respectively and so are safe with concurrent updates.
The x86 architecture has already used qrwlock which is fair and other
architectures like ARM are in the process of switching to qrwlock. So
unfairness shouldn't be a concern in that conversion.
This patch changed the proc_subdir_lock to a rwlock in order to enable
concurrent lookup. The following functions were modified to take a
write lock:
- proc_register()
- remove_proc_entry()
- remove_proc_subtree()
The following functions were modified to take a read lock:
- xlate_proc_name()
- proc_lookup_de()
- proc_readdir_de()
A parallel /proc filesystem search with the "find" command (1000 threads)
was run on a 4-socket Haswell-EX box (144 threads). Before the patch, the
parallel search took about 39s. After the patch, the parallel find took
only 25s, a saving of about 14s.
The micro-benchmark that I used was artificial, but it was used to
reproduce an exit hanging problem that I saw in real application. In
fact, only allow one task to do a lookup seems too limiting to me.
Signed-off-by: Waiman Long <Waiman.Long@xxxxxx>
Acked-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
Cc: Alexey Dobriyan <adobriyan@xxxxxxxxx>
Cc: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Scott J Norton <scott.norton@xxxxxx>
Cc: Douglas Hatch <doug.hatch@xxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit bdb4d100afe9818aebd1d98ced575c5ef143456c
Author: Calvin Owens <calvinowens@xxxxxx>
Date: Wed Sep 9 15:35:54 2015 -0700
procfs: always expose /proc/<pid>/map_files/ and make it readable
Currently, /proc/<pid>/map_files/ is restricted to CAP_SYS_ADMIN, and is
only exposed if CONFIG_CHECKPOINT_RESTORE is set.
Each mapped file region gets a symlink in /proc/<pid>/map_files/
corresponding to the virtual address range at which it is mapped. The
symlinks work like the symlinks in /proc/<pid>/fd/, so you can follow them
to the backing file even if that backing file has been unlinked.
Currently, files which are mapped, unlinked, and closed are impossible to
stat() from userspace. Exposing /proc/<pid>/map_files/ closes this
functionality "hole".
Not being able to stat() such files makes noticing and explicitly
accounting for the space they use on the filesystem impossible. You can
work around this by summing up the space used by every file in the
filesystem and subtracting that total from what statfs() tells you, but
that obviously isn't great, and it becomes unworkable once your filesystem
becomes large enough.
This patch moves map_files/ out from behind CONFIG_CHECKPOINT_RESTORE, and
adjusts the permissions enforced on it as follows:
* proc_map_files_lookup()
* proc_map_files_readdir()
* map_files_d_revalidate()
Remove the CAP_SYS_ADMIN restriction, leaving only the current
restriction requiring PTRACE_MODE_READ. The information made
available to userspace by these three functions is already
available in /proc/PID/maps with MODE_READ, so I don't see any
reason to limit them any further (see below for more detail).
* proc_map_files_follow_link()
This stub has been added, and requires that the user have
CAP_SYS_ADMIN in order to follow the links in map_files/,
since there was concern on LKML both about the potential for
bypassing permissions on ancestor directories in the path to
files pointed to, and about what happens with more exotic
memory mappings created by some drivers (ie dma-buf).
In older versions of this patch, I changed every permission check in
the four functions above to enforce MODE_ATTACH instead of MODE_READ.
This was an oversight on my part, and after revisiting the discussion
it seems that nobody was concerned about anything outside of what is
made possible by ->follow_link(). So in this version, I've left the
checks for PTRACE_MODE_READ as-is.
[akpm@xxxxxxxxxxxxxxxxxxxx: catch up with concurrent
proc_pid_follow_link() changes]
Signed-off-by: Calvin Owens <calvinowens@xxxxxx>
Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Cc: Kirill A. Shutemov <kirill@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d3691d2c6d3e72624c987bbef6f322631bbb2d5d
Author: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Date: Wed Sep 9 15:35:51 2015 -0700
proc: add cond_resched to /proc/kpage* read/write loop
Reading/writing a /proc/kpage* file may take long on machines with a lot
of RAM installed.
Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Suggested-by: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Reviewed-by: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Greg Thelen <gthelen@xxxxxxxxxx>
Cc: Michel Lespinasse <walken@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit f074a8f49eb87cde95ac9d040ad5e7ea4f029738
Author: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Date: Wed Sep 9 15:35:48 2015 -0700
proc: export idle flag via kpageflags
As noted by Minchan, a benefit of reading idle flag from /proc/kpageflags
is that one can easily filter dirty and/or unevictable pages while
estimating the size of unused memory.
Note that idle flag read from /proc/kpageflags may be stale in case the
page was accessed via a PTE, because it would be too costly to iterate
over all page mappings on each /proc/kpageflags read to provide an
up-to-date value. To make sure the flag is up-to-date one has to read
/sys/kernel/mm/page_idle/bitmap first.
Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Reviewed-by: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Greg Thelen <gthelen@xxxxxxxxxx>
Cc: Michel Lespinasse <walken@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 33c3fc71c8cfa3cc3a98beaa901c069c177dc295
Author: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Date: Wed Sep 9 15:35:45 2015 -0700
mm: introduce idle page tracking
Knowing the portion of memory that is not used by a certain application or
memory cgroup (idle memory) can be useful for partitioning the system
efficiently, e.g. by setting memory cgroup limits appropriately.
Currently, the only means to estimate the amount of idle memory provided
by the kernel is /proc/PID/{clear_refs,smaps}: the user can clear the
access bit for all pages mapped to a particular process by writing 1 to
clear_refs, wait for some time, and then count smaps:Referenced. However,
this method has two serious shortcomings:
- it does not count unmapped file pages
- it affects the reclaimer logic
To overcome these drawbacks, this patch introduces two new page flags,
Idle and Young, and a new sysfs file, /sys/kernel/mm/page_idle/bitmap.
A page's Idle flag can only be set from userspace by setting bit in
/sys/kernel/mm/page_idle/bitmap at the offset corresponding to the page,
and it is cleared whenever the page is accessed either through page tables
(it is cleared in page_referenced() in this case) or using the read(2)
system call (mark_page_accessed()). Thus by setting the Idle flag for
pages of a particular workload, which can be found e.g. by reading
/proc/PID/pagemap, waiting for some time to let the workload access its
working set, and then reading the bitmap file, one can estimate the amount
of pages that are not used by the workload.
The Young page flag is used to avoid interference with the memory
reclaimer. A page's Young flag is set whenever the Access bit of a page
table entry pointing to the page is cleared by writing to the bitmap file.
If page_referenced() is called on a Young page, it will add 1 to its
return value, therefore concealing the fact that the Access bit was
cleared.
Note, since there is no room for extra page flags on 32 bit, this feature
uses extended page flags when compiled on 32 bit.
[akpm@xxxxxxxxxxxxxxxxxxxx: fix build]
[akpm@xxxxxxxxxxxxxxxxxxxx: kpageidle requires an MMU]
[akpm@xxxxxxxxxxxxxxxxxxxx: decouple from page-flags rework]
Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Reviewed-by: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Greg Thelen <gthelen@xxxxxxxxxx>
Cc: Michel Lespinasse <walken@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1d7715c676a1566c2e4c3e77d16b1f9bb4909025
Author: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Date: Wed Sep 9 15:35:41 2015 -0700
mmu-notifier: add clear_young callback
In the scope of the idle memory tracking feature, which is introduced by
the following patch, we need to clear the referenced/accessed bit not only
in primary, but also in secondary ptes. The latter is required in order
to estimate wss of KVM VMs. At the same time we want to avoid flushing
tlb, because it is quite expensive and it won't really affect the final
result.
Currently, there is no function for clearing pte young bit that would meet
our requirements, so this patch introduces one. To achieve that we have
to add a new mmu-notifier callback, clear_young, since there is no method
for testing-and-clearing a secondary pte w/o flushing tlb. The new method
is not mandatory and currently only implemented by KVM.
Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Reviewed-by: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Acked-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Greg Thelen <gthelen@xxxxxxxxxx>
Cc: Michel Lespinasse <walken@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 80ae2fdceba8313b0433f899bdd9c6c463291a17
Author: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Date: Wed Sep 9 15:35:38 2015 -0700
proc: add kpagecgroup file
/proc/kpagecgroup contains a 64-bit inode number of the memory cgroup each
page is charged to, indexed by PFN. Having this information is useful for
estimating a cgroup working set size.
The file is present if CONFIG_PROC_PAGE_MONITOR && CONFIG_MEMCG.
Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Reviewed-by: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Greg Thelen <gthelen@xxxxxxxxxx>
Cc: Michel Lespinasse <walken@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e993d905c81e2c0f669f2f8e8327df86738baebe
Author: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Date: Wed Sep 9 15:35:35 2015 -0700
memcg: zap try_get_mem_cgroup_from_page
It is only used in mem_cgroup_try_charge, so fold it in and zap it.
Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Reviewed-by: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Greg Thelen <gthelen@xxxxxxxxxx>
Cc: Michel Lespinasse <walken@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 94a59fb36ee91b3f977a9b914ec701efe40041de
Author: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Date: Wed Sep 9 15:35:31 2015 -0700
hwpoison: use page_cgroup_ino for filtering by memcg
Hwpoison allows to filter pages by memory cgroup ino. Currently, it
calls try_get_mem_cgroup_from_page to obtain the cgroup from a page and
then its ino using cgroup_ino, but now we have a helper method for
that, page_cgroup_ino, so use it instead.
This patch also loosens the hwpoison memcg filter dependency rules - it
makes it depend on CONFIG_MEMCG instead of CONFIG_MEMCG_SWAP, because
hwpoison memcg filter does not require anything (nor it used to) from
CONFIG_MEMCG_SWAP side.
Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Reviewed-by: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Greg Thelen <gthelen@xxxxxxxxxx>
Cc: Michel Lespinasse <walken@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 2fc045247089ad4ed611ec20cc3a736c0212bf1a
Author: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Date: Wed Sep 9 15:35:28 2015 -0700
memcg: add page_cgroup_ino helper
This patchset introduces a new user API for tracking user memory pages
that have not been used for a given period of time. The purpose of this
is to provide the userspace with the means of tracking a workload's
working set, i.e. the set of pages that are actively used by the
workload. Knowing the working set size can be useful for partitioning the
system more efficiently, e.g. by tuning memory cgroup limits
appropriately, or for job placement within a compute cluster.
==== USE CASES ====
The unified cgroup hierarchy has memory.low and memory.high knobs, which
are defined as the low and high boundaries for the workload working set
size. However, the working set size of a workload may be unknown or
change in time. With this patch set, one can periodically estimate the
amount of memory unused by each cgroup and tune their memory.low and
memory.high parameters accordingly, therefore optimizing the overall
memory utilization.
Another use case is balancing workloads within a compute cluster. Knowing
how much memory is not really used by a workload unit may help take a more
optimal decision when considering migrating the unit to another node
within the cluster.
Also, as noted by Minchan, this would be useful for per-process reclaim
(https://lwn.net/Articles/545668/). With idle tracking, we could reclaim
idle
pages only by smart user memory manager.
==== USER API ====
The user API consists of two new files:
* /sys/kernel/mm/page_idle/bitmap. This file implements a bitmap where
each
bit corresponds to a page, indexed by PFN. When the bit is set, the
corresponding page is idle. A page is considered idle if it has not
been
accessed since it was marked idle. To mark a page idle one should set
the
bit corresponding to the page by writing to the file. A value written
to the
file is OR-ed with the current bitmap value. Only user memory pages
can be
marked idle, for other page types input is silently ignored. Writing
to this
file beyond max PFN results in the ENXIO error. Only available when
CONFIG_IDLE_PAGE_TRACKING is set.
This file can be used to estimate the amount of pages that are not
used by a particular workload as follows:
1. mark all pages of interest idle by setting corresponding bits in the
/sys/kernel/mm/page_idle/bitmap
2. wait until the workload accesses its working set
3. read /sys/kernel/mm/page_idle/bitmap and count the number of bits
set
* /proc/kpagecgroup. This file contains a 64-bit inode number of the
memory cgroup each page is charged to, indexed by PFN. Only available
when
CONFIG_MEMCG is set.
This file can be used to find all pages (including unmapped file pages)
accounted to a particular cgroup. Using
/sys/kernel/mm/page_idle/bitmap, one
can then estimate the cgroup working set size.
For an example of using these files for estimating the amount of unused
memory pages per each memory cgroup, please see the script attached
below.
==== REASONING ====
The reason to introduce the new user API instead of using
/proc/PID/{clear_refs,smaps} is that the latter has two serious
drawbacks:
- it does not count unmapped file pages
- it affects the reclaimer logic
The new API attempts to overcome them both. For more details on how it
is achieved, please see the comment to patch 6.
==== PATCHSET STRUCTURE ====
The patch set is organized as follows:
- patch 1 adds page_cgroup_ino() helper for the sake of
/proc/kpagecgroup and patches 2-3 do related cleanup
- patch 4 adds /proc/kpagecgroup, which reports cgroup ino each page is
charged to
- patch 5 introduces a new mmu notifier callback, clear_young, which is
a lightweight version of clear_flush_young; it is used in patch 6
- patch 6 implements the idle page tracking feature, including the
userspace API, /sys/kernel/mm/page_idle/bitmap
- patch 7 exports idle flag via /proc/kpageflags
==== SIMILAR WORKS ====
Originally, the patch for tracking idle memory was proposed back in 2011
by Michel Lespinasse (see http://lwn.net/Articles/459269/). The main
difference between Michel's patch and this one is that Michel implemented
a kernel space daemon for estimating idle memory size per cgroup while
this patch only provides the userspace with the minimal API for doing the
job, leaving the rest up to the userspace. However, they both share the
same idea of Idle/Young page flags to avoid affecting the reclaimer logic.
==== PERFORMANCE EVALUATION ====
SPECjvm2008 (https://www.spec.org/jvm2008/) was used to evaluate the
performance impact introduced by this patch set. Three runs were carried
out:
- base: kernel without the patch
- patched: patched kernel, the feature is not used
- patched-active: patched kernel, 1 minute-period daemon is used for
tracking idle memory
For tracking idle memory, idlememstat utility was used:
https://github.com/locker/idlememstat
testcase base patched patched-active
compiler 537.40 ( 0.00)% 532.26 (-0.96)% 538.31 ( 0.17)%
compress 305.47 ( 0.00)% 301.08 (-1.44)% 300.71 (-1.56)%
crypto 284.32 ( 0.00)% 282.21 (-0.74)% 284.87 ( 0.19)%
derby 411.05 ( 0.00)% 413.44 ( 0.58)% 412.07 ( 0.25)%
mpegaudio 189.96 ( 0.00)% 190.87 ( 0.48)% 189.42 (-0.28)%
scimark.large 46.85 ( 0.00)% 46.41 (-0.94)% 47.83 ( 2.09)%
scimark.small 412.91 ( 0.00)% 415.41 ( 0.61)% 421.17 ( 2.00)%
serial 204.23 ( 0.00)% 213.46 ( 4.52)% 203.17 (-0.52)%
startup 36.76 ( 0.00)% 35.49 (-3.45)% 35.64 (-3.05)%
sunflow 115.34 ( 0.00)% 115.08 (-0.23)% 117.37 ( 1.76)%
xml 620.55 ( 0.00)% 619.95 (-0.10)% 620.39 (-0.03)%
composite 211.50 ( 0.00)% 211.15 (-0.17)% 211.67 ( 0.08)%
time idlememstat:
17.20user 65.16system 2:15:23elapsed 1%CPU (0avgtext+0avgdata
8476maxresident)k
448inputs+40outputs (1major+36052minor)pagefaults 0swaps
==== SCRIPT FOR COUNTING IDLE PAGES PER CGROUP ====
#! /usr/bin/python
#
import os
import stat
import errno
import struct
CGROUP_MOUNT = "/sys/fs/cgroup/memory"
BUFSIZE = 8 * 1024 # must be multiple of 8
def get_hugepage_size():
with open("/proc/meminfo", "r") as f:
for s in f:
k, v = s.split(":")
if k == "Hugepagesize":
return int(v.split()[0]) * 1024
PAGE_SIZE = os.sysconf("SC_PAGE_SIZE")
HUGEPAGE_SIZE = get_hugepage_size()
def set_idle():
f = open("/sys/kernel/mm/page_idle/bitmap", "wb", BUFSIZE)
while True:
try:
f.write(struct.pack("Q", pow(2, 64) - 1))
except IOError as err:
if err.errno == errno.ENXIO:
break
raise
f.close()
def count_idle():
f_flags = open("/proc/kpageflags", "rb", BUFSIZE)
f_cgroup = open("/proc/kpagecgroup", "rb", BUFSIZE)
with open("/sys/kernel/mm/page_idle/bitmap", "rb", BUFSIZE) as f:
while f.read(BUFSIZE): pass # update idle flag
idlememsz = {}
while True:
s1, s2 = f_flags.read(8), f_cgroup.read(8)
if not s1 or not s2:
break
flags, = struct.unpack('Q', s1)
cgino, = struct.unpack('Q', s2)
unevictable = (flags >> 18) & 1
huge = (flags >> 22) & 1
idle = (flags >> 25) & 1
if idle and not unevictable:
idlememsz[cgino] = idlememsz.get(cgino, 0) + \
(HUGEPAGE_SIZE if huge else PAGE_SIZE)
f_flags.close()
f_cgroup.close()
return idlememsz
if __name__ == "__main__":
print "Setting the idle flag for each page..."
set_idle()
raw_input("Wait until the workload accesses its working set, "
"then press Enter")
print "Counting idle pages..."
idlememsz = count_idle()
for dir, subdirs, files in os.walk(CGROUP_MOUNT):
ino = os.stat(dir)[stat.ST_INO]
print dir + ": " + str(idlememsz.get(ino, 0) / 1024) + " kB"
==== END SCRIPT ====
This patch (of 8):
Add page_cgroup_ino() helper to memcg.
This function returns the inode number of the closest online ancestor of
the memory cgroup a page is charged to. It is required for exporting
information about which page is charged to which cgroup to userspace,
which will be introduced by a following patch.
Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Reviewed-by: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Greg Thelen <gthelen@xxxxxxxxxx>
Cc: Michel Lespinasse <walken@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 9c4c5ef3760470cbf8bf408a173d1b2fdba065b1
Author: Dan Streetman <ddstreet@xxxxxxxx>
Date: Wed Sep 9 15:35:25 2015 -0700
zswap: update docs for runtime-changeable attributes
Change the Documentation/vm/zswap.txt doc to indicate that the "zpool" and
"compressor" params are now changeable at runtime.
Signed-off-by: Dan Streetman <ddstreet@xxxxxxxx>
Cc: Seth Jennings <sjennings@xxxxxxxxxxxxxx>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx>
Cc: Vlastimil Babka <vbabka@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 90b0fc26d5dbe21c7a21668320b276af9b2281d7
Author: Dan Streetman <ddstreet@xxxxxxxx>
Date: Wed Sep 9 15:35:21 2015 -0700
zswap: change zpool/compressor at runtime
Update the zpool and compressor parameters to be changeable at runtime.
When changed, a new pool is created with the requested zpool/compressor,
and added as the current pool at the front of the pool list. Previous
pools remain in the list only to remove existing compressed pages from.
The old pool(s) are removed once they become empty.
Signed-off-by: Dan Streetman <ddstreet@xxxxxxxx>
Acked-by: Seth Jennings <sjennings@xxxxxxxxxxxxxx>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit f1c54846ee4504d89b59b04d870831db4046b478
Author: Dan Streetman <ddstreet@xxxxxxxx>
Date: Wed Sep 9 15:35:19 2015 -0700
zswap: dynamic pool creation
Add dynamic creation of pools. Move the static crypto compression per-cpu
transforms into each pool. Add a pointer to zswap_entry to the pool it's
in.
This is required by the following patch which enables changing the zswap
zpool and compressor params at runtime.
[akpm@xxxxxxxxxxxxxxxxxxxx: fix merge snafus]
Signed-off-by: Dan Streetman <ddstreet@xxxxxxxx>
Acked-by: Seth Jennings <sjennings@xxxxxxxxxxxxxx>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3f0e131221eb951c45c93d1cce9db73889be2a5e
Author: Dan Streetman <ddstreet@xxxxxxxx>
Date: Wed Sep 9 15:35:16 2015 -0700
zpool: add zpool_has_pool()
This series makes creation of the zpool and compressor dynamic, so that
they can be changed at runtime. This makes using/configuring zswap
easier, as before this zswap had to be configured at boot time, using boot
params.
This uses a single list to track both the zpool and compressor together,
although Seth had mentioned an alternative which is to track the zpools
and compressors using separate lists. In the most common case, only a
single zpool and single compressor, using one list is slightly simpler
than using two lists, and for the uncommon case of multiple zpools and/or
compressors, using one list is slightly less simple (and uses slightly
more memory, probably) than using two lists.
This patch (of 4):
Add zpool_has_pool() function, indicating if the specified type of zpool
is available (i.e. zsmalloc or zbud). This allows checking if a pool is
available, without actually trying to allocate it, similar to
crypto_has_alg().
This is used by a following patch to zswap that enables the dynamic
runtime creation of zswap zpools.
Signed-off-by: Dan Streetman <ddstreet@xxxxxxxx>
Acked-by: Seth Jennings <sjennings@xxxxxxxxxxxxxx>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e11fc21e756e662e465cac3da6547d438d0b1446
Author: Grazvydas Ignotas <notasas@xxxxxxxxx>
Date: Sat Sep 5 02:32:34 2015 +0300
twl4030_charger: fix another compile error
When CONFIG_CHARGER_TWL4030=y and CONFIG_TWL4030_MADC=m we get a
compile error:
drivers/built-in.o: In function `twl4030_charger_update_current':
twl4030_charger.c:(.text+0x504681): undefined reference to
`twl4030_get_madc_conversion'
Use IS_REACHABLE to fix it.
Cc: NeilBrown <neil@xxxxxxxxxx>
Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Signed-off-by: Grazvydas Ignotas <notasas@xxxxxxxxx>
Acked-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Sebastian Reichel <sre@xxxxxxxxxx>
commit aefc574bbbbe74bb891ba392d98f2d59a417c774
Author: Sebastian Reichel <sre@xxxxxxxxxx>
Date: Thu Sep 10 10:00:55 2015 +0200
Revert "twl4030_charger: correctly handle -EPROBE_DEFER from
devm_usb_get_phy_by_node"
Revert commit 3fc3895e4fe17ee92ae1d1bb9f04da6069e8c370, since
it introduced a boot failure on some OMAP platforms.
Reported-by: Kevin Hilman <khilman@xxxxxxxxxx>
Signed-off-by: Sebastian Reichel <sre@xxxxxxxxxx>
commit 30059d494a72603d066baf55c748803df968aa08
Author: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Date: Wed Apr 29 13:07:38 2015 -0400
tile: use global strscpy() rather than private copy
Now that strscpy() is a standard API, remove the local copy.
Signed-off-by: Chris Metcalf <cmetcalf@xxxxxxxxxx>
commit 30035e45753b708e7d47a98398500ca005e02b86
Author: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Date: Wed Apr 29 12:52:04 2015 -0400
string: provide strscpy()
The strscpy() API is intended to be used instead of strlcpy(),
and instead of most uses of strncpy().
- Unlike strlcpy(), it doesn't read from memory beyond (src + size).
- Unlike strlcpy() or strncpy(), the API provides an easy way to check
for destination buffer overflow: an -E2BIG error return value.
- The provided implementation is robust in the face of the source
buffer being asynchronously changed during the copy, unlike the
current implementation of strlcpy().
- Unlike strncpy(), the destination buffer will be NUL-terminated
if the string in the source buffer is too long.
- Also unlike strncpy(), the destination buffer will not be updated
beyond the NUL termination, avoiding strncpy's behavior of zeroing
the entire tail end of the destination buffer. (A memset() after
the strscpy() can be used if this behavior is desired.)
- The implementation should be reasonably performant on all
platforms since it uses the asm/word-at-a-time.h API rather than
simple byte copy. Kernel-to-kernel string copy is not considered
to be performance critical in any case.
Signed-off-by: Chris Metcalf <cmetcalf@xxxxxxxxxx>
commit 135919a3a80565070b9645009e65f73e72c661c0
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Sep 9 13:35:05 2015 -0400
intel_idle: Skylake Client Support - updated
Addition of PC9 state, and minor tweaks to existing PC6 and PC8 states.
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
commit 30927520dbae297182990bb21d08762bcc35ce1d
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Wed Sep 9 21:55:07 2015 -0700
tcp_cubic: better follow cubic curve after idle period
Jana Iyengar found an interesting issue on CUBIC :
The epoch is only updated/reset initially and when experiencing losses.
The delta "t" of now - epoch_start can be arbitrary large after app idle
as well as the bic_target. Consequentially the slope (inverse of
ca->cnt) would be really large, and eventually ca->cnt would be
lower-bounded in the end to 2 to have delayed-ACK slow-start behavior.
This particularly shows up when slow_start_after_idle is disabled
as a dangerous cwnd inflation (1.5 x RTT) after few seconds of idle
time.
Jana initial fix was to reset epoch_start if app limited,
but Neal pointed out it would ask the CUBIC algorithm to recalculate the
curve so that we again start growing steeply upward from where cwnd is
now (as CUBIC does just after a loss). Ideally we'd want the cwnd growth
curve to be the same shape, just shifted later in time by the amount of
the idle period.
Reported-by: Jana Iyengar <jri@xxxxxxxxxx>
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Signed-off-by: Yuchung Cheng <ycheng@xxxxxxxxxx>
Signed-off-by: Neal Cardwell <ncardwell@xxxxxxxxxx>
Cc: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
Cc: Sangtae Ha <sangtae.ha@xxxxxxxxx>
Cc: Lawrence Brakmo <lawrence@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 05c5a46d71f621df620fbabbd7758ee1b44575ad
Author: Neal Cardwell <ncardwell@xxxxxxxxxx>
Date: Wed Sep 9 21:54:37 2015 -0700
tcp: generate CA_EVENT_TX_START on data frames
Issuing a CC TX_START event on control frames like pure ACK
is a waste of time, as a CC should not care.
Following patch needs this change, as we want CUBIC to properly track
idle time at a low cost, with a single TX_START being generated.
Yuchung might slightly refine the condition triggering TX_START
on a followup patch.
Signed-off-by: Neal Cardwell <ncardwell@xxxxxxxxxx>
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Signed-off-by: Yuchung Cheng <ycheng@xxxxxxxxxx>
Cc: Jana Iyengar <jri@xxxxxxxxxx>
Cc: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
Cc: Sangtae Ha <sangtae.ha@xxxxxxxxx>
Cc: Lawrence Brakmo <lawrence@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 32a844056fd43dda647e1c3c6b9983bdfa04d17d
Author: Wei Liu <wei.liu2@xxxxxxxxxx>
Date: Thu Sep 10 11:18:58 2015 +0100
xen-netfront: respect user provided max_queues
Originally that parameter was always reset to num_online_cpus during
module initialisation, which renders it useless.
The fix is to only set max_queues to num_online_cpus when user has not
provided a value.
Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
Cc: David Vrabel <david.vrabel@xxxxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Tested-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4c82ac3c37363e8c4ded6a5fe1ec5fa756b34df3
Author: Wei Liu <wei.liu2@xxxxxxxxxx>
Date: Thu Sep 10 11:18:57 2015 +0100
xen-netback: respect user provided max_queues
Originally that parameter was always reset to num_online_cpus during
module initialisation, which renders it useless.
The fix is to only set max_queues to num_online_cpus when user has not
provided a value.
Reported-by: Johnny Strom <johnny.strom@xxxxxxxxxxxxxxxxx>
Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 420203204eada39cfe0e8eb65e609da7b209cf33
Author: Corinna Vinschen <vinschen@xxxxxxxxxx>
Date: Thu Sep 10 10:47:35 2015 +0200
r8169: Fix sleeping function called during get_stats64, v2
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104031
Fixes: 6e85d5ad36a26debc23a9a865c029cbe242b2dc8
Based on the discussion starting at
http://www.spinics.net/lists/netdev/msg342193.html
Tested locally on RTL8168evl/8111evl with various concurrent processes
accessing /proc/net/dev while changing the link state as well as
removing/reloading the r8169 module.
Signed-off-by: Corinna Vinschen <vinschen@xxxxxxxxxx>
Tested-by: poma <pomidorabelisima@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 85b4e4eb2f9ac29ee8ec47f1f055f251cb251a3c
Author: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Date: Thu Sep 10 00:08:45 2015 +0200
wmi: Remove private %pUL implementation
The work performed by wmi_gtoa is equivalent to simply sprintf(out,
"%pUL", in), so one could replace its body by this. However, most
users feed the result directly as a %s argument to some other function
which also understands the %p extensions (they all ultimately use
vsnprintf), so we can eliminate some stack buffers and quite a bit of
code by just using %pUL directly.
In wmi_dev_uevent I'm not sure whether there's room for a
nul-terminator in env->buf, so I've just replaced wmi_gtoa with the
equivalent sprintf call.
Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Darren Hart <dvhart@xxxxxxxxxxxxxxx>
commit 824257857fd81f5e749831ff9cd63566b5a86abe
Author: Gaurav K Singh <gaurav.k.singh@xxxxxxxxx>
Date: Mon Aug 3 15:45:32 2015 +0530
drm/i915: Allow DSI dual link to be configured on any pipe
Just like single link MIPI panels, similarly for dual link panels, pipe
to be configured is based on the DVO port from VBT Block 2. In hardware,
Port A is mapped with Pipe A and Port C is mapped with Pipe B.
This issue got introduced in -
commit 7e9804fdcffc650515c60f524b8b2076ee59e710
Author: Jani Nikula <jani.nikula@xxxxxxxxx>
Date: Fri Jan 16 14:27:23 2015 +0200
drm/i915/dsi: add drm mipi dsi host support
Cc: stable@xxxxxxxxxxxxxxx # v4.0
Signed-off-by: Gaurav K Singh <gaurav.k.singh@xxxxxxxxx>
Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 58590c14d80defc94e900308a9d8fa55284de6f2
Author: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 21:05:12 2015 +0300
drm/i915: Don't try to use DDR DVFS on CHV when disabled in the BIOS
If one disables DDR DVFS in the BIOS, Punit will apparently ignores
all DDR DVFS request. Currently we assume that DDR DVFS is always
operational, which leads to errors in dmesg when the DDR DVFS requests
time out.
Fix the problem by gently prodding Punit during driver load to find out
whether it will respond to DDR DVFS requests. If the request times out,
we assume that DDR DVFS has been permanenly disabled in the BIOS and
no longer perster the Punit about it.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91629
Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Reviewed-by: Clint Taylor <Clinton.A.Taylor@xxxxxxxxx>
Tested-by: Clint Taylor <Clinton.A.Taylor@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 85e0a0f21a14bfd9145422a6a627c3df47101bd8
Author: Filipe Manana <fdmanana@xxxxxxxx>
Date: Thu Sep 10 10:36:06 2015 +0100
Btrfs: remove unnecessary locking of cleaner_mutex to avoid deadlock
After commmit e44163e17796 ("btrfs: explictly delete unused block groups
in close_ctree and ro-remount"), added in the 4.3 merge window, we have
calls to btrfs_delete_unused_bgs() while holding the cleaner_mutex.
This can cause a deadlock with a concurrent block group relocation (when
a filesystem balance or shrink operation is in progress for example)
because btrfs_delete_unused_bgs() locks delete_unused_bgs_mutex and the
relocation path locks first delete_unused_bgs_mutex and then it locks
cleaner_mutex, resulting in a classic ABBA deadlock:
CPU 0 CPU 1
lock fs_info->cleaner_mutex
__btrfs_balance() ||
btrfs_shrink_device()
lock
fs_info->delete_unused_bgs_mutex
btrfs_relocate_chunk()
btrfs_relocate_block_group()
lock
fs_info->cleaner_mutex
btrfs_delete_unused_bgs()
lock fs_info->delete_unused_bgs_mutex
Fix this by not taking the cleaner_mutex before calling
btrfs_delete_unused_bgs() because it's no longer needed after
commit 67c5e7d464bc ("Btrfs: fix race between balance and unused block
group deletion"). The mutex fs_info->delete_unused_bgs_mutex, the
spinlock fs_info->unused_bgs_lock and a block group's spinlock are
enough to get correct serialization between tasks running relocation
and unused block group deletion (as well as between multiple tasks
concurrently calling btrfs_delete_unused_bgs()).
This issue was discussed (in the mailing list) during the review of
the patch titled "btrfs: explictly delete unused block groups in
close_ctree and ro-remount" and it was agreed that acquiring the
cleaner mutex had to be dropped after the patch titled
"Btrfs: fix race between balance and unused block group deletion"
got merged (both patches were submitted at about the same time, but
one landed in kernel 4.2 and the other in the 4.3 merge window).
Signed-off-by: Filipe Manana <fdmanana@xxxxxxxx>
commit 3a0e27d84bb9abac5e39dc71706768a88c72cb71
Author: Arnaud Pouliquen <arnaud.pouliquen@xxxxxx>
Date: Thu Sep 10 09:45:55 2015 +0200
ASoC: sti: check return of of_property_read
Add check on of_property_read to return error when
DT required property is not defined.
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit d630526d0aa6acc0868dae892b1febda72029a3e
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Thu Sep 10 10:19:52 2015 +0200
spi: atmel: remove warning when !CONFIG_PM_SLEEP
When CONFIG_PM is defined but not CONFIG_PM_SLEEP (this happens when
CONFIG_SUSPEND is not defined), there is the following warning:
drivers/spi/spi-atmel.c:1723:12: warning: â??atmel_spi_suspendâ?? defined
but not used [-Wunused-function]
drivers/spi/spi-atmel.c:1741:12: warning: â??atmel_spi_resumeâ?? defined
but not used [-Wunused-function]
Enclose both atmel_spi_suspend and atmel_spi_resume in #ifdef
CONFIG_PM_SLEEP/#endif to solve that.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 2a3fffd45822070309bcf0b1e1dae624d633824a
Author: Martin Sperl <kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 10 09:32:14 2015 +0000
spi: bcm2835: BUG: fix wrong use of PAGE_MASK
There is a bug in the alignment checking of transfers,
that results in DMA not being used for un-aligned
transfers that do not cross page-boundries, which is valid.
This is due to a missconception of the meaning PAGE_MASK
when implementing that check originally - (PAGE_SIZE - 1)
should have been used instead.
Also fixes a copy/paste error.
Reported-by: <robert@xxxxxxxxxxx>
Signed-off-by: Martin Sperl <kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 9da75de030bb6e49475ef37c8495d07e98cfeb33
Author: LABBE Corentin <clabbe.montjoie@xxxxxxxxx>
Date: Wed Sep 9 14:27:07 2015 +0200
crypto: sunxi-ss - Fix a possible driver hang with ciphers
The sun4i_ss_opti_poll function cipher data until the output miter have
a length of 0.
If the crypto API client, give more SGs than necessary this could result
in an infinite loop.
Fix it by checking for remaining bytes, just like sun4i_ss_cipher_poll().
Signed-off-by: LABBE Corentin <clabbe.montjoie@xxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit f1ab428711358fbb747ba392c3448462494e6c6a
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Wed Sep 9 18:22:35 2015 +1000
crypto: vmx - VMX crypto should depend on CONFIG_VSX
This code uses FP (floating point), Altivec and VSX (Vector-Scalar
Extension). It can just depend on CONFIG_VSX though, because that
already depends on FP and Altivec.
Otherwise we get lots of link errors such as:
drivers/built-in.o: In function `.p8_aes_setkey':
aes.c:(.text+0x2d325c): undefined reference to `.enable_kernel_altivec'
aes.c:(.text+0x2d326c): undefined reference to `.enable_kernel_vsx'
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 982b0b2dd590c00f089fc6fe915bd0cb302a7f5c
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Wed Sep 9 16:52:09 2015 +0200
drm/i915: Fix CSR MMIO address check
Fix a wrong logical AND (&&) used for the range check of CSR MMIO.
Spotted nicely by gcc -Wlogical-op flag:
drivers/gpu/drm/i915/intel_csr.c: In function â??finish_csr_loadâ??:
drivers/gpu/drm/i915/intel_csr.c:353:41: warning: logical â??andâ?? of
mutually exclusive tests is always false [-Wlogical-op]
Fixes: eb805623d8b1 ('drm/i915/skl: Add support to load SKL CSR
firmware.')
Cc: <stable@xxxxxxxxxxxxxxx> # v4.2
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Reviewed-by: Animesh Manna <animesh.manna@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit e297c939b745e420ef0b9dc989cb87bda617b399
Author: Paul Mackerras <paulus@xxxxxxxxxx>
Date: Thu Sep 10 14:36:21 2015 +1000
powerpc/MSI: Fix race condition in tearing down MSI interrupts
This fixes a race which can result in the same virtual IRQ number
being assigned to two different MSI interrupts. The most visible
consequence of that is usually a warning and stack trace from the
sysfs code about an attempt to create a duplicate entry in sysfs.
The race happens when one CPU (say CPU 0) is disposing of an MSI
while another CPU (say CPU 1) is setting up an MSI. CPU 0 calls
(for example) pnv_teardown_msi_irqs(), which calls
msi_bitmap_free_hwirqs() to indicate that the MSI (i.e. its
hardware IRQ number) is no longer in use. Then, before CPU 0 gets
to calling irq_dispose_mapping() to free up the virtal IRQ number,
CPU 1 comes in and calls msi_bitmap_alloc_hwirqs() to allocate an
MSI, and gets the same hardware IRQ number that CPU 0 just freed.
CPU 1 then calls irq_create_mapping() to get a virtual IRQ number,
which sees that there is currently a mapping for that hardware IRQ
number and returns the corresponding virtual IRQ number (which is
the same virtual IRQ number that CPU 0 was using). CPU 0 then
calls irq_dispose_mapping() and frees that virtual IRQ number.
Now, if another CPU comes along and calls irq_create_mapping(), it
is likely to get the virtual IRQ number that was just freed,
resulting in the same virtual IRQ number apparently being used for
two different hardware interrupts.
To fix this race, we just move the call to msi_bitmap_free_hwirqs()
to after the call to irq_dispose_mapping(). Since virq_to_hw()
doesn't work for the virtual IRQ number after irq_dispose_mapping()
has been called, we need to call it before irq_dispose_mapping() and
remember the result for the msi_bitmap_free_hwirqs() call.
The pattern of calling msi_bitmap_free_hwirqs() before
irq_dispose_mapping() appears in 5 places under arch/powerpc, and
appears to have originated in commit 05af7bd2d75e ("[POWERPC] MPIC
U3/U4 MSI backend") from 2007.
Fixes: 05af7bd2d75e ("[POWERPC] MPIC U3/U4 MSI backend")
Cc: stable@xxxxxxxxxxxxxxx # v2.6.22+
Reported-by: Alexey Kardashevskiy <aik@xxxxxxxxx>
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 1ab1e895492d8084dfc1c854efacde219e56b8c1
Author: Henrik Austad <henrik@xxxxxxxxx>
Date: Wed Sep 9 12:25:17 2015 +0200
ether: add IEEE 1722 ethertype - TSN
IEEE 1722 describes AVB (later renamed to TSN - Time Sensitive
Networking), a protocol, encapsualtion and synchronization to utilize
standard networks for audio/video (and later other time-sensitive)
streams.
This standard uses ethertype 0x22F0.
http://standards.ieee.org/develop/regauth/ethertype/eth.txt
This is a respin of a previous patch ("ether: add AVB frame type
ETH_P_AVB")
CC: "David S. Miller" <davem@xxxxxxxxxxxxx>
CC: netdev@xxxxxxxxxxxxxxx
CC: linux-api@xxxxxxxxxxxxxxx
CC: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Henrik Austad <henrik@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b14132797d8041a42e03f4ffa1e722da1425adfb
Author: Mike Frysinger <vapier@xxxxxxxxxx>
Date: Tue Aug 18 03:28:01 2015 -0400
elf-em.h: move EM_MICROBLAZE to the common header
The linux/audit.h header uses EM_MICROBLAZE in order to define
AUDIT_ARCH_MICROBLAZE, but it's only available in the microblaze
asm headers. Move it to the common elf-em.h header so that the
define can be used on non-microblaze systems. Otherwise we get
build errors that EM_MICROBLAZE isn't defined when we try to use
the AUDIT_ARCH_MICROBLAZE symbol.
Signed-off-by: Mike Frysinger <vapier@xxxxxxxxxx>
Signed-off-by: Michal Simek <michal.simek@xxxxxxxxxx>
commit 6bb0fef489f667cf701853054f44579754f00a06
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Thu Sep 10 02:10:57 2015 +0200
netlink, mmap: fix edge-case leakages in nf queue zero-copy
When netlink mmap on receive side is the consumer of nf queue data,
it can happen that in some edge cases, we write skb shared info into
the user space mmap buffer:
Assume a possible rx ring frame size of only 4096, and the network skb,
which is being zero-copied into the netlink skb, contains page frags
with an overall skb->len larger than the linear part of the netlink
skb.
skb_zerocopy(), which is generic and thus not aware of the fact that
shared info cannot be accessed for such skbs then tries to write and
fill frags, thus leaking kernel data/pointers and in some corner cases
possibly writing out of bounds of the mmap area (when filling the
last slot in the ring buffer this way).
I.e. the ring buffer slot is then of status NL_MMAP_STATUS_VALID, has
an advertised length larger than 4096, where the linear part is visible
at the slot beginning, and the leaked sizeof(struct skb_shared_info)
has been written to the beginning of the next slot (also corrupting
the struct nl_mmap_hdr slot header incl. status etc), since skb->end
points to skb->data + ring->frame_size - NL_MMAP_HDRLEN.
The fix adds and lets __netlink_alloc_skb() take the actual needed
linear room for the network skb + meta data into account. It's completely
irrelevant for non-mmaped netlink sockets, but in case mmap sockets
are used, it can be decided whether the available skb_tailroom() is
really large enough for the buffer, or whether it needs to internally
fallback to a normal alloc_skb().
>From nf queue side, the information whether the destination port is
an mmap RX ring is not really available without extra port-to-socket
lookup, thus it can only be determined in lower layers i.e. when
__netlink_alloc_skb() is called that checks internally for this. I
chose to add the extra ldiff parameter as mmap will then still work:
We have data_len and hlen in nfqnl_build_packet_message(), data_len
is the full length (capped at queue->copy_range) for skb_zerocopy()
and hlen some possible part of data_len that needs to be copied; the
rem_len variable indicates the needed remaining linear mmap space.
The only other workaround in nf queue internally would be after
allocation time by f.e. cap'ing the data_len to the skb_tailroom()
iff we deal with an mmap skb, but that would 1) expose the fact that
we use a mmap skb to upper layers, and 2) trim the skb where we
otherwise could just have moved the full skb into the normal receive
queue.
After the patch, in my test case the ring slot doesn't fit and therefore
shows NL_MMAP_STATUS_COPY, where a full skb carries all the data and
thus needs to be picked up via recv().
Fixes: 3ab1f683bf8b ("nfnetlink: add support for memory mapped netlink")
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a66e36568e30ed3714c0e3a12bd3b64696343ff5
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Thu Sep 10 01:20:46 2015 +0200
netlink, mmap: don't walk rx ring on poll if receive queue non-empty
In case of netlink mmap, there can be situations where received frames
have to be placed into the normal receive queue. The ring buffer indicates
this through NL_MMAP_STATUS_COPY, so the user is asked to pick them up
via recvmsg(2) syscall, and to put the slot back to NL_MMAP_STATUS_UNUSED.
Commit 0ef707700f1c ("netlink: rx mmap: fix POLLIN condition") changed
polling, so that we walk in the worst case the whole ring through the
new netlink_has_valid_frame(), for example, when the ring would have no
NL_MMAP_STATUS_VALID, but at least one NL_MMAP_STATUS_COPY frame.
Since we do a datagram_poll() already earlier to pick up a mask that could
possibly contain POLLIN | POLLRDNORM already (due to NL_MMAP_STATUS_COPY),
we can skip checking the rx ring entirely.
In case the kernel is compiled with !CONFIG_NETLINK_MMAP, then all this is
irrelevant anyway as netlink_poll() is just defined as datagram_poll().
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f2be053c83ee93888fc09d90df2bded0deb28947
Author: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Date: Thu Sep 10 09:55:13 2015 +0530
cxgb4: changes for new firmware 1.14.4.0
Incorporate fw_ldst_cmd structure change for new firmware and also
update version string for the same
Signed-off-by: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9638d19e481605217f95d9ab3c8896e499b1407d
Author: Nimrod Andy <B38611@xxxxxxxxxxxxx>
Date: Thu Sep 10 09:35:39 2015 +0800
net: fec: add netif status check before set mac address
There exist one issue by below case that case system hang:
ifconfig eth0 down
ifconfig eth0 hw ether 00:10:19:19:81:19
After eth0 down, all fec clocks are gated off. In the
.fec_set_mac_address()
function, it will set new MAC address to registers, which causes system
hang.
So it needs to add netif status check to avoid registers access when
clocks are
gated off. Until eth0 up the new MAC address are wrote into related
registers.
V2:
As Lucas Stach's suggestion, add a comment in the code to explain why it
needed.
CC: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
CC: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: Fugang Duan <B38611@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1d68c286384d147838d252e2969f2f787e7fbffb
Merge: 52fe51f 2dd49e0
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Wed Sep 9 20:27:54 2015 -0700
Merge branch 'r8152-autoresume'
Hayes Wang says:
====================
r8152: fix the autoresume may fail
Fix the autosuspend issues which occur about linking change.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2dd49e0f16fb0e07c6fcc1322ebba310f5827072
Author: hayeswang <hayeswang@xxxxxxxxxxx>
Date: Mon Sep 7 11:57:44 2015 +0800
r8152: fix the runtime suspend issues
Fix the runtime suspend issues result from the linking change.
Case 1:
a) link down occurs.
b) driver disable tx/rx.
c) autosuspend occurs.
d) hw linking up.
e) device suspends without enabling tx/rx.
f) couldn't wake up when receiving packets.
Case 2:
a) Nway results in linking down.
b) autosuspend occurs.
c) device suspends.
d) device may not wake up when linking up.
Signed-off-by: Hayes Wang <hayeswang@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d0942473e3ca4629a40bbf0c9fd74fc0c7ff2a79
Author: hayeswang <hayeswang@xxxxxxxxxxx>
Date: Mon Sep 7 11:57:43 2015 +0800
r8152: split DRIVER_VERSION
Split DRIVER_VERSION into NETNEXT_VERSION and NET_VERSION. Then,
according to the value of DRIVER_VERSION, we could know which
patches are used generally without comparing the source code.
Signed-off-by: Hayes Wang <hayeswang@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 52fe51f8523751da0e79c85350c47eb3bb94da5b
Author: Wu Fengguang <fengguang.wu@xxxxxxxxx>
Date: Thu Sep 10 06:57:12 2015 +0800
ipv6: fix ifnullfree.cocci warnings
net/ipv6/route.c:2946:3-8: WARNING: NULL check before freeing functions
like kfree, debugfs_remove, debugfs_remove_recursive or usb_free_urb is not
needed. Maybe consider reorganizing relevant code to avoid passing NULL values.
NULL check before some freeing functions is not needed.
Based on checkpatch warning
"kfree(NULL) is safe this check is probably not required"
and kfreeaddr.cocci by Julia Lawall.
Generated by: scripts/coccinelle/free/ifnullfree.cocci
CC: Roopa Prabhu <roopa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 792aec47d59d951865cc617a97b6e6be53d4b977
Author: Woojung.Huh@xxxxxxxxxxxxx <Woojung.Huh@xxxxxxxxxxxxx>
Date: Wed Sep 9 20:49:53 2015 +0000
add microchip LAN88xx phy driver
Add Microchip LAN88XX phy driver for phylib.
Signed-off-by: Woojung Huh <woojung.huh@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit dfc50fcaad574e5c8c85cbc83eca1426b2413fa4
Author: Alexey Brodkin <Alexey.Brodkin@xxxxxxxxxxxx>
Date: Wed Sep 9 18:01:08 2015 +0300
stmmac: fix check for phydev being open
Current check of phydev with IS_ERR(phydev) may make not much sense
because of_phy_connect() returns NULL on failure instead of error value.
Still for checking result of phy_connect() IS_ERR() makes perfect sense.
So let's use combined check IS_ERR_OR_NULL() that covers both cases.
Cc: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Cc: Giuseppe Cavallaro <peppe.cavallaro@xxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: stable@xxxxxxxxxxxxxxx
Cc: David Miller <davem@xxxxxxxxxxxxx>
Signed-off-by: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1f0ca208531a152e1da6aa43d095fe0b2039d9ca
Author: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 10:38:05 2015 +0200
net: qlcnic: delete redundant memsets
In all cases, mbx->req.arg and mbx->rsp.arg have just been allocated
using kcalloc(), so these six memsets are redundant.
Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b66a60857ca4fae5900c5d81c2ba04e657509b99
Author: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 10:38:04 2015 +0200
net: mv643xx_eth: use kzalloc
The double memset is a little ugly; using kzalloc avoids it altogether.
Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e9b5ac277e8f8dffa28f85a065e2fd890d9e48c7
Author: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 10:38:03 2015 +0200
net: jme: use kzalloc() instead of kmalloc+memset
Using kzalloc saves a tiny bit on .text.
Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ce8e5c7035098fa5b8fea910f14be59b8cace81f
Author: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 10:38:02 2015 +0200
net: cavium: liquidio: use kzalloc in setup_glist()
We save a little .text and get rid of the sizeof(...) style
inconsistency.
Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c6e59bdac940e63cfabd40a89d342eb470b009b9
Merge: 312146b 208487a
Author: Kevin Hilman <khilman@xxxxxxxxxx>
Date: Wed Sep 9 16:15:34 2015 -0700
Merge tag 'qcom-soc-for-4.3-rc2' of
git://codeaurora.org/quic/kernel/agross-msm into next/late
Qualcomm ARM Based SoC Updates for 4.3-rc2
* Fix errant private access in SMEM
* Fix use of correct remote processor ID in SMD transactions
* Correct SMD fBLOCKREADINTR handling
* tag 'qcom-soc-for-4.3-rc2' of
git://codeaurora.org/quic/kernel/agross-msm:
soc: qcom: smd: Correct fBLOCKREADINTR handling
soc: qcom: smd: Use correct remote processor ID
soc: qcom: smem: Fix errant private access
devicetree: soc: Add Qualcomm SMD based RPM DT binding
soc: qcom: Driver for the Qualcomm RPM over SMD
soc: qcom: Add Shared Memory Driver
soc: qcom: Add device tree binding for Shared Memory Device
drivers: qcom: Select QCOM_SCM unconditionally for QCOM_PM
soc: qcom: Add Shared Memory Manager driver
commit 312146b50781a9ed1172402e170983a5e967d55d
Merge: 7f98121 8f1dc3c
Author: Kevin Hilman <khilman@xxxxxxxxxx>
Date: Wed Sep 9 16:15:19 2015 -0700
Merge tag 'qcom-dt-for-4.3-rc2' of
git://codeaurora.org/quic/kernel/agross-msm into next/late
Qualcomm ARM Based Device Tree Updates for v4.3-rc2
* Add labels for serial nodes to be used for aliasing and stdout-path
* Add stdout-path for APQ8064 Compulab QS600
* Add stdout-path for APQ8064 Inforce 6410
* Add stdout-path for APQ8074 Dragonboard
* Add stdout-path for APQ8084 Inforce 6540
* Add stdout-path for APQ8084 MTP
* Add stdout-path for IPQ8064 AP148
* Add stdout-path for MSM8660 Surf
* Add stdout-path for MSM8960 CDP
* Add stdout-path for MSM8974 Xperia Honami
* tag 'qcom-dt-for-4.3-rc2' of
git://codeaurora.org/quic/kernel/agross-msm: (24 commits)
ARM: dts: qcom: msm8974-sony-xperia-honami: Use stdout-path
ARM: dts: qcom: msm8960-cdp: Use stdout-path
ARM: dts: qcom: msm8660-surf: Use stdout-path
ARM: dts: qcom: ipq8064-ap148: Use stdout-path
ARM: dts: qcom: apq8084-mtp: Use stdout-path
ARM: dts: qcom: apq8084-ifc6540: Use stdout-path
ARM: dts: qcom: apq8074-dragonboard: Use stdout-path
ARM: dts: qcom: apq8064-ifc6410: Use stdout-path
ARM: dts: qcom: apq8064-cm-qs600: Use stdout-path
ARM: dts: qcom: Label serial nodes for aliasing and stdout-path
ARM: dts: qs600: Add real regulators to sdcc
ARM: dts: ifc6410: add real regulators for sdcc nodes.
ARM: dts: apq8064: remove temporary fixed regulator for mmc
ARM: dts: apq8064: fix missing gsbi cell-index
ARM: dts: apq8064: Add DT support for GSBI6 and for UART pin mux
ARM: dts: apq8064: add pm8921 mpp support
ARM: dts: apq8064: Add pm8921 mfd and its gpio node
ARM: dts: msm8974: Add smem reservation and node
ARM: dts: msm8974: Add tcsr mutex node
ARM: dts: qcom: Add ks8851 node for wired ethernet
...
commit 7f9812122ffaebd71d4d964f6f5109473a9fc683
Merge: 71d4404 ae1973a
Author: Kevin Hilman <khilman@xxxxxxxxxx>
Date: Wed Sep 9 16:07:41 2015 -0700
Merge branch 'next/defconfig' into next/late
* next/defconfig: (45 commits)
ARM: multi_v7_defconfig: Enable PBIAS regulator
ARM: add TC2 PM support to multi_v7_defconfig
ARM: tegra: Update multi_v7_defconfig
ARM: tegra: Update default configuration
ARM: at91/defconfig: at91_dt: remove ARM_AT91_ETHER
ARM: at91/defconfig: at91_dt: enable DRM hlcdc support
ARM: at91: at91_dt_defconfig: enable ISI and ov2640 support
ARM: multi_v7_defconfig: Enable Allwinner P2WI, PWM, DMA_SUN6I,
cryptodev
ARM: sunxi_defconfig: Enable DMA_SUN6I, P2WI, PWM, cryptodev, EXTCON,
FHANDLE
ARM: shmobile: Enable fixed voltage regulator in shmobile_defconfig
ARM: multi_v7_defconfig: Select MX6UL and MX7D
ARM: prima2_defconfig: enable build for hwspinlock
ARM: prima2_defconfig: enable build for RTC
ARM: prima2_defconfig: enable build for misc input
ARM: prima2_defconfig: enable build for SiRFSoC SDHC host
ARM: prima2_defconfig: fix the outdated defconfig
ARM: imx_v6_v7_defconfig: Select CONFIG_IKCONFIG_PROC
ARM: defconfig: orion5x: add DT support
ARM: qcom_defconfig: Enable options for KS8851 ethernet
ARM: multi_v7_defconfig: Enable support for PWM Regulators
...
commit ae1973a2df8ea48ab04cd406c569ce0b5721dd99
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Fri Sep 4 17:43:15 2015 +0530
ARM: multi_v7_defconfig: Enable PBIAS regulator
PBIAS regulator is required for MMC module in OMAP2, OMAP3, OMAP4,
OMAP5 and DRA7 SoCs. Enable it here.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Signed-off-by: Kevin Hilman <khilman@xxxxxxxxxx>
commit 71d440499b8ecbd5289bdf4ef5cce6eb62fffb0d
Merge: 7c4ecc7 9738031
Author: Kevin Hilman <khilman@xxxxxxxxxx>
Date: Wed Sep 9 15:42:45 2015 -0700
Merge branch 'drivers/reset' into next/late
* drivers/reset:
reset: ath79: Fix missing spin_lock_init
reset: Add (devm_)reset_control_get stub functions
reset: reset-zynq: Adding support for Xilinx Zynq reset controller.
docs: dts: Added documentation for Xilinx Zynq Reset Controller
bindings.
MIPS: ath79: Add the reset controller to the AR9132 dtsi
reset: Add a driver for the reset controller on the AR71XX/AR9XXX
devicetree: Add bindings for the ATH79 reset controller
reset: socfpga: Update reset-socfpga to read the altr,modrst-offset
property
doc: dt: add documentation for lpc1850-rgu reset driver
reset: add driver for lpc18xx rgu
reset: sti: constify of_device_id array
ARM: STi: DT: Move reset controller constants into common location
MAINTAINERS: add include/dt-bindings/reset path to reset controller
entry
commit 9738031561d246f625325badb03a1f1eca2d1b01
Merge: 5d44595 f319cb8
Author: Kevin Hilman <khilman@xxxxxxxxxx>
Date: Wed Sep 9 15:41:42 2015 -0700
Merge tag 'reset-for-4.3-fixes' of git://git.pengutronix.de/git/pza/linux
into drivers/reset
Merge "Reset controller fixes for v4.3" from Philipp Zabel:
Reset controller fixes for v4.3
- added stubs to avoid build breakage in COMPILE_TEST
configurations with RESET_CONTROLLER disabled
- fixed missing spinlock initialization in ath79 driver
* tag 'reset-for-4.3-fixes' of git://git.pengutronix.de/git/pza/linux:
reset: ath79: Fix missing spin_lock_init
reset: Add (devm_)reset_control_get stub functions
commit af4cb25df93d2e7a97d65db2bfacaa4400988dea
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Wed Sep 9 21:19:49 2015 +0100
ARM: uaccess: fix undefined instruction on ARMv7M/noMMU
The use of get_domain() in copy_thread() results in an oops on
ARMv7M/noMMU systems. The thread cpu_domain value is only used when
CONFIG_CPU_USE_DOMAINS is enabled, so there's no need to save the
value in copy_thread() except when this is enabled, and this option
will never be enabled on these platforms.
Unhandled exception: IPSR = 00000006 LR = fffffff1
CPU: 0 PID: 0 Comm: swapper Not tainted
4.2.0-next-20150909-00001-gb8ec5ad #41
Hardware name: NXP LPC18xx/43xx (Device Tree)
task: 2823fbe0 ti: 2823c000 task.ti: 2823c000
PC is at copy_thread+0x18/0x92
LR is at copy_thread+0x19/0x92
pc : [<2800a46e>] lr : [<2800a46f>] psr: 4100000b
sp : 2823df00 ip : 00000000 fp : 287c81c0
r10: 00000000 r9 : 00800300 r8 : 287c8000
r7 : 287c8000 r6 : 2818908d r5 : 00000000 r4 : 287ca000
r3 : 00000000 r2 : 00000000 r1 : fffffff0 r0 : 287ca048
xPSR: 4100000b
Reported-by: Ariel D'Alessandro <ariel@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 296254f3223d201f2aa53f5f717eedfdc63f3db8
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Sep 7 00:30:06 2015 +0100
ARM: uaccess: remove unneeded uaccess_save_and_disable macro
This macro is never referenced, remove it.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 39dc53deff30d9b239ac36cfeb0ef2022d03a449
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Sep 7 00:29:15 2015 +0100
ARM: swpan: fix nwfpe for uaccess changes
NWFPE needs to access userspace to check whether the next instruction
is another FP instruction. Allow userspace access for this read.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit f53de1e9a4aaf8cbe08845da6f7ff26a078ac507
Author: Phil Sutter <phil@xxxxxx>
Date: Wed Sep 9 14:20:56 2015 +0200
net: ipv6: use common fib_default_rule_pref
This switches IPv6 policy routing to use the shared
fib_default_rule_pref() function of IPv4 and DECnet. It is also used in
multicast routing for IPv4 as well as IPv6.
The motivation for this patch is a complaint about iproute2 behaving
inconsistent between IPv4 and IPv6 when adding policy rules: Formerly,
IPv6 rules were assigned a fixed priority of 0x3FFF whereas for IPv4 the
assigned priority value was decreased with each rule added.
Since then all users of the default_pref field have been converted to
assign the generic function fib_default_rule_pref(), fib_nl_newrule()
may just use it directly instead. Therefore get rid of the function
pointer altogether and make fib_default_rule_pref() static, as it's not
used outside fib_rules.c anymore.
Signed-off-by: Phil Sutter <phil@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 444c5f92ed152346aef0952316e0ea855129846c
Author: Tobias Klauser <tklauser@xxxxxxxxxx>
Date: Wed Sep 9 11:24:29 2015 +0200
net: ethoc: Remove unnecessary #ifdef CONFIG_OF
For !CONFIG_OF of_get_property() is defined to always return NULL. Thus
there's no need to protect the call to of_get_property() with #ifdef
CONFIG_OF.
Signed-off-by: Tobias Klauser <tklauser@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 03679a14739a0d4c14b52ba65a69ff553bfba73b
Author: Florian Fainelli <f.fainelli@xxxxxxxxx>
Date: Tue Sep 8 20:06:41 2015 -0700
net: dsa: bcm_sf2: Fix 64-bits register writes
The macro to write 64-bits quantities to the 32-bits register swapped
the value and offsets arguments, we want to preserve the ordering of the
arguments with respect to how writel() is implemented for instance:
value first, offset/base second.
Fixes: 246d7f773c13 ("net: dsa: add Broadcom SF2 switch driver")
Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Reviewed-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 687f07156b0c99205c21aa4e2986564046d342fe
Author: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Date: Tue Sep 8 13:40:01 2015 -0700
bpf: fix out of bounds access in verifier log
when the verifier log is enabled the print_bpf_insn() is doing
bpf_alu_string[BPF_OP(insn->code) >> 4]
and
bpf_jmp_string[BPF_OP(insn->code) >> 4]
where BPF_OP is a 4-bit instruction opcode.
Malformed insns can cause out of bounds access.
Fix it by sizing arrays appropriately.
The bug was found by clang address sanitizer with libfuzzer.
Reported-by: Yonghong Song <yhs@xxxxxxxxxxxx>
Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Acked-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6b9ea5a64ed5eeb3f68f2e6fcce0ed1179801d1e
Author: Roopa Prabhu <roopa@xxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 10:53:04 2015 -0700
ipv6: fix multipath route replace error recovery
Problem:
The ecmp route replace support for ipv6 in the kernel, deletes the
existing ecmp route too early, ie when it installs the first nexthop.
If there is an error in installing the subsequent nexthops, its too late
to recover the already deleted existing route leaving the fib
in an inconsistent state.
This patch reduces the possibility of this by doing the following:
a) Changes the existing multipath route add code to a two stage process:
build rt6_infos + insert them
ip6_route_add rt6_info creation code is moved into
ip6_route_info_create.
b) This ensures that most errors are caught during building rt6_infos
and we fail early
c) Separates multipath add and del code. Because add needs the special
two stage mode in a) and delete essentially does not care.
d) In any event if the code fails during inserting a route again, a
warning is printed (This should be unlikely)
Before the patch:
$ip -6 route show
3000:1000:1000:1000::2 via fe80::202:ff:fe00:b dev swp49s0 metric 1024
3000:1000:1000:1000::2 via fe80::202:ff:fe00:d dev swp49s1 metric 1024
3000:1000:1000:1000::2 via fe80::202:ff:fe00:f dev swp49s2 metric 1024
/* Try replacing the route with a duplicate nexthop */
$ip -6 route change 3000:1000:1000:1000::2/128 nexthop via
fe80::202:ff:fe00:b dev swp49s0 nexthop via fe80::202:ff:fe00:d dev
swp49s1 nexthop via fe80::202:ff:fe00:d dev swp49s1
RTNETLINK answers: File exists
$ip -6 route show
/* previously added ecmp route 3000:1000:1000:1000::2 dissappears from
* kernel */
After the patch:
$ip -6 route show
3000:1000:1000:1000::2 via fe80::202:ff:fe00:b dev swp49s0 metric 1024
3000:1000:1000:1000::2 via fe80::202:ff:fe00:d dev swp49s1 metric 1024
3000:1000:1000:1000::2 via fe80::202:ff:fe00:f dev swp49s2 metric 1024
/* Try replacing the route with a duplicate nexthop */
$ip -6 route change 3000:1000:1000:1000::2/128 nexthop via
fe80::202:ff:fe00:b dev swp49s0 nexthop via fe80::202:ff:fe00:d dev
swp49s1 nexthop via fe80::202:ff:fe00:d dev swp49s1
RTNETLINK answers: File exists
$ip -6 route show
3000:1000:1000:1000::2 via fe80::202:ff:fe00:b dev swp49s0 metric 1024
3000:1000:1000:1000::2 via fe80::202:ff:fe00:d dev swp49s1 metric 1024
3000:1000:1000:1000::2 via fe80::202:ff:fe00:f dev swp49s2 metric 1024
Fixes: 27596472473a ("ipv6: fix ECMP route replacement")
Signed-off-by: Roopa Prabhu <roopa@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Acked-by: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 208487a8f69084992f76ef87ddd3e00e5eaf6587
Author: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Date: Mon Aug 24 13:38:46 2015 -0700
soc: qcom: smd: Correct fBLOCKREADINTR handling
fBLOCKREADINTR is masking the notification from the remote and should
hence be cleared while we're waiting the tx fifo to drain. Also change
the reset state to mask the notification, as send is the only use case
where we're interested in it.
Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Signed-off-by: Andy Gross <agross@xxxxxxxxxxxxxx>
commit 93dbed9121cc8e0fcc93edd9fca901322bdfbd1a
Author: Andy Gross <agross@xxxxxxxxxxxxxx>
Date: Wed Aug 26 14:42:45 2015 -0500
soc: qcom: smd: Use correct remote processor ID
This patch fixes SMEM addressing issues when remote processors need to use
secure SMEM partitions.
Signed-off-by: Andy Gross <agross@xxxxxxxxxxxxxx>
Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
commit 18912806bbf8bd6e2b5cb12317679790eb0e0ce4
Author: Andy Gross <agross@xxxxxxxxxxxxxx>
Date: Tue Aug 11 23:48:15 2015 -0500
soc: qcom: smem: Fix errant private access
This patch corrects private partition item access. Instead of falling
back to
global for instances where we have an actual host and remote partition
existing,
return the results of the private lookup.
Signed-off-by: Andy Gross <agross@xxxxxxxxxxxxxx>
commit 61e19ba99e2a88392dcaee4b5e7f3e23548b8164
Merge: bc0195a ba68227
Author: Andy Gross <agross@xxxxxxxxxxxxxx>
Date: Wed Sep 9 15:56:35 2015 -0500
Merge tag 'qcom-soc-for-4.3' into v4.2-rc2
Qualcomm ARM Based SoC Updates for 4.3
* Add SMEM driver
* Add SMD driver
* Add RPM over SMD driver
* Select QCOM_SCM by default
commit 74da56ce5c6715630aed3ccc0fcb86a9210c1a56
Author: Kristen Carlson Accardi <kristen@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 11:41:22 2015 -0700
intel_pstate: fix PCT_TO_HWP macro
PCT_TO_HWP does not take the actual range of pstates exported
by HWP_CAPABILITIES in account, and is broken on most platforms.
Remove the macro and set the min and max pstate for hwp by
determining the range and adjusting by the min and max percent
limits values.
Signed-off-by: Kristen Carlson Accardi <kristen@xxxxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 43717aadd2bc87fb10fbf1cd815c1cbae9bb95b3
Author: Chen Yu <yu.c.chen@xxxxxxxxx>
Date: Wed Sep 9 18:27:31 2015 +0800
intel_pstate: Fix user input of min/max to legal policy region
In current code, max_perf_pct might be smaller than min_perf_pct
by improper user input:
$ grep . /sys/devices/system/cpu/intel_pstate/m*_perf_pct
/sys/devices/system/cpu/intel_pstate/max_perf_pct:100
/sys/devices/system/cpu/intel_pstate/min_perf_pct:100
$ echo 80 > /sys/devices/system/cpu/intel_pstate/max_perf_pct
$ grep . /sys/devices/system/cpu/intel_pstate/m*_perf_pct
/sys/devices/system/cpu/intel_pstate/max_perf_pct:80
/sys/devices/system/cpu/intel_pstate/min_perf_pct:100
Fix this problem by 2 steps:
1. Normalize the user input to [min_policy, max_policy].
2. Make sure max_perf_pct>=min_perf_pct, suggested by Seiichi Ikarashi.
Signed-off-by: Chen Yu <yu.c.chen@xxxxxxxxx>
Acked-by: Kristen Carlson Accardi <kristen@xxxxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 1b2b90cbea00670221f062814dc8bcecb3af7b90
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Wed Sep 9 16:58:22 2015 +0530
PM / OPP: Return suspend_opp only if it is enabled
There is no point returning suspend_opp, if it is disabled by the core.
As we can't use it at all. Fix it.
Fixes: 4eafbd15b6c8 ("PM / OPP: add dev_pm_opp_get_suspend_opp() helper")
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 8f1dc3cf8f1e617ec888bcdb69111aae9bf4a9e0
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Jun 16 14:31:53 2015 -0700
ARM: dts: qcom: msm8974-sony-xperia-honami: Use stdout-path
Use stdout-path so that we don't have to put the console on the
kernel command line.
Cc: Tim Bird <tim.bird@xxxxxxxxxxxxxx>
Cc: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit c0ed595961c44beea0d0dc3b0e2b1ef354931bdf
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Jun 16 14:31:52 2015 -0700
ARM: dts: qcom: msm8960-cdp: Use stdout-path
Use stdout-path so that we don't have to put the console on the
kernel command line.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit a96731089e8e0d550f017359dacaee19463517c7
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Jun 16 14:31:51 2015 -0700
ARM: dts: qcom: msm8660-surf: Use stdout-path
Use stdout-path so that we don't have to put the console on the
kernel command line.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 9a61b3a39a88b955d89c5f19e01b0b19185ebce6
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Jun 16 14:31:50 2015 -0700
ARM: dts: qcom: ipq8064-ap148: Use stdout-path
Use stdout-path so that we don't have to put the console on the
kernel command line.
Cc: Mathieu Olivari <mathieu@xxxxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit ccfdf7cd7dfaa4140702ff43d760d0eb1578d725
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Jun 16 14:31:49 2015 -0700
ARM: dts: qcom: apq8084-mtp: Use stdout-path
Use stdout-path so that we don't have to put the console on the
kernel command line.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit d92c945d854f9d973d3a0836548c93ed249b8f3a
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Jun 16 14:31:48 2015 -0700
ARM: dts: qcom: apq8084-ifc6540: Use stdout-path
Use stdout-path so that we don't have to put the console on the
kernel command line.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 5f769789bdec38c1d5b19a8743924daf87f5d023
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Jun 16 14:31:47 2015 -0700
ARM: dts: qcom: apq8074-dragonboard: Use stdout-path
Use stdout-path so that we don't have to put the console on the
kernel command line.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 7f9e28b61057da3a4aa56a79436916a821e63a35
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Jun 16 14:31:46 2015 -0700
ARM: dts: qcom: apq8064-ifc6410: Use stdout-path
Use stdout-path so that we don't have to put the console on the
kernel command line.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 4e19db11e99b27bdd4817c3d58a7ead7af8d7d7c
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Jun 16 14:31:45 2015 -0700
ARM: dts: qcom: apq8064-cm-qs600: Use stdout-path
Use stdout-path so that we don't have to put the console on the
kernel command line.
Cc: Mike Rapoport <mike.rapoport@xxxxxxxxx>
Cc: Igor Grinberg <grinberg@xxxxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 10bfcfea9bbe91adf79cc4efc9c764edd0cbadda
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Jun 16 14:31:44 2015 -0700
ARM: dts: qcom: Label serial nodes for aliasing and stdout-path
Add a label to the serial nodes that are being used for the
console.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 9f384d67f2334b5888ac9e6302f3c35a09b09787
Merge: bc0195a baff39e
Author: Andy Gross <agross@xxxxxxxxxxxxxx>
Date: Wed Sep 9 14:56:32 2015 -0500
Merge tag 'qcom-dt-for-4.3' into v4.2-rc2
Qualcomm ARM Based Device Tree Updates for v4.3
* Switch to use pinctrl compatible for GPIOs
* Add RPM regulators for MSM8960
* Add SPI Ethernet support on MSM8960 CDP
* Add SMEM support along with dependencies
* Add PM8921 support for GPIO and MPP
* Fix GSBI cell index
* Switch to use real regulators on APQ8064 w/ SDCC
commit 592867bfabe2fcb449393ba7eb0de4f972a08c63
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Tue Sep 8 18:00:09 2015 +0200
ebpf: fix fd refcount leaks related to maps in bpf syscall
We may already have gotten a proper fd struct through fdget(), so
whenever we return at the end of an map operation, we need to call
fdput(). However, each map operation from syscall side first probes
CHECK_ATTR() to verify that unused fields in the bpf_attr union are
zero.
In case of malformed input, we return with error, but the lookup to
the map_fd was already performed at that time, so that we return
without an corresponding fdput(). Fix it by performing an fdget()
only right before bpf_map_get(). The fdget() invocation on maps in
the verifier is not affected.
Fixes: db20fd2b0108 ("bpf: add lookup/update/delete/iterate methods to
BPF maps")
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6551881c86c791237a3bebf11eb3bd70b60ea782
Author: Pratyush Anand <panand@xxxxxxxxxx>
Date: Thu Aug 20 14:05:01 2015 +0530
Watchdog: Fix parent of watchdog_devices
/sys/class/watchdog/watchdogn/device/modalias can help to identify the
driver/module for a given watchdog node. However, many wdt devices do not
set their parent and so, we do not see an entry for device in sysfs for
such devices.
This patch fixes parent of watchdog_device so that
/sys/class/watchdog/watchdogn/device is populated.
Exceptions: booke, diag288, octeon, softdog and w83627hf -- They do not
have any parent. Not sure, how we can identify driver for these devices.
Signed-off-by: Pratyush Anand <panand@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Acked-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Acked-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Acked-by: Lee Jones <lee.jones@xxxxxxxxxx>
Acked-by: Lubomir Rintel <lkundrak@xxxxx>
Acked-by: Maxime Coquelin <maxime.coquelin@xxxxxx>
Acked-by: Thierry Reding <treding@xxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit bf5125d5e0759a0f513b1bcd33c15edc0cf4c17b
Author: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Date: Mon Aug 17 09:19:03 2015 -0700
watchdog: at91rm9200: Correct check for syscon_node_to_regmap() errors
syscon_node_to_regmap() returns a regmap or an ERR_PTR().
Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Acked-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit a97a09bd119fbdf4ba8c634fed8f4148d1def1e0
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Sun Aug 16 11:23:43 2015 +0200
watchdog: at91sam9: get and use slow clock
Commit dca1a4b5ff6e ("clk: at91: keep slow clk enabled to prevent system
hang") added a workaround for the slow clock as it is not properly handled
by its users.
Get and use the slow clock as it is necessary for the at91sam9 watchdog.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit f4fff94e3e3a712ef062c44b64ecf8f552f48ea4
Author: Wenyou Yang <wenyou.yang@xxxxxxxxx>
Date: Thu Aug 6 18:17:05 2015 +0800
Documentation: dt: binding: atmel-sama5d4-wdt: for SAMA5D4 watchdog driver
The compatible "atmel,sama5d4-wdt" supports the SAMA5D4 watchdog driver
and the watchdog's WDT_MR register can be written more than once.
Signed-off-by: Wenyou Yang <wenyou.yang@xxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 74e98eb085889b0d2d4908f59f6e00026063014f
Author: Sasha Levin <sasha.levin@xxxxxxxxxx>
Date: Tue Sep 8 10:53:40 2015 -0400
RDS: verify the underlying transport exists before creating a connection
There was no verification that an underlying transport exists when
creating
a connection, this would cause dereferencing a NULL ptr.
It might happen on sockets that weren't properly bound before attempting
to
send a message, which will cause a NULL ptr deref:
[135546.047719] kasan: GPF could be caused by NULL-ptr deref or user
memory accessgeneral protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
KASAN
[135546.051270] Modules linked in:
[135546.051781] CPU: 4 PID: 15650 Comm: trinity-c4 Not tainted
4.2.0-next-20150902-sasha-00041-gbaa1222-dirty #2527
[135546.053217] task: ffff8800835bc000 ti: ffff8800bc708000 task.ti:
ffff8800bc708000
[135546.054291] RIP: __rds_conn_create (net/rds/connection.c:194)
[135546.055666] RSP: 0018:ffff8800bc70fab0 EFLAGS: 00010202
[135546.056457] RAX: dffffc0000000000 RBX: 0000000000000f2c RCX:
ffff8800835bc000
[135546.057494] RDX: 0000000000000007 RSI: ffff8800835bccd8 RDI:
0000000000000038
[135546.058530] RBP: ffff8800bc70fb18 R08: 0000000000000001 R09:
0000000000000000
[135546.059556] R10: ffffed014d7a3a23 R11: ffffed014d7a3a21 R12:
0000000000000000
[135546.060614] R13: 0000000000000001 R14: ffff8801ec3d0000 R15:
0000000000000000
[135546.061668] FS: 00007faad4ffb700(0000) GS:ffff880252000000(0000)
knlGS:0000000000000000
[135546.062836] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[135546.063682] CR2: 000000000000846a CR3: 000000009d137000 CR4:
00000000000006a0
[135546.064723] Stack:
[135546.065048] ffffffffafe2055c ffffffffafe23fc1 ffffed00493097bf
ffff8801ec3d0008
[135546.066247] 0000000000000000 00000000000000d0 0000000000000000
ac194a24c0586342
[135546.067438] 1ffff100178e1f78 ffff880320581b00 ffff8800bc70fdd0
ffff880320581b00
[135546.068629] Call Trace:
[135546.069028] ? __rds_conn_create (include/linux/rcupdate.h:856
net/rds/connection.c:134)
[135546.069989] ? rds_message_copy_from_user (net/rds/message.c:298)
[135546.071021] rds_conn_create_outgoing (net/rds/connection.c:278)
[135546.071981] rds_sendmsg (net/rds/send.c:1058)
[135546.072858] ? perf_trace_lock (include/trace/events/lock.h:38)
[135546.073744] ? lockdep_init (kernel/locking/lockdep.c:3298)
[135546.074577] ? rds_send_drop_to (net/rds/send.c:976)
[135546.075508] ? __might_fault (./arch/x86/include/asm/current.h:14
mm/memory.c:3795)
[135546.076349] ? __might_fault (mm/memory.c:3795)
[135546.077179] ? rds_send_drop_to (net/rds/send.c:976)
[135546.078114] sock_sendmsg (net/socket.c:611 net/socket.c:620)
[135546.078856] SYSC_sendto (net/socket.c:1657)
[135546.079596] ? SYSC_connect (net/socket.c:1628)
[135546.080510] ? trace_dump_stack (kernel/trace/trace.c:1926)
[135546.081397] ? ring_buffer_unlock_commit
(kernel/trace/ring_buffer.c:2479 kernel/trace/ring_buffer.c:2558
kernel/trace/ring_buffer.c:2674)
[135546.082390] ? trace_buffer_unlock_commit (kernel/trace/trace.c:1749)
[135546.083410] ? trace_event_raw_event_sys_enter
(include/trace/events/syscalls.h:16)
[135546.084481] ? do_audit_syscall_entry
(include/trace/events/syscalls.h:16)
[135546.085438] ? trace_buffer_unlock_commit (kernel/trace/trace.c:1749)
[135546.085515] rds_ib_laddr_check(): addr 36.74.25.172 ret -99 node type
-1
Acked-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 76534860f108b812926a4fbfbdadbfa9cdec89d0
Author: Wenyou Yang <wenyou.yang@xxxxxxxxx>
Date: Thu Aug 6 18:16:46 2015 +0800
watchdog: add a driver to support SAMA5D4 watchdog timer
From SAMA5D4, the watchdog timer is upgrated with a new feature,
which is describled as in the datasheet, "WDT_MR can be written
until a LOCKMR command is issued in WDT_CR".
That is to say, as long as the bootstrap and u-boot don't issue
a LOCKMR command, WDT_MR can be written more than once in the driver.
So the SAMA5D4 watchdog driver's implementation is different from
the at91sam9260 watchdog driver implemented in file at91sam9_wdt.c.
The user application open the device file to enable the watchdog timer
hardware, and close to disable it, and set the watchdog timer timeout
by seting WDV and WDD fields of WDT_MR register, and ping the watchdog
by issuing WDRSTT command to WDT_CR register with hard-coded key.
Signed-off-by: Wenyou Yang <wenyou.yang@xxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit f8c33e9717150f7b8063d6d77a8ea90adad434e9
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Wed Aug 12 10:15:58 2015 +0200
watchdog: mpc8xxx: allow to compile for MPC512x
The MPC5125 processor features a watchdog device that is identical to
the MPC8610 one. So allow to enable the driver for MPC512x kernel
configurations.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 72cd501e6a9b578cf99ae062477d9c7a938a3238
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Wed Aug 12 10:15:57 2015 +0200
watchdog: mpc8xxx: use better error code when watchdog cannot be enabled
checkpatch warns about ENOSYS, telling "ENOSYS means 'invalid syscall
nr' and nothing else". So use ENODEV instead.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 7997ebad4d747ff5561cb5ec0c7423e0d4e628d5
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Wed Aug 12 10:15:56 2015 +0200
watchdog: mpc8xxx: use dynamic memory for device specific data
Instead of relying on global static memory dynamically allocate the
needed data. This has the benefit of some saved bytes if the driver is
not in use and making it possible to bind more than one device (even
though this has no known use case).
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit de5f71222bd544558d81701454eb457b295de96e
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Wed Aug 12 10:15:55 2015 +0200
watchdog: mpc8xxx: use devm_ioremap_resource to map memory
This simplifies the error paths and device unbinding.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit f0ded83b96d27b27db0015e701cfd916330e3c50
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Wed Aug 12 10:15:54 2015 +0200
watchdog: mpc8xxx: make use of of_device_get_match_data
This function is new in v4.2-rc1 and makes a forward declaration of the
match table superfluous which can so be removed.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 50ffb53ef2311e4631086d27783b00db6859c60e
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Wed Aug 12 10:15:53 2015 +0200
watchdog: mpc8xxx: simplify registration
Since commit ef90174f8210 ("watchdog: watchdog_core: Add watchdog
registration deferral mechanism") there is no need to delay the call to
watchdog_register_device any more. So simplify the registration code
accordingly.
Resetting wd_base to NULL can the also be dropped because nothing
depends on it being NULL to signal probe failure any more. (The matching
wd_base = NULL in .remove was missing, too.)
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit a57e06f7c6365f7d6e13f35933d3ef329205c1af
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Wed Aug 12 10:15:52 2015 +0200
watchdog: mpc8xxx: remove dead code
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 6cd8a1b9f71290d58099101e65e7e2279bcdb212
Author: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Date: Fri Aug 7 10:28:40 2015 -0700
watchdog: lpc18xx_wdt_get_timeleft() can be static
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit cfde37e1ec18dc68a52a1b882390c0f9c52b5f10
Author: Ariel D'Alessandro <ariel@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Aug 1 15:37:17 2015 -0300
DT: watchdog: Add NXP LPC18xx Watchdog Timer binding documentation
Add the devicetree binding document for NXP LPC18xx Watchdog Timer.
Signed-off-by: Ariel D'Alessandro <ariel@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 7c25f8c9f67708e6464d2221bc311cbd99e950dc
Author: Ariel D'Alessandro <ariel@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Aug 1 15:37:16 2015 -0300
watchdog: NXP LPC18xx Watchdog Timer Driver
This commit adds support for the watchdog timer found in NXP LPC SoCs
family, which includes LPC18xx/LPC43xx. Other SoCs in that family may
share the same watchdog hardware.
Watchdog driver registers a restart handler that will restart the system
by performing an incorrect feed after ensuring the watchdog is enabled in
reset mode.
As watchdog cannot be disabled in hardware, driver's stop routine will
regularly send a keepalive ping using a timer.
Signed-off-by: Ariel D'Alessandro <ariel@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 4f2d0b2d1b31cbe704c8f94e74e46cb64187ab0c
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Fri Jul 31 09:21:36 2015 +0200
watchdog: gpio-wdt: ping already at startup for always running devices
During probe for an always-running watchdog a timer is setup to
constantly ping the watchdog while the device is not open. The gpio to
ping the watchdog is setup to inactive.
For a watchdog with hw_algo = "toggle" this results in a ping depending
on the initial state of the gpio, for hw_algo = "level" no ping is
generated.
Make sure that the first automatic ping is sent immediately and not only
when the timer expires the first time. This makes the machine survive in
case more than half of the watchdog timeout is already elapsed. (Which
is very probable for the chip I'm faced with that has a timeout of one
second.)
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 0a0a542f6bbb2ebe956f0117c842302442ef52da
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Thu Jul 30 11:32:23 2015 +0200
watchdog: gpio-wdt: be more strict about hw_algo matching
strncmp(algo, "toggle", 6) doesn't compare the trailing '\0' byte, so
using
hw_algo = "toggleboggle"
is recognized the same way as
hw_algo = "toggle"
. While this doesn't introduce any problems for a device tree that
sticks to the documented settings it's still ugly.
Fix this by using strcmp to only match on "toggle" and "level".
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit ab54d7f017772e89964d4040937a83cd4468562a
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Fri Jul 31 11:39:39 2015 +0200
Documentation: watchdog: at91sam9_wdt: add clocks property
The watchdog has an input clock, the slow clock. It is required as it will
not function without it.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 1d5d48523900a4b0f25d6b52f1a93c84bd671186
Author: David Vrabel <david.vrabel@xxxxxxxxxx>
Date: Tue Sep 8 14:25:14 2015 +0100
xen-netback: require fewer guest Rx slots when not using GSO
Commit f48da8b14d04ca87ffcffe68829afd45f926ec6a (xen-netback: fix
unlimited guest Rx internal queue and carrier flapping) introduced a
regression.
The PV frontend in IPXE only places 4 requests on the guest Rx ring.
Since netback required at least (MAX_SKB_FRAGS + 1) slots, IPXE could
not receive any packets.
a) If GSO is not enabled on the VIF, fewer guest Rx slots are required
for the largest possible packet. Calculate the required slots
based on the maximum GSO size or the MTU.
This calculation of the number of required slots relies on
1650d5455bd2 (xen-netback: always fully coalesce guest Rx packets)
which present in 4.0-rc1 and later.
b) Reduce the Rx stall detection to checking for at least one
available Rx request. This is fine since we're predominately
concerned with detecting interfaces which are down and thus have
zero available Rx requests.
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Reviewed-by: Wei Liu <wei.liu2@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit fa928ee8d4af1f70eee77a5ac77c084a0715eb9e
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Wed Jul 29 09:45:36 2015 -0700
watchdog: booke_wdt: Use infrastructure to check timeout limits
The watchdog infrastructure checks the maximum timeout for us.
Use it.
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 64307b48f79f35d28ed6b44e20b773bc00a0152e
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Jul 27 12:03:30 2015 -0400
watchdog: (nv_tco) add support for MCP79
Tested on the Nvidia chipset with an SMBus controller PCI ID 0x0AA2
(as shown in the PCI listing during the boot sequence).
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 0919e4445190da18496d31aac08b90828a47d45f
Author: Francesco Lavra <francescolavra.fl@xxxxxxxxx>
Date: Sat Jul 25 08:25:18 2015 +0200
watchdog: sunxi: fix activation of system reset
Commit f2147de33470 ("watchdog: sunxi: support parameterized compatible
strings") introduced a regression in sunxi_wdt_start(), by which
the system reset function of the watchdog is not enabled upon
starting the watchdog. As a result, the system is not reset when the
watchdog expires. Fix it.
Fixes: f2147de33470 ("watchdog: sunxi: support parameterized compatible
strings")
Signed-off-by: Francesco Lavra <francescolavra.fl@xxxxxxxxx>
Acked-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 5724485b185a4ac4bb96149718ff736c5ef5c169
Author: Greta Zhang <greta.zhang@xxxxxxxxxxxx>
Date: Fri Jul 24 15:28:46 2015 +0800
watchdog: mtk_wdt: add wdt shutdown callback to disable wdt if enabled
Without .shutdown(), watchdog might reset the system during power off.
For example, if watchdog's timeout is set to 30s, then it is reset to
zero by mtk_wdt_ping(). During power off, no app will ping watchdog,
but watchdog is still running and may trigger reset.
Signed-off-by: Greta Zhang <greta.zhang@xxxxxxxxxxxx>
Signed-off-by: Eddie Huang <eddie.huang@xxxxxxxxxxxx>
Acked-by: Matthias Brugger <matthias.bgg@xxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 9fab06920c9207aca8ff4e2416bb10cabc19294a
Author: Greta Zhang <greta.zhang@xxxxxxxxxxxx>
Date: Fri Jul 24 15:28:45 2015 +0800
watchdog: mtk_wdt: add suspend/resume support
add mediatek watchdog driver suspend/resume support
Signed-off-by: Greta Zhang <greta.zhang@xxxxxxxxxxxx>
Signed-off-by: Roger Lu <roger.lu@xxxxxxxxxxxx>
Signed-off-by: Eddie Huang <eddie.huang@xxxxxxxxxxxx>
Acked-by: Matthias Brugger <matthias.bgg@xxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 8a340dbbc4b10fe07a924e91979bfc93e966dd65
Author: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Jul 23 17:21:16 2015 -0300
watchdog: imgpdc: Unregister restart handler on remove
Commit c631f20068 ("watchdog: imgpdc: Add reboot support") introduced
a restart handler but forgot to unregister it on driver removal. Fix it.
Fixes: c631f20068 ("watchdog: imgpdc: Add reboot support")
Reported-by: Ariel D'Alessandro <ariel@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit f15d7114bbdd594f1d8b644a44f647d2b6e9772e
Author: Timur Tabi <timur@xxxxxxxxxxxxxx>
Date: Mon Jun 29 11:46:17 2015 -0500
Documentation/watchdog: add timeout and ping rate control to
watchdog-test.c
The watchdog test program is much more useful if it can configure the
timeout value and ping rate. This will allow you to test actual timeouts.
Adds the -t parameter to set the timeout value (in seconds), and -p to set
the ping rate (number of seconds between pings).
Signed-off-by: Timur Tabi <timur@xxxxxxxxxxxxxx>
Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx>
commit 9b57ab8b58571ee57030210b74e2aabd1a18cff2
Merge: d43cefc 2a485cf
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Wed Sep 9 12:29:26 2015 -0700
Merge branch 'cxgb4-fixes'
Hariprasad Shenai says:
====================
cxgb4: Fix tx flit calculation and wc stat configuration
This patch series fixes the following:
Patch 1/2 fixes tx flit calculation, which if wrong can lead to
stall, hang, data corrpution, write combining failure. Patch 2/2 fixes
PCI-E write combining stats configuration.
This patch series has been created against net tree and includes
patches on cxgb4 driver.
We have included all the maintainers of respective drivers. Kindly review
the change and let us know in case of any review comments.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2a485cf7db2815ca0d1510143d9126c4475aab39
Author: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Date: Tue Sep 8 16:25:40 2015 +0530
cxgb4: Fix for write-combining stats configuration
The write-combining configuration register SGE_STAT_CFG_A needs to
be configured after FW initializes the adapter, else FW will reset
the configuration
Signed-off-by: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit fd1754fb8afbd9cf4ea279d533414aa6577b7e60
Author: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Date: Tue Sep 8 16:25:39 2015 +0530
cxgb4: Fix tx flit calculation
In commit 0aac3f56d4a63f04 ("cxgb4: Add comment for calculate tx flits
and sge length code") introduced a regression where tx flit calculation
is going wrong, which can lead to data corruption, hang, stall and
write-combining failure. Fixing it.
Signed-off-by: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d43cefcd68bbc9a67b2c0efe38eb9cf6b5170fe8
Author: Atsushi Nemoto <nemoto@xxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 18:15:41 2015 +0900
net: eth: altera: Fix the initial device operstate
Call netif_carrier_off() prior to register_netdev(), otherwise
userspace can see incorrect link state.
Signed-off-by: Atsushi Nemoto <nemoto@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ddab2c0eaf57b2de0b2516a477e3ce0f7554509b
Author: Michael S. Tsirkin <mst@xxxxxxxxxx>
Date: Wed Sep 9 22:03:30 2015 +0300
tools/virtio: fix build after 4.2 changes
more stubs, mostly
Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
commit b8889c4fc6ba03e289cec6a4d692f6f080a55e53
Merge: fac33bf 0de6cfb
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 11:27:01 2015 -0700
Merge tag 'tty-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty driver reverts from Greg KH:
"Here are some reverts for some tty patches (specifically the pl011
driver) that ended up breaking a bunch of machines (i.e. almost all
of the ones with this chip).
People are working on a fix for this, but in the meantime, it's best
to just revert all 5 patches to restore people's serial consoles.
These reverts have been in linux-next for many days now"
* tag 'tty-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
Revert "uart: pl011: Rename regs with enumeration"
Revert "uart: pl011: Introduce register accessor"
Revert "uart: pl011: Introduce register look up table"
Revert "uart: pl011: Improve LCRH register access decision"
Revert "uart: pl011: Add support to ZTE ZX296702 uart"
commit fac33bfdb0a54e149f8d1c2f002de5b57770b84c
Merge: 82278fc 2ff46e6
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 11:17:33 2015 -0700
Merge tag 'for-linus-20150909' of git://git.infradead.org/linux-mtd
Pull more MTD updates from Brian Norris:
"There was one significant bug in my first pull request, fixed here. I
also threw in a few trivial ID additions and a small module rename.
Details:
- SPI NOR: bug fix for a "end of table" check that resulted in a NULL
dereference in some cases
- SPI NOR: a few new IDs / feature flags
- OMAP2 NAND: rename module so it doesn't conflict with onenand
omap2.ko"
* tag 'for-linus-20150909' of git://git.infradead.org/linux-mtd:
mtd: spi-nor: fix NULL dereference when no match found in spi_nor_ids[]
mtd: spi-nor: s25sl064p supports both dual and quad I/O
mtd: spi-nor: allow dual/quad reads on S25FL129P
mtd: nand: omap2: Rename shippable module to omap2_nand
mtd: spi-nor: Add support for sst25wf020a
mtd: spi-nor: Add support for Micron n25q064a serial flash
commit 82278fc079542a04e076da34546a7d6dc649b0cc
Merge: bd2843f 7a59382
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 10:55:32 2015 -0700
Merge tag 'pwm/for-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
Pull pwm updates from Thierry Reding:
"This set of changes introduces the beginnings of a new API that's
based around the concept of states that can be atomically applied.
Drivers go to various lengths to implement something similar, which
indicates that the core should really be providing the necessary
framework.
On top of that, there is a bit of cleanup as well as improved
kerneldoc and integration into the device-drivers DocBook.
Regarding drivers there is a new one for the NXP LPC18xx family of
SoCs and a couple of fixes for existing drivers (pca9685, Broadcom
Kona and Atmel HLCDC)"
* tag 'pwm/for-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
ARM: at91: pwm: atmel-hlcdc: Add at91sam9n12 errata
pwm: Add NXP LPC18xx PWM/SCT DT binding documentation
pwm: NXP LPC18xx PWM/SCT driver
pwm-pca9685: Support changing the output frequency
pwm-pca9685: Fix several driver bugs
pwm: kona: Modify settings application sequence
pwm: pca9685: Drop owner assignment
pwm: Add to device-drivers documentation
pwm: Clean up kerneldoc
pwm: Remove useless whitespace
pwm: sysfs: Remove unnecessary padding
pwm: sysfs: Properly convert from enum to string
pwm: Make use of pwm_get_xxx() helpers where appropriate
pwm: Add pwm_get_polarity() helper function
pwm: Constify PWM device where possible
pwm: Add the pwm_is_enabled() helper
commit bd2843fe1f29f6145c623ae9390f144cefaa611d
Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 10:16:39 2015 +0100
fix ufs write vs readpage race when writing into a hole
Followup to the UFS series - with the way we clear the new blocks (via
buffer cache, possibly on more than a page worth of file) we really
should not insert a reference to new block into inode block tree until
after we'd cleared it.
Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit daf0e1ed578f65e8395102549e135887e6661860
Merge: 065d80b 997e120
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 10:37:41 2015 -0700
Merge tag 'for_linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
Pull virtio updates from Michael Tsirkin:
"Virtio fixes and features for 4.3:
- virtio-mmio can now be auto-loaded through acpi.
- virtio blk supports extended partitions.
- total memory is better reported when using virtio balloon with
auto-deflate.
- cache control is re-enabled when using virtio-blk in modern mode"
* tag 'for_linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
virtio_balloon: do not change memory amount visible via /proc/meminfo
virtio_ballon: change stub of release_pages_by_pfn
virtio-blk: Allow extended partitions
virtio_mmio: add ACPI probing
virtio-blk: use VIRTIO_BLK_F_WCE and VIRTIO_BLK_F_CONFIG_WCE in virtio1
commit 065d80b4bf314df143aa9f260a154a24e33b4fbe
Merge: 949feac e7e98d7
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 10:27:59 2015 -0700
Merge tag 'metag-for-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag
Pull metag updates from James Hogan:
"Metag architecture changes for v4.3.
Just a couple of changes for v4.3-rc1. A preparatory IRQ patch to
prepare for moving irq_data struct members, and a tweak to
Documentation/features since Meta2 could support THP"
* tag 'metag-for-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
Documentation/features/vm: Meta2 is capable of THP
metag/irq: Use access helper irq_data_get_affinity_mask()
commit 949feacb8af3659037dd34ef177e9bc727627859
Merge: 384989b 08441d4
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 10:07:32 2015 -0700
Merge tag 'nios2-v4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2
Pull nios2 updates from Ley Foon Tan:
- add defconfig and device tree for max 10 support
- migrate to new 'set-state' interface for timer
- fix unaligned handler
- MAINTAINERS: update nios2 git repo
* tag 'nios2-v4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2:
nios2: add Max10 defconfig
nios2: Add Max10 device tree
MAINTAINERS: update nios2 git repo
nios2: remove unused statistic counters
nios2: fixed variable imm16 to s16
nios2/time: Migrate to new 'set-state' interface
commit 384989b58d45e5478d555cdb4ac79336a88a45cc
Merge: d77e92e 5fb4e28
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 09:59:35 2015 -0700
Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6
Pull cifs updates from Steve French:
"Small cifs fix and a patch for improved debugging"
* 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
cifs: Fix use-after-free on mid_q_entry
Update cifs version number
Add way to query server fs info for smb3
commit d77e92e270edd79a2218ce0ba5b6179ad0c93175
Author: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 10:29:40 2015 -0600
dax: update PMD fault handler with PMEM API
As part of the v4.3 merge window the DAX code was updated by Matthew and
Kirill to handle PMD pages. Also as part of the v4.3 merge window we
updated the DAX code to do proper PMEM flushing (commit 2765cfbb342c:
"dax: update I/O path to do proper PMEM flushing").
The additional code added by the DAX PMD patches also needs to be
updated to properly use the PMEM API. This ensures that after a PMD
fault is handled the zeros written to the newly allocated pages are
durable on the DIMMs.
linux/dax.h is included to get rid of a bunch of sparse warnings.
Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Cc: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>,
Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
Cc: Kirill Shutemov <kirill@xxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 02cc2ccfe771677db3cd40a71837e1467ebc839a
Author: Mike Frysinger <vapier@xxxxxxxxxx>
Date: Wed Apr 22 21:28:04 2015 -0400
Revert "Hexagon: fix signal.c compile error"
This reverts commit f3f601c1d2728f02544cfd143eaa82e5398b3e9b.
UAPI headers cannot use "uapi/" in their paths by design -- when they're
installed, they do not have the uapi/ prefix. Otherwise doing so breaks
userland badly.
Signed-off-by: Mike Frysinger <vapier@xxxxxxxxxx>
Signed-off-by: Richard Kuo <rkuo@xxxxxxxxxxxxxx>
commit 26d2177e977c912863ac04f6c1a967e793ca3a56
Merge: a794b4f d1178cb
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 9 08:33:31 2015 -0700
Merge tag 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
Pull inifiniband/rdma updates from Doug Ledford:
"This is a fairly sizeable set of changes. I've put them through a
decent amount of testing prior to sending the pull request due to
that.
There are still a few fixups that I know are coming, but I wanted to
go ahead and get the big, sizable chunk into your hands sooner rather
than waiting for those last few fixups.
Of note is the fact that this creates what is intended to be a
temporary area in the drivers/staging tree specifically for some
cleanups and additions that are coming for the RDMA stack. We
deprecated two drivers (ipath and amso1100) and are waiting to hear
back if we can deprecate another one (ehca). We also put Intel's new
hfi1 driver into this area because it needs to be refactored and a
transfer library created out of the factored out code, and then it and
the qib driver and the soft-roce driver should all be modified to use
that library.
I expect drivers/staging/rdma to be around for three or four kernel
releases and then to go away as all of the work is completed and final
deletions of deprecated drivers are done.
Summary of changes for 4.3:
- Create drivers/staging/rdma
- Move amso1100 driver to staging/rdma and schedule for deletion
- Move ipath driver to staging/rdma and schedule for deletion
- Add hfi1 driver to staging/rdma and set TODO for move to regular
tree
- Initial support for namespaces to be used on RDMA devices
- Add RoCE GID table handling to the RDMA core caching code
- Infrastructure to support handling of devices with differing read
and write scatter gather capabilities
- Various iSER updates
- Kill off unsafe usage of global mr registrations
- Update SRP driver
- Misc mlx4 driver updates
- Support for the mr_alloc verb
- Support for a netlink interface between kernel and user space cache
daemon to speed path record queries and route resolution
- Ininitial support for safe hot removal of verbs devices"
* tag 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (136 commits)
IB/ipoib: Suppress warning for send only join failures
IB/ipoib: Clean up send-only multicast joins
IB/srp: Fix possible protection fault
IB/core: Move SM class defines from ib_mad.h to ib_smi.h
IB/core: Remove unnecessary defines from ib_mad.h
IB/hfi1: Add PSM2 user space header to header_install
IB/hfi1: Add CSRs for CONFIG_SDMA_VERBOSITY
mlx5: Fix incorrect wc pkey_index assignment for GSI messages
IB/mlx5: avoid destroying a NULL mr in reg_user_mr error flow
IB/uverbs: reject invalid or unknown opcodes
IB/cxgb4: Fix if statement in pick_local_ip6adddrs
IB/sa: Fix rdma netlink message flags
IB/ucma: HW Device hot-removal support
IB/mlx4_ib: Disassociate support
IB/uverbs: Enable device removal when there are active user space
applications
IB/uverbs: Explicitly pass ib_dev to uverbs commands
IB/uverbs: Fix race between ib_uverbs_open and remove_one
IB/uverbs: Fix reference counting usage of event files
IB/core: Make ib_dealloc_pd return void
IB/srp: Create an insecure all physical rkey only if needed
...
commit 7a5938201834a9c25155176d0f5942d48336b244
Author: Josh Wu <josh.wu@xxxxxxxxx>
Date: Fri Jul 31 18:51:20 2015 +0200
ARM: at91: pwm: atmel-hlcdc: Add at91sam9n12 errata
The errata for HLCDC PWM of at91sam9n12 are the same as for at91sam9x5.
Signed-off-by: Josh Wu <josh.wu@xxxxxxxxx>
Acked-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <thierry.reding@xxxxxxxxx>
commit b0dabcc6f8b7cb08d5c81ecbc642105d67a4c1d2
Author: Ariel D'Alessandro <ariel@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 5 23:31:47 2015 -0300
pwm: Add NXP LPC18xx PWM/SCT DT binding documentation
Add the devicetree binding document for NXP LPC18xx PWM/SCT.
Signed-off-by: Ariel D'Alessandro <ariel@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <thierry.reding@xxxxxxxxx>
commit 841e6f90bb789a1372087b22c39f3a9ef2e02758
Author: Ariel D'Alessandro <ariel@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 5 23:31:46 2015 -0300
pwm: NXP LPC18xx PWM/SCT driver
This commit adds support for NXP LPC18xx PWM/SCT.
NXP LPC SoCs family, which includes LPC18xx/LPC43xx, provides a State
Configurable Timer (SCT) which can be configured as a Pulse Width
Modulator. Other SoCs in that family may share the same hardware.
The PWM supports a total of 16 channels, but only 15 can be simultaneously
requested. There's only one period, global to all the channels, thus PWM
driver will refuse setting different values to it, unless there's only one
channel requested.
Signed-off-by: Ariel D'Alessandro <ariel@xxxxxxxxxxxxxxxxxxxx>
[thierry.reding@xxxxxxxxx: remove excessive padding of fields]
Signed-off-by: Thierry Reding <thierry.reding@xxxxxxxxx>
commit f1ec5ec7a94ba8138f9cbdc1e9e3b03aee29c4df
Author: Liam Girdwood <liam.r.girdwood@xxxxxxxxxxxxxxx>
Date: Wed Sep 9 12:10:31 2015 +0100
ASoC: intel: Fix SSP port configuration after RTD3 resume.
Currently the SSP port settings are being clobbered as part of the DSP
RTD3 restore logic. make sure we save the correct params and restore them
at resume. The FW sadly does not save SSP settings as part of the PM
context.
Signed-off-by: Liam Girdwood <liam.r.girdwood@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 721b51fcf91898299d96f4b72cb9434cda29dce6
Author: John Lin <john.lin@xxxxxxxxxxx>
Date: Wed Sep 9 16:47:48 2015 +0800
ASoC: rt5645: Add struct dmi_system_id "Google Ultima" for chrome platform
Signed-off-by: John Lin <john.lin@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit acd29f7b22262d9e848393b9b6ae13eb42d22514
Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:17:13 2015 +0100
drm/i915: Limit the number of loops for reading a split 64bit register
In I915_READ64_2x32 we attempt to read a 64bit register using 2 32bit
reads. Due to the nature of the registers we try to read in this manner,
they may increment between the two instruction (e.g. a timestamp
counter). To keep the result accurate, we repeat the read if we detect
an overflow (i.e. the upper value varies). However, some hardware is just
plain flaky and may endless loop as the the upper 32bits are not stable.
Just give up after a couple of tries and report whatever we read last.
v2: Use the most recent values when erring out on an unstable register.
Reported-by: russianneuromancer@xxxxx
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91906
Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Cc: MichaÅ? Winiarski <michal.winiarski@xxxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 438386853d4c0c48fe73bf05a7d61c70ca5a3bfb
Author: Yan, Zheng <zyan@xxxxxxxxxx>
Date: Mon Sep 7 15:46:24 2015 +0800
ceph: improve readahead for file holes
When readahead encounters file holes, osd reply returns error -ENOENT,
finish_read() skips adding pages to the the page cache. So readahead
does not work for file holes. The fix is adding zero pages to the
page cache when -ENOENT is returned.
Signed-off-by: Yan, Zheng <zyan@xxxxxxxxxx>
commit 55b0b31cbc09f80db384671e22cdc94b2aa26b29
Author: Yan, Zheng <zyan@xxxxxxxxxx>
Date: Mon Sep 7 11:35:01 2015 +0800
ceph: get inode size for each append write
Signed-off-by: Yan, Zheng <zyan@xxxxxxxxxx>
commit d15f9d694b77fe5e4ea12b3031ecaa13b5aa2b10
Author: Ilya Dryomov <idryomov@xxxxxxxxx>
Date: Wed Sep 2 11:37:09 2015 +0300
libceph: check data_len in ->alloc_msg()
Only ->alloc_msg() should check data_len of the incoming message
against the preallocated ceph_msg, doing it in the messenger is not
right. The contract is that either ->alloc_msg() returns a ceph_msg
which will fit all of the portions of the incoming message, or it
returns NULL and possibly sets skip, signaling whether NULL is due to
an -ENOMEM. ->alloc_msg() should be the only place where we make the
skip/no-skip decision.
I stumbled upon this while looking at con/osd ref counting. Right now,
if we get a non-extent message with a larger data portion than we are
prepared for, ->alloc_msg() returns a ceph_msg, and then, when we skip
it in the messenger, we don't put the con/osd ref acquired in
ceph_con_in_msg_alloc() (which is normally put in process_message()),
so this also fixes a memory leak.
An existing BUG_ON in ceph_msg_data_cursor_init() ensures we don't
corrupt random memory should a buggy ->alloc_msg() return an unfit
ceph_msg.
While at it, I changed the "unknown tid" dout() to a pr_warn() to make
sure all skips are seen and unified format strings.
Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>
Reviewed-by: Alex Elder <elder@xxxxxxxxxx>
commit 7845989cb4b3da1db903918c844fccb9817d34a0
Author: Kolmakov Dmitriy <kolmakov.dmitriy@xxxxxxxxxx>
Date: Mon Sep 7 09:05:48 2015 +0000
net: tipc: fix stall during bclink wakeup procedure
If an attempt to wake up users of broadcast link is made when there is
no enough place in send queue than it may hang up inside the
tipc_sk_rcv() function since the loop breaks only after the wake up
queue becomes empty. This can lead to complete CPU stall with the
following message generated by RCU:
INFO: rcu_sched self-detected stall on CPU { 0} (t=2101 jiffies
g=54225 c=54224 q=11465)
Task dump for CPU 0:
tpch R running task 0 39949 39948 0x0000000a
ffffffff818536c0 ffff88181fa037a0 ffffffff8106a4be 0000000000000000
ffffffff818536c0 ffff88181fa037c0 ffffffff8106d8a8 ffff88181fa03800
0000000000000001 ffff88181fa037f0 ffffffff81094a50 ffff88181fa15680
Call Trace:
<IRQ> [<ffffffff8106a4be>] sched_show_task+0xae/0x120
[<ffffffff8106d8a8>] dump_cpu_task+0x38/0x40
[<ffffffff81094a50>] rcu_dump_cpu_stacks+0x90/0xd0
[<ffffffff81097c3b>] rcu_check_callbacks+0x3eb/0x6e0
[<ffffffff8106e53f>] ? account_system_time+0x7f/0x170
[<ffffffff81099e64>] update_process_times+0x34/0x60
[<ffffffff810a84d1>] tick_sched_handle.isra.18+0x31/0x40
[<ffffffff810a851c>] tick_sched_timer+0x3c/0x70
[<ffffffff8109a43d>] __run_hrtimer.isra.34+0x3d/0xc0
[<ffffffff8109aa95>] hrtimer_interrupt+0xc5/0x1e0
[<ffffffff81030d52>] ? native_smp_send_reschedule+0x42/0x60
[<ffffffff81032f04>] local_apic_timer_interrupt+0x34/0x60
[<ffffffff810335bc>] smp_apic_timer_interrupt+0x3c/0x60
[<ffffffff8165a3fb>] apic_timer_interrupt+0x6b/0x70
[<ffffffff81659129>] ? _raw_spin_unlock_irqrestore+0x9/0x10
[<ffffffff8107eb9f>] __wake_up_sync_key+0x4f/0x60
[<ffffffffa313ddd1>] tipc_write_space+0x31/0x40 [tipc]
[<ffffffffa313dadf>] filter_rcv+0x31f/0x520 [tipc]
[<ffffffffa313d699>] ? tipc_sk_lookup+0xc9/0x110 [tipc]
[<ffffffff81659259>] ? _raw_spin_lock_bh+0x19/0x30
[<ffffffffa314122c>] tipc_sk_rcv+0x2dc/0x3e0 [tipc]
[<ffffffffa312e7ff>] tipc_bclink_wakeup_users+0x2f/0x40 [tipc]
[<ffffffffa313ce26>] tipc_node_unlock+0x186/0x190 [tipc]
[<ffffffff81597c1c>] ? kfree_skb+0x2c/0x40
[<ffffffffa313475c>] tipc_rcv+0x2ac/0x8c0 [tipc]
[<ffffffffa312ff58>] tipc_l2_rcv_msg+0x38/0x50 [tipc]
[<ffffffff815a76d3>] __netif_receive_skb_core+0x5a3/0x950
[<ffffffff815a98d3>] __netif_receive_skb+0x13/0x60
[<ffffffff815a993e>] netif_receive_skb_internal+0x1e/0x90
[<ffffffff815aa138>] napi_gro_receive+0x78/0xa0
[<ffffffffa07f93f4>] tg3_poll_work+0xc54/0xf40 [tg3]
[<ffffffff81597c8c>] ? consume_skb+0x2c/0x40
[<ffffffffa07f9721>] tg3_poll_msix+0x41/0x160 [tg3]
[<ffffffff815ab0f2>] net_rx_action+0xe2/0x290
[<ffffffff8104b92a>] __do_softirq+0xda/0x1f0
[<ffffffff8104bc26>] irq_exit+0x76/0xa0
[<ffffffff81004355>] do_IRQ+0x55/0xf0
[<ffffffff8165a12b>] common_interrupt+0x6b/0x6b
<EOI>
The issue occurs only when tipc_sk_rcv() is used to wake up postponed
senders:
tipc_bclink_wakeup_users()
// wakeupq - is a queue which consists of special
// messages with SOCK_WAKEUP type.
tipc_sk_rcv(wakeupq)
...
while (skb_queue_len(inputq)) {
filter_rcv(skb)
// Here the type of message is checked
// and if it is SOCK_WAKEUP then
// it tries to wake up a sender.
tipc_write_space(sk)
wake_up_interruptible_sync_poll()
}
After the sender thread is woke up it can gather control and perform
an attempt to send a message. But if there is no enough place in send
queue it will call link_schedule_user() function which puts a message
of type SOCK_WAKEUP to the wakeup queue and put the sender to sleep.
Thus the size of the queue actually is not changed and the while()
loop never exits.
The approach I proposed is to wake up only senders for which there is
enough place in send queue so the described issue can't occur.
Moreover the same approach is already used to wake up senders on
unicast links.
I have got into the issue on our product code but to reproduce the
issue I changed a benchmark test application (from
tipcutils/demos/benchmark) to perform the following scenario:
1. Run 64 instances of test application (nodes). It can be done
on the one physical machine.
2. Each application connects to all other using TIPC sockets in
RDM mode.
3. When setup is done all nodes start simultaneously send
broadcast messages.
4. Everything hangs up.
The issue is reproducible only when a congestion on broadcast link
occurs. For example, when there are only 8 nodes it works fine since
congestion doesn't occur. Send queue limit is 40 in my case (I use a
critical importance level) and when 64 nodes send a message at the
same moment a congestion occurs every time.
Signed-off-by: Dmitry S Kolmakov <kolmakov.dmitriy@xxxxxxxxxx>
Reviewed-by: Jon Maloy <jon.maloy@xxxxxxxxxxxx>
Acked-by: Ying Xue <ying.xue@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7b9018738e43c7c7693632174c69fde83b8edc07
Author: Barry Song <Baohua.Song@xxxxxxx>
Date: Mon Sep 7 03:15:20 2015 +0000
dm9000: fix a typo
Signed-off-by: Barry Song <Baohua.Song@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7a577f013d6745c800a11a2911ddc9a3214e7f09
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 5 21:49:41 2015 -0400
net: bridge: remove unnecessary switchdev include
Remove the unnecessary switchdev.h include from br_netlink.c.
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Acked-by: Jiri Pirko <jiri@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit bf361ad38165939049a2649b1a0078f3268d4bd1
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 5 21:27:57 2015 -0400
net: bridge: check __vlan_vid_del for error
Since __vlan_del can return an error code, change its inner function
__vlan_vid_del to return an eventual error from switchdev_port_obj_del.
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Acked-by: Jiri Pirko <jiri@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 39797a279d62972cd914ef580fdfacb13e508bf8
Author: Florian Fainelli <f.fainelli@xxxxxxxxx>
Date: Sat Sep 5 13:07:27 2015 -0700
net: dsa: bcm_sf2: Fix ageing conditions and operation
The comparison check between cur_hw_state and hw_state is currently
invalid because cur_hw_state is right shifted by G_MISTP_SHIFT, while
hw_state is not, so we end-up comparing bits 2:0 with bits 7:5, which is
going to cause an additional aging to occur. Fix this by not shifting
cur_hw_state while reading it, but instead, mask the value with the
appropriately shitfted bitmask.
The other problem with the fast-ageing process is that we did not set
the EN_AGE_DYNAMIC bit to request the ageing to occur for dynamically
learned MAC addresses. Finally, write back 0 to the FAST_AGE_CTRL
register to avoid leaving spurious bits sets from one operation to the
other.
Fixes: 12f460f23423 ("net: dsa: bcm_sf2: add HW bridging support")
Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b855d45dc3175eb3e602b945805c7b6aa8c04559
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Tue Sep 8 15:16:09 2015 +1000
powerpc: Wire up sys_userfaultfd()
The selftest passes on 64-bit LE and BE.
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit a794b4f3292160bb3fd0f1f90ec8df454e3b17b3
Merge: f6f7a63 bf2d087
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 18:19:17 2015 -0700
Merge tag 'for-linus-4.3' of git://git.code.sf.net/p/openipmi/linux-ipmi
Pull IPMI updates from Corey Minyard:
"Most of these have been sitting in linux-next for more than a release,
particularly commit 0fbcf4af7c83 ("ipmi: Convert the IPMI SI ACPI
handling to a platform device") which is probably the most complex
patch.
That is also the one that changes drivers/acpi/acpi_pnp.c. The change
in that file is only removing IPMI from a "special platform devices"
list, since I convert it to the standard PNP interface. I posted this
one to the ACPI list twice and got no response, and it seems to work
well in my testing, so I'm hoping it's good.
Hidehiro Kawai posted a set of changes that improves the panic time
handling in the IPMI driver.
The rest of the changes are minor bug fixes or cleanups and some
documentation"
* tag 'for-linus-4.3' of git://git.code.sf.net/p/openipmi/linux-ipmi:
ipmi:ssif: Add a module parm to specify that SMBus alerts don't work
ipmi: add of_device_id in MODULE_DEVICE_TABLE
ipmi: Compensate for BMCs that wont set the irq enable bit
ipmi: Don't call receive handler in the panic context
ipmi: Avoid touching possible corrupted lists in the panic context
ipmi: Don't flush messages in sender() in run-to-completion mode
ipmi: Factor out message flushing procedure
ipmi: Remove unneeded set_run_to_completion call
ipmi: Make some data const that was only read
ipmi: constify SSIF ACPI device ids
ipmi: Delete an unnecessary check before the function call
"cleanup_one_si"
char:ipmi - Change 1 to true for bool type variables during
initialization.
impi:Remove unneeded setting of module owner to THIS_MODULE in the
platform structure, powernv_ipmi_driver
ipmi: Add a comment in how messages are delivered from the lower layer
ipmi/powernv: Fix potential invalid pointer dereference
ipmi: Convert the IPMI SI ACPI handling to a platform device
ipmi: Add device tree bindings information
commit f6f7a6369203fa3e07efb7f35cfd81efe9f25b07
Merge: 839fe91 df69f52
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 17:52:23 2015 -0700
Merge branch 'akpm' (patches from Andrew)
Merge second patch-bomb from Andrew Morton:
"Almost all of the rest of MM. There was an unusually large amount of
MM material this time"
* emailed patches from Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>: (141
commits)
zpool: remove no-op module init/exit
mm: zbud: constify the zbud_ops
mm: zpool: constify the zpool_ops
mm: swap: zswap: maybe_preload & refactoring
zram: unify error reporting
zsmalloc: remove null check from destroy_handle_cache()
zsmalloc: do not take class lock in zs_shrinker_count()
zsmalloc: use class->pages_per_zspage
zsmalloc: consider ZS_ALMOST_FULL as migrate source
zsmalloc: partial page ordering within a fullness_list
zsmalloc: use shrinker to trigger auto-compaction
zsmalloc: account the number of compacted pages
zsmalloc/zram: introduce zs_pool_stats api
zsmalloc: cosmetic compaction code adjustments
zsmalloc: introduce zs_can_compact() function
zsmalloc: always keep per-class stats
zsmalloc: drop unused variable `nr_to_migrate'
mm/memblock.c: fix comment in __next_mem_range()
mm/page_alloc.c: fix type information of memoryless node
memory-hotplug: fix comments in zone_spanned_pages_in_node() and
zone_spanned_pages_in_node()
...
commit 839fe9156fbe89c3157aa6146d22090f8cffddd8
Merge: 54283ae 6dc0dcd
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 17:45:05 2015 -0700
Merge branch 'parisc-4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
Pull parisc updates from Helge Deller:
"The most important changes in this patchset are:
- re-enable 64bit PCI bus addresses which were temporarily disabled
for PA-RISC in kernel 4.2
- fix the 64bit CAS operation in the LWS path which now enables us to
enable the 64bit gcc atomic builtins even on 32bit userspace with
64bit kernel
- fix a long-standing bug which sometimes crashed kernel at bootup
while serial interrupt wasn't registered yet"
* 'parisc-4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
parisc: Use platform_device_register_simple("rtc-generic")
parisc: Drop CONFIG_SMP around update_cr16_clocksource()
parisc: Use double word condition in 64bit CAS operation
parisc: Filter out spurious interrupts in PA-RISC irq handler
parisc: Additionally check for in_atomic() in page fault handler
PCI,parisc: Enable 64-bit bus addresses on PA-RISC
parisc: Define ioremap_uc and ioremap_wc
commit 54283aed90c3cf353e2c01a1d1ca853f5eedf92a
Merge: 9a9952b 7eba7d9
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 17:39:10 2015 -0700
Merge tag 'linux-kselftest-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
Pull kselftest update from Shuah Khan:
"This update adds new zram test and fixes to problems found during
testing this new zram test. In addition, there are a few bug fixes
and ksefltest improvement patches from Linaro developers.
I will send another update later on this week to fix kselftest
breakage due to commit 2bf9e0ab08c6 ("locking/static_keys: Provide a
selftest") after the fix soaks in next for a couple of days"
* tag 'linux-kselftest-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
selftests/zram: Makefile fix
selftests/zram: must be run as root
selftests: breakpoints: fix installing error on the architecture except
x86
selftests: check before install
selftests/zram: Adding zram tests
commit 953ba9ff77f3d08635712eaeffb218d46889b58a
Author: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Date: Tue Sep 8 18:41:03 2015 +0200
cpufreq-dt: add suspend frequency support
Add suspend frequency support and if needed set it to
the frequency obtained from the suspend opp (can be defined
using opp-v2 bindings and is optional).
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 201f3716575781b83259ed026845a213c2355035
Author: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Date: Tue Sep 8 18:41:02 2015 +0200
cpufreq: allow cpufreq_generic_suspend() to work without suspend frequency
Some cpufreq drivers may set suspend frequency only for
selected setups but still would like to use the generic
suspend handler. Thus don't treat !policy->suspend_freq
condition as an incorrect one.
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 9a9952bbd76a13fc2c95c28f09ba1801a3664929
Merge: e81b594 4ad7956
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 17:22:35 2015 -0700
Merge tag 'iommu-updates-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu
Pull iommu updates for from Joerg Roedel:
"This time the IOMMU updates are mostly cleanups or fixes. No big new
features or drivers this time. In particular the changes include:
- Bigger cleanup of the Domain<->IOMMU data structures and the code
that manages them in the Intel VT-d driver. This makes the code
easier to understand and maintain, and also easier to keep the data
structures in sync. It is also a preparation step to make use of
default domains from the IOMMU core in the Intel VT-d driver.
- Fixes for a couple of DMA-API misuses in ARM IOMMU drivers, namely
in the ARM and Tegra SMMU drivers.
- Fix for a potential buffer overflow in the OMAP iommu driver's
debug code
- A couple of smaller fixes and cleanups in various drivers
- One small new feature: Report domain-id usage in the Intel VT-d
driver to easier detect bugs where these are leaked"
* tag 'iommu-updates-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (83 commits)
iommu/vt-d: Really use upper context table when necessary
x86/vt-d: Fix documentation of DRHD
iommu/fsl: Really fix init section(s) content
iommu/io-pgtable-arm: Unmap and free table when overwriting with block
iommu/io-pgtable-arm: Move init-fn declarations to io-pgtable.h
iommu/msm: Use BUG_ON instead of if () BUG()
iommu/vt-d: Access iomem correctly
iommu/vt-d: Make two functions static
iommu/vt-d: Use BUG_ON instead of if () BUG()
iommu/vt-d: Return false instead of 0 in irq_remapping_cap()
iommu/amd: Use BUG_ON instead of if () BUG()
iommu/amd: Make a symbol static
iommu/amd: Simplify allocation in irq_remapping_alloc()
iommu/tegra-smmu: Parameterize number of TLB lines
iommu/tegra-smmu: Factor out tegra_smmu_set_pde()
iommu/tegra-smmu: Extract tegra_smmu_pte_get_use()
iommu/tegra-smmu: Use __GFP_ZERO to allocate zeroed pages
iommu/tegra-smmu: Remove PageReserved manipulation
iommu/tegra-smmu: Convert to use DMA API
iommu/tegra-smmu: smmu_flush_ptc() wants device addresses
...
commit d9df93ec8eb751f96c8070f104fa2a588b5ad345
Merge: 63431f7 4eafbd1
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Wed Sep 9 02:21:06 2015 +0200
Merge branch 'pm-opp' into pm-cpufreq
commit 4eafbd15b6c84cd3f6c76022c8a6c27f7cc076e1
Author: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Date: Tue Sep 8 18:41:01 2015 +0200
PM / OPP: add dev_pm_opp_get_suspend_opp() helper
Add dev_pm_opp_get_suspend_opp() helper to obtain suspend opp.
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit f33b77408a91d4427374010897b90af678dc47be
Author: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Date: Tue Sep 8 19:06:03 2015 +0200
staging: board: Migrate away from __pm_genpd_name_add_device()
The named genpd APIs are deprecated. Hence convert the board staging
code from using genpd names to DT node paths.
For now this supports PM domains with "#power-domain-cells = <0>" only.
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Reviewed-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Acked-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit e81b594cdae73f341ea13bc9fb2b57a5b739c1a3
Merge: fa81558 072502a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 16:48:55 2015 -0700
Merge tag 'regmap-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap
Pull regmap updates from Mark Brown:
"This has been a busy release for regmap.
By far the biggest set of changes here are those from Markus Pargmann
which implement support for block transfers in smbus devices. This
required quite a bit of refactoring but leaves us better able to
handle odd restrictions that controllers may have and with better
performance on smbus.
Other new features include:
- Fix interactions with lockdep for nested regmaps (eg, when a device
using regmap is connected to a bus where the bus controller has a
separate regmap). Lockdep's default class identification is too
crude to work without help.
- Support for must write bitfield operations, useful for operations
which require writing a bit to trigger them from Kuniori Morimoto.
- Support for delaying during register patch application from Nariman
Poushin.
- Support for overriding cache state via the debugfs implementation
from Richard Fitzgerald"
* tag 'regmap-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: (25 commits)
regmap: fix a NULL pointer dereference in __regmap_init
regmap: Support bulk reads for devices without raw formatting
regmap-i2c: Add smbus i2c block support
regmap: Add raw_write/read checks for max_raw_write/read sizes
regmap: regmap max_raw_read/write getter functions
regmap: Introduce max_raw_read/write for regmap_bulk_read/write
regmap: Add missing comments about struct regmap_bus
regmap: No multi_write support if bus->write does not exist
regmap: Split use_single_rw internally into use_single_read/write
regmap: Fix regmap_bulk_write for bus writes
regmap: regmap_raw_read return error on !bus->read
regulator: core: Print at debug level on debugfs creation failure
regmap: Fix regmap_can_raw_write check
regmap: fix typos in regmap.c
regmap: Fix integertypes for register address and value
regmap: Move documentation to regmap.h
regmap: Use different lockdep class for each regmap init call
thermal: sti: Add parentheses around bridge->ops->regmap_init call
mfd: vexpress: Add parentheses around bridge->ops->regmap_init call
regmap: debugfs: Fix misuse of IS_ENABLED
...
commit d70e22d5bcf700a53881acad71a6c669be6eec93
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Thu Jul 16 16:56:19 2015 +0530
hexagon/time: Migrate to new 'set-state' interface
Migrate hexagon driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
We weren't doing anything in the ->set_mode() callback. So, this patch
doesn't provide any set-state callbacks.
Cc: linux-hexagon@xxxxxxxxxxxxxxx
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Richard Kuo <rkuo@xxxxxxxxxxxxxx>
commit fa815580fb87d1b8c218f9eba8122b2fc3f1a68c
Merge: 85579ad 57817e6
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 16:42:55 2015 -0700
Merge tag 'fbdev-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux
Pull fbdev updates from Tomi Valkeinen:
"Minor fixes and cleanups"
* tag 'fbdev-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux:
video: fbdev: atmel_lcdfb: remove useless include
video: fbdev: pxa168fb: Use devm_clk_get
fbdev: ssd1307fb: fix error return code
fbdev: fix snprintf() limit in show_bl_curve()
video: fbdev: s3c-fb: Constify platform_device_id
video: fbdev: atmel: fix warning for const return value
video: fbdev: Drop owner assignment from platform_driver
video: fbdev: Drop owner assignment from i2c_driver
fbdev: remove unnecessary memset in vfb
framebuffer: disable vgacon on microblaze arch
fbdev: udlfb: remove unneeded initialization in few places
fbdev: Allow compile test of GPIO consumers if !GPIOLIB
fbdev: fix cea_modes array size
commit 12f0721c5a70408e86257c5c99605cf743cd44c6
Author: Aristeu Rozanski <aris@xxxxxxxxxx>
Date: Fri Jun 12 15:08:17 2015 -0400
sb_edac: correctly fetch DIMM width on Ivy Bridge and Haswell
dimm_dev_type has been incorrectly determined in sb_edac. This patch
fixes it
for Ivy Bridge and Haswell only since nothing like exists for Sandy
Bridge.
We tested this patch in multiple systems matching the results with the
installed memory modules.
Acked-by: Tony Luck <tony.luck@xxxxxxxxx>
Signed-off-by: Aristeu Rozanski <aris@xxxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 85579ad7f1dfc0b72bb243b7227bc4f663035e71
Merge: 3af6e98 092b6db
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 16:33:16 2015 -0700
Merge tag 'mmc-v4.3' of git://git.linaro.org/people/ulf.hansson/mmc
Pull MMC updates from Ulf Hansson:
"MMC core:
- Fix a race condition in the request handling
- Skip trim commands for some buggy kingston eMMCs
- An optimization and a correction for erase groups
- Set CMD23 quirk for some Sandisk cards
MMC host:
- sdhci: Give GPIO CD higher precedence and don't poll when it's used
- sdhci: Fix DMA memory leakage
- sdhci: Some updates for clock management
- sdhci-of-at91: introduce driver for the Atmel SDMMC
- sdhci-of-arasan: Add support for sdhci-5.1
- sdhci-esdhc-imx: Add support for imx7d which also supports HS400
- sdhci: A collection of fixes and improvements for various sdhci hosts
- omap_hsmmc: Modernization of the regulator code
- dw_mmc: A couple of fixes for DMA and PIO mode
- usdhi6rol0: A few fixes and support probe deferral for regulators
- pxamci: Convert to use dmaengine
- sh_mmcif: Fix the suspend process in a short term solution
- tmio: Adjust timeout for commands
- sunxi: Fix timeout while gating/ungating clock"
* tag 'mmc-v4.3' of git://git.linaro.org/people/ulf.hansson/mmc: (67
commits)
mmc: android-goldfish: remove incorrect __iomem annotation
mmc: core: fix race condition in mmc_wait_data_done
mmc: host: omap_hsmmc: remove CONFIG_REGULATOR check
mmc: host: omap_hsmmc: use ios->vdd for setting vmmc voltage
mmc: host: omap_hsmmc: use regulator_is_enabled to find pbias status
mmc: host: omap_hsmmc: enable/disable vmmc_aux regulator based on
previous state
mmc: host: omap_hsmmc: don't use ->set_power to set initial regulator
state
mmc: host: omap_hsmmc: avoid pbias regulator enable on power off
mmc: host: omap_hsmmc: add separate function to set pbias
mmc: host: omap_hsmmc: add separate functions for enable/disable supply
mmc: host: omap_hsmmc: return error if any of the regulator APIs fail
mmc: host: omap_hsmmc: remove unnecessary pbias set_voltage
mmc: host: omap_hsmmc: use mmc_host's vmmc and vqmmc
mmc: host: omap_hsmmc: use the ocrmask provided by the vmmc regulator
mmc: host: omap_hsmmc: cleanup omap_hsmmc_reg_get()
mmc: host: omap_hsmmc: return on fatal errors from omap_hsmmc_reg_get
mmc: host: omap_hsmmc: use devm_regulator_get_optional() for vmmc
mmc: sdhci-of-at91: fix platform_no_drv_owner.cocci warnings
mmc: sh_mmcif: Fix suspend process
mmc: usdhi6rol0: fix error return code
...
commit 7179385afef252cd3f52c0a06cc0c405ae6d66bc
Author: Aristeu Rozanski <aris@xxxxxxxxxx>
Date: Fri Jun 12 09:44:52 2015 -0400
sb_edac: look harder for DDRIO on Haswell systems
In case the memory banks are populated so the first channel isn't used,
the
DDRIO PCI device won't be visible and it won't be possible to determine
the
memory type.
Acked-by: Tony Luck <tony.luck@xxxxxxxxx>
Signed-off-by: Aristeu Rozanski <aris@xxxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 3af6e98f25d1f68b9c36beee330342944a4e0048
Merge: acceba5 628b3198
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 16:26:18 2015 -0700
Merge tag 'platform-drivers-x86-v4.3-1' of
git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
Pull x86 platform driver updates from Darren Hart:
"Significant work on toshiba_acpi, including new hardware support,
refactoring, and cleanups. Extend device support for asus, ideapad,
and acer systems. New surface pro 3 buttons driver. Misc minor
cleanups for thinkpad and hp-wireless.
acer-wmi:
- No rfkill on HP Omen 15 wifi
thinkpad_acpi:
- Remove side effects from vdbg_printk -> no_printk macro
surface pro 3:
- Add support driver for Surface Pro 3 buttons
hp-wireless:
- remove unneeded goto/label in hpwl_init
ideapad-laptop:
- add alternative representation for Yoga 2 to DMI table
- Add Lenovo Yoga 3 14 to no_hw_rfkill dmi list
asus-laptop:
- Add key found on Asus F3M
MAINTAINERS:
- Remove Toshiba Linux mailing list address
toshiba_acpi:
- Bump driver version to 0.23
- Remove unnecessary checks and returns in HCI/SCI functions
- Refactor *{get, set} functions return value
- Remove "*not supported" feature prints
- Change *available functions return type
- Add set_fan_status function
- Change some variables to avoid warnings from ninja-check
- Reorder toshiba_acpi_alt_keymap entries
- Remove unused wireless defines
- Transflective backlight updates
- Avoid registering input device on WMI event laptops
- Add /dev/toshiba_acpi device
- Adapt /proc/acpi/toshiba/keys to TOS1900 devices"
* tag 'platform-drivers-x86-v4.3-1' of
git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: (21 commits)
acer-wmi: No rfkill on HP Omen 15 wifi
thinkpad_acpi: Remove side effects from vdbg_printk -> no_printk macro
surface pro 3: Add support driver for Surface Pro 3 buttons
hp-wireless: remove unneeded goto/label in hpwl_init
ideapad-laptop: add alternative representation for Yoga 2 to DMI table
asus-laptop: Add key found on Asus F3M
MAINTAINERS: Remove Toshiba Linux mailing list address
ideapad-laptop: Add Lenovo Yoga 3 14 to no_hw_rfkill dmi list
toshiba_acpi: Bump driver version to 0.23
toshiba_acpi: Remove unnecessary checks and returns in HCI/SCI functions
toshiba_acpi: Refactor *{get, set} functions return value
toshiba_acpi: Remove "*not supported" feature prints
toshiba_acpi: Change *available functions return type
toshiba_acpi: Add set_fan_status function
toshiba_acpi: Change some variables to avoid warnings from ninja-check
toshiba_acpi: Reorder toshiba_acpi_alt_keymap entries
toshiba_acpi: Remove unused wireless defines
toshiba_acpi: Transflective backlight updates
toshiba_acpi: Avoid registering input device on WMI event laptops
toshiba_acpi: Add /dev/toshiba_acpi device
...
commit acceba598eda9817bc187f3a683a2d2ee7e7fbc7
Merge: c191761 5a73882
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 16:16:26 2015 -0700
Merge branch 'i2c/for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c updates from Wolfram Sang:
"Features:
- new drivers: Renesas EMEV2, register based MUX, NXP LPC2xxx
- core: scans DT and assigns wakeup interrupts. no driver changes
needed.
- core: some refcouting issues fixed and better API for that
- core: new helper function for best effort block read emulation
- slave framework: proper DT bindings and userspace instantiation
- some bigger work for xiic, pxa, omap drivers
.. and quite a number of smaller driver fixes, cleanups, improvements"
* 'i2c/for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (65 commits)
i2c: mux: reg Change ioread endianness for readback
i2c: mux: reg: fix compilation warnings
i2c: mux: reg: simplify register size checking
i2c: muxes: fix leaked i2c adapter device node references
i2c: allow specifying separate wakeup interrupt in device tree
of/irq: export of_get_irq_byname()
i2c: xgene-slimpro: dma_mapping_error() doesn't return an error code
i2c: Replace I2C_CROS_EC_TUNNEL dependency
eeprom: at24: use i2c_smbus_read_i2c_block_data_or_emulated
i2c: core: Add support for best effort block read emulation
i2c: lpc2k: add driver
i2c: mux: Add register-based mux i2c-mux-reg
i2c: dt: describe generic bindings
i2c: slave: print warning if slave flag not set
i2c: support 10 bit and slave addresses in sysfs 'new_device'
i2c: take address space into account when checking for used addresses
i2c: apply DT flags when probing
i2c: make address check indpendent from client struct
i2c: rename address check functions
i2c: apply address offset for slaves, too
...
commit c19176154b464c861e49355eff636aa6896735b5
Merge: 12f03ee 5f1b2f7
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 15:46:31 2015 -0700
Merge tag 'rtc-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
Pull RTC updates from Alexandre Belloni:
"Core:
- use is_visible() to control sysfs attributes
- switch wakealarm attribute to DEVICE_ATTR_RW
- make rtc_does_wakealarm() return boolean
- properly manage lifetime of dev and cdev in rtc device
- remove unnecessary device_get() in rtc_device_unregister
- fix double free in rtc_register_device() error path
New drivers:
- NXP LPC24xx
- Xilinx Zynq MP
- Dialog DA9062
Subsystem wide cleanups:
- fix drivers that consider 0 as a valid IRQ in client->irq
- Drop (un)likely before IS_ERR(_OR_NULL)
- drop the remaining owner assignment for i2c_driver and
platform_driver
- module autoload fixes
Drivers:
- 88pm80x: add device tree support
- abx80x: fix RTC write bit
- ab8500: Add a sentinel to ab85xx_rtc_ids[]
- armada38x: Align RTC set time procedure with the official errata
- as3722: correct month value
- at91sam9: cleanups
- at91rm9200: get and use slow clock and cleanups
- bq32k: remove redundant check
- cmos: century support, proper fix for the spurious wakeup
- ds1307: cleanups and wakeup irq support
- ds1374: Remove unused variable
- ds1685: Use module_platform_driver
- ds3232: fix WARNING trace in resume function
- gemini: fix ptr_ret.cocci warnings
- mt6397: implement suspend/resume
- omap: support internal and external clock enabling
- opal: Enable alarms only when opal supports tpo
- pcf2127: use OFS flag to detect unreliable date and warn the user
- pl031: fix typo for author email
- rx8025: huge cleanup and fixes
- sa1100/pxa: share common code
- s5m: fix to update ctrl register
- s3c: fix clocks and wakeup, cleanup
- sirfsoc: use regmap
- nvram_read()/nvram_write() functions for cmos, ds1305, ds1307,
ds1343, ds1511, ds1553, ds1742, m48t59, rp5c01, stk17ta8, tx4939
- use rtc_valid_tm() error code when reading date/time instead of 0
for isl12022, pcf2123, pcf2127"
* tag 'rtc-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (90 commits)
rtc: abx80x: fix RTC write bit
rtc: ab8500: Add a sentinel to ab85xx_rtc_ids[]
rtc: ds1374: Remove unused variable
rtc: Fix module autoload for OF platform drivers
rtc: Fix module autoload for rtc-{ab8500,max8997,s5m} drivers
rtc: omap: Add external clock enabling support
rtc: omap: Add internal clock enabling support
ARM: dts: AM437x: Add the internal and external clock nodes for rtc
rtc: s5m: fix to update ctrl register
rtc: add xilinx zynqmp rtc driver
devicetree: bindings: rtc: add bindings for xilinx zynqmp rtc
rtc: as3722: correct month value
ARM: config: Switch PXA27x platforms to use PXA RTC driver
ARM: mmp: remove unused RTC register definitions
ARM: sa1100: remove unused RTC register definitions
rtc: sa1100/pxa: convert to run-time register mapping
ARM: pxa: add memory resource to SA1100 RTC device
rtc: pxa: convert to use shared sa1100 functions
rtc: sa1100: prepare to share sa1100_rtc_ops
rtc: ds3232: fix WARNING trace in resume function
...
commit df69f52d990bd85159727bd26e819d3a6e49c666
Author: Dan Streetman <ddstreet@xxxxxxxx>
Date: Tue Sep 8 15:05:09 2015 -0700
zpool: remove no-op module init/exit
Remove zpool_init() and zpool_exit(); they do nothing other than print
"loaded" and "unloaded".
Signed-off-by: Dan Streetman <ddstreet@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c83db4f419e7105af38cdcca80cc51213214a2c8
Author: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Date: Tue Sep 8 15:05:06 2015 -0700
mm: zbud: constify the zbud_ops
The structure zbud_ops is not modified so make the pointer to it a
pointer to const.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Acked-by: Dan Streetman <ddstreet@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 786727799a85aeabc20cab5ecfb72771bcbd6b85
Author: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Date: Tue Sep 8 15:05:03 2015 -0700
mm: zpool: constify the zpool_ops
The structure zpool_ops is not modified so make the pointer to it a
pointer to const.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Acked-by: Dan Streetman <ddstreet@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 5b999aadbae65696a148f55250d94b6f3d74071e
Author: Dmitry Safonov <0x7f454c46@xxxxxxxxx>
Date: Tue Sep 8 15:05:00 2015 -0700
mm: swap: zswap: maybe_preload & refactoring
zswap_get_swap_cache_page and read_swap_cache_async have pretty much the
same code with only significant difference in return value and usage of
swap_readpage.
I a helper __read_swap_cache_async() with the common code. Behavior
change: now zswap_get_swap_cache_page will use radix_tree_maybe_preload
instead radix_tree_preload. Looks like, this wasn't changed only by the
reason of code duplication.
Signed-off-by: Dmitry Safonov <0x7f454c46@xxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Jens Axboe <axboe@xxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Cc: David Herrmann <dh.herrmann@xxxxxxxxx>
Cc: Seth Jennings <sjennings@xxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 708649694a8699ff91d395c4aef5ecea3ade14bc
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:04:58 2015 -0700
zram: unify error reporting
Make zram syslog error reporting more consistent. We have random
error levels in some places. For example, critical errors like
"Error allocating memory for compressed page"
and
"Unable to allocate temp memory"
are reported as KERN_INFO messages.
a) Reassign error levels
Error messages that directly affect zram
functionality -- pr_err():
Error allocating zram address table
Error creating memory pool
Decompression failed! err=%d, page=%u
Unable to allocate temp memory
Compression failed! err=%d
Error allocating memory for compressed page: %u, size=%zu
Cannot initialise %s compressing backend
Error allocating disk queue for device %d
Error allocating disk structure for device %d
Error creating sysfs group for device %d
Unable to register zram-control class
Unable to get major number
Messages that do not affect functionality, but user
must be warned (because sysfs attrs will be removed in
this particular case) -- pr_warn():
%d (%s) Attribute %s (and others) will be removed. %s
Messages that do not affect functionality and mostly are
informative -- pr_info():
Cannot change max compression streams
Can't change algorithm for initialized device
Cannot change disksize for initialized device
Added device: %s
Removed device: %s
b) Update sysfs_create_group() error message
First, it lacks a trailing new line; add it. Second, every error message
in zram_add() has a "for device %d" part, which makes errors more
informative. Add missing part to "Error creating sysfs group" message.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit cd10add00c1b31cd664a31108a9b395025def50a
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:04:55 2015 -0700
zsmalloc: remove null check from destroy_handle_cache()
We can pass a NULL cache pointer to kmem_cache_destroy(), because it
NULL-checks its argument now. Remove redundant test from
destroy_handle_cache().
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Acked-by: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b3e237f1f5a86030c875e186ff19640f4f4f3c63
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:04:52 2015 -0700
zsmalloc: do not take class lock in zs_shrinker_count()
We can avoid taking class ->lock around zs_can_compact() in
zs_shrinker_count(), because the number that we return back is outdated
in general case, by design. We have different sources that are able to
change class's state right after we return from zs_can_compact() --
ongoing I/O operations, manually triggered compaction, or two of them
happening simultaneously.
We re-do this calculations during compaction on a per class basis
anyway.
zs_unregister_shrinker() will not return until we have an active
shrinker, so classes won't unexpectedly disappear while
zs_shrinker_count() iterates them.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Acked-by: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 6cbf16b3b66a61b9c6df8f2ed4ac346cb427f28a
Author: Minchan Kim <minchan@xxxxxxxxxx>
Date: Tue Sep 8 15:04:49 2015 -0700
zsmalloc: use class->pages_per_zspage
There is no need to recalcurate pages_per_zspage in runtime. Just use
class->pages_per_zspage to avoid unnecessary runtime overhead.
Signed-off-by: Minchan Kim <minchan@xxxxxxxxxx>
Acked-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ad9d5e175a77a253f52a7259a7c918b8351d99f1
Author: Minchan Kim <minchan.kim@xxxxxxx>
Date: Tue Sep 8 15:04:47 2015 -0700
zsmalloc: consider ZS_ALMOST_FULL as migrate source
There is no reason to prevent select ZS_ALMOST_FULL as migration source
if we cannot find source from ZS_ALMOST_EMPTY.
With this patch, zs_can_compact will return more exact result.
Signed-off-by: Minchan Kim <minchan.kim@xxxxxxx>
Acked-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 58f171174625150f3aaad0cddd3e365270b8e1b8
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:04:44 2015 -0700
zsmalloc: partial page ordering within a fullness_list
We want to see more ZS_FULL pages and less ZS_ALMOST_{FULL, EMPTY}
pages. Put a page with higher ->inuse count first within its
->fullness_list, which will give us better chances to fill up this page
with new objects (find_get_zspage() return ->fullness_list head for new
object allocation), so some zspages will become ZS_ALMOST_FULL/ZS_FULL
quicker.
It performs a trivial and cheap ->inuse compare which does not slow down
zsmalloc and in the worst case keeps the list pages in no particular
order.
A more expensive solution could sort fullness_list by ->inuse count.
[minchan@xxxxxxxxxx: code adjustments]
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ab9d306d9c3bf64b1dbad127aa13252cc550f839
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:04:41 2015 -0700
zsmalloc: use shrinker to trigger auto-compaction
Perform automatic pool compaction by a shrinker when system is getting
tight on memory.
User-space has a very little knowledge regarding zsmalloc fragmentation
and basically has no mechanism to tell whether compaction will result in
any memory gain. Another issue is that user space is not always aware
of the fact that system is getting tight on memory. Which leads to very
uncomfortable scenarios when user space may start issuing compaction
'randomly' or from crontab (for example). Fragmentation is not always
necessarily bad, allocated and unused objects, after all, may be filled
with the data later, w/o the need of allocating a new zspage. On the
other hand, we obviously don't want to waste memory when the system
needs it.
Compaction now has a relatively quick pool scan so we are able to
estimate the number of pages that will be freed easily, which makes it
possible to call this function from a shrinker->count_objects()
callback. We also abort compaction as soon as we detect that we can't
free any pages any more, preventing wasteful objects migrations.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Suggested-by: Minchan Kim <minchan@xxxxxxxxxx>
Acked-by: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 860c707dca155a56dfa115ddd6c00959296144a6
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:04:38 2015 -0700
zsmalloc: account the number of compacted pages
Compaction returns back to zram the number of migrated objects, which is
quite uninformative -- we have objects of different sizes so user space
cannot obtain any valuable data from that number. Change compaction to
operate in terms of pages and return back to compaction issuer the
number of pages that were freed during compaction. So from now on we
will export more meaningful value in zram<id>/mm_stat -- the number of
freed (compacted) pages.
This requires:
(a) a rename of `num_migrated' to 'pages_compacted'
(b) a internal API change -- return first_page's fullness_group from
putback_zspage(), so we know when putback_zspage() did
free_zspage(). It helps us to account compaction stats correctly.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Acked-by: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7d3f3938236b4bb878214e6791e76fd8409bdeee
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:04:35 2015 -0700
zsmalloc/zram: introduce zs_pool_stats api
`zs_compact_control' accounts the number of migrated objects but it has
a limited lifespan -- we lose it as soon as zs_compaction() returns back
to zram. It worked fine, because (a) zram had it's own counter of
migrated objects and (b) only zram could trigger compaction. However,
this does not work for automatic pool compaction (not issued by zram).
To account objects migrated during auto-compaction (issued by the
shrinker) we need to store this number in zs_pool.
Define a new `struct zs_pool_stats' structure to keep zs_pool's stats
there. It provides only `num_migrated', as of this writing, but it
surely can be extended.
A new zsmalloc zs_pool_stats() symbol exports zs_pool's stats back to
caller.
Use zs_pool_stats() in zram and remove `num_migrated' from zram_stats.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Suggested-by: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 0dc63d488a2a433a4a85d3908b3f195c4e6450d2
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:04:33 2015 -0700
zsmalloc: cosmetic compaction code adjustments
Change zs_object_copy() argument order to be (DST, SRC) rather than
(SRC, DST). copy/move functions usually have (to, from) arguments
order.
Rename alloc_target_page() to isolate_target_page(). This function
doesn't allocate anything, it isolates target page, pretty much like
isolate_source_page().
Tweak __zs_compact() comment.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Acked-by: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 04f05909e0fde36ba481ad4c850b666ebef1ac55
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:04:30 2015 -0700
zsmalloc: introduce zs_can_compact() function
This function checks if class compaction will free any pages.
Rephrasing -- do we have enough unused objects to form at least one
ZS_EMPTY page and free it. It aborts compaction if class compaction
will not result in any (further) savings.
EXAMPLE (this debug output is not part of this patch set):
- class size
- number of allocated objects
- number of used objects
- max objects per zspage
- pages per zspage
- estimated number of pages that will be freed
[..]
class-512 objs:544 inuse:540 maxobj-per-zspage:8 pages-per-zspage:1
zspages-to-free:0
... class-512 compaction is useless. break
class-496 objs:660 inuse:570 maxobj-per-zspage:33 pages-per-zspage:4
zspages-to-free:2
class-496 objs:627 inuse:570 maxobj-per-zspage:33 pages-per-zspage:4
zspages-to-free:1
class-496 objs:594 inuse:570 maxobj-per-zspage:33 pages-per-zspage:4
zspages-to-free:0
... class-496 compaction is useless. break
class-448 objs:657 inuse:617 maxobj-per-zspage:9 pages-per-zspage:1
zspages-to-free:4
class-448 objs:648 inuse:617 maxobj-per-zspage:9 pages-per-zspage:1
zspages-to-free:3
class-448 objs:639 inuse:617 maxobj-per-zspage:9 pages-per-zspage:1
zspages-to-free:2
class-448 objs:630 inuse:617 maxobj-per-zspage:9 pages-per-zspage:1
zspages-to-free:1
class-448 objs:621 inuse:617 maxobj-per-zspage:9 pages-per-zspage:1
zspages-to-free:0
... class-448 compaction is useless. break
class-432 objs:728 inuse:685 maxobj-per-zspage:28 pages-per-zspage:3
zspages-to-free:1
class-432 objs:700 inuse:685 maxobj-per-zspage:28 pages-per-zspage:3
zspages-to-free:0
... class-432 compaction is useless. break
class-416 objs:819 inuse:705 maxobj-per-zspage:39 pages-per-zspage:4
zspages-to-free:2
class-416 objs:780 inuse:705 maxobj-per-zspage:39 pages-per-zspage:4
zspages-to-free:1
class-416 objs:741 inuse:705 maxobj-per-zspage:39 pages-per-zspage:4
zspages-to-free:0
... class-416 compaction is useless. break
class-400 objs:690 inuse:674 maxobj-per-zspage:10 pages-per-zspage:1
zspages-to-free:1
class-400 objs:680 inuse:674 maxobj-per-zspage:10 pages-per-zspage:1
zspages-to-free:0
... class-400 compaction is useless. break
class-384 objs:736 inuse:709 maxobj-per-zspage:32 pages-per-zspage:3
zspages-to-free:0
... class-384 compaction is useless. break
[..]
Every "compaction is useless" indicates that we saved CPU cycles.
class-512 has
544 object allocated
540 objects used
8 objects per-page
Even if we have a ALMOST_EMPTY zspage, we still don't have enough room to
migrate all of its objects and free this zspage; so compaction will not
make a lot of sense, it's better to just leave it as is.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Acked-by: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 57244594195fe697f9261c7970ca25db35280967
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:04:27 2015 -0700
zsmalloc: always keep per-class stats
Always account per-class `zs_size_stat' stats. This data will help us
make better decisions during compaction. We are especially interested
in OBJ_ALLOCATED and OBJ_USED, which can tell us if class compaction
will result in any memory gain.
For instance, we know the number of allocated objects in the class, the
number of objects being used (so we also know how many objects are not
used) and the number of objects per-page. So we can ensure if we have
enough unused objects to form at least one ZS_EMPTY zspage during
compaction.
We calculate this value on per-class basis so we can calculate a total
number of zspages that can be released. Which is exactly what a
shrinker wants to know.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Acked-by: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b430d1fd6c7d22cc07e7c22a2ee1078667605313
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:04:24 2015 -0700
zsmalloc: drop unused variable `nr_to_migrate'
This patchset tweaks compaction and makes it possible to trigger pool
compaction automatically when system is getting low on memory.
zsmalloc in some cases can suffer from a notable fragmentation and
compaction can release some considerable amount of memory. The problem
here is that currently we fully rely on user space to perform compaction
when needed. However, performing zsmalloc compaction is not always an
obvious thing to do. For example, suppose we have a `idle' fragmented
(compaction was never performed) zram device and system is getting low
on memory due to some 3rd party user processes (gcc LTO, or firefox,
etc.). It's quite unlikely that user space will issue zpool compaction
in this case. Besides, user space cannot tell for sure how badly pool
is fragmented; however, this info is known to zsmalloc and, hence, to a
shrinker.
This patch (of 7):
__zs_compact() does not use `nr_to_migrate', drop it.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Acked-by: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ad5ea8cd5b934cc082f2cda900b490def149908e
Author: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Date: Tue Sep 8 15:04:22 2015 -0700
mm/memblock.c: fix comment in __next_mem_range()
Signed-off-by: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 4ada0c5a2daf11816180ec30bdbdbed1f6ff3224
Author: Zhen Lei <thunder.leizhen@xxxxxxxxxx>
Date: Tue Sep 8 15:04:19 2015 -0700
mm/page_alloc.c: fix type information of memoryless node
For a memoryless node, the output of get_pfn_range_for_nid are all zero.
It will display mem from 0 to -1.
Signed-off-by: Zhen Lei <thunder.leizhen@xxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b5685e9263a6f3a8da546b8a46382f18a63745c9
Author: Xishi Qiu <qiuxishi@xxxxxxxxxx>
Date: Tue Sep 8 15:04:16 2015 -0700
memory-hotplug: fix comments in zone_spanned_pages_in_node() and
zone_spanned_pages_in_node()
When hot adding a node from add_memory(), we will add memblock first, so
the node is not empty. But when called from cpu_up(), the node should
be empty.
Signed-off-by: Xishi Qiu <qiuxishi@xxxxxxxxxx>
Cc: Tang Chen <tangchen@xxxxxxxxxxxxxx>
Cc: Yasuaki Ishimatsu <isimatu.yasuaki@xxxxxxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>\
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 34b100605cb7e201d5c4e39f54d0e11caa950733
Author: Yaowei Bai <bywxiaobai@xxxxxxx>
Date: Tue Sep 8 15:04:13 2015 -0700
mm/page_alloc.c: change sysctl_lower_zone_reserve_ratio to
sysctl_lowmem_reserve_ratio in comments
We use sysctl_lowmem_reserve_ratio rather than
sysctl_lower_zone_reserve_ratio to determine how aggressive the kernel
is in defending lowmem from the possibility of being captured into
pinned user memory. To avoid misleading, correct it in some comments.
Signed-off-by: Yaowei Bai <bywxiaobai@xxxxxxx>
Acked-by: Michal Hocko <mhocko@xxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 013110a73dcf970cb28c5b0a79f9eee577ea6aa2
Author: Yaowei Bai <bywxiaobai@xxxxxxx>
Date: Tue Sep 8 15:04:10 2015 -0700
mm/page_alloc.c: fix a misleading comment
The comment says that the per-cpu batchsize and zone watermarks are
determined by present_pages which is definitely wrong, they are both
calculated from managed_pages. Fix it.
Signed-off-by: Yaowei Bai <bywxiaobai@xxxxxxx>
Acked-by: Michal Hocko <mhocko@xxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c9d13f5fc748a02cb5917a798f065681007342b9
Author: Chen Gang <gang.chen.5i5j@xxxxxxxxx>
Date: Tue Sep 8 15:04:08 2015 -0700
mm/mmap.c:insert_vm_struct(): check for failure before setting values
There's no point in initializing vma->vm_pgoff if the insertion attempt
will be failing anyway. Run the checks before performing the
initialization.
Signed-off-by: Chen Gang <gang.chen.5i5j@xxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit bde43c6c9f4f360ae549a0ed9f10a3e62e363aca
Author: Petr Mladek <pmladek@xxxxxxxx>
Date: Tue Sep 8 15:04:05 2015 -0700
mm/khugepaged: allow interruption of allocation sleep again
Commit 1dfb059b9438 ("thp: reduce khugepaged freezing latency") fixed
khugepaged to do not block a system suspend. But the result is that it
could not get interrupted before the given timeout because the condition
for the wait event is "false".
This patch puts back the original approach but it uses
freezable_schedule_timeout_interruptible() instead of
schedule_timeout_interruptible(). It does the right thing. I am pretty
sure that the freezable variant was not used in the original fix only
because it was not available at that time.
The regression has been there for ages. It was not critical. It just
did the allocation throttling a little bit more aggressively.
I found this problem when converting the kthread to kthread worker API
and trying to understand the code.
This bug is thought to have minimal userspace-visible impact. Somebody
could set a high alloc_sleep value by mistake, and then try to fix it
back, but khugepaged would keep sleeping until the high value expires.
Signed-off-by: Petr Mladek <pmladek@xxxxxxxx>
Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Vlastimil Babka <vbabka@xxxxxxx>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Ebru Akagunduz <ebru.akagunduz@xxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Jiri Kosina <jkosina@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c11539315129b599aae6d9bc0f941dee5559ec58
Author: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Date: Tue Sep 8 15:04:02 2015 -0700
mm/memblock.c: fiy typos in comments
s/succees/success/
Signed-off-by: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1a16718cf7f4f48ee2aa2cfd9a961c6b433a7b5b
Author: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Date: Tue Sep 8 15:03:59 2015 -0700
mm/compaction: correct to flush migrated pages if pageblock skip happens
We cache isolate_start_pfn before entering isolate_migratepages(). If
pageblock is skipped in isolate_migratepages() due to whatever reason,
cc->migrate_pfn can be far from isolate_start_pfn hence we flush pages
that were freed. For example, the following scenario can be possible:
- assume order-9 compaction, pageblock order is 9
- start_isolate_pfn is 0x200
- isolate_migratepages()
- skip a number of pageblocks
- start to isolate from pfn 0x600
- cc->migrate_pfn = 0x620
- return
- last_migrated_pfn is set to 0x200
- check flushing condition
- current_block_start is set to 0x600
- last_migrated_pfn < current_block_start then do useless flush
This wrong flush would not help the performance and success rate so this
patch tries to fix it. One simple way to know the exact position where
we start to isolate migratable pages is that we cache it in
isolate_migratepages() before entering actual isolation. This patch
implements that and fixes the problem.
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Acked-by: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 82c1fc714763b823169958a98196d9be56c63b30
Author: Vlastimil Babka <vbabka@xxxxxxx>
Date: Tue Sep 8 15:03:56 2015 -0700
mm: use numa_mem_id() in alloc_pages_node()
alloc_pages_node() might fail when called with NUMA_NO_NODE and
__GFP_THISNODE on a CPU belonging to a memoryless node. To make the
local-node fallback more robust and prevent such situations, use
numa_mem_id(), which was introduced for similar scenarios in the slab
context.
Suggested-by: Christoph Lameter <cl@xxxxxxxxx>
Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Acked-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Acked-by: Christoph Lameter <cl@xxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 0bc35a970c01c50e3bcc4b5a612787346024e5db
Author: Vlastimil Babka <vbabka@xxxxxxx>
Date: Tue Sep 8 15:03:53 2015 -0700
mm: unify checks in alloc_pages_node() and __alloc_pages_node()
Perform the same debug checks in alloc_pages_node() as are done in
__alloc_pages_node(), by making the former function a wrapper of the
latter one.
In addition to better diagnostics in DEBUG_VM builds for situations
which have been already fatal (e.g. out-of-bounds node id), there are
two visible changes for potential existing buggy callers of
alloc_pages_node():
- calling alloc_pages_node() with any negative nid (e.g. due to arithmetic
overflow) was treated as passing NUMA_NO_NODE and fallback to local
node was
applied. This will now be fatal.
- calling alloc_pages_node() with an offline node will now be checked for
DEBUG_VM builds. Since it's not fatal if the node has been previously
online,
and this patch may expose some existing buggy callers, change the
VM_BUG_ON
in __alloc_pages_node() to VM_WARN_ON.
Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>
Acked-by: Christoph Lameter <cl@xxxxxxxxx>
Acked-by: Michal Hocko <mhocko@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 96db800f5d73cd5c49461253d45766e094f0f8c2
Author: Vlastimil Babka <vbabka@xxxxxxx>
Date: Tue Sep 8 15:03:50 2015 -0700
mm: rename alloc_pages_exact_node() to __alloc_pages_node()
alloc_pages_exact_node() was introduced in commit 6484eb3e2a81 ("page
allocator: do not check NUMA node ID when the caller knows the node is
valid") as an optimized variant of alloc_pages_node(), that doesn't
fallback to current node for nid == NUMA_NO_NODE. Unfortunately the
name of the function can easily suggest that the allocation is
restricted to the given node and fails otherwise. In truth, the node is
only preferred, unless __GFP_THISNODE is passed among the gfp flags.
The misleading name has lead to mistakes in the past, see for example
commits 5265047ac301 ("mm, thp: really limit transparent hugepage
allocation to local node") and b360edb43f8e ("mm, mempolicy:
migrate_to_node should only migrate to node").
Another issue with the name is that there's a family of
alloc_pages_exact*() functions where 'exact' means exact size (instead
of page order), which leads to more confusion.
To prevent further mistakes, this patch effectively renames
alloc_pages_exact_node() to __alloc_pages_node() to better convey that
it's an optimized variant of alloc_pages_node() not intended for general
usage. Both functions get described in comments.
It has been also considered to really provide a convenience function for
allocations restricted to a node, but the major opinion seems to be that
__GFP_THISNODE already provides that functionality and we shouldn't
duplicate the API needlessly. The number of users would be small
anyway.
Existing callers of alloc_pages_exact_node() are simply converted to
call __alloc_pages_node(), with the exception of sba_alloc_coherent()
which open-codes the check for NUMA_NO_NODE, so it is converted to use
alloc_pages_node() instead. This means it no longer performs some
VM_BUG_ON checks, and since the current check for nid in
alloc_pages_node() uses a 'nid < 0' comparison (which includes
NUMA_NO_NODE), it may hide wrong values which would be previously
exposed.
Both differences will be rectified by the next patch.
To sum up, this patch makes no functional changes, except temporarily
hiding potentially buggy callers. Restricting the checks in
alloc_pages_node() is left for the next patch which can in turn expose
more existing buggy callers.
Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>
Acked-by: Robin Holt <robinmholt@xxxxxxxxx>
Acked-by: Michal Hocko <mhocko@xxxxxxxx>
Acked-by: Christoph Lameter <cl@xxxxxxxxx>
Acked-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Greg Thelen <gthelen@xxxxxxxxxx>
Cc: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Cc: Fenghua Yu <fenghua.yu@xxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Gleb Natapov <gleb@xxxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Cliff Whickman <cpw@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7fadc820222497eac234d1d51a66517c00a6ca4c
Author: Hugh Dickins <hughd@xxxxxxxxxx>
Date: Tue Sep 8 15:03:46 2015 -0700
mm, vmscan: unlock page while waiting on writeback
This is merely a politeness: I've not found that shrink_page_list()
leads to deadlock with the page it holds locked across
wait_on_page_writeback(); but nevertheless, why hold others off by
keeping the page locked there?
And while we're at it: remove the mistaken "not " from the commentary on
this Case 3 (and a distracting blank line from Case 2, if I may).
Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx>
Acked-by: Michal Hocko <mhocko@xxxxxxxx>
Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 26f5d7609f03ad8d6dc552458e4e371a62416b37
Author: Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 15:03:44 2015 -0700
list_lru: don't call list_lru_from_kmem if the list_head is empty
If the list_head is empty then we'll have called list_lru_from_kmem for
nothing. Move that call inside of the list_empty if block.
Signed-off-by: Jeff Layton <jeff.layton@xxxxxxxxxxxxxxx>
Reviewed-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 21cd3a604797c2774676926a95a3d17d4cd5cbb3
Author: Wang Kai <morgan.wang@xxxxxxxxxx>
Date: Tue Sep 8 15:03:41 2015 -0700
kmemleak: record accurate early log buffer count and report when exceeded
In log_early function, crt_early_log should also count once when
'crt_early_log >= ARRAY_SIZE(early_log)'. Otherwise the reported count
from kmemleak_init is one less than 'actual number'.
Then, in kmemleak_init, if early_log buffer size equal actual number,
kmemleak will init sucessful, so change warning condition to
'crt_early_log > ARRAY_SIZE(early_log)'.
Signed-off-by: Wang Kai <morgan.wang@xxxxxxxxxx>
Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e3975891254e08d220ddcafca93a0e05d9560bfb
Author: Chen Gang <gang.chen.5i5j@xxxxxxxxx>
Date: Tue Sep 8 15:03:38 2015 -0700
mm/mmap.c: simplify the failure return working flow
__split_vma() doesn't need out_err label, neither need initializing err.
copy_vma() can return NULL directly when kmem_cache_alloc() fails.
Signed-off-by: Chen Gang <gang.chen.5i5j@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 44a30220bc0a171c010e8df63d144655abdafe61
Author: Yu Zhao <yuzhao@xxxxxxxxxx>
Date: Tue Sep 8 15:03:33 2015 -0700
shmem: recalculate file inode when fstat
Shmem uses shmem_recalc_inode to update i_blocks when it allocates page,
undoes range or swaps. But mm can drop clean page without notifying
shmem. This makes fstat sometimes return out-of-date block size.
The problem can be partially solved when we add
inode_operations->getattr which calls shmem_recalc_inode to update
i_blocks for fstat.
shmem_recalc_inode also updates counter used by statfs and
vm_committed_as. For them the situation is not changed. They still
suffer from the discrepancy after dropping clean page and before the
function is called by aforementioned triggers.
Signed-off-by: Yu Zhao <yuzhao@xxxxxxxxxx>
Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 567d117b8b2ab1c3437acc4799505a59bfa5722b
Author: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Date: Tue Sep 8 15:03:33 2015 -0700
mm/memblock.c: rename local variable of memblock_type to 'type'
Since commit e3239ff92a17 ("memblock: Rename memblock_region to
memblock_type and memblock_property to memblock_region"), all local
variables of the membock_type type were renamed to 'type'. This commit
renames all remaining local variables with the memblock_type type to the
same view.
Signed-off-by: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 230ac719c500e58e71342be381ad2042a8cffc42
Author: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Date: Tue Sep 8 15:03:29 2015 -0700
mm/hwpoison: don't try to unpoison containment-failed pages
memory_failure() can be called at any page at any time, which means that
we can't eliminate the possibility of containment failure. In such case
the best option is to leak the page intentionally (and never touch it
later.)
We have an unpoison function for testing, and it cannot handle such
containment-failed pages, which results in kernel panic (visible with
various calltraces.) So this patch suggests that we limit the
unpoisonable pages to properly contained pages and ignore any other
ones.
Testers are recommended to keep in mind that there're un-unpoisonable
pages when writing test programs.
Signed-off-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Tested-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit da1b13ccfbebe0b9d69b5d61eff0a675e19e69a5
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Tue Sep 8 15:03:27 2015 -0700
mm/hwpoison: fix race between soft_offline_page and unpoison_memory
Wanpeng Li reported a race between soft_offline_page() and
unpoison_memory(), which causes the following kernel panic:
BUG: Bad page state in process bash pfn:97000
page:ffffea00025c0000 count:0 mapcount:1 mapping: (null)
index:0x7f4fdbe00
flags: 0x1fffff80080048(uptodate|active|swapbacked)
page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
bad because of flags:
flags: 0x40(active)
Modules linked in: snd_hda_codec_hdmi i915 rpcsec_gss_krb5 nfsv4
dns_resolver bnep rfcomm nfsd bluetooth auth_rpcgss nfs_acl nfs rfkill lockd
grace sunrpc i2c_algo_bit drm_kms_helper snd_hda_codec_realtek
snd_hda_codec_generic drm snd_hda_intel fscache snd_hda_codec
x86_pkg_temp_thermal coretemp kvm_intel snd_hda_core snd_hwdep kvm snd_pcm
snd_seq_dummy snd_seq_oss crct10dif_pclmul snd_seq_midi crc32_pclmul
snd_seq_midi_event ghash_clmulni_intel snd_rawmidi aesni_intel lrw gf128mul
snd_seq glue_helper ablk_helper snd_seq_device cryptd fuse snd_timer dcdbas
serio_raw mei_me parport_pc snd mei ppdev i2c_core video lp soundcore parport
lpc_ich shpchp mfd_core ext4 mbcache jbd2 sd_mod e1000e ahci ptp libahci
crc32c_intel libata pps_core
CPU: 3 PID: 2211 Comm: bash Not tainted 4.2.0-rc5-mm1+ #45
Hardware name: Dell Inc. OptiPlex 7020/0F5C5X, BIOS A03 01/08/2015
Call Trace:
dump_stack+0x48/0x5c
bad_page+0xe6/0x140
free_pages_prepare+0x2f9/0x320
? uncharge_list+0xdd/0x100
free_hot_cold_page+0x40/0x170
__put_single_page+0x20/0x30
put_page+0x25/0x40
unmap_and_move+0x1a6/0x1f0
migrate_pages+0x100/0x1d0
? kill_procs+0x100/0x100
? unlock_page+0x6f/0x90
__soft_offline_page+0x127/0x2a0
soft_offline_page+0xa6/0x200
This race is explained like below:
CPU0 CPU1
soft_offline_page
__soft_offline_page
TestSetPageHWPoison
unpoison_memory
PageHWPoison check (true)
TestClearPageHWPoison
put_page -> release refcount held by
get_hwpoison_page in unpoison_memory
put_page -> release refcount held by
isolate_lru_page in __soft_offline_page
migrate_pages
The second put_page() releases refcount held by isolate_lru_page() which
will lead to unmap_and_move() releases the last refcount of page and w/
mapcount still 1 since try_to_unmap() is not called if there is only one
user map the page. Anyway, the page refcount and mapcount will still
mess if the page is mapped by multiple users.
This race was introduced by commit 4491f71260 ("mm/memory-failure: set
PageHWPoison before migrate_pages()"), which focuses on preventing the
reuse of successfully migrated page. Before this commit we prevent the
reuse by changing the migratetype to MIGRATE_ISOLATE during soft
offlining, which has the following problems, so simply reverting the
commit is not a best option:
1) it doesn't eliminate the reuse completely, because
set_migratetype_isolate() can fail to set MIGRATE_ISOLATE to the
target page if the pageblock of the page contains one or more
unmovable pages (i.e. has_unmovable_pages() returns true).
2) the original code changes migratetype to MIGRATE_ISOLATE
forcibly, and sets it to MIGRATE_MOVABLE forcibly after soft offline,
regardless of the original migratetype state, which could impact
other subsystems like memory hotplug or compaction.
This patch moves PageSetHWPoison just after put_page() in
unmap_and_move(), which closes up the reported race window and minimizes
another race window b/w SetPageHWPoison and reallocation (which causes
the reuse of soft-offlined page.) The latter race window still exists
but it's acceptable, because it's rare and effectively the same as
ordinary "containment failure" case even if it happens, so keep the
window open is acceptable.
Fixes: 4491f71260 ("mm/memory-failure: set PageHWPoison before
migrate_pages()")
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Signed-off-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Reported-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Tested-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 8e30456b6c56029ecbb43b777519175e478adfbf
Author: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Date: Tue Sep 8 15:03:24 2015 -0700
mm/hwpoison: introduce num_poisoned_pages wrappers
num_poisoned_pages counter will be changed outside mm/memory-failure.c
by a subsequent patch, so this patch prepares wrappers to manipulate it.
Signed-off-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Tested-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 665d9da7f0a9bd80b64d0024630806e45c7ff7d7
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Tue Sep 8 15:03:21 2015 -0700
mm/hwpoison: replace most of put_page in memory error handling by
put_hwpoison_page
Replace most instances of put_page() in memory error handling with
put_hwpoison_page().
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit be91748fa6ca6909853c3dc630d65e45084962d7
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Tue Sep 8 15:03:18 2015 -0700
mm/hwpoison: fix refcount of THP head page in no-injection case
Hwpoison injection takes a refcount of target page and another refcount
of head page of THP if the target page is the tail page of a THP.
However, current code doesn't release the refcount of head page if the
THP is not supported to be injected wrt hwpoison filter.
Fix it by reducing the refcount of head page if the target page is the
tail page of a THP and it is not supported to be injected.
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Acked-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 94bf4ec84a84d3ab2513b4e681fd3d083328d76d
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Tue Sep 8 15:03:15 2015 -0700
mm/hwpoison: introduce put_hwpoison_page to put refcount for memory error
handling
Introduce put_hwpoison_page to put refcount for memory error handling.
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Suggested-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1e0e635be82132167a134b5a9c884e70e61f8373
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Tue Sep 8 15:03:13 2015 -0700
mm/hwpoison: fix PageHWPoison test/set race
There is a race between madvise_hwpoison path and memory_failure:
CPU0 CPU1
madvise_hwpoison
get_user_pages_fast
PageHWPoison check (false)
memory_failure
TestSetPageHWPoison
soft_offline_page
PageHWPoison check (true)
return -EBUSY (without put_page)
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Suggested-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7d1900c744b2e4687b3e467edf58373c02bcf22d
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Tue Sep 8 15:03:10 2015 -0700
mm/hwpoison: fix failure to split thp w/ refcount held
THP pages will get a refcount in madvise_hwpoison() w/
MF_COUNT_INCREASED flag, however, the refcount is still held when fail
to split THP pages.
Fix it by reducing the refcount of THP pages when fail to split THP.
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 5dd2c4bded8776ee93c8f38b739fea531095067f
Author: Mark Salter <msalter@xxxxxxxxxx>
Date: Tue Sep 8 15:03:07 2015 -0700
x86: use generic early mem copy
The early_ioremap library now has a generic copy_from_early_mem()
function. Use the generic copy function for x86 relocate_initrd().
[akpm@xxxxxxxxxxxxxxxxxxxx: remove MAX_MAP_CHUNK define, per Yinghai Lu]
Signed-off-by: Mark Salter <msalter@xxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Russell King <rmk@xxxxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Yinghai Lu <yinghai@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1570f0d7ab425c1e0905715bf9cc98b2a82e723f
Author: Mark Salter <msalter@xxxxxxxxxx>
Date: Tue Sep 8 15:03:04 2015 -0700
arm64: support initrd outside kernel linear map
The use of mem= could leave part or all of the initrd outside of the
kernel linear map. This will lead to an error when unpacking the initrd
and a probable failure to boot. This patch catches that situation and
relocates the initrd to be fully within the linear map.
Signed-off-by: Mark Salter <msalter@xxxxxxxxxx>
Acked-by: Will Deacon <will.deacon@xxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Russell King <rmk@xxxxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Yinghai Lu <yinghai@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 6b0f68e32ea8749ff7d4a66cd5761e915e48e59d
Author: Mark Salter <msalter@xxxxxxxxxx>
Date: Tue Sep 8 15:03:01 2015 -0700
mm: add utility for early copy from unmapped ram
When booting an arm64 kernel w/initrd using UEFI/grub, use of mem= will
likely cut off part or all of the initrd. This leaves it outside the
kernel linear map which leads to failure when unpacking. The x86 code
has a similar need to relocate an initrd outside of mapped memory in
some cases.
The current x86 code uses early_memremap() to copy the original initrd
from unmapped to mapped RAM. This patchset creates a generic
copy_from_early_mem() utility based on that x86 code and has arm64 and
x86 share it in their respective initrd relocation code.
This patch (of 3):
In some early boot circumstances, it may be necessary to copy from RAM
outside the kernel linear mapping to mapped RAM. The need to relocate
an initrd is one example in the x86 code. This patch creates a helper
function based on current x86 code.
Signed-off-by: Mark Salter <msalter@xxxxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Russell King <rmk@xxxxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Yinghai Lu <yinghai@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e6590740ceb83fd014fae7d571fe5a5d5886b7c8
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:02:58 2015 -0700
Documentation: update libhugetlbfs location and use for testing
The URL for libhugetlbfs has changed. Also, put a stronger emphasis on
using libgugetlbfs for hugetlb regression testing.
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Acked-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Joern Engel <joern@xxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit fd5a9ecd6880619bea74c6b12ec86819eacfb012
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:02:55 2015 -0700
selftests:vm: point to libhugetlbfs for regression testing
The hugetlb selftests provide minimal coverage. Have run script point
people at libhugetlbfs for better regression testing.
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Acked-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Joern Engel <joern@xxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 243db5351aae5e6756fb610d41431a30d44b56a6
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:02:52 2015 -0700
Revert "selftests: add hugetlbfstest"
This manually reverts 7e50533d4b842 ("selftests: add hugetlbfstest").
The hugetlbfstest test depends on hugetlb pages being counted in a
task's rss. This functionality is not in the kernel, so the test will
always fail. Remove test to avoid confusion.
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Acked-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Joern Engel <joern@xxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 9fcd6d2e052eef525e94a9ae58dbe7ed4df4f5a7
Author: Vlastimil Babka <vbabka@xxxxxxx>
Date: Tue Sep 8 15:02:49 2015 -0700
mm, compaction: skip compound pages by order in free scanner
The compaction free scanner is looking for PageBuddy() pages and
skipping all others. For large compound pages such as THP or hugetlbfs,
we can save a lot of iterations if we skip them at once using their
compound_order(). This is generally unsafe and we can read a bogus
value of order due to a race, but if we are careful, the only danger is
skipping too much.
When tested with stress-highalloc from mmtests on 4GB system with 1GB
hugetlbfs pages, the vmstat compact_free_scanned count decreased by at
least 15%.
Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Acked-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Acked-by: Michal Nazarewicz <mina86@xxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 29c0dde830f8c08ceacf2d3edf6dc8ddd9a9c3c4
Author: Vlastimil Babka <vbabka@xxxxxxx>
Date: Tue Sep 8 15:02:46 2015 -0700
mm, compaction: always skip all compound pages by order in migrate scanner
The compaction migrate scanner tries to skip THP pages by their order,
to reduce number of iterations for pages it cannot isolate. The check
is only done if PageLRU() is true, which means it applies to THP pages,
but not e.g. hugetlbfs pages or any other non-LRU compound pages, which
we have to iterate by base pages.
This limitation comes from the assumption that it's only safe to read
compound_order() when we have the zone's lru_lock and THP cannot be
split under us. But the only danger (after filtering out order values
that are not below MAX_ORDER, to prevent overflows) is that we skip too
much or too little after reading a bogus compound_order() due to a rare
race. This is the same reasoning as patch 99c0fd5e51c4 ("mm,
compaction: skip buddy pages by their order in the migrate scanner")
introduced for unsafely reading PageBuddy() order.
After this patch, all pages are tested for PageCompound() and we skip
them by compound_order(). The test is done after the test for
balloon_page_movable() as we don't want to assume if balloon pages (or
other pages with own isolation and migration implementation if a generic
API gets implemented) are compound or not.
When tested with stress-highalloc from mmtests on 4GB system with 1GB
hugetlbfs pages, the vmstat compact_migrate_scanned count decreased by
15%.
[kirill.shutemov@xxxxxxxxxxxxxxx: change PageTransHuge checks to
PageCompound for different series was squashed here]
Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Acked-by: Mel Gorman <mgorman@xxxxxxx>
Acked-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Acked-by: Michal Nazarewicz <mina86@xxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 02333641e2cf4ac9f23eeeb01183ed8318d346ca
Author: Vlastimil Babka <vbabka@xxxxxxx>
Date: Tue Sep 8 15:02:42 2015 -0700
mm, compaction: encapsulate resetting cached scanner positions
Reseting the cached compaction scanner positions is now open-coded in
__reset_isolation_suitable() and compact_finished(). Encapsulate the
functionality in a new function reset_cached_positions().
Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Acked-by: Michal Nazarewicz <mina86@xxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit f5f61a320bf6275f37fcabf6645b4ac8e683c007
Author: Vlastimil Babka <vbabka@xxxxxxx>
Date: Tue Sep 8 15:02:39 2015 -0700
mm, compaction: simplify handling restart position in free pages scanner
Handling the position where compaction free scanner should restart
(stored in cc->free_pfn) got more complex with commit e14c720efdd7 ("mm,
compaction: remember position within pageblock in free pages scanner").
Currently the position is updated in each loop iteration of
isolate_freepages(), although it should be enough to update it only when
breaking from the loop. There's also an extra check outside the loop
updates the position in case we have met the migration scanner.
This can be simplified if we move the test for having isolated enough
from the for-loop header next to the test for contention, and
determining the restart position only in these cases. We can reuse the
isolate_start_pfn variable for this instead of setting cc->free_pfn
directly. Outside the loop, we can simply set cc->free_pfn to current
value of isolate_start_pfn without any extra check.
Also add a VM_BUG_ON to catch possible mistake in the future, in case we
later add a new condition that terminates isolate_freepages_block()
prematurely without also considering the condition in
isolate_freepages().
Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Acked-by: Mel Gorman <mgorman@xxxxxxx>
Acked-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Cc: Michal Nazarewicz <mina86@xxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit f2849aa09d4fbc4145ebb5dc96187c9ab967f5cf
Author: Vlastimil Babka <vbabka@xxxxxxx>
Date: Tue Sep 8 15:02:36 2015 -0700
mm, compaction: more robust check for scanners meeting
Assorted compaction cleanups and optimizations. The interesting patches
are 4 and 5. In 4, skipping of compound pages in single iteration is
improved for migration scanner, so it works also for !PageLRU compound
pages such as hugetlbfs, slab etc. Patch 5 introduces this kind of
skipping in the free scanner. The trick is that we can read
compound_order() without any protection, if we are careful to filter out
values larger than MAX_ORDER. The only danger is that we skip too much.
The same trick was already used for reading the freepage order in the
migrate scanner.
To demonstrate improvements of Patches 4 and 5 I've run stress-highalloc
from mmtests, set to simulate THP allocations (including __GFP_COMP) on
a 4GB system where 1GB was occupied by hugetlbfs pages. I'll include
just the relevant stats:
Patch 3 Patch 4 Patch 5
Compaction stalls 7523 7529 7515
Compaction success 323 304 322
Compaction failures 7200 7224 7192
Page migrate success 247778 264395 240737
Page migrate failure 15358 33184 21621
Compaction pages isolated 906928 980192 909983
Compaction migrate scanned 2005277 1692805 1498800
Compaction free scanned 13255284 11539986 9011276
Compaction cost 288 305 277
With 5 iterations per patch, the results are still noisy, but we can see
that Patch 4 does reduce migrate_scanned by 15% thanks to skipping the
hugetlbfs pages at once. Interestingly, free_scanned is also reduced
and I have no idea why. Patch 5 further reduces free_scanned as
expected, by 15%. Other stats are unaffected modulo noise.
[1] https://lkml.org/lkml/2015/1/19/158
This patch (of 5):
Compaction should finish when the migration and free scanner meet, i.e.
they reach the same pageblock. Currently however, the test in
compact_finished() simply just compares the exact pfns, which may yield
a false negative when the free scanner position is in the middle of a
pageblock and the migration scanner reaches the begining of the same
pageblock.
This hasn't been a problem until commit e14c720efdd7 ("mm, compaction:
remember position within pageblock in free pages scanner") allowed the
free scanner position to be in the middle of a pageblock between
invocations. The hot-fix 1d5bfe1ffb5b ("mm, compaction: prevent
infinite loop in compact_zone") prevented the issue by adding a special
check in the migration scanner to satisfy the current detection of
scanners meeting.
However, the proper fix is to make the detection more robust. This
patch introduces the compact_scanners_met() function that returns true
when the free scanner position is in the same or lower pageblock than
the migration scanner. The special case in isolate_migratepages()
introduced by 1d5bfe1ffb5b is removed.
Suggested-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Acked-by: Mel Gorman <mgorman@xxxxxxx>
Acked-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Acked-by: Michal Nazarewicz <mina86@xxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Acked-by: Rik van Riel <riel@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1fc524d74cf40072a2de3f74a920818398dbff30
Author: Sean O. Stalley <sean.stalley@xxxxxxxxx>
Date: Tue Sep 8 15:02:33 2015 -0700
coccinelle: mm: scripts/coccinelle/api/alloc/pool_zalloc-simple.cocci
add [pci|dma]_pool_zalloc coccinelle check.
replaces instances of [pci|dma]_pool_alloc() followed by memset(0)
with [pci|dma]_pool_zalloc().
Signed-off-by: Sean O. Stalley <sean.stalley@xxxxxxxxx>
Acked-by: Julia Lawall <julia.lawall@xxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Gilles Muller <Gilles.Muller@xxxxxxx>
Cc: Nicolas Palix <nicolas.palix@xxxxxxx>
Cc: Michal Marek <mmarek@xxxxxxx>
Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 01a7fd337b2c2af97e9c55bb9406a222a2e209d3
Author: Sean O. Stalley <sean.stalley@xxxxxxxxx>
Date: Tue Sep 8 15:02:30 2015 -0700
pci: mm: add pci_pool_zalloc() call
Add a wrapper function for pci_pool_alloc() to get zeroed memory.
Signed-off-by: Sean O. Stalley <sean.stalley@xxxxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Gilles Muller <Gilles.Muller@xxxxxxx>
Cc: Nicolas Palix <nicolas.palix@xxxxxxx>
Cc: Michal Marek <mmarek@xxxxxxx>
Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ad82362b2defd4adad87d8538617b2f51a4bf9c3
Author: Sean O. Stalley <sean.stalley@xxxxxxxxx>
Date: Tue Sep 8 15:02:27 2015 -0700
mm: add dma_pool_zalloc() call to DMA API
Add a wrapper function for dma_pool_alloc() to get zeroed memory.
Signed-off-by: Sean O. Stalley <sean.stalley@xxxxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Gilles Muller <Gilles.Muller@xxxxxxx>
Cc: Nicolas Palix <nicolas.palix@xxxxxxx>
Cc: Michal Marek <mmarek@xxxxxxx>
Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit fa23f56d90ed7bd760ae2aea6dfb2f501a099e90
Author: Sean O. Stalley <sean.stalley@xxxxxxxxx>
Date: Tue Sep 8 15:02:24 2015 -0700
mm: add support for __GFP_ZERO flag to dma_pool_alloc()
Currently a call to dma_pool_alloc() with a ___GFP_ZERO flag returns a
non-zeroed memory region.
This patchset adds support for the __GFP_ZERO flag to dma_pool_alloc(),
adds 2 wrapper functions for allocing zeroed memory from a pool, and
provides a coccinelle script for finding & replacing instances of
dma_pool_alloc() followed by memset(0) with a single dma_pool_zalloc()
call.
There was some concern that this always calls memset() to zero, instead
of passing __GFP_ZERO into the page allocator.
[https://lkml.org/lkml/2015/7/15/881]
I ran a test on my system to get an idea of how often dma_pool_alloc()
calls into pool_alloc_page().
After Boot: [ 30.119863] alloc_calls:541, page_allocs:7
After an hour: [ 3600.951031] alloc_calls:9566, page_allocs:12
After copying 1GB file onto a USB drive:
[ 4260.657148] alloc_calls:17225, page_allocs:12
It doesn't look like dma_pool_alloc() calls down to the page allocator
very often (at least on my system).
This patch (of 4):
Currently the __GFP_ZERO flag is ignored by dma_pool_alloc().
Make dma_pool_alloc() zero the memory if this flag is set.
Signed-off-by: Sean O. Stalley <sean.stalley@xxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Gilles Muller <Gilles.Muller@xxxxxxx>
Cc: Nicolas Palix <nicolas.palix@xxxxxxx>
Cc: Michal Marek <mmarek@xxxxxxx>
Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c54839a722a02818677bcabe57e957f0ce4f841d
Author: Jaewon Kim <jaewon31.kim@xxxxxxxxxxx>
Date: Tue Sep 8 15:02:21 2015 -0700
vmscan: fix increasing nr_isolated incurred by putback unevictable pages
reclaim_clean_pages_from_list() assumes that shrink_page_list() returns
number of pages removed from the candidate list. But shrink_page_list()
puts back mlocked pages without passing it to caller and without
counting as nr_reclaimed. This increases nr_isolated.
To fix this, this patch changes shrink_page_list() to pass unevictable
pages back to caller. Caller will take care those pages.
Minchan said:
It fixes two issues.
1. With unevictable page, cma_alloc will be successful.
Exactly speaking, cma_alloc of current kernel will fail due to
unevictable pages.
2. fix leaking of NR_ISOLATED counter of vmstat
With it, too_many_isolated works. Otherwise, it could make hang until
the process get SIGKILL.
Signed-off-by: Jaewon Kim <jaewon31.kim@xxxxxxxxxxx>
Acked-by: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Acked-by: Vlastimil Babka <vbabka@xxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 0b802f101d0c6caeeee89066dc2c8665082a83df
Author: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Date: Tue Sep 8 15:02:18 2015 -0700
mm: vmscan: never isolate more pages than necessary
If transparent huge pages are enabled, we can isolate many more pages
than we actually need to scan, because we count both single and huge
pages equally in isolate_lru_pages().
Since commit 5bc7b8aca942d ("mm: thp: add split tail pages to shrink
page list in page reclaim"), we scan all the tail pages immediately
after a huge page split (see shrink_page_list()). As a result, we can
reclaim up to SWAP_CLUSTER_MAX * HPAGE_PMD_NR (512 MB) in one run!
This is easy to catch on memcg reclaim with zswap enabled. The latter
makes swapout instant so that if we happen to scan an unreferenced huge
page we will evict both its head and tail pages immediately, which is
likely to result in excessive reclaim.
Signed-off-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Reviewed-by: Michal Hocko <mhocko@xxxxxxx>
Cc: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 64b990d2957cb535fe1c17b9694d5d4f7de69962
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 15:02:15 2015 -0700
mm: drop __nocast from vm_flags_t definition
__nocast does no good for vm_flags_t. It only produces useless sparse
warnings.
Let's drop it.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1b4ace4141db1ddc46f6c9915086dd5e18d7154d
Author: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Date: Tue Sep 8 15:02:12 2015 -0700
bootmem: avoid freeing to bootmem after bootmem is done
Bootmem isn't popular any more, but some architectures still use it, and
freeing to bootmem after calling free_all_bootmem_core() can end up
scribbling over random memory. Instead, make sure the kernel generates
a warning in this case by ensuring the node_bootmem_map field is
non-NULL when are freeing or marking bootmem.
An instance of this bug was just fixed in the tile architecture ("tile:
use free_bootmem_late() for initrd") and catching this case more widely
seems like a good thing.
Signed-off-by: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Acked-by: Mel Gorman <mgorman@xxxxxxx>
Cc: Yasuaki Ishimatsu <isimatu.yasuaki@xxxxxxxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Cc: Paul McQuade <paulmcquad@xxxxxxxxx>
Cc: Tang Chen <tangchen@xxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c5b4e1b02f2a0c2309ecd58a235a2f5ee4eb0074
Author: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Date: Tue Sep 8 15:02:09 2015 -0700
mm, page_isolation: make set/unset_migratetype_isolate() file-local
Nowaday, set/unset_migratetype_isolate() is defined and used only in
mm/page_isolation, so let's limit the scope within the file.
Signed-off-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Acked-by: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit acda0c3340282bc7c36f4e9a5e2ccb7bb7e64676
Author: Aristeu Rozanski <aris@xxxxxxxxxx>
Date: Tue Sep 8 15:02:06 2015 -0700
mm/mempolicy.c: get rid of duplicated check for vma(VM_PFNMAP) in
queue_pages_range()
This check was introduced as part of
6f4576e3687 ("mempolicy: apply page table walker on
queue_pages_range()")
which got duplicated by
48684a65b4e ("mm: pagewalk: fix misbehavior of walk_page_range for
vma(VM_PFNMAP)")
by reintroducing it earlier on queue_page_test_walk()
Signed-off-by: Aristeu Rozanski <aris@xxxxxxxxxx>
Acked-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Cyrill Gorcunov <gorcunov@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 95cf82ecc1fcb44df1768162343cc8eb88083b86
Author: Tang Chen <tangchen@xxxxxxxxxxxxxx>
Date: Tue Sep 8 15:02:03 2015 -0700
mem-hotplug: handle node hole when initializing numa_meminfo.
When parsing SRAT, all memory ranges are added into numa_meminfo. In
numa_init(), before entering numa_cleanup_meminfo(), all possible memory
ranges are in numa_meminfo. And numa_cleanup_meminfo() removes all
ranges over max_pfn or empty.
But, this only works if the nodes are continuous. Let's have a look at
the following example:
We have an SRAT like this:
SRAT: Node 0 PXM 0 [mem 0x00000000-0x5fffffff]
SRAT: Node 0 PXM 0 [mem 0x100000000-0x1ffffffffff]
SRAT: Node 1 PXM 1 [mem 0x20000000000-0x3ffffffffff]
SRAT: Node 4 PXM 2 [mem 0x40000000000-0x5ffffffffff] hotplug
SRAT: Node 5 PXM 3 [mem 0x60000000000-0x7ffffffffff] hotplug
SRAT: Node 2 PXM 4 [mem 0x80000000000-0x9ffffffffff] hotplug
SRAT: Node 3 PXM 5 [mem 0xa0000000000-0xbffffffffff] hotplug
SRAT: Node 6 PXM 6 [mem 0xc0000000000-0xdffffffffff] hotplug
SRAT: Node 7 PXM 7 [mem 0xe0000000000-0xfffffffffff] hotplug
On boot, only node 0,1,2,3 exist.
And the numa_meminfo will look like this:
numa_meminfo.nr_blks = 9
1. on node 0: [0, 60000000]
2. on node 0: [100000000, 20000000000]
3. on node 1: [20000000000, 40000000000]
4. on node 4: [40000000000, 60000000000]
5. on node 5: [60000000000, 80000000000]
6. on node 2: [80000000000, a0000000000]
7. on node 3: [a0000000000, a0800000000]
8. on node 6: [c0000000000, a0800000000]
9. on node 7: [e0000000000, a0800000000]
And numa_cleanup_meminfo() will merge 1 and 2, and remove 8,9 because the
end address is over max_pfn, which is a0800000000. But 4 and 5 are not
removed because their end addresses are less then max_pfn. But in fact,
node 4 and 5 don't exist.
In a word, numa_cleanup_meminfo() is not able to handle holes between
nodes.
Since memory ranges in node 4 and 5 are in numa_meminfo, in
numa_register_memblks(), node 4 and 5 will be mistakenly set to online.
If you run lscpu, it will show:
NUMA node0 CPU(s): 0-14,128-142
NUMA node1 CPU(s): 15-29,143-157
NUMA node2 CPU(s):
NUMA node3 CPU(s):
NUMA node4 CPU(s): 62-76,190-204
NUMA node5 CPU(s): 78-92,206-220
In this patch, we use memblock_overlaps_region() to check if ranges in
numa_meminfo overlap with ranges in memory_block. Since memory_block
contains all available memory at boot time, if they overlap, it means the
ranges exist. If not, then remove them from numa_meminfo.
After this patch, lscpu will show:
NUMA node0 CPU(s): 0-14,128-142
NUMA node1 CPU(s): 15-29,143-157
NUMA node4 CPU(s): 62-76,190-204
NUMA node5 CPU(s): 78-92,206-220
Signed-off-by: Tang Chen <tangchen@xxxxxxxxxxxxxx>
Reviewed-by: Yasuaki Ishimatsu <isimatu.yasuaki@xxxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Luiz Capitulino <lcapitulino@xxxxxxxxxx>
Cc: Xishi Qiu <qiuxishi@xxxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Vladimir Murzin <vladimir.murzin@xxxxxxx>
Cc: Fabian Frederick <fabf@xxxxxxxxx>
Cc: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Cc: Baoquan He <bhe@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c5c5c9d1008fb15945d0173b3ca75931ef53ae1f
Author: Tang Chen <tangchen@xxxxxxxxxxxxxx>
Date: Tue Sep 8 15:02:00 2015 -0700
mm/memblock.c: make memblock_overlaps_region() return bool.
memblock_overlaps_region() checks if the given memblock region
intersects a region in memblock. If so, it returns the index of the
intersected region.
But its only caller is memblock_is_region_reserved(), and it returns 0
if false, non-zero if true.
Both of these should return bool.
Signed-off-by: Tang Chen <tangchen@xxxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Yasuaki Ishimatsu <isimatu.yasuaki@xxxxxxxxxxxxxx>
Cc: Luiz Capitulino <lcapitulino@xxxxxxxxxx>
Cc: Xishi Qiu <qiuxishi@xxxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Vladimir Murzin <vladimir.murzin@xxxxxxx>
Cc: Fabian Frederick <fabf@xxxxxxxxx>
Cc: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Cc: Baoquan He <bhe@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 72079ba0dfefc1444b4ef98a2fa3d040838a775f
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:01:57 2015 -0700
mm: madvise allow remove operation for hugetlbfs
Now that we have hole punching support for hugetlbfs, we can also
support the MADV_REMOVE interface to it.
Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: Aneesh Kumar <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 70c3547e36f5c9fbc4caecfeca98f0effa6932c5
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:01:54 2015 -0700
hugetlbfs: add hugetlbfs_fallocate()
This is based on the shmem version, but it has diverged quite a bit. We
have no swap to worry about, nor the new file sealing. Add
synchronication via the fault mutex table to coordinate page faults,
fallocate allocation and fallocate hole punch.
What this allows us to do is move physical memory in and out of a
hugetlbfs file without having it mapped. This also gives us the ability
to support MADV_REMOVE since it is currently implemented using
fallocate(). MADV_REMOVE lets madvise() remove pages from the middle of
a hugetlbfs file, which wasn't possible before.
hugetlbfs fallocate only operates on whole huge pages.
Based on code by Dave Hansen.
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: Aneesh Kumar <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ab76ad540a50191308e5bb6b5e2d9e26c78616d3
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:01:50 2015 -0700
hugetlbfs: New huge_add_to_page_cache helper routine
Currently, there is only a single place where hugetlbfs pages are added
to the page cache. The new fallocate code be adding a second one, so
break the functionality out into its own helper.
Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: Aneesh Kumar <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d85f69b0b533ec6d7ac8c21db958c44c6d957c90
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:01:47 2015 -0700
mm/hugetlb: alloc_huge_page handle areas hole punched by fallocate
Areas hole punched by fallocate will not have entries in the
region/reserve map. However, shared mappings with min_size subpool
reservations may still have reserved pages. alloc_huge_page needs to
handle this special case and do the proper accounting.
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: Aneesh Kumar <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1fb1b0e9ef2d661488f8053986c3b7641cae529d
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:01:44 2015 -0700
mm/hugetlb: vma_has_reserves() needs to handle fallocate hole punch
In vma_has_reserves(), the current assumption is that reserves are
always present for shared mappings. However, this will not be the case
with fallocate hole punch. When punching a hole, the present page will
be deleted as well as the region/reserve map entry (and hence any
reservation). vma_has_reserves is passed "chg" which indicates whether
or not a region/reserve map is present. Use this to determine if
reserves are actually present or were removed via hole punch.
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: Aneesh Kumar <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b5cec28d36f5ee6b4e6f68a0a40aa1e4045d6d99
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:01:41 2015 -0700
hugetlbfs: truncate_hugepages() takes a range of pages
Modify truncate_hugepages() to take a range of pages (start, end)
instead of simply start. If an end value of LLONG_MAX is passed, the
current "truncate" functionality is maintained. Existing callers are
modified to pass LLONG_MAX as end of range. By keying off end ==
LLONG_MAX, the routine behaves differently for truncate and hole punch.
Page removal is now synchronized with page allocation via faults by
using the fault mutex table. The hole punch case can experience the
rare region_del error and must handle accordingly.
Add the routine hugetlb_fix_reserve_counts to fix up reserve counts in
the case where region_del returns an error.
Since the routine handles more than just the truncate case, it is
renamed to remove_inode_hugepages(). To be consistent, the routine
truncate_huge_page() is renamed remove_huge_page().
Downstream of remove_inode_hugepages(), the routine
hugetlb_unreserve_pages() is also modified to take a range of pages.
hugetlb_unreserve_pages is modified to detect an error from region_del and
pass it back to the caller.
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: Aneesh Kumar <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1bfad99ab42569807d0ca1698449cae5e8c0334a
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:01:38 2015 -0700
hugetlbfs: hugetlb_vmtruncate_list() needs to take a range to delete
fallocate hole punch will want to unmap a specific range of pages.
Modify the existing hugetlb_vmtruncate_list() routine to take a
start/end range. If end is 0, this indicates all pages after start
should be unmapped. This is the same as the existing truncate
functionality. Modify existing callers to add 0 as end of range.
Since the routine will be used in hole punch as well as truncate
operations, it is more appropriately renamed to hugetlb_vmdelete_list().
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: Aneesh Kumar <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c672c7f29f2fdb73e1f72911bf499675c81fcdbb
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:01:35 2015 -0700
mm/hugetlb: expose hugetlb fault mutex for use by fallocate
hugetlb page faults are currently synchronized by the table of mutexes
(htlb_fault_mutex_table). fallocate code will need to synchronize with
the page fault code when it allocates or deletes pages. Expose
interfaces so that fallocate operations can be synchronized with page
faults. Minor name changes to be more consistent with other global
hugetlb symbols.
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: Aneesh Kumar <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit feba16e25a578080af5aad5eb9e469b4e6c23eef
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:01:31 2015 -0700
mm/hugetlb: add region_del() to delete a specific range of entries
fallocate hole punch will want to remove a specific range of pages. The
existing region_truncate() routine deletes all region/reserve map
entries after a specified offset. region_del() will provide this same
functionality if the end of region is specified as LONG_MAX. Hence,
region_del() can replace region_truncate().
Unlike region_truncate(), region_del() can return an error in the rare
case where it can not allocate memory for a region descriptor. This
ONLY happens in the case where an existing region must be split.
Current callers passing LONG_MAX as end of range will never experience
this error and do not need to deal with error handling. Future callers
of region_del() (such as fallocate hole punch) will need to handle this
error.
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: Aneesh Kumar <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 5e9113731a3ce616e8b5aa128ffc1aeaa4942571
Author: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Date: Tue Sep 8 15:01:28 2015 -0700
mm/hugetlb: add cache of descriptors to resv_map for region_add
hugetlbfs is used today by applications that want a high degree of
control over huge page usage. Often, large hugetlbfs files are used to
map a large number huge pages into the application processes. The
applications know when page ranges within these large files will no
longer be used, and ideally would like to release them back to the
subpool or global pools for other uses. The fallocate() system call
provides an interface for preallocation and hole punching within files.
This patch set adds fallocate functionality to hugetlbfs.
fallocate hole punch will want to remove a specific range of pages.
When pages are removed, their associated entries in the region/reserve
map will also be removed. This will break an assumption in the
region_chg/region_add calling sequence. If a new region descriptor must
be allocated, it is done as part of the region_chg processing. In this
way, region_add can not fail because it does not need to attempt an
allocation.
To prepare for fallocate hole punch, create a "cache" of descriptors
that can be used by region_add if necessary. region_chg will ensure
there are sufficient entries in the cache. It will be necessary to
track the number of in progress add operations to know a sufficient
number of descriptors reside in the cache. A new routine region_abort
is added to adjust this in progress count when add operations are
aborted. vma_abort_reservation is also added for callers creating
reservations with vma_needs_reservation/vma_commit_reservation.
[akpm@xxxxxxxxxxxxxxxxxxxx: fix typo in comment, use more cols]
Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
Cc: Aneesh Kumar <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit bb14c2c75db972a1bf65fd63c8d5a0b41a8f263a
Author: Vlastimil Babka <vbabka@xxxxxxx>
Date: Tue Sep 8 15:01:25 2015 -0700
mm: rename and move get/set_freepage_migratetype
The pair of get/set_freepage_migratetype() functions are used to cache
pageblock migratetype for a page put on a pcplist, so that it does not
have to be retrieved again when the page is put on a free list (e.g.
when pcplists become full). Historically it was also assumed that the
value is accurate for pages on freelists (as the functions' names
unfortunately suggest), but that cannot be guaranteed without affecting
various allocator fast paths. It is in fact not needed and all such
uses have been removed.
The last remaining (but pointless) usage related to pages of freelists
is in move_freepages(), which this patch removes.
To prevent further confusion, rename the functions to
get/set_pcppage_migratetype() and expand their description. Since all
the users are now in mm/page_alloc.c, move the functions there from the
shared header.
Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Acked-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Acked-by: Michal Nazarewicz <mina86@xxxxxxxxxx>
Cc: Laura Abbott <lauraa@xxxxxxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Seungho Park <seungho1.park@xxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Acked-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit aa016d145d4c3b8a7273429528f19d5b423ddbc7
Author: Vlastimil Babka <vbabka@xxxxxxx>
Date: Tue Sep 8 15:01:22 2015 -0700
mm, page_isolation: remove bogus tests for isolated pages
The __test_page_isolated_in_pageblock() is used to verify whether all
pages in pageblock were either successfully isolated, or are hwpoisoned.
Two of the possible state of pages, that are tested, are however bogus
and misleading.
Both tests rely on get_freepage_migratetype(page), which however has no
guarantees about pages on freelists. Specifically, it doesn't guarantee
that the migratetype returned by the function actually matches the
migratetype of the freelist that the page is on. Such guarantee is not
its purpose and would have negative impact on allocator performance.
The first test checks whether the freepage_migratetype equals
MIGRATE_ISOLATE, supposedly to catch races between page isolation and
allocator activity. These races should be fixed nowadays with
51bb1a4093 ("mm/page_alloc: add freepage on isolate pageblock to correct
buddy list") and related patches. As explained above, the check
wouldn't be able to catch them reliably anyway. For the same reason
false positives can happen, although they are harmless, as the
move_freepages() call would just move the page to the same freelist it's
already on. So removing the test is not a bug fix, just cleanup. After
this patch, we assume that all PageBuddy pages are on the correct
freelist and that the races were really fixed. A truly reliable
verification in the form of e.g. VM_BUG_ON() would be complicated and
is arguably not needed.
The second test (page_count(page) == 0 && get_freepage_migratetype(page)
== MIGRATE_ISOLATE) is probably supposed (the code comes from a big
memory isolation patch from 2007) to catch pages on MIGRATE_ISOLATE
pcplists. However, pcplists don't contain MIGRATE_ISOLATE freepages
nowadays, those are freed directly to free lists, so the check is
obsolete. Remove it as well.
Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
Acked-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Acked-by: Michal Nazarewicz <mina86@xxxxxxxxxx>
Cc: Laura Abbott <lauraa@xxxxxxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Seungho Park <seungho1.park@xxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Acked-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 156408c0edaacbea1137f58b28fd6ec341064310
Author: Vishnu Pratap Singh <vishnu.ps@xxxxxxxxxxx>
Date: Tue Sep 8 15:01:19 2015 -0700
lib/show_mem.c: correct reserved memory calculation
CMA reserved memory is not part of total reserved memory. Currently
when we print the total reserve memory it considers cma as part of
reserve memory and do minus of totalcma_pages from reserved, which is
wrong. In cases where total reserved is less than cma reserved we will
get negative values & while printing we print as unsigned and we will
get a very large value.
Below is the show mem output on X86 ubuntu based system where CMA
reserved is 100MB (25600 pages) & total reserved is ~40MB(10316 pages).
And reserve memory shows a large value because of this bug.
Before:
[ 127.066430] 898908 pages RAM
[ 127.066432] 671682 pages HighMem/MovableOnly
[ 127.066434] 4294952012 pages reserved
[ 127.066436] 25600 pages cma reserved
After:
[ 44.663129] 898908 pages RAM
[ 44.663130] 671682 pages HighMem/MovableOnly
[ 44.663130] 10316 pages reserved
[ 44.663131] 25600 pages cma reserved
Signed-off-by: Vishnu Pratap Singh <vishnu.ps@xxxxxxxxxxx>
Cc: Michal Nazarewicz <mina86@xxxxxxxxxx>
Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Cc: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx>
Cc: Sasha Levin <sasha.levin@xxxxxxxxxx>
Cc: Danesh Petigara <dpetigara@xxxxxxxxxxxx>
Cc: Laura Abbott <lauraa@xxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e752eb68811aeece2220e183e23369a34122fb5e
Author: Michal Hocko <mhocko@xxxxxxxx>
Date: Tue Sep 8 15:01:16 2015 -0700
memcg: move memcg_proto_active from sock.h
The only user is sock_update_memcg which is living in memcontrol.c so it
doesn't make much sense to pollute sock.h by this inline helper. Move it
to memcontrol.c and open code it into its only caller.
Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>
Cc: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit a03f1f058969ec350fb7451a6fbca23096ee5727
Author: Michal Hocko <mhocko@xxxxxxx>
Date: Tue Sep 8 15:01:13 2015 -0700
memcg, tcp_kmem: check for cg_proto in sock_update_memcg
sk_prot->proto_cgroup is allowed to return NULL but sock_update_memcg
doesn't check for NULL. The function relies on the mem_cgroup_is_root
check because we shouldn't get NULL otherwise because mem_cgroup_from_task
will always return !NULL.
All other callers are checking for NULL and we can safely replace
mem_cgroup_is_root() check by cg_proto != NULL which will be more
straightforward (proto_cgroup returns NULL for the root memcg already).
Signed-off-by: Michal Hocko <mhocko@xxxxxxx>
Reviewed-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 9f2115f93b88e5e8d48b87b153e36a537afb58cb
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Sep 8 15:01:10 2015 -0700
memcg: restructure mem_cgroup_can_attach()
Restructure it to lower nesting level and help the planned threadgroup
leader iteration changes.
This is pure reorganization.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Michal Hocko <mhocko@xxxxxxx>
Reviewed-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 64219994898c8689c3d57668996f476f8c2d398c
Author: Michal Hocko <mhocko@xxxxxxx>
Date: Tue Sep 8 15:01:07 2015 -0700
memcg: get rid of extern for functions in memcontrol.h
Most of the exported functions in this header are not marked extern so
change the rest to follow the same style.
Signed-off-by: Michal Hocko <mhocko@xxxxxxx>
Reviewed-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit fabc3fdde00b54825ba23230aedbf88a735b4e49
Author: Michal Hocko <mhocko@xxxxxxx>
Date: Tue Sep 8 15:01:04 2015 -0700
memcg: get rid of mem_cgroup_root_css for !CONFIG_MEMCG
The only user is cgwb_bdi_init and that one depends on
CONFIG_CGROUP_WRITEBACK which in turn depends on CONFIG_MEMCG so it
doesn't make much sense to definte an empty stub for !CONFIG_MEMCG.
Moreover ERR_PTR(-EINVAL) is ugly and would lead to runtime crashes if
used in unguarded code paths. Better fail during compilation.
Signed-off-by: Michal Hocko <mhocko@xxxxxxx>
Reviewed-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 33398cf2f360c5ce24c8a22436d52a06ad4e5eb5
Author: Michal Hocko <mhocko@xxxxxxx>
Date: Tue Sep 8 15:01:02 2015 -0700
memcg: export struct mem_cgroup
mem_cgroup structure is defined in mm/memcontrol.c currently which means
that the code outside of this file has to use external API even for
trivial access stuff.
This patch exports mm_struct with its dependencies and makes some of the
exported functions inlines. This even helps to reduce the code size a bit
(make defconfig + CONFIG_MEMCG=y)
text data bss dec hex filename
12355346 1823792 1089536 15268674 e8fb42 vmlinux.before
12354970 1823792 1089536 15268298 e8f9ca vmlinux.after
This is not much (370B) but better than nothing.
We also save a function call in some hot paths like callers of
mem_cgroup_count_vm_event which is used for accounting.
The patch doesn't introduce any functional changes.
[vdavykov@xxxxxxxxxxxxx: inline memcg_kmem_is_active]
[vdavykov@xxxxxxxxxxxxx: do not expose type outside of CONFIG_MEMCG]
[akpm@xxxxxxxxxxxxxxxxxxxx: memcontrol.h needs eventfd.h for eventfd_ctx]
[akpm@xxxxxxxxxxxxxxxxxxxx: export mem_cgroup_from_task() to modules]
Signed-off-by: Michal Hocko <mhocko@xxxxxxx>
Reviewed-by: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
Suggested-by: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b3d9ed3fd872fc074286674ae8595ee880938bbf
Author: Michal Hocko <mhocko@xxxxxxxx>
Date: Tue Sep 8 15:00:59 2015 -0700
sparc32: do not include swap.h from pgtable_32.h
"memcg: export struct mem_cgroup" will add includes into
linux/memcontrol.h which lead to further header dependency issues as
reported by Guenter Roeck:
In file included from include/linux/highmem.h:7:0,
from include/linux/bio.h:23,
from include/linux/writeback.h:192,
from include/linux/memcontrol.h:30,
from include/linux/swap.h:8,
from ./arch/sparc/include/asm/pgtable_32.h:17,
from ./arch/sparc/include/asm/pgtable.h:6,
from arch/sparc/kernel/traps_32.c:23:
include/linux/mm.h: In function 'is_vmalloc_addr':
include/linux/mm.h:371:17: error: 'VMALLOC_START' undeclared (first use
in this function)
include/linux/mm.h:371:17: note: each undeclared identifier is reported
only once for each function it appears in
include/linux/mm.h:371:41: error: 'VMALLOC_END' undeclared (first use
in this function)
include/linux/mm.h: In function 'maybe_mkwrite':
include/linux/mm.h:556:3: error: implicit declaration of function
'pte_mkwrite'
The issue is that pgtable_32.h depends on swap.h to get swap_entry_t but
that goes all the way down to linux/mm.h which wants to have VMALLOC_*
which is defined later in pgtable_32.h, though.
swap_entry_t is defined in include/mm_types.h so it should be sufficient
to include this header without more dependencies.
Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>
Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Tested-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: David Miller <davem@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 44d7175da6ea10e353e69b586bb68bbfef89e403
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:00:56 2015 -0700
mm/dmapool: allow NULL `pool' pointer in dma_pool_destroy()
dma_pool_destroy() does not tolerate a NULL dma_pool pointer argument and
performs a NULL-pointer dereference. This requires additional attention
and effort from developers/reviewers and forces all dma_pool_destroy()
callers to do a NULL check
if (pool)
dma_pool_destroy(pool);
Or, otherwise, be invalid dma_pool_destroy() users.
Tweak dma_pool_destroy() and NULL-check the pointer there.
Proposed by Andrew Morton.
Link: https://lkml.org/lkml/2015/6/8/583
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 4e3ca3e033d1eea62fa16c3fdbef4f20427bd0de
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:00:53 2015 -0700
mm/mempool: allow NULL `pool' pointer in mempool_destroy()
mempool_destroy() does not tolerate a NULL mempool_t pointer argument and
performs a NULL-pointer dereference. This requires additional attention
and effort from developers/reviewers and forces all mempool_destroy()
callers to do a NULL check
if (pool)
mempool_destroy(pool);
Or, otherwise, be invalid mempool_destroy() users.
Tweak mempool_destroy() and NULL-check the pointer there.
Proposed by Andrew Morton.
Link: https://lkml.org/lkml/2015/6/8/583
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3942d29918522ba6a393c19388301ec04df429cd
Author: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Date: Tue Sep 8 15:00:50 2015 -0700
mm/slab_common: allow NULL cache pointer in kmem_cache_destroy()
kmem_cache_destroy() does not tolerate a NULL kmem_cache pointer argument
and performs a NULL-pointer dereference. This requires additional
attention and effort from developers/reviewers and forces all
kmem_cache_destroy() callers (200+ as of 4.1) to do a NULL check
if (cache)
kmem_cache_destroy(cache);
Or, otherwise, be invalid kmem_cache_destroy() users.
Tweak kmem_cache_destroy() and NULL-check the pointer there.
Proposed by Andrew Morton.
Link: https://lkml.org/lkml/2015/6/8/583
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 75e8f8b24cb0dc4951267d31f0a49e5ce2f345c4
Author: David Rientjes <rientjes@xxxxxxxxxx>
Date: Tue Sep 8 15:00:47 2015 -0700
mm, oom: remove unnecessary variable
The "killed" variable in out_of_memory() can be removed since the call to
oom_kill_process() where we should block to allow the process time to
exit is obvious.
Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx>
Acked-by: Michal Hocko <mhocko@xxxxxxxx>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 8989e4c7d4e3c30b55c998a1138cd06c92df7295
Author: David Rientjes <rientjes@xxxxxxxxxx>
Date: Tue Sep 8 15:00:44 2015 -0700
mm, oom: add description of struct oom_control
Describe the purpose of struct oom_control and what each member does.
Also make gfp_mask and order const since they are never manipulated or
passed to functions that discard the qualifier.
Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 071a4befebb655d6b31bf5c6bacd5a6df035224d
Author: David Rientjes <rientjes@xxxxxxxxxx>
Date: Tue Sep 8 15:00:42 2015 -0700
mm, oom: do not panic for oom kills triggered from sysrq
Sysrq+f is used to kill a process either for debug or when the VM is
otherwise unresponsive.
It is not intended to trigger a panic when no process may be killed.
Avoid panicking the system for sysrq+f when no processes are killed.
Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx>
Suggested-by: Michal Hocko <mhocko@xxxxxxx>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 54e9e29132d7caefcad470281cae06ac34a982c8
Author: David Rientjes <rientjes@xxxxxxxxxx>
Date: Tue Sep 8 15:00:39 2015 -0700
mm, oom: pass an oom order of -1 when triggered by sysrq
The force_kill member of struct oom_control isn't needed if an order of -1
is used instead. This is the same as order == -1 in struct
compact_control which requires full memory compaction.
This patch introduces no functional change.
Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 6e0fc46dc2152d3e2d25a5d5b640ae3586c247c6
Author: David Rientjes <rientjes@xxxxxxxxxx>
Date: Tue Sep 8 15:00:36 2015 -0700
mm, oom: organize oom context into struct
There are essential elements to an oom context that are passed around to
multiple functions.
Organize these elements into a new struct, struct oom_control, that
specifies the context for an oom condition.
This patch introduces no functional change.
Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx>
Acked-by: Michal Hocko <mhocko@xxxxxxx>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 2c0b80d463c6ade539d51ad03bc7c41849fb37e8
Author: Nicholas Krause <xerofoify@xxxxxxxxx>
Date: Tue Sep 8 15:00:33 2015 -0700
mm: make set_recommended_min_free_kbytes() return void
This makes set_recommended_min_free_kbytes() have a return type of void as
it cannot fail.
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
Acked-by: Michal Hocko <mhocko@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 28c015d07507e164d93b33498b4e482ff81c0e9b
Author: David Rientjes <rientjes@xxxxxxxxxx>
Date: Tue Sep 8 15:00:31 2015 -0700
mm: improve __GFP_NORETRY comment based on implementation
Explicitly state that __GFP_NORETRY will attempt direct reclaim and
memory compaction before returning NULL and that the oom killer is not
called in the current implementation of the page allocator.
[akpm@xxxxxxxxxxxxxxxxxxxx: s/has/have/]
Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 998ef75ddb5709bbea0bf1506cd2717348a3c647
Author: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 15:00:28 2015 -0700
fs: do not prefault sys_write() user buffer pages
=== Short summary ====
iov_iter_fault_in_readable() works around a really rare case and we can
avoid the deadlock it addresses in another way: disable page faults and
work around copy failures by faulting after the copy in a slow path
instead of before in a hot one.
I have a little microbenchmark that does repeated, small writes to tmpfs.
This patch speeds that micro up by 6.2%.
=== Long version ===
When doing a sys_write() we have a source buffer in userspace and then a
target file page.
If both of those are the same physical page, there is a potential deadlock
that we avoid. It would happen something like this:
1. We start the write to the file
2. Allocate page cache page and set it !Uptodate
3. Touch the userspace buffer to copy in the user data
4. Page fault (since source of the write not yet mapped)
5. Page fault code tries to lock the page and deadlocks
(more details on this below)
To avoid this, we prefault the page to guarantee that this fault does not
occur. But, this prefault comes at a cost. It is one of the most
expensive things that we do in a hot write() path (especially if we
compare it to the read path). It is working around a pretty rare case.
To fix this, it's pretty simple. We move the "prefault" code to run after
we attempt the copy. We explicitly disable page faults _during_ the copy,
detect the copy failure, then execute the "prefault" ouside of where the
page lock needs to be held.
iov_iter_copy_from_user_atomic() actually already has an implicit
pagefault_disable() inside of it (at least on x86), but we add an explicit
one. I don't think we can depend on every kmap_atomic() implementation to
pagefault_disable() for eternity.
===================================================
The stack trace when this happens looks like this:
wait_on_page_bit_killable+0xc0/0xd0
__lock_page_or_retry+0x84/0xa0
filemap_fault+0x1ed/0x3d0
__do_fault+0x41/0xc0
handle_mm_fault+0x9bb/0x1210
__do_page_fault+0x17f/0x3d0
do_page_fault+0xc/0x10
page_fault+0x22/0x30
generic_perform_write+0xca/0x1a0
__generic_file_write_iter+0x190/0x1f0
ext4_file_write_iter+0xe9/0x460
__vfs_write+0xaa/0xe0
vfs_write+0xa6/0x1a0
SyS_write+0x46/0xa0
entry_SYSCALL_64_fastpath+0x12/0x6a
0xffffffffffffffff
(Note, this does *NOT* happen in practice today because
the kmap_atomic() does a pagefault_disable(). The trace
above was obtained by taking out the pagefault_disable().)
You can trigger the deadlock with this little code snippet:
fd = open("foo", O_RDWR);
fdmap = mmap(NULL, len, PROT_WRITE|PROT_READ, MAP_SHARED, fd, 0);
write(fd, &fdmap[0], 1);
Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Jens Axboe <axboe@xxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: NeilBrown <neilb@xxxxxxx>
Cc: Matthew Wilcox <matthew.r.wilcox@xxxxxxxxx>
Cc: Paul Cassella <cassella@xxxxxxxx>
Cc: Greg Thelen <gthelen@xxxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 8334b96221ff0dcbde4873d31eb4d84774ed8ed4
Author: Minchan Kim <minchan@xxxxxxxxxx>
Date: Tue Sep 8 15:00:24 2015 -0700
mm: /proc/pid/smaps:: show proportional swap share of the mapping
We want to know per-process workingset size for smart memory management
on userland and we use swap(ex, zram) heavily to maximize memory
efficiency so workingset includes swap as well as RSS.
On such system, if there are lots of shared anonymous pages, it's really
hard to figure out exactly how many each process consumes memory(ie, rss
+ wap) if the system has lots of shared anonymous memory(e.g, android).
This patch introduces SwapPss field on /proc/<pid>/smaps so we can get
more exact workingset size per process.
Bongkyu tested it. Result is below.
1. 50M used swap
SwapTotal: 461976 kB
SwapFree: 411192 kB
$ adb shell cat /proc/*/smaps | grep "SwapPss:" | awk '{sum += $2} END
{print sum}';
48236
$ adb shell cat /proc/*/smaps | grep "Swap:" | awk '{sum += $2} END
{print sum}';
141184
2. 240M used swap
SwapTotal: 461976 kB
SwapFree: 216808 kB
$ adb shell cat /proc/*/smaps | grep "SwapPss:" | awk '{sum += $2} END
{print sum}';
230315
$ adb shell cat /proc/*/smaps | grep "Swap:" | awk '{sum += $2} END
{print sum}';
1387744
[akpm@xxxxxxxxxxxxxxxxxxxx: simplify kunmap_atomic() call]
Signed-off-by: Minchan Kim <minchan@xxxxxxxxxx>
Reported-by: Bongkyu Kim <bongkyu.kim@xxxxxxx>
Tested-by: Bongkyu Kim <bongkyu.kim@xxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Cc: Jerome Marchand <jmarchan@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3115aec4513e5bcb399235cac98a5637fe641c13
Author: Vladimir Murzin <vladimir.murzin@xxxxxxx>
Date: Tue Sep 8 15:00:22 2015 -0700
memtest: remove unused header files
memtest does not require these headers to be included.
Signed-off-by: Vladimir Murzin <vladimir.murzin@xxxxxxx>
Cc: Leon Romanovsky <leon@xxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit f373bafcad68834761b40da9cecda842f43d4797
Author: Vladimir Murzin <vladimir.murzin@xxxxxxx>
Date: Tue Sep 8 15:00:19 2015 -0700
memtest: cleanup log messages
- prefer pr_info(... to printk(KERN_INFO ...
- use %pa for phys_addr_t
- use cpu_to_be64 while printing pattern in reserve_bad_mem()
Signed-off-by: Vladimir Murzin <vladimir.murzin@xxxxxxx>
Cc: Leon Romanovsky <leon@xxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 06f805965fc205e27681eee99fd2376fafd8da65
Author: Vladimir Murzin <vladimir.murzin@xxxxxxx>
Date: Tue Sep 8 15:00:16 2015 -0700
memtest: use kstrtouint instead of simple_strtoul
Since simple_strtoul is obsolete and memtest_pattern is type of int, use
kstrtouint instead.
Signed-off-by: Vladimir Murzin <vladimir.murzin@xxxxxxx>
Cc: Leon Romanovsky <leon@xxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 83b4b0bb635eee2b8e075062e4e008d1bc110ed7
Author: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Date: Tue Sep 8 15:00:13 2015 -0700
pagemap: update documentation
Notes about recent changes.
[akpm@xxxxxxxxxxxxxxxxxxxx: various tweaks]
Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Cc: Mark Williamson <mwilliamson@xxxxxxxxxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 77bb499bb60f4b79cca7d139c8041662860fcf87
Author: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Date: Tue Sep 8 15:00:10 2015 -0700
pagemap: add mmap-exclusive bit for marking pages mapped only here
This patch sets bit 56 in pagemap if this page is mapped only once. It
allows to detect exclusively used pages without exposing PFN:
present file exclusive state
0 0 0 non-present
1 1 0 file page mapped somewhere else
1 1 1 file page mapped only here
1 0 0 anon non-CoWed page (shared with parent/child)
1 0 1 anon CoWed page (or never forked)
CoWed pages in (MAP_FILE | MAP_PRIVATE) areas are anon in this context.
MMap-exclusive bit doesn't reflect potential page-sharing via swapcache:
page could be mapped once but has several swap-ptes which point to it.
Application could detect that by swap bit in pagemap entry and touch that
pte via /proc/pid/mem to get real information.
See
http://lkml.kernel.org/r/CAEVpBa+_RyACkhODZrRvQLs80iy0sqpdrd0AaP_-tgnX3Y9yNQ@xxxxxxxxxxxxxx
Requested by Mark Williamson.
[akpm@xxxxxxxxxxxxxxxxxxxx: fix spello]
Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Reviewed-by: Mark Williamson <mwilliamson@xxxxxxxxxxxxxxxxx>
Tested-by: Mark Williamson <mwilliamson@xxxxxxxxxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1c90308e7a77af6742a97d1021cca923b23b7f0d
Author: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Date: Tue Sep 8 15:00:07 2015 -0700
pagemap: hide physical addresses from non-privileged users
This patch makes pagemap readable for normal users and hides physical
addresses from them. For some use-cases PFN isn't required at all.
See
http://lkml.kernel.org/r/1425935472-17949-1-git-send-email-kirill@xxxxxxxxxxxxx
Fixes: ab676b7d6fbf ("pagemap: do not leak physical addresses to
non-privileged userspace")
Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Reviewed-by: Mark Williamson <mwilliamson@xxxxxxxxxxxxxxxxx>
Tested-by: Mark Williamson <mwilliamson@xxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 356515e7b64c2629f686109d426baaf868cdf7e8
Author: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Date: Tue Sep 8 15:00:04 2015 -0700
pagemap: rework hugetlb and thp report
This patch moves pmd dissection out of reporting loop: huge pages are
reported as bunch of normal pages with contiguous PFNs.
Add missing "FILE" bit in hugetlb vmas.
Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Reviewed-by: Mark Williamson <mwilliamson@xxxxxxxxxxxxxxxxx>
Tested-by: Mark Williamson <mwilliamson@xxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit deb945441b9408d6cd15751f5232eeca9f50a5a1
Author: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Date: Tue Sep 8 15:00:02 2015 -0700
pagemap: switch to the new format and do some cleanup
This patch removes page-shift bits (scheduled to remove since 3.11) and
completes migration to the new bit layout. Also it cleans messy macro.
Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Mark Williamson <mwilliamson@xxxxxxxxxxxxxxxxx>
Tested-by: Mark Williamson <mwilliamson@xxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit a06db751c321546e5563041956a57613259c6720
Author: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:59 2015 -0700
pagemap: check permissions and capabilities at open time
This patchset makes pagemap useable again in the safe way (after row
hammer bug it was made CAP_SYS_ADMIN-only). This patchset restores access
for non-privileged users but hides PFNs from them.
Also it adds bit 'map-exclusive' which is set if page is mapped only here:
it helps in estimation of working set without exposing pfns and allows to
distinguish CoWed and non-CoWed private anonymous pages.
Second patch removes page-shift bits and completes migration to the new
pagemap format: flags soft-dirty and mmap-exclusive are available only in
the new format.
This patch (of 5):
This patch moves permission checks from pagemap_read() into
pagemap_open().
Pointer to mm is saved in file->private_data. This reference pins only
mm_struct itself. /proc/*/mem, maps, smaps already work in the same way.
See
http://lkml.kernel.org/r/CA+55aFyKpWrt_Ajzh1rzp_GcwZ4=6Y=kOv8hBz172CFJp6L8Tg@xxxxxxxxxxxxxx
Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Reviewed-by: Mark Williamson <mwilliamson@xxxxxxxxxxxxxxxxx>
Tested-by: Mark Williamson <mwilliamson@xxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b5e3aa0a4d5e35329203fd09acb0dbc7f7fd64de
Author: Vineet Gupta <Vineet.Gupta1@xxxxxxxxxxxx>
Date: Tue Sep 8 14:59:56 2015 -0700
mm: remove put_page_unless_one()
It has no callers.
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 4fcab5f437c481e51c270a2d12ef56a3f2367371
Author: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:53 2015 -0700
mm/memblock.c: WARN_ON when flags differs from overlap region
Each memblock_region has flags to indicates the type of this range. For
the overlap case, memblock_add_range() inserts the lower part and leave
the
upper part as indicated in the overlapped region.
If the flags of the new range differs from the overlapped region, the
information recorded is not correct.
This patch adds a WARN_ON when the flags of the new range differs from the
overlapped region.
Signed-off-by: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7f3eb55bfad8a6dfd880559210f5b21737d69815
Author: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:50 2015 -0700
mm/page_alloc.c: remove unused variable in free_area_init_core()
Commit febd5949e134 ("mm/memory hotplug: init the zone's size when
calculating node totalpages") refines the function
free_area_init_core().
After doing so, these two parameters are not used anymore.
This patch removes these two parameters.
Signed-off-by: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
Cc: Gu Zheng <guz.fnst@xxxxxxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 904a9553d4fcdc0c7d5621f6178f0e07598701dc
Author: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:48 2015 -0700
mm/page_alloc.c: refine the calculation of highest possible node id
nr_node_ids records the highest possible node id, which is calculated by
scanning the bitmap node_states[N_POSSIBLE]. Current implementation
scan the bitmap from the beginning, which will scan the whole bitmap.
This patch reverses the order by scanning from the end with
find_last_bit().
Signed-off-by: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 52a2b53ffde6d6018dfc454fbde34383351fb896
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:45 2015 -0700
mm, dax: use i_mmap_unlock_write() in do_cow_fault()
__dax_fault() takes i_mmap_lock for write. Let's pair it with write
unlock on do_cow_fault() side.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Acked-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 46c043ede4711e8d598b9d63c5616c1fedb0605e
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:42 2015 -0700
mm: take i_mmap_lock in unmap_mapping_range() for DAX
DAX is not so special: we need i_mmap_lock to protect mapping->i_mmap.
__dax_pmd_fault() uses unmap_mapping_range() shoot out zero page from
all mappings. We need to drop i_mmap_lock there to avoid lock deadlock.
Re-aquiring the lock should be fine since we check i_size after the
point.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3fdd1b479dbc03347e98f904f54133a9cef5521f
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:39 2015 -0700
dax: use linear_page_index()
I was basically open-coding it (thanks to copying code from do_fault()
which probably also needs to be fixed).
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 73a6ec47f68787df1b41869def52915da2f4a6b7
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:37 2015 -0700
dax: ensure that zero pages are removed from other processes
If the first access to a huge page was a store, there would be no existing
zero pmd in this process's page tables. There could be a zero pmd in
another process's page tables, if it had done a load. We can detect this
case by noticing that the buffer_head returned from the filesystem is New,
and ensure that other processes mapping this huge page have their page
tables flushed.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Reported-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d295e3415a88ae63a37a22652808b20c7fcb970e
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:34 2015 -0700
dax: don't use set_huge_zero_page()
This is another place where DAX assumed that pgtable_t was a pointer.
Open code the important parts of set_huge_zero_page() in DAX and make
set_huge_zero_page() static again.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit da146769004e1dd5ed06853e6d009be8ca675d5f
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:31 2015 -0700
thp: fix zap_huge_pmd() for DAX
The original DAX code assumed that pgtable_t was a pointer, which isn't
true on all architectures. Restructure the code to not rely on that
assumption.
[willy@xxxxxxxxxxxxxxx: further fixes integrated into this patch]
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 5b701b846aad7909d20693bcced2522d0ce8d1bc
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:28 2015 -0700
thp: decrement refcount on huge zero page if it is split
The DAX code neglected to put the refcount on the huge zero page.
Also we must notify on splits.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 843172978bb92997310d2f7fbc172ece423cfc02
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:25 2015 -0700
dax: fix race between simultaneous faults
If two threads write-fault on the same hole at the same time, the winner
of the race will return to userspace and complete their store, only to
have the loser overwrite their store with zeroes. Fix this for now by
taking the i_mmap_sem for write instead of read, and do so outside the
call to get_block(). Now the loser of the race will see the block has
already been zeroed, and will not zero it again.
This severely limits our scalability. I have ideas for improving it, but
those can wait for a later patch.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 01a33b4ace68bc35679a347f21d5ed6e222e30dc
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:22 2015 -0700
ext4: start transaction before calling into DAX
Jan Kara pointed out that in the case where we are writing to a hole, we
can end up with a lock inversion between the page lock and the journal
lock. We can avoid this by starting the transaction in ext4 before
calling into DAX. The journal lock nests inside the superblock
pagefault lock, so we have to duplicate that code from dax_fault, like
XFS does.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ed923b5776a2d2e949bd5b20f3956d68f3c826b7
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:20 2015 -0700
ext4: add ext4_get_block_dax()
DAX wants different semantics from any currently-existing ext4 get_block
callback. Unlike ext4_get_block_write(), it needs to honour the
'create' flag, and unlike ext4_get_block(), it needs to be able to
return unwritten extents. So introduce a new ext4_get_block_dax() which
has those semantics.
We could also change ext4_get_block_write() to honour the 'create' flag,
but that might have consequences on other users that I do not currently
understand.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 84c4e5e675408b6fb7d74eec7da9a4a5698b50af
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:17 2015 -0700
dax: improve comment about truncate race
Jan Kara pointed out I should be more explicit here about the perils of
racing against truncate. The comment is mostly the same as for the PTE
case.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ae18d6dcf57b56b984ff27fd55b4e2caf5bfbd44
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:14 2015 -0700
thp: change insert_pfn's return type to void
It would make more sense to have all the return values from
vmf_insert_pfn_pmd() encoded in one place instead of having to follow
the convention into insert_pfn(). Suggested by Jeff Moyer.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Jeff Moyer <jmoyer@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e676a4c191653787c3fe851fe3b9f1f33d49dac2
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:11 2015 -0700
ext4: use ext4_get_block_write() for DAX
DAX relies on the get_block function either zeroing newly allocated
blocks before they're findable by subsequent calls to get_block, or
marking newly allocated blocks as unwritten. ext4_get_block() cannot
create unwritten extents, but ext4_get_block_write() can.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Reported-by: Andy Rudoff <andy.rudoff@xxxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit dd8a2b6c29a3221c19ab475c8408fc2b914ccfab
Author: Valentin Rothberg <valentinrothberg@xxxxxxxxx>
Date: Tue Sep 8 14:59:09 2015 -0700
fs/dax.c: fix typo in #endif comment
Fix typo s/CONFIG_TRANSPARENT_HUGEPAGES/CONFIG_TRANSPARENT_HUGEPAGE/ in
#endif comment introduced by commit 2b26a9206d6a ("dax: add huge page
fault support").
Signed-off-by: Valentin Rothberg <valentinrothberg@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit acd76e74d80f961553861d9cf49a62cbcf496d28
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:06 2015 -0700
xfs: huge page fault support
Use DAX to provide support for huge pages.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Hillf Danton <dhillf@xxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 11bd1a9ecdd687b8a4b9b360b7e4b74a1a5e2bd5
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:03 2015 -0700
ext4: huge page fault support
Use DAX to provide support for huge pages.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Hillf Danton <dhillf@xxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e7b1ea2ad6581b83f63246db48aa2c2c9bf2ec8d
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:59:00 2015 -0700
ext2: huge page fault support
Use DAX to provide support for huge pages.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Hillf Danton <dhillf@xxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 844f35db1088dd1a9de37b53d4d823626232bd19
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:58:57 2015 -0700
dax: add huge page fault support
This is the support code for DAX-enabled filesystems to allow them to
provide huge pages in response to faults.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Hillf Danton <dhillf@xxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 5cad465d7fa646bad3d677df276bfc8e2ad709e3
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:58:54 2015 -0700
mm: add vmf_insert_pfn_pmd()
Similar to vm_insert_pfn(), but for PMDs rather than PTEs. The 'vmf_'
prefix instead of 'vm_' prefix is intended to indicate that it returns a
VMF_ value rather than an errno (which would only have to be converted
into a VMF_ value anyway).
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Hillf Danton <dhillf@xxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit fc43704437ebe40f642ac53f7ee73661fe74e6b8
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:58:51 2015 -0700
mm: export various functions for the benefit of DAX
To use the huge zero page in DAX, we need these functions exported.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Hillf Danton <dhillf@xxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b96375f74a6d4f39fc6cbdc0bce5175115c7f96f
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:58:48 2015 -0700
mm: add a pmd_fault handler
Allow non-anonymous VMAs to provide huge pages in response to a page
fault.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Hillf Danton <dhillf@xxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 4897c7655d9419ba7e62bac145ec6a1847134d93
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:58:45 2015 -0700
thp: prepare for DAX huge pages
Add a vma_is_dax() helper macro to test whether the VMA is DAX, and use it
in zap_huge_pmd() and __split_huge_page_pmd().
[akpm@xxxxxxxxxxxxxxxxxxxx: fix build]
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Hillf Danton <dhillf@xxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7c414164593514f76b422faae0824bdd3754209b
Author: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:58:43 2015 -0700
dax: revert userfaultfd change
Undo the change which "userfaultfd: call handle_userfault() for
userfaultfd_missing() faults" made to set_huge_zero_page(). DAX will
need that return value.
Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c94c2acf84dc16cf4b989bb0bc849785b7ff52f5
Author: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:58:40 2015 -0700
dax: move DAX-related functions to a new header
In order to handle the !CONFIG_TRANSPARENT_HUGEPAGES case, we need to
return VM_FAULT_FALLBACK from the inlined dax_pmd_fault(), which is
defined in linux/mm.h. Given that we don't want to include <linux/mm.h>
in <linux/fs.h>, the easiest solution is to move the DAX-related
functions to a new header, <linux/dax.h>. We could also have moved
VM_FAULT_* definitions to a new header, or a different header that isn't
quite such a boil-the-ocean header as <linux/mm.h>, but this felt like
the best option.
Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Cc: Hillf Danton <dhillf@xxxxxxxxx>
Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e1b9996b85ba3ff143ded04523cd015762d20f03
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:58:37 2015 -0700
thp: vma_adjust_trans_huge(): adjust file-backed VMA too
This series of patches adds support for using PMD page table entries to
map DAX files. We expect NV-DIMMs to start showing up that are many
gigabytes in size and the memory consumption of 4kB PTEs will be
astronomical.
The patch series leverages much of the Transparant Huge Pages
infrastructure, going so far as to borrow one of Kirill's patches from
his THP page cache series.
This patch (of 10):
Since we're going to have huge pages in page cache, we need to call adjust
file-backed VMA, which potentially can contain huge pages.
For now we call it for all VMAs.
Probably later we will need to introduce a flag to indicate that the VMA
has huge pages.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@xxxxxxxxx>
Acked-by: Hillf Danton <dhillf@xxxxxxxxx>
Cc: Theodore Ts'o <tytso@xxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ce75799b83aaf3fd592e21531a9532bed157c6b5
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Tue Sep 8 14:58:34 2015 -0700
mremap: fix the wrong !vma->vm_file check in copy_vma()
Test-case:
#define _GNU_SOURCE
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
#include <assert.h>
void *find_vdso_vaddr(void)
{
FILE *perl;
char buf[32] = {};
perl = popen("perl -e 'open STDIN,qq|/proc/@{[getppid]}/maps|;"
"/^(.*?)-.*vdso/ && print hex $1 while <>'",
"r");
fread(buf, sizeof(buf), 1, perl);
fclose(perl);
return (void *)atol(buf);
}
#define PAGE_SIZE 4096
void *get_unmapped_area(void)
{
void *p = mmap(0, PAGE_SIZE, PROT_NONE,
MAP_PRIVATE|MAP_ANONYMOUS, -1,0);
assert(p != MAP_FAILED);
munmap(p, PAGE_SIZE);
return p;
}
char save[2][PAGE_SIZE];
int main(void)
{
void *vdso = find_vdso_vaddr();
void *page[2];
assert(vdso);
memcpy(save, vdso, sizeof (save));
// force another fault on the next check
assert(madvise(vdso, 2 * PAGE_SIZE, MADV_DONTNEED) == 0);
page[0] = mremap(vdso,
PAGE_SIZE, PAGE_SIZE, MREMAP_FIXED |
MREMAP_MAYMOVE,
get_unmapped_area());
page[1] = mremap(vdso + PAGE_SIZE,
PAGE_SIZE, PAGE_SIZE, MREMAP_FIXED |
MREMAP_MAYMOVE,
get_unmapped_area());
assert(page[0] != MAP_FAILED && page[1] != MAP_FAILED);
printf("match: %d %d\n",
!memcmp(save[0], page[0], PAGE_SIZE),
!memcmp(save[1], page[1], PAGE_SIZE));
return 0;
}
fails without this patch. Before the previous commit it gets the wrong
page, now it segfaults (which is imho better).
This is because copy_vma() wrongly assumes that if vma->vm_file == NULL
is irrelevant until the first fault which will use do_anonymous_page().
This is obviously wrong for the special mapping.
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 8a9cc3b55e9d20289cc18a65257e62c2dd4932fb
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Tue Sep 8 14:58:31 2015 -0700
mmap: fix the usage of ->vm_pgoff in special_mapping paths
Test-case:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
#include <assert.h>
void *find_vdso_vaddr(void)
{
FILE *perl;
char buf[32] = {};
perl = popen("perl -e 'open STDIN,qq|/proc/@{[getppid]}/maps|;"
"/^(.*?)-.*vdso/ && print hex $1 while <>'",
"r");
fread(buf, sizeof(buf), 1, perl);
fclose(perl);
return (void *)atol(buf);
}
#define PAGE_SIZE 4096
int main(void)
{
void *vdso = find_vdso_vaddr();
assert(vdso);
// of course they should differ, and they do so far
printf("vdso pages differ: %d\n",
!!memcmp(vdso, vdso + PAGE_SIZE, PAGE_SIZE));
// split into 2 vma's
assert(mprotect(vdso, PAGE_SIZE, PROT_READ) == 0);
// force another fault on the next check
assert(madvise(vdso, 2 * PAGE_SIZE, MADV_DONTNEED) == 0);
// now they no longer differ, the 2nd vm_pgoff is wrong
printf("vdso pages differ: %d\n",
!!memcmp(vdso, vdso + PAGE_SIZE, PAGE_SIZE));
return 0;
}
Output:
vdso pages differ: 1
vdso pages differ: 0
This is because split_vma() correctly updates ->vm_pgoff, but the logic
in insert_vm_struct() and special_mapping_fault() is absolutely broken,
so the fault at vdso + PAGE_SIZE return the 1st page. The same happens
if you simply unmap the 1st page.
special_mapping_fault() does:
pgoff = vmf->pgoff - vma->vm_pgoff;
and this is _only_ correct if vma->vm_start mmaps the first page from
->vm_private_data array.
vdso or any other user of install_special_mapping() is not anonymous,
it has the "backing storage" even if it is just the array of pages.
So we actually need to make vm_pgoff work as an offset in this array.
Note: this also allows to fix another problem: currently gdb can't access
"[vvar]" memory because in this case special_mapping_fault() doesn't work.
Now that we can use ->vm_pgoff we can implement ->access() and fix this.
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b5330628546616af14ff23075fbf8d4ad91f6e25
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Tue Sep 8 14:58:28 2015 -0700
mm: introduce vma_is_anonymous(vma) helper
special_mapping_fault() is absolutely broken. It seems it was always
wrong, but this didn't matter until vdso/vvar started to use more than
one page.
And after this change vma_is_anonymous() becomes really trivial, it
simply checks vm_ops == NULL. However, I do think the helper makes
sense. There are a lot of ->vm_ops != NULL checks, the helper makes the
caller's code more understandable (self-documented) and this is more
grep-friendly.
This patch (of 3):
Preparation. Add the new simple helper, vma_is_anonymous(vma), and change
handle_pte_fault() to use it. It will have more users.
The name is not accurate, say a hpet_mmap()'ed vma is not anonymous.
Perhaps it should be named vma_has_fault() instead. But it matches the
logic in mmap.c/memory.c (see next changes). "True" just means that a
page fault will use do_anonymous_page().
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit af8713b701a74c3784ce6683f64f474a94b1b643
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Tue Sep 8 14:58:25 2015 -0700
selftests/userfaultfd: fix compiler warnings on 32-bit
On 32-bit:
userfaultfd.c: In function 'locking_thread':
userfaultfd.c:152: warning: left shift count >= width of type
userfaultfd.c: In function 'uffd_poll_thread':
userfaultfd.c:295: warning: cast to pointer from integer of different
size
userfaultfd.c: In function 'uffd_read_thread':
userfaultfd.c:332: warning: cast to pointer from integer of different
size
Fix the shift warning by splitting the shift in two parts, and the
integer/pointer warnigns by adding intermediate casts to "unsigned long".
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 61e57c0c3a37539e13af03ce68598034d37c7256
Author: Kees Cook <keescook@xxxxxxxxxxxx>
Date: Tue Sep 8 14:58:22 2015 -0700
cgroup: fix seq_show_option merge with legacy_name
When seq_show_option (commit a068acf2ee77: "fs: create and use
seq_show_option for escaping") was merged, it did not correctly collide
with cgroup's addition of legacy_name (commit 3e1d2eed39d8: "cgroup:
introduce cgroup_subsys->legacy_name") changes.
This fixes the reported name.
Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
Acked-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 12f03ee606914317e7e6a0815e53a48205c31dae
Merge: d9241b2 004f1af
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:35:59 2015 -0700
Merge tag 'libnvdimm-for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull libnvdimm updates from Dan Williams:
"This update has successfully completed a 0day-kbuild run and has
appeared in a linux-next release. The changes outside of the typical
drivers/nvdimm/ and drivers/acpi/nfit.[ch] paths are related to the
removal of IORESOURCE_CACHEABLE, the introduction of memremap(), and
the introduction of ZONE_DEVICE + devm_memremap_pages().
Summary:
- Introduce ZONE_DEVICE and devm_memremap_pages() as a generic
mechanism for adding device-driver-discovered memory regions to the
kernel's direct map.
This facility is used by the pmem driver to enable pfn_to_page()
operations on the page frames returned by DAX ('direct_access' in
'struct block_device_operations').
For now, the 'memmap' allocation for these "device" pages comes
from "System RAM". Support for allocating the memmap from device
memory will arrive in a later kernel.
- Introduce memremap() to replace usages of ioremap_cache() and
ioremap_wt(). memremap() drops the __iomem annotation for these
mappings to memory that do not have i/o side effects. The
replacement of ioremap_cache() with memremap() is limited to the
pmem driver to ease merging the api change in v4.3.
Completion of the conversion is targeted for v4.4.
- Similar to the usage of memcpy_to_pmem() + wmb_pmem() in the pmem
driver, update the VFS DAX implementation and PMEM api to provide
persistence guarantees for kernel operations on a DAX mapping.
- Convert the ACPI NFIT 'BLK' driver to map the block apertures as
cacheable to improve performance.
- Miscellaneous updates and fixes to libnvdimm including support for
issuing "address range scrub" commands, clarifying the optimal
'sector size' of pmem devices, a clarification of the usage of the
ACPI '_STA' (status) property for DIMM devices, and other minor
fixes"
* tag 'libnvdimm-for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (34 commits)
libnvdimm, pmem: direct map legacy pmem by default
libnvdimm, pmem: 'struct page' for pmem
libnvdimm, pfn: 'struct page' provider infrastructure
x86, pmem: clarify that ARCH_HAS_PMEM_API implies PMEM mapped WB
add devm_memremap_pages
mm: ZONE_DEVICE for "device memory"
mm: move __phys_to_pfn and __pfn_to_phys to asm/generic/memory_model.h
dax: drop size parameter to ->direct_access()
nd_blk: change aperture mapping from WC to WB
nvdimm: change to use generic kvfree()
pmem, dax: have direct_access use __pmem annotation
dax: update I/O path to do proper PMEM flushing
pmem: add copy_from_iter_pmem() and clear_pmem()
pmem, x86: clean up conditional pmem includes
pmem: remove layer when calling arch_has_wmb_pmem()
pmem, x86: move x86 PMEM API to new pmem.h header
libnvdimm, e820: make CONFIG_X86_PMEM_LEGACY a tristate option
pmem: switch to devm_ allocations
devres: add devm_memremap
libnvdimm, btt: write and validate parent_uuid
...
commit d9241b22b58e012f26dd2244508d9f4837402af0
Merge: 605e971 3716001
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:23:13 2015 -0700
Merge branch 'misc' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
Pull misc kbuild updates from Michal Marek:
- deb-pkg:
+ module signing fix
+ dtb files are added to the package
+ do not require `hostname -f` to work during build
+ make deb-pkg generates a source package, bindeb-pkg has been
added to only generate the binary package
- rpm-pkg packages /lib/modules as well
- new coccinelle patch and updates to existing ones
- new stackusage & stackdelta script to collect and compare stack usage
info (using gcc's -fstack-usage)
- make tags understands trace_*_rcuidle() macros
- .gitignore updates, misc cleanups
* 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
(27 commits)
deb-pkg: add source package
package/Makefile: move source tar creation to a function
scripts: add stackdelta script
kbuild: remove *.su files generated by -fstack-usage
.gitignore: add *.su pattern
scripts: add stackusage script
kbuild: avoid listing /lib/modules in kernel spec file
fallback to hostname in scripts/package/builddeb
coccinelle: api: extend spatch for dropping unnecessary owner
deb-pkg: simplify directory creation
scripts/tags.sh: Include trace_*_rcuidle() in tags
scripts/package/Makefile: rpmbuild is needed for rpm targets
Kbuild: Add ID files to .gitignore
gitignore: Add MIPS vmlinux.32 to the list
coccinelle: simple_return: Add a blank line
coccinelle: irqf_oneshot.cocci: Improve the generated commit log
coccinelle: api: add vma_pages.cocci
scripts/coccinelle/misc/irqf_oneshot.cocci: Fix grammar
scripts/coccinelle/misc/semicolon.cocci: Use imperative mood
coccinelle: simple_open: Use imperative mood
...
commit 605e9710fb5fef0dd2bb49d7b75e46601df62112
Merge: dab3c3c 78a6854
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:17:38 2015 -0700
Merge branch 'kconfig' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
Pull kconfig updates from Michal Marek:
- kconfig warns about junk characters in Kconfig files
- merge_config.sh error handling
- small cleanup
* 'kconfig' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
merge_config.sh: exit on missing input files
kconfig: Regenerate shipped zconf.{hash,lex}.c files
kconfig: warn of unhandled characters in Kconfig commands
kconfig: Delete unnecessary checks before the function call
"sym_calc_value"
commit dab3c3cc4f44273ccf2d7ff57c0a4f5bd45c0528
Merge: 59a47ff 5631d9c
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:12:19 2015 -0700
Merge branch 'kbuild' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
Pull core kbuild updates from Michal Marek:
- modpost portability fix
- linker script fix
- genksyms segfault fix
- fixdep cleanup
- fix for clang detection
* 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
kbuild: Fix clang detection
kbuild: fixdep: drop meaningless hash table initialization
kbuild: fixdep: optimize code slightly
genksyms: Regenerate parser
genksyms: Duplicate function pointer type definitions segfault
kbuild: Fix .text.unlikely placement
Avoid conflict with host definitions when cross-compiling
commit 59a47fff0217592e248556a7ab436d5c17365962
Merge: 425afcf b7dc42f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 14:04:14 2015 -0700
Merge tag 'trace-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull tracing update from Steven Rostedt:
"Mostly this is just clean ups and micro optimizations.
The changes with more meat are:
- Allowing the trace event filters to filter on CPU number and
process ids
- Two new markers for trace output latency were added (10 and 100
msec latencies)
- Have tracing_thresh filter function profiling time
I also worked on modifying the ring buffer code for some future work,
and moved the adding of the timestamp around. One of my changes
caused a regression, and since other changes were built on top of it
and already tested, I had to operate a revert of that change. Instead
of rebasing, this change set has the code that caused a regression as
well as the code to revert that change without touching the other
changes that were made on top of it"
* tag 'trace-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
ring-buffer: Revert "ring-buffer: Get timestamp after event is
allocated"
tracing: Don't make assumptions about length of string on task rename
tracing: Allow triggers to filter for CPU ids and process names
ftrace: Format MCOUNT_ADDR address as type unsigned long
tracing: Introduce two additional marks for delay
ftrace: Fix function_graph duration spacing with 7-digits
ftrace: add tracing_thresh to function profile
tracing: Clean up stack tracing and fix fentry updates
ring-buffer: Reorganize function locations
ring-buffer: Make sure event has enough room for extend and padding
ring-buffer: Get timestamp after event is allocated
ring-buffer: Move the adding of the extended timestamp out of line
ring-buffer: Add event descriptor to simplify passing data
ftrace: correct the counter increment for trace_buffer data
tracing: Fix for non-continuous cpu ids
tracing: Prefer kcalloc over kzalloc with multiply
commit 5b902d6f97f573fde911338e5d943e6b07fac7f9
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Thu Sep 3 23:59:50 2015 +0100
device property: Don't overwrite addr when failing in
device_get_mac_address
The function device_get_mac_address is trying different property names
in order to get the mac address. To check the return value, the variable
addr (which contain the buffer pass by the caller) will be re-used. This
means that if the previous property is not found, the next property will
be read using a NULL buffer.
Therefore it's only possible to retrieve the mac if node contains a
property "mac-address". Fix it by using a temporary buffer for the
return value.
This has been introduced by commit
4c96b7dc0d393f12c17e0d81db15aa4a820a6ab3
"Add a matching set of device_ functions for determining mac/phy"
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Cc: Jeremy Linton <jeremy.linton@xxxxxxx>
Cc: David S. Miller <davem@xxxxxxxxxxxxx>
Reviewed-by: Jeremy Linton <jeremy.linton@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 425afcff13a4bea2a3cf6f395cbc66fc158852be
Merge: b793c00 15ce414
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 13:34:59 2015 -0700
Merge branch 'upstream' of git://git.infradead.org/users/pcmoore/audit
Pull audit update from Paul Moore:
"This is one of the larger audit patchsets in recent history,
consisting of eight patches and almost 400 lines of changes.
The bulk of the patchset is the new "audit by executable"
functionality which allows admins to set an audit watch based on the
executable on disk. Prior to this, admins could only track an
application by PID, which has some obvious limitations.
Beyond the new functionality we also have some refcnt fixes and a few
minor cleanups"
* 'upstream' of git://git.infradead.org/users/pcmoore/audit:
fixup: audit: implement audit by executable
audit: implement audit by executable
audit: clean simple fsnotify implementation
audit: use macros for unset inode and device values
audit: make audit_del_rule() more robust
audit: fix uninitialized variable in audit_add_rule()
audit: eliminate unnecessary extra layer of watch parent references
audit: eliminate unnecessary extra layer of watch references
commit fcb0bb6aab256288a4e0a8650d26e4096ec30319
Author: Eugene Shatokhin <eugene.shatokhin@xxxxxxxxxx>
Date: Tue Sep 1 17:05:33 2015 +0300
usbnet: Fix a race between usbnet_stop() and the BH
The race may happen when a device (e.g. YOTA 4G LTE Modem) is
unplugged while the system is downloading a large file from the Net.
Hardware breakpoints and Kprobes with delays were used to confirm that
the race does actually happen.
The race is on skb_queue ('next' pointer) between usbnet_stop()
and rx_complete(), which, in turn, calls usbnet_bh().
Here is a part of the call stack with the code where the changes to the
queue happen. The line numbers are for the kernel 4.1.0:
*0 __skb_unlink (skbuff.h:1517)
prev->next = next;
*1 defer_bh (usbnet.c:430)
spin_lock_irqsave(&list->lock, flags);
old_state = entry->state;
entry->state = state;
__skb_unlink(skb, list);
spin_unlock(&list->lock);
spin_lock(&dev->done.lock);
__skb_queue_tail(&dev->done, skb);
if (dev->done.qlen == 1)
tasklet_schedule(&dev->bh);
spin_unlock_irqrestore(&dev->done.lock, flags);
*2 rx_complete (usbnet.c:640)
state = defer_bh(dev, skb, &dev->rxq, state);
At the same time, the following code repeatedly checks if the queue is
empty and reads these values concurrently with the above changes:
*0 usbnet_terminate_urbs (usbnet.c:765)
/* maybe wait for deletions to finish. */
while (!skb_queue_empty(&dev->rxq)
&& !skb_queue_empty(&dev->txq)
&& !skb_queue_empty(&dev->done)) {
schedule_timeout(msecs_to_jiffies(UNLINK_TIMEOUT_MS));
set_current_state(TASK_UNINTERRUPTIBLE);
netif_dbg(dev, ifdown, dev->net,
"waited for %d urb completions\n", temp);
}
*1 usbnet_stop (usbnet.c:806)
if (!(info->flags & FLAG_AVOID_UNLINK_URBS))
usbnet_terminate_urbs(dev);
As a result, it is possible, for example, that the skb is removed from
dev->rxq by __skb_unlink() before the check
"!skb_queue_empty(&dev->rxq)" in usbnet_terminate_urbs() is made. It is
also possible in this case that the skb is added to dev->done queue
after "!skb_queue_empty(&dev->done)" is checked. So
usbnet_terminate_urbs() may stop waiting and return while dev->done
queue still has an item.
Locking in defer_bh() and usbnet_terminate_urbs() was revisited to avoid
this race.
Signed-off-by: Eugene Shatokhin <eugene.shatokhin@xxxxxxxxxx>
Reviewed-by: Bjørn Mork <bjorn@xxxxxxx>
Acked-by: Oliver Neukum <oneukum@xxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8b9558aab853e98ba6e3fee0dd8545544966958c
Author: Yan, Zheng <zyan@xxxxxxxxxx>
Date: Tue Sep 1 17:19:38 2015 +0800
libceph: use keepalive2 to verify the mon session is alive
Signed-off-by: Yan, Zheng <zyan@xxxxxxxxxx>
Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>
commit d194cd1dd1be61249b08e5461ae8a9c05d1072c9
Author: Ilya Dryomov <idryomov@xxxxxxxxx>
Date: Mon Aug 31 18:22:10 2015 +0300
rbd: plug rbd_dev->header.object_prefix memory leak
Need to free object_prefix when rbd_dev_v2_snap_context() fails, but
only if this is the first time we are reading in the header.
Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>
Reviewed-by: Alex Elder <elder@xxxxxxxxxx>
commit 3ebe138ac642a195c7f2efdb918f464734421fd6
Author: Ilya Dryomov <idryomov@xxxxxxxxx>
Date: Mon Aug 31 15:21:39 2015 +0300
rbd: fix double free on rbd_dev->header_name
If rbd_dev_image_probe() in rbd_dev_probe_parent() fails, header_name
is freed twice: once in rbd_dev_probe_parent() and then in its caller
rbd_dev_image_probe() (rbd_dev_image_probe() is called recursively to
handle parent images).
rbd_dev_probe_parent() is responsible for probing the parent, so it
shouldn't muck with clone's fields.
Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>
Reviewed-by: Alex Elder <elder@xxxxxxxxxx>
commit 6dd74e44dc1df85f125982a8d6591bc4a76c9f5d
Author: Yan, Zheng <zyan@xxxxxxxxxx>
Date: Fri Aug 28 17:59:35 2015 +0800
libceph: set 'exists' flag for newly up osd
Signed-off-by: Yan, Zheng <zyan@xxxxxxxxxx>
Reviewed-by: Sage Weil <sage@xxxxxxxxxx>
Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>
commit 5fdb1389e1399d6801a8c5d10952ef4153039fb2
Author: Jianpeng Ma <jianpeng.ma@xxxxxxxxx>
Date: Tue Aug 18 10:30:38 2015 +0800
ceph: cleanup use of ceph_msg_get
Signed-off-by: Jianpeng Ma <jianpeng.ma@xxxxxxxxx>
Signed-off-by: Yan, Zheng <zyan@xxxxxxxxxx>
commit e36d571d70c7f46b20c28d81025fd5fc044a8e22
Author: Jianpeng Ma <jianpeng.ma@xxxxxxxxx>
Date: Tue Aug 18 10:25:35 2015 +0800
ceph: no need to get parent inode in ceph_open
parent inode is needed in creating new inode case. For ceph_open,
the target inode already exists.
Signed-off-by: Jianpeng Ma <jianpeng.ma@xxxxxxxxx>
Signed-off-by: Yan, Zheng <zyan@xxxxxxxxxx>
commit a43137f7b0f1467cf3005b6ff6574d978642d247
Author: Jianpeng Ma <jianpeng.ma@xxxxxxxxx>
Date: Tue Aug 18 10:23:50 2015 +0800
ceph: remove the useless judgement
err != 0 is already handled. So skip this.
Signed-off-by: Jianpeng Ma <jianpeng.ma@xxxxxxxxx>
Signed-off-by: Yan, Zheng <zyan@xxxxxxxxxx>
commit 1550d34e5626a20a2e12c73bdc1e6e217a0ba897
Author: Brad Hubbard <bhubbard@xxxxxxxxxx>
Date: Tue Aug 18 10:18:53 2015 +0800
ceph: remove redundant test of head->safe and silence static analysis
warnings
Signed-off-by: Brad Hubbard <bhubbard@xxxxxxxxxx>
Signed-off-by: Yan, Zheng <zyan@xxxxxxxxxx>
commit 23078637e05460428f803be7d0f46908df8a970a
Author: Yan, Zheng <zyan@xxxxxxxxxx>
Date: Mon Jul 20 10:14:06 2015 +0800
ceph: fix queuing inode to mdsdir's snaprealm
During MDS failovers, MClientSnap message may cause kclient to move
some inodes from root directory's snaprealm to mdsdir's snaprealm
and queue snapshots for these inodes. For a FS has never created any
snapshot, both root directory's snaprealm and mdsdir's snaprealm
share the same snapshot contexts (both are ceph_empty_snapc). This
confuses ceph_put_wrbuffer_cap_refs(), make it unable to distinguish
snapshot buffers from head buffers.
The fix is do not use ceph_empty_snapc as snaprealm's cached context.
Signed-off-by: Yan, Zheng <zyan@xxxxxxxxxx>
commit 6893162215d7bf08a4273247ec1fc7dedee5135c
Author: Ilya Dryomov <idryomov@xxxxxxxxx>
Date: Fri Jul 3 15:44:41 2015 +0300
libceph: rename con_work() to ceph_con_workfn()
Even though it's static, con_work(), being a work func, shows up in
various stacktraces a lot. Prefix it with ceph_.
Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>
commit d920ff6fc7c1ec3d7bd80432bff5575c0ebe426c
Author: Benoît Canet <benoit.canet@xxxxxxxxxxxx>
Date: Thu Jun 25 21:02:57 2015 +0200
libceph: Avoid holding the zero page on ceph_msgr_slab_init errors
ceph_msgr_slab_init may fail due to a temporary ENOMEM.
Delay a bit the initialization of zero_page in ceph_msgr_init and
reorder its cleanup in _ceph_msgr_exit so it's done in reverse
order of setup.
BUG_ON() will not suffer to be postponed in case it is triggered.
Signed-off-by: Benoît Canet <benoit.canet@xxxxxxxxxxxx>
Reviewed-by: Alex Elder <elder@xxxxxxxxxx>
Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>
commit b79b23682a1649f30960fb5bd920ba46c89a1b14
Author: Nicholas Krause <xerofoify@xxxxxxxxx>
Date: Sun Jul 5 06:34:05 2015 +0000
libceph: remove the unused macro AES_KEY_SIZE
This removes the no longer used macro AES_KEY_SIZE as no functions use
this macro anymore and thus this macro can be removed due it no longer
being required.
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>
commit a341d4df87487ae68189e0be869c39a2b0cb9aaa
Author: Yan, Zheng <zyan@xxxxxxxxxx>
Date: Wed Jul 1 17:03:23 2015 +0800
ceph: invalidate dirty pages after forced umount
After forced umount, ceph_writepages_start() skips flushing dirty
pages. To make sure inode's reference count get dropped to zero,
we need to invalidate dirty pages.
Signed-off-by: Yan, Zheng <zyan@xxxxxxxxxx>
commit 48fec5d0a504dfbb302cb1dd24ebb0b82a46cce9
Author: Yan, Zheng <zyan@xxxxxxxxxx>
Date: Wed Jul 1 16:27:46 2015 +0800
ceph: EIO all operations after forced umount
This patch makes try_get_cap_refs() and __do_request() check
if the file system was forced umount, and return -EIO if it was.
This patch also adds a helper function to drops dirty caps and
wakes up blocking operation.
Signed-off-by: Yan, Zheng <zyan@xxxxxxxxxx>
commit b793c005ceabf6db0b17494b0ec67ade6796bb34
Merge: 6f0a2fc 07f081f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 12:41:25 2015 -0700
Merge branch 'next' of
git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
Pull security subsystem updates from James Morris:
"Highlights:
- PKCS#7 support added to support signed kexec, also utilized for
module signing. See comments in 3f1e1bea.
** NOTE: this requires linking against the OpenSSL library, which
must be installed, e.g. the openssl-devel on Fedora **
- Smack
- add IPv6 host labeling; ignore labels on kernel threads
- support smack labeling mounts which use binary mount data
- SELinux:
- add ioctl whitelisting (see
http://kernsec.org/files/lss2015/vanderstoep.pdf)
- fix mprotect PROT_EXEC regression caused by mm change
- Seccomp:
- add ptrace options for suspend/resume"
* 'next' of
git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (57
commits)
PKCS#7: Add OIDs for sha224, sha284 and sha512 hash algos and use them
Documentation/Changes: Now need OpenSSL devel packages for module
signing
scripts: add extract-cert and sign-file to .gitignore
modsign: Handle signing key in source tree
modsign: Use if_changed rule for extracting cert from module signing key
Move certificate handling to its own directory
sign-file: Fix warning about BIO_reset() return value
PKCS#7: Add MODULE_LICENSE() to test module
Smack - Fix build error with bringup unconfigured
sign-file: Document dependency on OpenSSL devel libraries
PKCS#7: Appropriately restrict authenticated attributes and content type
KEYS: Add a name for PKEY_ID_PKCS7
PKCS#7: Improve and export the X.509 ASN.1 time object decoder
modsign: Use extract-cert to process CONFIG_SYSTEM_TRUSTED_KEYS
extract-cert: Cope with multiple X.509 certificates in a single file
sign-file: Generate CMS message as signature instead of PKCS#7
PKCS#7: Support CMS messages also [RFC5652]
X.509: Change recorded SKID & AKID to not include Subject or Issuer
PKCS#7: Check content type and versions
MAINTAINERS: The keyrings mailing list has moved
...
commit 6f0a2fc1feb19bd142961a39dc118e7e55418b3f
Merge: 752240e 96f0e00
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 12:28:10 2015 -0700
Merge branch 'nmi' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Pull NMI backtrace update from Russell King:
"These changes convert the x86 NMI handling to be a library
implementation which other architectures can make use of. Thomas
Gleixner has reviewed and tested these changes, and wishes me to send
these rather than taking them through the tip tree.
The final patch in the set adds an initial implementation using this
infrastructure to ARM, even though it doesn't send the IPI at "NMI"
level. Patches are in progress to add the ARM equivalent of NMI, but
we still need the IRQ-level fallback for systems where the "NMI" isn't
available due to secure firmware denying access to it"
* 'nmi' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
ARM: add basic support for on-demand backtrace of other CPUs
nmi: x86: convert to generic nmi handler
nmi: create generic NMI backtrace implementation
commit 752240e74d650faa24425adc523f1308973ea51c
Merge: b8cb642 626d750
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 11:46:48 2015 -0700
Merge tag 'for-linus-4.3-rc0-tag' of
git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip
Pull xen updates from David Vrabel:
"Xen features and fixes for 4.3:
- Convert xen-blkfront to the multiqueue API
- [arm] Support binding event channels to different VCPUs.
- [x86] Support > 512 GiB in a PV guests (off by default as such a
guest cannot be migrated with the current toolstack).
- [x86] PMU support for PV dom0 (limited support for using perf with
Xen and other guests)"
* tag 'for-linus-4.3-rc0-tag' of
git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (33 commits)
xen: switch extra memory accounting to use pfns
xen: limit memory to architectural maximum
xen: avoid another early crash of memory limited dom0
xen: avoid early crash of memory limited dom0
arm/xen: Remove helpers which are PV specific
xen/x86: Don't try to set PCE bit in CR4
xen/PMU: PMU emulation code
xen/PMU: Intercept PMU-related MSR and APIC accesses
xen/PMU: Describe vendor-specific PMU registers
xen/PMU: Initialization code for Xen PMU
xen/PMU: Sysfs interface for setting Xen PMU mode
xen: xensyms support
xen: remove no longer needed p2m.h
xen: allow more than 512 GB of RAM for 64 bit pv-domains
xen: move p2m list if conflicting with e820 map
xen: add explicit memblock_reserve() calls for special pages
mm: provide early_memremap_ro to establish read-only mapping
xen: check for initrd conflicting with e820 map
xen: check pre-allocated page tables for conflict with memory map
xen: check for kernel memory conflicting with memory layout
...
commit b8cb642af98216fe6eeca1525345b8a5c9d7c9a4
Merge: 1c8cc72 4a6ac30
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 11:36:56 2015 -0700
Merge branch 'irq-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull more irq updates from Thomas Gleixner:
"The second part of irq related updates:
- Provide EOImode for GIC[V3] irq chips, which is a prerequisite for
direct interrupt handling in [KVM] guests"
* 'irq-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
irqchip/GIC: Fix EOImode setting for non-DT/ACPI systems
irqchip/GIC: Don't deactivate interrupts forwarded to a guest
irqchip/GIC: Convert to EOImode == 1
irqchip/GICv3: Don't deactivate interrupts forwarded to a guest
irqchip/GICv3: Convert to EOImode == 1
commit 1c8cc72d57f321bfccadf4f7b38b94ba287928bc
Merge: b9ffce9 50e48bd
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 11:31:33 2015 -0700
Merge branch 'for-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu
Pull m68k/colfire fixes from Greg Ungerer:
"Only a couple of patches this time. One migrating the clock driver
code to the new set-state interface. The other cleaning up to use the
PFN_DOWN macro"
* 'for-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
m68k/coldfire: use PFN_DOWN macro
m68k/coldfire/pit: Migrate to new 'set-state' interface
commit b9ffce9ae14fa6068a7c8c3ce2350ee3a8c1787b
Merge: 0c8e2f2 0dad87f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 11:26:17 2015 -0700
Merge tag 'ecryptfs-4.3-rc1-stale-dcache' of
git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs
Pull ecryptfs fixes from Tyler Hicks:
"Invalidate stale eCryptfs dcache entries caused by unlinked lower
inodes"
* tag 'ecryptfs-4.3-rc1-stale-dcache' of
git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
eCryptfs: Delete a check before the function call "key_put"
eCryptfs: Invalidate dcache entries when lower i_nlink is zero
commit 0c8e2f2c7b86c29775379f716f7db07516fcbcbf
Merge: 49df2e3 71c6da8
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 8 11:20:39 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto fix from Herbert Xu:
"This fixes a memory corruption bug in ghash-clmulni-intel due to
insufficient memory allocation"
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
crypto: ghash-clmulni: specify context size for ghash async algorithm
commit 49df2e3e902e1c3caf998f97a92512424936199d
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Wed Jul 29 18:53:17 2015 +0200
userfaultfd: selftest: update userfaultfd x86 32bit syscall number
It changed as result of other syscalls, and while the system call list
itself was correctly updated, the selftest program was not.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 5f51042f876b88a3b81a135cc4ca0adb3d246112
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Fri Aug 7 17:34:42 2015 +0100
xen/xenbus: Rename the variable xen_store_mfn to xen_store_gfn
The variable xen_store_mfn is effectively storing a GFN and not an MFN.
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit a13d7201d7deedcbb6ac6efa94a1a7d34d3d79ec
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Fri Aug 7 17:34:41 2015 +0100
xen/privcmd: Further s/MFN/GFN/ clean-up
The privcmd code is mixing the usage of GFN and MFN within the same
functions which make the code difficult to understand when you only work
with auto-translated guests.
The privcmd driver is only dealing with GFN so replace all the mention
of MFN into GFN.
The ioctl structure used to map foreign change has been left unchanged
given that the userspace is using it. Nonetheless, add a comment to
explain the expected value within the "mfn" field.
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 859e3267c515d0cc7cc11528e80a2b7f3edc3bd9
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Fri Aug 7 17:34:40 2015 +0100
hvc/xen: Further s/MFN/GFN clean-up
HVM_PARAM_CONSOLE_PFN is used to retrieved the console PFN for HVM
guest. It returns a PFN (aka GFN) and not a MFN.
Furthermore, use directly virt_to_gfn for both PV and HVM domain rather
than doing a special case for each of the them.
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 0467533a7a5da08a881a31120d95cd159e54640b
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Fri Aug 7 17:34:39 2015 +0100
video/xen-fbfront: Further s/MFN/GFN clean-up
The PV driver xen-fbfront is only dealing with GFN and not MFN. Rename
all the occurence of MFN to GFN.
Also take the opportunity to replace to usage of pfn_to_gfn by
xen_page_to_gfn.
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit a76e3cc32d872acd5104278d21d2084da07c16a8
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Fri Aug 7 17:34:38 2015 +0100
xen/tmem: Use xen_page_to_gfn rather than pfn_to_gfn
All the caller of xen_tmem_{get,put}_page have a struct page * in hand
and call pfn_to_gfn for the only benefits of these 2 functions.
Rather than passing the pfn in parameter, pass directly the page and use
directly xen_page_to_gfn.
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Reviewed-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 0df4f266b3af90442bbeb5e685a84a80745beba0
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Fri Aug 7 17:34:37 2015 +0100
xen: Use correctly the Xen memory terminologies
Based on include/xen/mm.h [1], Linux is mistakenly using MFN when GFN
is meant, I suspect this is because the first support for Xen was for
PV. This resulted in some misimplementation of helpers on ARM and
confused developers about the expected behavior.
For instance, with pfn_to_mfn, we expect to get an MFN based on the name.
Although, if we look at the implementation on x86, it's returning a GFN.
For clarity and avoid new confusion, replace any reference to mfn with
gfn in any helpers used by PV drivers. The x86 code will still keep some
reference of pfn_to_mfn which may be used by all kind of guests
No changes as been made in the hypercall field, even
though they may be invalid, in order to keep the same as the defintion
in xen repo.
Note that page_to_mfn has been renamed to xen_page_to_gfn to avoid a
name to close to the KVM function gfn_to_page.
Take also the opportunity to simplify simple construction such
as pfn_to_mfn(page_to_pfn(page)) into xen_page_to_gfn. More complex clean
up
will come in follow-up patches.
[1]
http://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=e758ed14f390342513405dd766e874934573e6cb
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Reviewed-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Acked-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 5192b35de47e47a0f736fe30da199f32030680e7
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Fri Aug 7 17:34:36 2015 +0100
arm/xen: implement correctly pfn_to_mfn
After the commit introducing convertion between DMA and guest addresses,
all the callers of pfn_to_mfn are expecting to get a GFN (Guest Frame
Number). On ARM, all the guests are auto-translated so the GFN is equal
to the Linux PFN (Pseudo-physical Frame Number).
The current implementation may return an MFN if the caller is passing a
PFN associated to a mapped foreign grant. In pratice, I haven't seen
the problem on running guest but we should fix it for the sake of
correctness.
Correct the implementation by always returning the pfn passed in
parameter.
A follow-up patch will take care to rename pfn_to_mfn to a suitable
name.
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Reviewed-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 32e09870eedfb501a6cb5729d8c23f44f8a7cbdd
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Fri Aug 7 17:34:35 2015 +0100
xen: Make clear that swiotlb and biomerge are dealing with DMA address
The swiotlb is required when programming a DMA address on ARM when a
device is not protected by an IOMMU.
In this case, the DMA address should always be equal to the machine
address.
For DOM0 memory, Xen ensure it by have an identity mapping between the
guest address and host address. However, when mapping a foreign grant
reference, the 1:1 model doesn't work.
For ARM guest, most of the callers of pfn_to_mfn expects to get a GFN
(Guest Frame Number), i.e a PFN (Page Frame Number) from the Linux point
of view given that all ARM guest are auto-translated.
Even though the name pfn_to_mfn is misleading, we need to ensure that
those caller get a GFN and not by mistake a MFN. In pratical, I haven't
seen error related to this but we should fix it for the sake of
correctness.
In order to fix the implementation of pfn_to_mfn on ARM in a follow-up
patch, we have to introduce new helpers to return the DMA from a PFN and
the invert.
On x86, the new helpers will be an alias of pfn_to_mfn and mfn_to_pfn.
The helpers will be used in swiotlb and xen_biovec_phys_mergeable.
This is necessary in the latter because we have to ensure that the
biovec code will not try to merge a biovec using foreign page and
another using Linux memory.
Lastly, the helper mfn_to_local_pfn has been renamed to bfn_to_local_pfn
given that the only usage was in swiotlb.
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Reviewed-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 6dc0dcde406bb0e40ad6a6f45f44534d3a094205
Author: Helge Deller <deller@xxxxxx>
Date: Tue Sep 8 17:50:03 2015 +0200
parisc: Use platform_device_register_simple("rtc-generic")
Signed-off-by: Helge Deller <deller@xxxxxx>
commit 72581cecee411be2b2c00226c98e0c20aab337a2
Author: Helge Deller <deller@xxxxxx>
Date: Tue Sep 8 17:49:31 2015 +0200
parisc: Drop CONFIG_SMP around update_cr16_clocksource()
No need to use CONFIG_SMP around update_cr16_clocksource(). It checks for
num_online_cpus() beeing greater than 1, which is always 1 in UP builds.
Signed-off-by: Helge Deller <deller@xxxxxx>
commit 626d7508664c4bc8e67f496da4387ecd0c410b8c
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Sep 4 14:05:51 2015 +0200
xen: switch extra memory accounting to use pfns
Instead of using physical addresses for accounting of extra memory
areas available for ballooning switch to pfns as this is much less
error prone regarding partial pages.
Reported-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Tested-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit cb9e444b5aaa900bb4310da411315b6947c53e37
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Sep 4 14:18:08 2015 +0200
xen: limit memory to architectural maximum
When a pv-domain (including dom0) is started it tries to size it's
p2m list according to the maximum possible memory amount it ever can
achieve. Limit the initial maximum memory size to the architectural
limit of the hardware in order to avoid overflows during remapping
of memory.
This problem will occur when dom0 is started with an initial memory
size being a multiple of 1GB, but without specifying it's maximum
memory size. The kernel must be configured without
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG for the problem to happen.
Reported-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Tested-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit ab24507cfae8d916814bb6c16f66e453184a29a5
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Wed Aug 19 18:53:11 2015 +0200
xen: avoid another early crash of memory limited dom0
Commit b1c9f169047b ("xen: split counting of extra memory pages...")
introduced an error when dom0 was started with limited memory occurring
only on some hardware.
The problem arises in case dom0 is started with initial memory and
maximum memory being the same. The kernel must be configured without
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG for the problem to happen. If all
of this is true and the E820 map of the machine is sparse (some areas
are not covered) then the machine might crash early in the boot
process.
An example E820 map triggering the problem looks like this:
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d7ff]
usable
[ 0.000000] BIOS-e820: [mem 0x000000000009d800-0x000000000009ffff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff]
reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000cf7fafff]
usable
[ 0.000000] BIOS-e820: [mem 0x00000000cf7fb000-0x00000000cf95ffff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000cf960000-0x00000000cfb62fff]
ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000cfb63000-0x00000000cfd14fff]
usable
[ 0.000000] BIOS-e820: [mem 0x00000000cfd15000-0x00000000cfd61fff]
ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000cfd62000-0x00000000cfd6cfff]
ACPI data
[ 0.000000] BIOS-e820: [mem 0x00000000cfd6d000-0x00000000cfd6ffff]
ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000cfd70000-0x00000000cfd70fff]
usable
[ 0.000000] BIOS-e820: [mem 0x00000000cfd71000-0x00000000cfea8fff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000cfea9000-0x00000000cfeb9fff]
ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000cfeba000-0x00000000cfecafff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000cfecb000-0x00000000cfecbfff]
ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000cfecc000-0x00000000cfedbfff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000cfedc000-0x00000000cfedcfff]
ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000cfedd000-0x00000000cfeddfff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000cfede000-0x00000000cfee3fff]
ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000cfee4000-0x00000000cfef6fff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000cfef7000-0x00000000cfefffff]
usable
[ 0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fec10000-0x00000000fec10fff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed00000-0x00000000fed00fff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed40000-0x00000000fed44fff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed61000-0x00000000fed70fff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed80000-0x00000000fed8ffff]
reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff]
reserved
[ 0.000000] BIOS-e820: [mem 0x0000000100001000-0x000000020effffff]
usable
In this case the area a0000-dffff isn't present in the map. This will
confuse the memory setup of the domain when remapping the memory from
such holes to populated areas.
To avoid the problem the accounting of to be remapped memory has to
count such holes in the E820 map as well.
Reported-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit eafd72e016c69df511b14a98b61e439c58ad9c51
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Wed Aug 19 18:52:34 2015 +0200
xen: avoid early crash of memory limited dom0
Commit b1c9f169047b ("xen: split counting of extra memory pages...")
introduced an error when dom0 was started with limited memory.
The problem arises in case dom0 is started with initial memory and
maximum memory being the same and exactly a multiple of 1 GB. The
kernel must be configured without CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
for the problem to happen. In this case it will crash very early
during boot due to the virtual mapped p2m list not being large
enough to be able to remap any memory:
(XEN) Freed 304kB init memory.
mapping kernel into physical memory
about to get started...
(XEN) traps.c:459:d0v0 Unhandled invalid opcode fault/trap [#6] on VCPU 0
[ec=0000]
(XEN) domain_crash_sync called from entry.S: fault at ffff82d080229a93
create_bounce_frame+0x12b/0x13a
(XEN) Domain 0 (vcpu#0) crashed on cpu#0:
(XEN) ----[ Xen-4.5.2-pre x86_64 debug=n Not tainted ]----
(XEN) CPU: 0
(XEN) RIP: e033:[<ffffffff81d120cb>]
(XEN) RFLAGS: 0000000000000206 EM: 1 CONTEXT: pv guest (d0v0)
(XEN) rax: ffffffff81db2000 rbx: 000000004d000000 rcx:
0000000000000000
(XEN) rdx: 000000004d000000 rsi: 0000000000063000 rdi:
000000004d063000
(XEN) rbp: ffffffff81c03d78 rsp: ffffffff81c03d28 r8:
0000000000023000
(XEN) r9: 00000001040ff000 r10: 0000000000007ff0 r11:
0000000000000000
(XEN) r12: 0000000000063000 r13: 000000000004d000 r14:
0000000000000063
(XEN) r15: 0000000000000063 cr0: 0000000080050033 cr4:
00000000000006f0
(XEN) cr3: 0000000105c0f000 cr2: ffffc90000268000
(XEN) ds: 0000 es: 0000 fs: 0000 gs: 0000 ss: e02b cs: e033
(XEN) Guest stack trace from rsp=ffffffff81c03d28:
(XEN) 0000000000000000 0000000000000000 ffffffff81d120cb
000000010000e030
(XEN) 0000000000010006 ffffffff81c03d68 000000000000e02b
ffffffffffffffff
(XEN) 0000000000000063 000000000004d063 ffffffff81c03de8
ffffffff81d130a7
(XEN) ffffffff81c03de8 000000000004d000 00000001040ff000
0000000000105db1
(XEN) 00000001040ff001 000000000004d062 ffff8800092d6ff8
0000000002027000
(XEN) ffff8800094d8340 ffff8800092d6ff8 00003ffffffff000
ffff8800092d7ff8
(XEN) ffffffff81c03e48 ffffffff81d13c43 ffff8800094d8000
ffff8800094d9000
(XEN) 0000000000000000 ffff8800092d6000 00000000092d6000
000000004cfbf000
(XEN) 00000000092d6000 00000000052d5442 0000000000000000
0000000000000000
(XEN) ffffffff81c03ed8 ffffffff81d185c1 0000000000000000
0000000000000000
(XEN) ffffffff81c03e78 ffffffff810f8ca4 ffffffff81c03ed8
ffffffff8171a15d
(XEN) 0000000000000010 ffffffff81c03ee8 0000000000000000
0000000000000000
(XEN) ffffffff81f0e402 ffffffffffffffff ffffffff81dae900
0000000000000000
(XEN) 0000000000000000 0000000000000000 ffffffff81c03f28
ffffffff81d0cf0f
(XEN) 0000000000000000 0000000000000000 0000000000000000
ffffffff81db82e0
(XEN) 0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN) ffffffff81c03f38 ffffffff81d0c603 ffffffff81c03ff8
ffffffff81d11c86
(XEN) 0300000100000032 0000000000000005 0000000000000020
0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN) 0000000000000000 0000000000000000 0000000000000000
0000000000000000
(XEN) Domain 0 crashed: rebooting machine in 5 seconds.
This can be avoided by allocating aneough space for the p2m to cover
the maximum memory of dom0 plus the identity mapped holes required
for PCI space, BIOS etc.
Reported-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 1b59ddfcf1678de38a1f8ca9fb8ea5eebeff1843
Author: John David Anglin <dave.anglin@xxxxxxxx>
Date: Mon Sep 7 20:13:28 2015 -0400
parisc: Use double word condition in 64bit CAS operation
The attached change fixes the condition used in the "sub" instruction.
A double word comparison is needed. This fixes the 64-bit LWS CAS
operation on 64-bit kernels.
I can now enable 64-bit atomic support in GCC.
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: John David Anglin <dave.anglin>
Signed-off-by: Helge Deller <deller@xxxxxx>
commit b1b4e435e4ef7de77f07bf2a42c8380b960c2d44
Author: Helge Deller <deller@xxxxxx>
Date: Thu Sep 3 22:45:21 2015 +0200
parisc: Filter out spurious interrupts in PA-RISC irq handler
When detecting a serial port on newer PA-RISC machines (with iosapic) we
have a
long way to go to find the right IRQ line, registering it, then
registering the
serial port and the irq handler for the serial port. During this phase
spurious
interrupts for the serial port may happen which then crashes the kernel
because
the action handler might not have been set up yet.
So, basically it's a race condition between the serial port hardware and
the
CPU which sets up the necessary fields in the irq sructs. The main reason
for
this race is, that we unmask the serial port irqs too early without
having set
up everything properly before (which isn't easily possible because we
need the
IRQ number to register the serial ports).
This patch is a work-around for this problem. It adds checks to the CPU
irq
handler to verify if the IRQ action field has been initialized already.
If not,
we just skip this interrupt (which isn't critical for a serial port at
bootup).
The real fix would probably involve rewriting all PA-RISC specific IRQ
code
(for CPU, IOSAPIC, GSC and EISA) to use IRQ domains with proper parenting
of
the irq chips and proper irq enabling along this line.
This bug has been in the PA-RISC port since the beginning, but the crashes
happened very rarely with currently used hardware. But on the latest
machine
which I bought (a C8000 workstation), which uses the fastest CPUs (4 x
PA8900,
1GHz) and which has the largest possible L1 cache size (64MB each), the
kernel
crashed at every boot because of this race. So, without this patch the
machine
would currently be unuseable.
For the record, here is the flow logic:
1. serial_init_chip() in 8250_gsc.c calls iosapic_serial_irq().
2. iosapic_serial_irq() calls txn_alloc_irq() to find the irq.
3. iosapic_serial_irq() calls cpu_claim_irq() to register the CPU irq
4. cpu_claim_irq() unmasks the CPU irq (which it shouldn't!)
5. serial_init_chip() then registers the 8250 port.
Problems:
- In step 4 the CPU irq shouldn't have been registered yet, but after
step 5
- If serial irq happens between 4 and 5 have finished, the kernel will
crash
Signed-off-by: Helge Deller <deller@xxxxxx>
commit 699817c3df46eb209044d8c9eb20c6ff6c67c81d
Author: Helge Deller <deller@xxxxxx>
Date: Wed Sep 2 18:18:48 2015 +0200
parisc: Additionally check for in_atomic() in page fault handler
Craig Estey noticed that we didn't checked for in_atomic() in our page
fault
handler like other architectures. This commit adds this check by using
faulthandler_disabled() which includes a check for pagefault_disabled()
and
in_atomic().
Reported-by: Craig Estey <cae370@xxxxxxxxx>
Signed-off-by: Helge Deller <deller@xxxxxx>
commit e02a653e15d8d32e9e768fd99a3271aafe5c5d77
Author: Helge Deller <deller@xxxxxx>
Date: Wed Sep 2 18:17:29 2015 +0200
PCI,parisc: Enable 64-bit bus addresses on PA-RISC
Commit 3a9ad0b ("PCI: Add pci_bus_addr_t") unconditionally introduced
usage of
64-bit PCI bus addresses on all 64-bit platforms which broke PA-RISC.
It turned out that due to enabling the 64-bit addresses, the PCI logic
decided
to use the GMMIO instead of the LMMIO region. This commit simply disables
registering the GMMIO and thus we fall back to use the LMMIO region as
before.
Reverts commit 45ea2a5fed6dacb9bb0558d8b21eacc1c45d5bb4
("PCI: Don't use 64-bit bus addresses on PA-RISC")
To: linux-parisc@xxxxxxxxxxxxxxx
Cc: linux-pci@xxxxxxxxxxxxxxx
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Meelis Roos <mroos@xxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v3.19+
Signed-off-by: Helge Deller <deller@xxxxxx>
commit 38d9029a652cb2925a97a8484f6e8f2c85fd55bb
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Fri Jul 31 19:34:46 2015 -0700
parisc: Define ioremap_uc and ioremap_wc
Commit 3cc2dac5be3f ("drivers/video/fbdev/atyfb: Replace MTRR UC hole
with strong UC") introduces calls to ioremap_wc and ioremap_uc. This
causes build failures with parisc:allmodconfig. Map the missing
functions to ioremap_nocache.
Fixes: 3cc2dac5be3f ("drivers/video/fbdev/atyfb:
Replace MTRR UC hole with strong UC")
Cc: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Cc: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Helge Deller <deller@xxxxxx>
commit e85376cbd23299e4d40bace0cb5ab867b270fdbd
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Thu Aug 27 13:13:31 2015 +0200
drm/i915: Fix broken mst get_hw_state.
connector->encoder is initialized as NULL. Fix this by setting it in
during pre enable. MST connectors are not read out during initial hw
readout, and have no fixed encoder mappings. So it's harmless to
return false when the connector has never been assigned to an encoder.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 997e120843e82609c8d99a9d5714e6cf91e14cbe
Author: Denis V. Lunev <den@xxxxxxxxxx>
Date: Thu Aug 20 00:49:49 2015 +0300
virtio_balloon: do not change memory amount visible via /proc/meminfo
Balloon device is frequently used as a mean of cooperative memory control
in between guest and host to manage memory overcommitment. This is the
typical case for any hosting workload when KVM guest is provided for
end-user.
Though there is a problem in this setup. The end-user and hosting provider
have signed SLA agreement in which some amount of memory is guaranted for
the guest. The good thing is that this memory will be given to the guest
when the guest will really need it (f.e. with OOM in guest and with
VIRTIO_BALLOON_F_DEFLATE_ON_OOM configuration flag set). The bad thing
is that end-user does not know this.
Balloon by default reduce the amount of memory exposed to the end-user
each time when the page is stolen from guest or returned back by using
adjust_managed_page_count and thus /proc/meminfo shows reduced amount
of memory.
Fortunately the solution is simple, we should just avoid to call
adjust_managed_page_count with VIRTIO_BALLOON_F_DEFLATE_ON_OOM set.
Signed-off-by: Denis V. Lunev <den@xxxxxxxxxx>
CC: Michael S. Tsirkin <mst@xxxxxxxxxx>
Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
commit b4d34037329f46ed818d3b0a6e1e23b9c8721f79
Author: Denis V. Lunev <den@xxxxxxxxxx>
Date: Thu Aug 20 00:49:48 2015 +0300
virtio_ballon: change stub of release_pages_by_pfn
and rename it to release_pages_balloon. The function originally takes
arrays of pfns and now it takes pointer to struct virtio_ballon.
This change is necessary to conditionally call adjust_managed_page_count
in the next patch.
Signed-off-by: Denis V. Lunev <den@xxxxxxxxxx>
CC: Michael S. Tsirkin <mst@xxxxxxxxxx>
Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
commit 5fa3142da14b162f30e4781ff17e1926c47f28fb
Author: Fam Zheng <famz@xxxxxxxxxx>
Date: Sun Sep 6 17:05:42 2015 +0800
virtio-blk: Allow extended partitions
This will allow up to DISK_MAX_PARTS (256) partitions, with for example
GPT in the guest. Otherwise, the partition scan code will only discover
the first 15 partitions.
Signed-off-by: Fam Zheng <famz@xxxxxxxxxx>
Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
commit 38c4ab8e48ab153dee461e10e81256720b70a0b3
Author: Graeme Gregory <graeme.gregory@xxxxxxxxxx>
Date: Tue Jul 28 10:44:02 2015 +0100
virtio_mmio: add ACPI probing
Added the match table and pointers for ACPI probing to the driver.
This uses the same identifier for virt devices as being used for qemu
ARM64 ACPI support.
http://git.linaro.org/people/shannon.zhao/qemu.git/commit/d0bf1955a3ecbab4b51d46f8c5dda02b7e14a17e
Signed-off-by: Graeme Gregory <graeme.gregory@xxxxxxxxxx>
Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
commit 53eab6fd2777dc7cb338519827e23f8bf892903e
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Fri Aug 21 15:53:55 2015 -0700
virtio-blk: use VIRTIO_BLK_F_WCE and VIRTIO_BLK_F_CONFIG_WCE in virtio1
VIRTIO_BLK_F_CONFIG_WCE is important in order to achieve good performance
(up to 2x, though more realistically +30-40%) in latency-bound workloads.
However, it was removed by mistake together with VIRTIO_BLK_F_FLUSH.
It will be restored in the next revision of the virtio 1.0 standard, so
do the same in Linux.
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
commit 08441d462ebdc64df79b392f877e26522616bad5
Author: Chee Nouk Phoon <cnphoon@xxxxxxxxxx>
Date: Tue Sep 8 18:08:56 2015 +0800
nios2: add Max10 defconfig
Max10 is a FPGA device. This patch adds defconfig based on Max10 hardware
reference design. Design is intended to run on Max10 development kit.
Signed-off-by: Chee Nouk Phoon <cnphoon@xxxxxxxxxx>
Signed-off-by: Ley Foon Tan <lftan@xxxxxxxxxx>
commit 61c610ec61bb334ba97cddaf352c95b9371d2a23
Author: Chee Nouk Phoon <cnphoon@xxxxxxxxxx>
Date: Tue Sep 8 18:07:44 2015 +0800
nios2: Add Max10 device tree
Max10 is a FPGA device. This patch adds Nios2 support for Max10.
This device tree is based on Max10 hardware reference design.
Signed-off-by: Chee Nouk Phoon <cnphoon@xxxxxxxxxx>
Signed-off-by: Ley Foon Tan <lftan@xxxxxxxxxx>
commit ba60c41ae392b473a1897faa0b8739fcb8759d69
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Wed Sep 2 12:33:53 2015 +0530
kvm: irqchip: fix memory leak
We were taking the exit path after checking ue->flags and return value
of setup_routing_entry(), but 'e' was not freed incase of a failure.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 3dfe6a507353f3253c8136734d94bfdb459fa04d
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Tue Sep 8 11:14:13 2015 +0200
kvm: move new trace event outside #ifdef CONFIG_KVM_ASYNC_PF
Fixes compilation with ppc64_defconfig.
Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit edcd591c77a48da753456f92daf8bb50fe9bac93
Author: Jonathan Corbet <corbet@xxxxxxx>
Date: Mon Sep 7 13:18:03 2015 -0600
locking/static_keys: Fix a silly typo
Commit:
412758cb2670 ("jump label, locking/static_keys: Update docs")
introduced a typo that might as well get fixed.
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Jason Baron <jbaron@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/20150907131803.54c027e1@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit daebaabb5cfbe4a6f09ca0e0f8b7673efc704960
Author: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx>
Date: Mon Sep 7 15:52:40 2015 +0530
powerpc/pseries: Release DRC when configure_connector fails
Commit f32393c943e2 ("powerpc/pseries: Correct cpu affinity for
dlpar added cpus") moved dlpar_acquire_drc() call to before
dlpar_configure_connector() call in dlpar_cpu_probe(), but missed
to release the DRC if dlpar_configure_connector() failed.
During CPU hotplug, if configure-connector fails for any reason,
then this will result in subsequent CPU hotplug attempts to fail.
Release the acquired DRC if dlpar_configure_connector() call fails
so that the DRC is left in right isolation and allocation state
for the subsequent hotplug operation to succeed.
Fixes: f32393c943e2 ("powerpc/pseries: Correct cpu affinity for dlpar
added cpus")
Cc: stable@xxxxxxxxxxxxxxx # 4.1+
Signed-off-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Nathan Fontenot <nfont@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 6af3e3adcac595a683bb55299a907d7d1ad61ab3
Author: Filipe Manana <fdmanana@xxxxxxxx>
Date: Mon Sep 7 10:41:12 2015 +0100
Btrfs: don't initialize a space info as full to prevent ENOSPC
Commit 2e6e518335f8 ("Btrfs: fix block group ->space_info null pointer
dereference") accidently marked a space info as full when initializing
it with a value of 0 total bytes. This introduces an ENOSPC problem when
writing file data if we mount a filesystem that has no data block groups
allocated, because the data space info is initialized with 0 total bytes,
marked as full, and it never gets its total bytes incremented by a
(positive) value to unmark it as full (because there are no data block
groups loaded when the fs is mounted).
For metadata and system spaces this issue can never happen since we always
have at least one metadata block group and one system block group (even
for an empty filesystem).
So fix this by just not initializing a space info as full, reverting the
offending part of the commit mentioned above.
The following test case for fstests reproduces the issue:
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
tmp=/tmp/$$
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_cleanup()
{
rm -f $tmp.*
}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
# real QA test starts here
_need_to_be_root
_supported_fs btrfs
_supported_os Linux
_require_scratch
rm -f $seqres.full
_scratch_mkfs >>$seqres.full 2>&1
# Mount our filesystem without space caches enabled so that we do not
# get any space used from the initial data block group that mkfs creates
# (space caches used space from data block groups).
_scratch_mount "-o nospace_cache"
# Need an fs with at least 2Gb to make sure mkfs.btrfs does not create
# an fs using mixed block groups (used both for data and metadata). We
# really need to have dedicated block groups for data to reproduce the
# issue and mkfs.btrfs defaults to mixed block groups only for small
# filesystems (up to 1Gb).
_require_fs_space $SCRATCH_MNT $((2 * 1024 * 1024))
# Run balance with the purpose of deleting the unused data block group
# that mkfs created. We could also wait for the background kthread to
# automatically delete the unused block group, but we do not have a way
# to make it run and wait for it to complete, so just do a balance
# instead of some unreliable sleep
_run_btrfs_util_prog balance start -dusage=0 $SCRATCH_MNT
# Now unmount the filesystem, mount it again (either with or with space
# caches enabled, it does not matter to trigger the problem) and attempt
# to create a file with some data - this used to fail with ENOSPC
# because there were no data block groups when the filesystem was
# mounted and the data space info object was marked as full when
# initialized (because it had 0 total bytes), which prevented the file
# write path from attempting to allocate a data block group and fail
# immediately with ENOSPC.
_scratch_remount
echo "hello world" > $SCRATCH_MNT/foobar
echo "Silence is golden"
status=0
exit
Signed-off-by: Filipe Manana <fdmanana@xxxxxxxx>
commit 63431f789c957cebcffeb51953dfaeb7f1ddd827
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 27 17:58:06 2015 +0530
cpufreq: Use __func__ to print function's name
Its better to use __func__ to print functions name instead of writing
the name in the print statement. This also has the advantage that a
change in function's name doesn't force us to change the print message
as well.
Reviewed-by: Preeti U Murthy <preeti@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 4e4adb2f462889b9eac736dd06d60658beb091b6
Merge: 77a7880 5445b1f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 7 14:02:24 2015 -0700
Merge tag 'nfs-for-4.3-1' of
git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull NFS client updates from Trond Myklebust:
"Highlights include:
Stable patches:
- Fix atomicity of pNFS commit list updates
- Fix NFSv4 handling of open(O_CREAT|O_EXCL|O_RDONLY)
- nfs_set_pgio_error sometimes misses errors
- Fix a thinko in xs_connect()
- Fix borkage in _same_data_server_addrs_locked()
- Fix a NULL pointer dereference of migration recovery ops for v4.2
client
- Don't let the ctime override attribute barriers.
- Revert "NFSv4: Remove incorrect check in can_open_delegated()"
- Ensure flexfiles pNFS driver updates the inode after write finishes
- flexfiles must not pollute the attribute cache with attrbutes from
the DS
- Fix a protocol error in layoutreturn
- Fix a protocol issue with NFSv4.1 CLOSE stateids
Bugfixes + cleanups
- pNFS blocks bugfixes from Christoph
- Various cleanups from Anna
- More fixes for delegation corner cases
- Don't fsync twice for O_SYNC/IS_SYNC files
- Fix pNFS and flexfiles layoutstats bugs
- pnfs/flexfiles: avoid duplicate tracking of mirror data
- pnfs: Fix layoutget/layoutreturn/return-on-close serialisation
issues
- pnfs/flexfiles: error handling retries a layoutget before fallback
to MDS
Features:
- Full support for the OPEN NFS4_CREATE_EXCLUSIVE4_1 mode from
Kinglong
- More RDMA client transport improvements from Chuck
- Removal of the deprecated ib_reg_phys_mr() and ib_rereg_phys_mr()
verbs from the SUNRPC, Lustre and core infiniband tree.
- Optimise away the close-to-open getattr if there is no cached data"
* tag 'nfs-for-4.3-1' of
git://git.linux-nfs.org/projects/trondmy/linux-nfs: (108 commits)
NFSv4: Respect the server imposed limit on how many changes we may cache
NFSv4: Express delegation limit in units of pages
Revert "NFS: Make close(2) asynchronous when closing NFS O_DIRECT files"
NFS: Optimise away the close-to-open getattr if there is no cached data
NFSv4.1/flexfiles: Clean up
ff_layout_write_done_cb/ff_layout_commit_done_cb
NFSv4.1/flexfiles: Mark the layout for return in
ff_layout_io_track_ds_error()
nfs: Remove unneeded checking of the return value from scnprintf
nfs: Fix truncated client owner id without proto type
NFSv4.1/flexfiles: Mark layout for return if the mirrors are invalid
NFSv4.1/flexfiles: RW layouts are valid only if all mirrors are valid
NFSv4.1/flexfiles: Fix incorrect usage of
pnfs_generic_mark_devid_invalid()
NFSv4.1/flexfiles: Fix freeing of mirrors
NFSv4.1/pNFS: Don't request a minimal read layout beyond the end of file
NFSv4.1/pnfs: Handle LAYOUTGET return values correctly
NFSv4.1/pnfs: Don't ask for a read layout for an empty file.
NFSv4.1: Fix a protocol issue with CLOSE stateids
NFSv4.1/flexfiles: Don't mark the entire deviceid as bad for file errors
SUNRPC: Prevent SYN+SYNACK+RST storms
SUNRPC: xs_reset_transport must mark the connection as disconnected
NFSv4.1/pnfs: Ensure layoutreturn reserves space for the opaque payload
...
commit 77a78806c7df8d414c33031a1ca5121876910c4f
Merge: 7d9071a 5d54b8c
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Sep 7 13:28:32 2015 -0700
Merge tag 'xfs-for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs
Pull xfs updates from Dave Chinner:
"There isn't a whole lot to this update - it's mostly bug fixes and
they are spread pretty much all over XFS. There are some corruption
fixes, some fixes for log recovery, some fixes that prevent unount
from hanging, a lockdep annotation rework for inode locking to prevent
false positives and the usual random bunch of cleanups and minor
improvements.
Deatils:
- large rework of EFI/EFD lifecycle handling to fix log recovery
corruption issues, crashes and unmount hangs
- separate metadata UUID on disk to enable changing boot label UUID
for v5 filesystems
- fixes for gcc miscompilation on certain platforms and optimisation
levels
- remote attribute allocation and recovery corruption fixes
- inode lockdep annotation rework to fix bugs with too many
subclasses
- directory inode locking changes to prevent lockdep false positives
- a handful of minor corruption fixes
- various other small cleanups and bug fixes"
* tag 'xfs-for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (42 commits)
xfs: fix error gotos in xfs_setattr_nonsize
xfs: add mssing inode cache attempts counter increment
xfs: return errors from partial I/O failures to files
libxfs: bad magic number should set da block buffer error
xfs: fix non-debug build warnings
xfs: collapse allocsize and biosize mount option handling
xfs: Fix file type directory corruption for btree directories
xfs: lockdep annotations throw warnings on non-debug builds
xfs: Fix uninitialized return value in xfs_alloc_fix_freelist()
xfs: inode lockdep annotations broke non-lockdep build
xfs: flush entire file on dio read/write to cached file
xfs: Fix xfs_attr_leafblock definition
libxfs: readahead of dir3 data blocks should use the read verifier
xfs: stop holding ILOCK over filldir callbacks
xfs: clean up inode lockdep annotations
xfs: swap leaf buffer into path struct atomically during path shift
xfs: relocate sparse inode mount warning
xfs: dquots should be stamped with sb_meta_uuid
xfs: log recovery needs to validate against sb_meta_uuid
xfs: growfs not aware of sb_meta_uuid
...
commit d075a88e515278b3e2d5ec39e80e6fd3c6e48841
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Thu Sep 3 12:15:21 2015 +0530
cpufreq: staticize cpufreq_cpu_get_raw()
cpufreq_cpu_get_raw() isn't used by any external users, staticize it.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 9a07826f99034202dad589285a47132685d9538b
Author: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Date: Mon Aug 31 09:31:00 2015 -0400
NTB: Fix range check on memory window index
The range check must exclude the upper bound.
Signed-off-by: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Signed-off-by: Jon Mason <jdmason@xxxxxxxx>
commit 2aa2a77a489deda473c99a4c15074d092718912c
Author: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Date: Mon Aug 31 09:30:59 2015 -0400
NTB: Improve index handling in B2B MW workaround
Check that b2b_mw_idx is in range of the number of memory windows when
initializing the device. The workaround is considered to be in effect
only if the device b2b_idx is exactly UINT_MAX, instead of any index
past the last memory window.
Only print B2B MW workaround information in debugfs if the workaround is
in effect.
Signed-off-by: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Signed-off-by: Jon Mason <jdmason@xxxxxxxx>
commit 86663c91866ae85c219f1a80ef2c9460b7ca5cd8
Author: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Date: Wed Jul 15 12:43:21 2015 -0400
NTB: Fix documentation for ntb_peer_db_clear.
The documentation should say "peer" not "local" when referring to the
peer doorbell register.
Reported-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Signed-off-by: Jon Mason <jdmason@xxxxxxxx>
commit a7c23237481782fbea3c2230e362b72863e144b0
Author: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Date: Wed Jul 15 04:15:28 2015 -0400
NTB: Fix documentation for ntb_link_is_up
There was a copy and paste error in the documentation for
ntb_link_is_up. The long description was mistakenly copied from
ntb_link_set_trans.
This adds the appropriate long description for ntb_link_is_up.
Reported-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Signed-off-by: Jon Mason <jdmason@xxxxxxxx>
commit 569410ca756cd3ebb15609cb6828a8393fb6384d
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Mon Jul 13 08:07:22 2015 -0400
NTB: Use unique DMA channels for TX and RX
Allocate two DMA channels, one for TX operation and one for RX
operation, instead of having one DMA channel for everything. This
provides slightly better performance, and also will make error handling
cleaner later on.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Jon Mason <jdmason@xxxxxxxx>
commit 905921e74864e80228e7f8cfe75315cd0a8cada8
Author: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Date: Mon Jul 13 08:07:21 2015 -0400
NTB: Remove dma_sync_wait from ntb_async_rx
The dma_sync_wait can hurt the performance of workloads mixed with both
large and small frames. Large frames will be copied using the dma
engine. Small frames will be copied by the cpu. The dma_sync_wait
prevents the cpu and dma engine copying in parallel.
In the period where the cpu is copying, the dma engine is stopped. The
dma engine is not doing any useful work to copy large frames during that
time, and the additional time to restart the dma engine for the next
large frame. This will decrease the throughput for the portion of a
workload with large frames.
In the period where the dma engine is copying, the cpu is held up
waiting for dma to complete. The small frames processing will be
delayed until the dma is complete. The RX frames are completed
in-order, and the processing of small frames takes very little time, so
dma_sync_wait may have an insignificant impact on the respose time of
frames. The more significant impact is to the system, because the delay
in dma_sync_wait is implemented as busy non-blocking wait. This can
prevent the delayed core from doing any useful work, even if it could be
processing work for other drivers, unrelated to transport RX processing.
After applying the earlier patch to fix out-of-order RX acknoledgement,
the dma_sync_wait is no longer necessary. Remove it, so that cpu memcpy
will proceed immediately for small frames, in parallel with ongoing dma
for large frames. Do not hold up the cpu from doing work while dma is
in progress. The prior fix will continue to ensure in-order completion
of the RX frames to the upper layer, and in-order delivery of the RX
acknoledgement.
Signed-off-by: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Signed-off-by: Jon Mason <jdmason@xxxxxxxx>
commit d98ef99e378b0d5c42be928d6f2abe08a5f9ce53
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Mon Jul 13 08:07:20 2015 -0400
NTB: Clean up QP stats info
Make QP stats info more readable for debugging purposes. Also add an
entry to indicate whether DMA is being used.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Jon Mason <jdmason@xxxxxxxx>
commit 315100004fd6d9189b033f3bf9c5eba9eb906705
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Mon Jul 13 08:07:19 2015 -0400
NTB: Make the transport list in order of discovery
The list should be added from the bottom and not the top in order to
ensure the transport is provided in the same order to clients as ntb
devices are discovered.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Jon Mason <jdmason@xxxxxxxx>
commit 0a5d19d9f046d770776508fdde959d2a42bce9f7
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Mon Jul 13 08:07:18 2015 -0400
NTB: Add PCI Device IDs for Broadwell Xeon
Adding PCI Device IDs for B2B (back to back), RP (root port, primary),
and TB (transparent bridge, secondary) devices.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Jon Mason <jdmason@xxxxxxxx>
commit e74bfeedad08180b968d8613dcde141ffb0720c3
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Mon Jul 13 08:07:17 2015 -0400
NTB: Add flow control to the ntb_netdev
Right now if we push the NTB really hard, we start dropping packets due
to not able to process the packets fast enough. We need to st:qop the
upper layer from flooding us when that happens.
A timer is necessary in order to restart the queue once the resource has
been processed on the receive side. Due to the way NTB is setup, the
resources on the tx side are tied to the processing of the rx side and
there's no async way to know when the rx side has released those
resources.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Jon Mason <jdmason@xxxxxxxx>
commit 5e9fd733fa34b491e7ac41c91aa42ba0a9d8ea10
Author: Jon Mason <jdmason@xxxxxxxx>
Date: Sat Jul 4 14:48:33 2015 -0400
NTB: Add list to MAINTAINERS
Add the new NTB mailing list to MAINTAINERS
Signed-off-by: Jon Mason <jdmason@xxxxxxxx>
commit 0094dc40a97260b64313b169989952d3aa2013f6
Author: Ley Foon Tan <lftan@xxxxxxxxxx>
Date: Tue Sep 8 01:50:05 2015 +0800
MAINTAINERS: update nios2 git repo
Signed-off-by: Ley Foon Tan <lftan@xxxxxxxxxx>
commit 3fb39c482c39760ab3b5e59f30868c988c25578d
Author: Bernd Weiberg <bernd.weiberg@xxxxxxxxxxx>
Date: Fri Sep 4 16:59:45 2015 +0800
nios2: remove unused statistic counters
Removed some statistic counters to improve the performance of the handler.
Signed-off-by: Bernd Weiberg <bernd.weiberg@xxxxxxxxxxx>
Signed-off-by: Ley Foon Tan <lftan@xxxxxxxxxx>
commit db5a7e55468147f28d1a408880564b61c542e4f8
Author: Bernd Weiberg <bernd.weiberg@xxxxxxxxxxx>
Date: Fri Sep 4 17:03:03 2015 +0800
nios2: fixed variable imm16 to s16
Fxid variable imm16 to s16 instead of u16, offset might be negative.
Signed-off-by: Bernd Weiberg <bernd.weiberg@xxxxxxxxxxx>
Signed-off-by: Ley Foon Tan <lftan@xxxxxxxxxx>
commit 549a14c14b2f1868b81e5417a33b6d79e6da1d00
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Tue Aug 18 13:59:28 2015 +0800
nios2/time: Migrate to new 'set-state' interface
Migrate nios2 driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
Cc: Ley Foon Tan <lftan@xxxxxxxxxx>
Cc: Tobias Klauser <tklauser@xxxxxxxxxx>
Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Cc: Dmitry Torokhov <dtor@xxxxxxxxxxxx>
Cc: nios2-dev@xxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Acked-by: Ley Foon Tan <lftan@xxxxxxxxxx>
commit 5445b1fbd123420bffed5e629a420aa2a16bf849
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Sat Sep 5 19:06:58 2015 -0400
NFSv4: Respect the server imposed limit on how many changes we may cache
The NFSv4 delegation spec allows the server to tell a client to limit how
much data it cache after the file is closed. In return, the server
guarantees enough free space to avoid ENOSPC situations, etc.
Prior to this patch, we assumed we could always cache aggressively after
close. Unfortunately, this causes problems with servers that set the
limit to 0 and therefore do not offer any ENOSPC guarantees.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 7d160a6c462c2c690e074c173b43aad7204049ad
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Sat Sep 5 19:06:57 2015 -0400
NFSv4: Express delegation limit in units of pages
Since we're tracking modifications to the page cache on a per-page
basis, it makes sense to express the limit to how much we may cache
in units of pages.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 6583d2032d57df9f1c00c753ca58e1a822901bf0
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Mon Sep 7 19:37:57 2015 +0800
spi: mediatek: fix spi cs polarity error
Mediatek spi HW can't set cs inactive(keep cs high) directly.
Instead, it supplies pause mode to do it indirectly. If driver
unsets SPI_CMD_PAUSE_MODE in CMD_REG, it also needs to reset
internal state machine to let cs inactive at once.
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit a077224fd35b2f7fbc93f14cf67074fc792fbac2
Author: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Date: Thu Sep 3 13:24:40 2015 +0100
ARM: 8429/1: disable GCC SRA optimization
While working on the 32-bit ARM port of UEFI, I noticed a strange
corruption in the kernel log. The following snprintf() statement
(in drivers/firmware/efi/efi.c:efi_md_typeattr_format())
snprintf(pos, size, "|%3s|%2s|%2s|%2s|%3s|%2s|%2s|%2s|%2s]",
was producing the following output in the log:
| | | | | |WB|WT|WC|UC]
| | | | | |WB|WT|WC|UC]
| | | | | |WB|WT|WC|UC]
|RUN| | | | |WB|WT|WC|UC]*
|RUN| | | | |WB|WT|WC|UC]*
| | | | | |WB|WT|WC|UC]
|RUN| | | | |WB|WT|WC|UC]*
| | | | | |WB|WT|WC|UC]
|RUN| | | | | | | |UC]
|RUN| | | | | | | |UC]
As it turns out, this is caused by incorrect code being emitted for
the string() function in lib/vsprintf.c. The following code
if (!(spec.flags & LEFT)) {
while (len < spec.field_width--) {
if (buf < end)
*buf = ' ';
++buf;
}
}
for (i = 0; i < len; ++i) {
if (buf < end)
*buf = *s;
++buf; ++s;
}
while (len < spec.field_width--) {
if (buf < end)
*buf = ' ';
++buf;
}
when called with len == 0, triggers an issue in the GCC SRA optimization
pass (Scalar Replacement of Aggregates), which handles promotion of signed
struct members incorrectly. This is a known but as yet unresolved issue.
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65932). In this particular
case, it is causing the second while loop to be executed erroneously a
single time, causing the additional space characters to be printed.
So disable the optimization by passing -fno-ipa-sra.
Cc: <stable@xxxxxxxxxxxxxxx>
Acked-by: Nicolas Pitre <nico@xxxxxxxxxx>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 7d1647dc4ba0a61fec5381c1abb59dc886b6ef3c
Author: Andrew Donnellan <andrew.donnellan@xxxxxxxxxxx>
Date: Mon Sep 7 10:52:58 2015 +1000
cxl: abort cxl_pci_enable_device_hook() if PCI channel is offline
cxl_pci_enable_device_hook() is called when attempting to enable an AFU
sitting on a vPHB. At present, the state of the underlying CXL card's PCI
channel is only checked when it calls cxl_afu_check_and_enable() at the
very end, after it has already set DMA options and initialised a default
context.
Check the CXL card's link status before setting DMA options or
initialising
a default context. If the link is down, print a warning and return
immediately.
Signed-off-by: Andrew Donnellan <andrew.donnellan@xxxxxxxxxxx>
Acked-by: Ian Munsie <imunsie@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit fa14486979b3a47307bcdb10f8b5baa875a5cf68
Author: Nishanth Aravamudan <nacc@xxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 11:22:52 2015 -0700
powerpc/powernv/pci-ioda: fix kdump with non-power-of-2 crashkernel=
The 32-bit TCE table initialization relies on the DMA window having a
size equal to a power of 2 (and checks for it explicitly). But
crashkernel= has no constraint that requires a power-of-2 be specified.
This causes the kdump kernel to fail to boot as none of the PCI devices
(including the disk controller) are successfully initialized.
After this change, the PCI devices successfully set up the 32-bit TCE
table and kdump succeeds.
Fixes: aca6913f5551 ("powerpc/powernv/ioda2: Introduce helpers to
allocate TCE pages")
Signed-off-by: Nishanth Aravamudan <nacc@xxxxxxxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # 4.2
Tested-by: Jan Stancek <jstancek@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit bb0054552d080dd929907c5925d4bedc8bf6def7
Author: Nishanth Aravamudan <nacc@xxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 08:39:28 2015 -0700
powerpc/powernv/pci-ioda: fix 32-bit TCE table init in kdump kernel
When attempting to kdump with the 4.2 kernel, we see for each PCI
device:
pci 0003:01 : [PE# 000] Assign DMA32 space
pci 0003:01 : [PE# 000] Setting up 32-bit TCE table at 0..80000000
pci 0003:01 : [PE# 000] Failed to create 32-bit TCE table, err -22
PCI: Domain 0004 has 8 available 32-bit DMA segments
PCI: 4 PE# for a total weight of 70
pci 0004:01 : [PE# 002] Assign DMA32 space
pci 0004:01 : [PE# 002] Setting up 32-bit TCE table at 0..80000000
pci 0004:01 : [PE# 002] Failed to create 32-bit TCE table, err -22
pci 0004:0d : [PE# 005] Assign DMA32 space
pci 0004:0d : [PE# 005] Setting up 32-bit TCE table at 0..80000000
pci 0004:0d : [PE# 005] Failed to create 32-bit TCE table, err -22
pci 0004:0e : [PE# 006] Assign DMA32 space
pci 0004:0e : [PE# 006] Setting up 32-bit TCE table at 0..80000000
pci 0004:0e : [PE# 006] Failed to create 32-bit TCE table, err -22
pci 0004:10 : [PE# 008] Assign DMA32 space
pci 0004:10 : [PE# 008] Setting up 32-bit TCE table at 0..80000000
pci 0004:10 : [PE# 008] Failed to create 32-bit TCE table, err -22
and eventually the kdump kernel fails to boot as none of the PCI devices
(including the disk controller) are successfully initialized.
The EINVAL response is because the DMA window (the 2GB base window) is
larger than the kdump kernel's reserved memory (crashkernel=, in this
case specified to be 1024M). The check in question,
if ((window_size > memory_hotplug_max()) || !is_power_of_2(window_size))
is a valid sanity check for pnv_pci_ioda2_table_alloc_pages(), so adjust
the caller to pass in a smaller window size if our maximum memory value
is smaller than the DMA window.
After this change, the PCI devices successfully set up the 32-bit TCE
table and kdump succeeds.
The problem was seen on a Firestone machine originally.
Fixes: aca6913f5551 ("powerpc/powernv/ioda2: Introduce helpers to
allocate TCE pages")
Cc: stable@xxxxxxxxxxxxxxx # 4.2
Signed-off-by: Nishanth Aravamudan <nacc@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Alexey Kardashevskiy <aik@xxxxxxxxx>
[mpe: Coding style pedantry, use u64, change the indentation]
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 5ee20bc792467d7d612157e0a9962765aa943b08
Author: Johan Rastén <johan@xxxxxxxx>
Date: Sun Sep 6 18:16:13 2015 +0200
ALSA: usb-audio: Change internal PCM order
New PCMs will now be added to the end of the chip's PCM list instead of
to the
front. This changes the way streams are combined so that the first capture
stream will now be merged with the first playback stream instead of the
last.
This fixes a problem with ASUS U7. Cards with one playback stream and
cards
without capture streams should be unaffected by this change.
Exception added for M-Audio Audiophile USB (tm) since it seems to have a
fix to
swap capture stream numbering in alsa-lib conf/cards/USB-audio.conf
Signed-off-by: Johan Rastén <johan@xxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit e7e98d76777ffba334bbf7a61939c5de48acc5a0
Author: James Hogan <james.hogan@xxxxxxxxxx>
Date: Thu Jul 30 13:31:42 2015 +0100
Documentation/features/vm: Meta2 is capable of THP
Change metag Transparent Huge Pages (THP) support from .. to TODO. Meta2
has variable sized pages, between 4KB and 4MB, specified at the 1st
level page table level, and already supports hugetlbfs, so supporting
THP is theoretically possible too.
Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
Acked-by: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Cc: linux-metag@xxxxxxxxxxxxxxx
Cc: linux-doc@xxxxxxxxxxxxxxx
commit 46cdc9be0841b30ba612aec1878cb746faf280a4
Author: françois romieu <romieu@xxxxxxxxxxxxx>
Date: Fri Sep 4 23:05:42 2015 +0200
cxgb4: fix usage of uninitialized variable
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c: In function
â??init_oneâ??:
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c:4579:8: warning:
â??chipâ?? may be used uninitialized in this function [-Wmaybe-uninitialized]
chip |= CHELSIO_CHIP_CODE(CHELSIO_T4, pl_rev);
^
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c:4571:11: note: â??chipâ??
was declared here
int ver, chip;
^
Fixes: d86bd29e0b31 ("cxgb4/cxgb4vf: read the correct bits of PL Who Am I
register")
Signed-off-by: Francois Romieu <romieu@xxxxxxxxxxxxx>
Cc: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit bd1a05ee98b06c9a20138c45f96ccfddf3163f93
Author: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 23:22:16 2015 +0300
fixed_phy: pass 'irq' to fixed_phy_add()
I've noticed that fixed_phy_register() ignores its 'irq' parameter
instead of
passing it to fixed_phy_add(). Luckily, fixed_phy_register() seems to
always
be called with PHY_POLL for 'irq'... :-)
Fixes: a75951217472 ("net: phy: extend fixed driver with
fixed_phy_register()")
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Acked-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f88f69dd17f150e2abcc7e2d95f895f2546fa381
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Fri Sep 4 13:07:40 2015 -0700
openvswitch: Remove conntrack Kconfig option.
There's no particular desire to have conntrack action support in Open
vSwitch as an independently configurable bit, rather just to ensure
there is not a hard dependency. This exposed option doesn't accurately
reflect the conntrack dependency when enabled, so simplify this by
removing the option. Compile the support if NF_CONNTRACK is enabled.
Fixes: 7f8a436eaa2c ("openvswitch: Add conntrack action")
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 585e7e1a544c5b13b2a0014c23f3cb6622e8c995
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 11:22:24 2015 -0400
net: dsa: mv88e6171: add hardware 802.1Q support
The Marvell 88E6171 switch is in the 88E6351 family, which supports
802.1Q, thus add support from the generic mv88e6xxx functions.
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 080fff50a3bd669dbc16261602055a157fe89583
Merge: e5a5837 ef9be10
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sun Sep 6 19:49:55 2015 -0700
Merge tag 'mac80211-for-davem-2015-09-04' of
git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
Johannes Berg says:
====================
For the first round of fixes, we have this:
* fix for the sizeof() pointer type issue
* a fix for regulatory getting into a restore loop
* a fix for rfkill global 'all' state, it needs to be stored
everywhere to apply correctly to new rfkill instances
* properly refuse CQM RSSI when it cannot actually be used
* protect HT TDLS traffic properly in non-HT networks
* don't incorrectly advertise 80 MHz support when not allowed
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e5a5837da756b4826d40636239718eb8f76775fd
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Fri Sep 4 14:44:12 2015 +0200
ethernet: synopsys: SYNOPSYS_DWC_ETH_QOS should depend on HAS_DMA
If NO_DMA=y:
ERROR: "dma_alloc_coherent"
[drivers/net/ethernet/synopsys/dwc_eth_qos.ko] undefined!
ERROR: "dma_free_coherent"
[drivers/net/ethernet/synopsys/dwc_eth_qos.ko] undefined!
ERROR: "dma_unmap_single"
[drivers/net/ethernet/synopsys/dwc_eth_qos.ko] undefined!
ERROR: "dma_map_page" [drivers/net/ethernet/synopsys/dwc_eth_qos.ko]
undefined!
ERROR: "dma_mapping_error"
[drivers/net/ethernet/synopsys/dwc_eth_qos.ko] undefined!
ERROR: "dma_map_single"
[drivers/net/ethernet/synopsys/dwc_eth_qos.ko] undefined!
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Acked-by: Lars Persson <larper@xxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0f1b7354e0d65ad528b820a8a46c15d70954f699
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Fri Sep 4 12:49:32 2015 +0200
vxlan: Refactor vxlan_udp_encap_recv() to kill compiler warning
drivers/net/vxlan.c: In function â??vxlan_udp_encap_recvâ??:
drivers/net/vxlan.c:1226: warning: â??infoâ?? may be used uninitialized
in this function
While this warning is a false positive, it can be killed easily by
getting rid of the pointer intermediary and referring directly to the
ip_tunnel_info structure.
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Reviewed-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 99c79eceb152e2ac7f8a81ff55d4a810f730ec7b
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Fri Sep 4 12:47:28 2015 +0200
lan78xx: Fix ladv/radv error handling in lan78xx_link_reset()
net/usb/lan78xx.c: In function â??lan78xx_link_resetâ??:
net/usb/lan78xx.c:1107: warning: comparison is always false due to
limited range of data type
net/usb/lan78xx.c:1111: warning: comparison is always false due to
limited range of data type
Assigning return values that can be negative error codes to "u16"
variables makes them positive, ignoring the errors. Hence use "int"
instead.
Drop the "unlikely"s (unlikely considered harmful) and propagate the
actual error values instead of overriding them to -EIO while we're at
it.
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 537b604c8b3aa8b96fe35f87dd085816552e294c
Author: Michal Hocko <mhocko@xxxxxxxx>
Date: Thu Aug 27 20:16:37 2015 +0200
scsi: fix scsi_error_handler vs. scsi_host_dev_release race
b9d5c6b7ef57 ("[SCSI] cleanup setting task state in
scsi_error_handler()") has introduced a race between scsi_error_handler
and scsi_host_dev_release resulting in the hang when the device goes
away because scsi_error_handler might miss a wake up:
CPU0 CPU1
scsi_error_handler scsi_host_dev_release
kthread_stop()
kthread_should_stop()
test_bit(KTHREAD_SHOULD_STOP)
set_bit(KTHREAD_SHOULD_STOP)
wake_up_process()
wait_for_completion()
set_current_state(TASK_INTERRUPTIBLE)
schedule()
The most straightforward solution seems to be to invert the ordering of
the set_current_state and kthread_should_stop.
The issue has been noticed during reboot test on a 3.0 based kernel but
the current code seems to be affected in the same way.
[jejb: additional comment added]
Cc: <stable@xxxxxxxxxxxxxxx> # 3.6+
Reported-and-debugged-by: Mike Mayer <Mike.Meyer@xxxxxxxxxxxx>
Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>
Reviewed-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 420fa2118c020a005e9f0311c1e0b27414306618
Author: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Date: Wed Aug 19 11:18:44 2015 +0530
fcoe: Convert use of __constant_htons to htons
In little endian cases, the macro htons unfolds to __swab16 which
provides special case for constants. In big endian cases,
__constant_htons and htons expand directly to the same expression.
So, replace __constant_htons with htons with the goal of getting
rid of the definition of __constant_htons completely.
The semantic patch that performs this transformation is as follows:
@@expression x;@@
- __constant_htons(x)
+ htons(x)
Signed-off-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Acked-by: Vasu Dev <vasu.dev@xxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 6229b414b3adb3aac0b54e67d72d6462fc230c0d
Author: Nagarajkumar Narayanan <nagarajkumar.narayanan@xxxxxxxxxxx>
Date: Tue Aug 18 13:27:10 2015 +0530
mpt2sas: setpci reset kernel oops fix
mpt2sas: setpci reset on nytro warpdrive card along with sysfs access and
cli ioctl access resulted in kernel oops
1. pci_access_mutex lock added to provide synchronization between IOCTL,
sysfs, PCI resource handling path
2. gioc_lock spinlock to protect list operations over multiple
controllers
>From c53a1cff4c07528b8b9ec7f6716e94950283e8f9 Mon Sep 17 00:00:00 2001
From: Nagarajkumar Narayanan <nagarajkumar.narayanan@xxxxxxxxxxx>
Date: Tue, 18 Aug 2015 11:58:13 +0530
Subject: [PATCH] mpt2sas setpci reset oops fix
In mpt2sas driver due to lack of synchronization between ioctl,
BRM status access through sysfs, pci resource removal kernel oops
happen as ioctl path and BRM status sysfs access path still tries
to access the removed resources
Two locks added to provide syncrhonization
1. pci_access_mutex: Mutex to synchronize ioctl,sysfs show path and
pci resource handling. PCI resource freeing will lead to free
vital hardware/memory resource, which might be in use by cli/sysfs
path functions resulting in Null pointer reference followed by kernel
crash. To avoid the above race condition we use mutex syncrhonization
which ensures the syncrhonization between cli/sysfs_show path
Note: pci_access_mutex is used only if nytro warpdrive cards
(ioc->is_warpdrive based on device id) are used
as we could not test this case with other SAS2 HBA cards
We can remove this check if this behaviour confirmed from other
cards.
2. spinlock on list operations over IOCs
Case: when multiple warpdrive cards(IOCs) are in use
Each IOC will added to the ioc list stucture on initialization.
Watchdog threads run at regular intervals to check IOC for any
fault conditions which will trigger the dead_ioc thread to
deallocate pci resource, resulting deleting the IOC netry from list,
this deletion need to protected by spinlock to enusre that
ioc removal is syncrhonized, if not synchronized it might lead to
list_del corruption as the ioc list is traversed in cli path
Signed-off-by: Nagarajkumar Narayanan <nagarajkumar.narayanan@xxxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Acked-by: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 50acde8ed35620fdfad88f4e20a39a1eb0d8d4c9
Author: Johannes Thumshirn <jthumshirn@xxxxxxx>
Date: Mon Aug 17 15:52:32 2015 +0200
pm80xx: Don't override ts->stat on IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY
In case psataPayload->status has a status of
IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY
ts->stat gets set to SAS_OPEN_REJECT but a missing 'break' statement
causes a
fallthrough to the default handler of the switch statement overriding
ts->stat
to SAS_DEV_NO_RESPONSE.
Signed-off-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Acked-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 612872cabf5be6f95d43d9a88eef38201ae8005d
Author: Johannes Thumshirn <jthumshirn@xxxxxxx>
Date: Mon Aug 17 13:03:02 2015 +0200
lpfc: Fix possible use-after-free and double free in
lpfc_mbx_cmpl_rdp_page_a2()
If the bf_get() call in lpfc_mbx_cmpl_rdp_page_a2() does succeeds,
execution
continues normally and mp gets kfree()d.
If the subsequent call to lpfc_sli_issue_mbox() fails execution jumps to
the
error label where lpfc_mbuf_free() is called with mp->virt and mp->phys as
function arguments. This is the use after free. Following the use after
free mp
gets kfree()d again which is a double free.
Signed-off-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Acked-by: James Smart <james.smart@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 6f3d828f5bd72174c24789aba5d4ed036b60f44b
Author: Anil Gurumurthy <anil.gurumurthy@xxxxxxxxxx>
Date: Thu Aug 13 06:41:52 2015 -0400
bfa: Fix incorrect de-reference of pointer
Signed-off-by: Anil Gurumurthy <anil.gurumurthy@xxxxxxxxxx>
Tested-by: Sudarsana Kalluru <sudarsana.kalluru@xxxxxxxxxx>
Reviewed-by: Ewan D. Milne <emilne@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit b7f4d6343820af5c2dc3979e91d85e71e638cd3d
Author: Anil Gurumurthy <anil.gurumurthy@xxxxxxxxxx>
Date: Thu Aug 13 06:41:51 2015 -0400
bfa: Fix indentation
Signed-off-by: Anil Gurumurthy <anil.gurumurthy@xxxxxxxxxx>
Tested-by : Sudarasana Kalluru <sudarsana.kalluru@xxxxxxxxxx>
Reviewed-by: Ewan D. Milne <emilne@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 0c416b54f29151a31999868d59c64ace11589d1b
Author: Jordan Hargrave <jharg93@xxxxxxxxx>
Date: Mon Jul 13 09:27:33 2015 -0500
scsi_transport_sas: Remove check for SAS expander when querying
bay/enclosure IDs.
Dell Server backplanes can report bay/enclosure IDs without an
expander present. This patch allows the bay/enclosure IDs to be
propagaged to sysfs.we
Signed-off-by: Jordan Hargrave <jordan_hargrave@xxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 2492fc09f0b90cd69cd9788d12c5c79d673adef3
Author: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Date: Tue Jul 28 16:54:26 2015 +0300
scsi_debug: resp_request: remove unused variable
Fixes the following warning
In function â??resp_requestsâ??:
drivers/scsi//scsi_debug.c:1432:15: warning: variable â??want_dsenseâ??
set
but not used [-Wunused-but-set-variable]
bool dsense, want_dsense;
Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit f2d3fd29ba6226218533ad3fbba2312ae122663f
Author: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Date: Tue Jul 28 16:54:25 2015 +0300
scsi_debug: fix REPORT LUNS Well Known LU
The use case to report 'REPORT LUNS WLUN' described
in scsi_debug documentation didn't work because:
scsi_scan_host_selected() checks for:
lun < shost->max_lun
To fix this we set:
max_lun = SCSI_W_LUN_REPORT_LUNS + 1;
Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Acked-by: Douglas Gilbert <dgilbert@xxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 299b6c07ea134d4f9d7cb743194bf9c1941585b2
Author: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Date: Tue Jul 28 16:54:24 2015 +0300
scsi_debug: schedule_resp fix input variable check
The function should never be called with cmnd NULL so
put a fat WARN there.
Fix also smatch wraning:
schedule_resp() warn: variable dereferenced before check 'cmnd'
Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Acked-by: Douglas Gilbert <dgilbert@xxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 58a8635d5a1b49c4b87fb48969319e1ce77d3f03
Author: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Date: Tue Jul 28 16:54:23 2015 +0300
scsi_debug: make dump_sector static
fixes warning:
warning: no previous prototype for â??dump_sectorâ??
Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Acked-by: Douglas Gilbert <dgilbert@xxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit de232af6703ff8e283559016c14a3273ea932878
Author: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Date: Tue Jul 28 16:54:22 2015 +0300
scsi_debug: vfree is null safe so drop the check
Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Acked-by: Douglas Gilbert <dgilbert@xxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 34d55434ba1f39093ea30cb770d70508fdb1edaa
Author: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Date: Tue Jul 28 16:54:21 2015 +0300
scsi_debug: use SCSI_W_LUN_REPORT_LUNS instead of SAM2_WLUN_REPORT_LUNS;
use SCSI_W_LUN_REPORT_LUNS from scsi.h instead of localy defined
SAM2_WLUN_REPORT_LUNS
Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Acked-by: Douglas Gilbert <dgilbert@xxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit c1287970f4847a973830daf4076bc25929f3b2d9
Author: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Date: Tue Jul 28 16:54:20 2015 +0300
scsi_debug: define pr_fmt() for consistent logging
Use pr_fmt with both module name and __func__
Also drop few bare printk leftovers
The log format should stay pretty much intact
Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
Acked-by: Douglas Gilbert <dgilbert@xxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 008549f6e8a1dc4aeea4a8d64184909786b27713
Author: Calvin Owens <calvinowens@xxxxxx>
Date: Thu Aug 13 18:48:10 2015 -0700
mpt2sas: Refcount fw_events and fix unsafe list usage
The fw_event_work struct is concurrently referenced at shutdown, so
add a refcount to protect it, and refactor the code to use it.
Additionally, refactor _scsih_fw_event_cleanup_queue() such that it
no longer iterates over the list without holding the lock, since
_firmware_event_work() concurrently deletes items from the list.
Signed-off-by: Calvin Owens <calvinowens@xxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
Tested-by: Chaitra Basappa <chaitra.basappa@xxxxxxxxxxxxx>
Acked-by: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit d224fe0d609734888af63656ddaf3a8352f0a7b5
Author: Calvin Owens <calvinowens@xxxxxx>
Date: Thu Aug 13 18:48:09 2015 -0700
mpt2sas: Refcount sas_device objects and fix unsafe list usage
These objects can be referenced concurrently throughout the driver, we
need a way to make sure threads can't delete them out from under each
other. This patch adds the refcount, and refactors the code to use it.
Additionally, we cannot iterate over the sas_device_list without
holding the lock, or we risk corrupting random memory if items are
added or deleted as we iterate. This patch refactors _scsih_probe_sas()
to use the sas_device_list in a safe way.
Signed-off-by: Calvin Owens <calvinowens@xxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
Tested-by: Chaitra Basappa <chaitra.basappa@xxxxxxxxxxxxx>
Acked-by: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 8901c18b6cafa51f7985f1031968bbfe9dc47735
Author: Daniel Drake <drake@xxxxxxxxxxxx>
Date: Wed Sep 2 16:10:34 2015 -0600
asus-nb-wmi: Add wapf=4 quirk for X456UA/X456UF
These laptops boot with wifi as hard-blocked, with no obvious way to
enable it. Using a quirk to set wapf=4 solves the problem.
Signed-off-by: Daniel Drake <drake@xxxxxxxxxxxx>
Acked-by: Corentin Chary <corentin.chary@xxxxxxxxx>
Signed-off-by: Darren Hart <dvhart@xxxxxxxxxxxxxxx>
commit 2cbd78244fb26a06f2b8fb006b32f133451df413
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Thu Sep 3 22:07:39 2015 +0800
KVM: trace kvm_halt_poll_ns grow/shrink
Tracepoint for dynamic halt_pool_ns, fired on every potential change.
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit aca6ff29c4063a8d467cdee241e6b3bf7dc4a171
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Thu Sep 3 22:07:38 2015 +0800
KVM: dynamic halt-polling
There is a downside of always-poll since poll is still happened for idle
vCPUs which can waste cpu usage. This patchset add the ability to adjust
halt_poll_ns dynamically, to grow halt_poll_ns when shot halt is detected,
and to shrink halt_poll_ns when long halt is detected.
There are two new kernel parameters for changing the halt_poll_ns:
halt_poll_ns_grow and halt_poll_ns_shrink.
no-poll always-poll dynamic-poll
-----------------------------------------------------------------------
Idle (nohz) vCPU %c0 0.15% 0.3% 0.2%
Idle (250HZ) vCPU %c0 1.1% 4.6%~14% 1.2%
TCP_RR latency 34us 27us 26.7us
"Idle (X) vCPU %c0" is the percent of time the physical cpu spent in
c0 over 60 seconds (each vCPU is pinned to a pCPU). (nohz) means the
guest was tickless. (250HZ) means the guest was ticking at 250HZ.
The big win is with ticking operating systems. Running the linux guest
with nohz=off (and HZ=250), we save 3.4%~12.8% CPUs/second and get close
to no-polling overhead levels by using the dynamic-poll. The savings
should be even higher for higher frequency ticks.
Suggested-by: David Matlack <dmatlack@xxxxxxxxxx>
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
[Simplify the patch. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 19020f8ab83de9dc5a9c8af1f321a526f38bbc40
Author: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Date: Thu Sep 3 22:07:37 2015 +0800
KVM: make halt_poll_ns per-vCPU
Change halt_poll_ns into per-VCPU variable, seeded from module parameter,
to allow greater flexibility.
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit e8dd2d2d641cb2724ee10e76c0ad02e04289c017
Author: Valdis Kletnieks <Valdis.Kletnieks@xxxxxx>
Date: Sat Aug 29 17:49:16 2015 -0400
Silence compiler warning in arch/x86/kvm/emulate.c
Compiler warning:
CC [M] arch/x86/kvm/emulate.o
arch/x86/kvm/emulate.c: In function "__do_insn_fetch_bytes":
arch/x86/kvm/emulate.c:814:9: warning: "linear" may be used uninitialized
in this function [-Wmaybe-uninitialized]
GCC is smart enough to realize that the inlined __linearize may return
before
setting the value of linear, but not smart enough to realize the same
X86EMU_CONTINUE blocks actual use of the value. However, the value of
'linear' can only be set to one value, so hoisting the one line of code
upwards makes GCC happy with the code.
Reported-by: Aruna Hewapathirane <aruna.hewapathirane@xxxxxxxxx>
Tested-by: Aruna Hewapathirane <aruna.hewapathirane@xxxxxxxxx>
Signed-off-by: Valdis Kletnieks <valdis.kletnieks@xxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit efbb288afc2f3079fa5e9308f4d9d06a390babdc
Author: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Date: Sun Sep 6 19:35:41 2015 +0600
kvm: compile process_smi_save_seg_64() only for x86_64
The process_smi_save_seg_64() function called only in the
process_smi_save_state_64() if the CONFIG_X86_64 is set. This
patch adds #ifdef CONFIG_X86_64 around process_smi_save_seg_64()
to prevent following warning message:
arch/x86/kvm/x86.c:5946:13: warning:
ââ?¬Ë?process_smi_save_seg_64ââ?¬â?¢ defined but not used [-Wunused-function]
static void process_smi_save_seg_64(struct kvm_vcpu *vcpu, char *buf,
int n)
^
Signed-off-by: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 29ecd66019047768080e8eeab4cd6582b28383a2
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Sun Sep 6 16:24:50 2015 +0200
KVM: x86: avoid uninitialized variable warning
This does not show up on all compiler versions, so it sneaked into the
first 4.3 pull request. The fix is to mimic the logic of the "print
sptes" loop in the "fill array" loop. Then leaf and root can be
both initialized unconditionally.
Note that "leaf" now points to the first unused element of the array,
not the last filled element.
Reported-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 8f384c0177a03640312b9cb3638c998b32243b63
Author: Sowmini Varadhan <sowmini.varadhan@xxxxxxxxxx>
Date: Thu Sep 3 16:24:52 2015 -0400
RDS: rds_conn_lookup() should factor in the struct net for a match
Only return a conn if the rds_conn_net(conn) matches the struct
net passed to rds_conn_lookup().
Fixes: 467fa15356ac ("RDS-TCP: Support multiple RDS-TCP listen endpoints,
one per netns.")
Signed-off-by: Sowmini Varadhan <sowmini.varadhan@xxxxxxxxxx>
Acked-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 42ea4457aea7aaeddf0c0b06724f297608f5e9d2
Author: Maciej S. Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 21:38:30 2015 +0200
net: fec: normalize return value of pm_runtime_get_sync() in MDIO write
If fec MDIO write method succeeds its return value comes from
call to pm_runtime_get_sync().
But pm_runtime_get_sync() can also return 1.
In case of Micrel KSZ9031 PHY this value will then
be returned along the call chain of phy_write() ->
ksz9031_extended_write() -> ksz9031_center_flp_timing() ->
ksz9031_config_init() -> phy_init_hw() -> phy_attach_direct() ->
phy_connect_direct().
Then phy_connect() will cast it into a pointer using ERR_PTR(),
which then fec_enet_mii_probe() will try to dereference
resulting in an oops.
Fix it by normalizing return value of pm_runtime_get_sync()
to be zero if positive in MDIO write method.
Fixes: 8fff755e9f8d ("net: fec: Ensure clocks are enabled while using
mdio bus")
Signed-off-by: Maciej Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Acked-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0890cf6cb6ab1af650025670b1a839671a9a3fcb
Author: Jiri Pirko <jiri@xxxxxxxxxxxx>
Date: Thu Sep 3 14:04:17 2015 +0200
switchdev: fix return value of switchdev_port_fdb_dump in case of error
switchdev_port_fdb_dump is used as .ndo_fdb_dump. Its return value is
idx, so we cannot return errval.
Fixes: 45d4122ca7cd ("switchdev: add support for fdb add/del/dump via
switchdev_port_obj ops.")
Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxxxx>
Acked-by: Sridhar Samudrala <sridhar.samudrala@xxxxxxxxx>
Acked-by: Scott Feldman<sfeldma@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b65888796b72b677928527b17eeb8e935b767146
Author: Sathya Perla <sathya.perla@xxxxxxxxxxxxx>
Date: Thu Sep 3 07:41:53 2015 -0400
be2net: Revert "make the RX_FILTER command asynchronous" commit
The be_cmd_rx_filter() routine sends a non-embedded cmd to the FW and used
a pre-allocated dma memory to hold the cmd payload. This worked fine when
this cmd was synchronous. This cmd was changed to asynchronous mode by the
commit 8af65c2f4("make the RX_FILTER command asynchronous"). So now when
there are two quick invocations of this cmd, the 2nd request may end up
overwriting the first request, causing FW cmd corruption.
This patch reverts the offending commit and hence fixes the regression.
Fixes: 8af65c2f4("be2net: make the RX_FILTER command asynchronous")
Signed-off-by: Sathya Perla <sathya.perla@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 53cfd053e4d82b46dddc5d3522700263016e3156
Merge: bd516bd 9cf94ea
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sat Sep 5 17:36:30 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
Conflicts:
include/net/netfilter/nf_conntrack.h
The conflict was an overlap between changing the type of the zone
argument to nf_ct_tmpl_alloc() whilst exporting nf_ct_tmpl_free.
Pablo Neira Ayuso says:
====================
Netfilter fixes for net
The following patchset contains Netfilter fixes for net, they are:
1) Oneliner to restore maps in nf_tables since we support addressing
registers
at 32 bits level.
2) Restore previous default behaviour in bridge netfilter when
CONFIG_IPV6=n,
oneliner from Bernhard Thaler.
3) Out of bound access in ipset hash:net* set types, reported by Dave
Jones'
KASan utility, patch from Jozsef Kadlecsik.
4) Fix ipset compilation with gcc 4.4.7 related to C99 initialization of
unnamed unions, patch from Elad Raz.
5) Add a workaround to address inconsistent endianess in the res_id field
of
nfnetlink batch messages, reported by Florian Westphal.
6) Fix error paths of CT/synproxy since the conntrack template was moved
to use
kmalloc, patch from Daniel Borkmann.
All of them look good to me to reach 4.2, I can route this to -stable
myself
too, just let me know what you prefer.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7d9071a095023cd1db8fa18fa0d648dc1a5210e0
Merge: bd77966 397d425
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 5 20:34:28 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs updates from Al Viro:
"In this one:
- d_move fixes (Eric Biederman)
- UFS fixes (me; locking is mostly sane now, a bunch of bugs in error
handling ought to be fixed)
- switch of sb_writers to percpu rwsem (Oleg Nesterov)
- superblock scalability (Josef Bacik and Dave Chinner)
- swapon(2) race fix (Hugh Dickins)"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
(65 commits)
vfs: Test for and handle paths that are unreachable from their mnt_root
dcache: Reduce the scope of i_lock in d_splice_alias
dcache: Handle escaped paths in prepend_path
mm: fix potential data race in SyS_swapon
inode: don't softlockup when evicting inodes
inode: rename i_wb_list to i_io_list
sync: serialise per-superblock sync operations
inode: convert inode_sb_list_lock to per-sb
inode: add hlist_fake to avoid the inode hash lock in evict
writeback: plug writeback at a high level
change sb_writers to use percpu_rw_semaphore
shift percpu_counter_destroy() into destroy_super_work()
percpu-rwsem: kill CONFIG_PERCPU_RWSEM
percpu-rwsem: introduce percpu_rwsem_release() and
percpu_rwsem_acquire()
percpu-rwsem: introduce percpu_down_read_trylock()
document rwsem_release() in sb_wait_write()
fix the broken lockdep logic in __sb_start_write()
introduce __sb_writers_{acquired,release}() helpers
ufs_inode_get{frag,block}(): get rid of 'phys' argument
ufs_getfrag_block(): tidy up a bit
...
commit bd779669945ed9982890da789ad32e3bd0d41f14
Merge: 9cfcc65 b5ac1fb2
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 5 20:33:10 2015 -0700
Merge tag 'for-linus-4.3-merge-window-part-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs
Pull 9p updates from Eric Van Hensbergen:
"Just a few cleanups for 4.3 merge window for the 9p file system. I've
gotten several more over the past week, but this group has been in
for-next for at least a couple of weeks so I figured I'd push them
first while I test the rest.
Most of the ones not in this set are bug-fixes anyways so I could hold
them for rc1"
* tag 'for-linus-4.3-merge-window-part-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
9p: fix return code of read() when count is 0
9p: remove unused option Opt_trans
commit 9cfcc658da9693f65e7224e8329e40ada2f3c699
Merge: e3a98ac 50ef28a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 5 18:21:14 2015 -0700
Merge tag 'media/v4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab:
- new DVB frontend drivers: ascot2e, cxd2841er, horus3a, lnbh25
- new HDMI capture driver: tc358743
- new driver for NetUP DVB new boards (netup_unidvb)
- IR support for DVBSky cards (smipcie-ir)
- Coda driver has gain macroblock tiling support
- Renesas R-Car gains JPEG codec driver
- new DVB platform driver for STi boards: c8sectpfe
- added documentation for the media core kABI to device-drivers DocBook
- lots of driver fixups, cleanups and improvements
* tag 'media/v4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (297 commits)
[media] c8sectpfe: Remove select on undefined LIBELF_32
[media] i2c: fix platform_no_drv_owner.cocci warnings
[media] cx231xx: Use wake_up_interruptible() instead of
wake_up_interruptible_nr()
[media] tc358743: only queue subdev notifications if devnode is set
[media] tc358743: add missing Kconfig dependency/select
[media] c8sectpfe: Use %pad to print 'dma_addr_t'
[media] DocBook media: Fix typo "the the" in xml files
[media] tc358743: make reset gpio optional
[media] tc358743: set direction of reset gpio using devm_gpiod_get
[media] dvbdev: document most of the functions/data structs
[media] dvb_frontend.h: document the struct dvb_frontend
[media] dvb-frontend.h: document struct dtv_frontend_properties
[media] dvb-frontend.h: document struct dvb_frontend_ops
[media] dvb: Use DVBFE_ALGO_HW where applicable
[media] dvb_frontend.h: document struct analog_demod_ops
[media] dvb_frontend.h: Document struct dvb_tuner_ops
[media] Docbook: Document struct analog_parameters
[media] dvb_frontend.h: get rid of dvbfe_modcod
[media] add documentation for struct dvb_tuner_info
[media] dvb_frontend: document dvb_frontend_tune_settings
...
commit e3a98ac47698bf1c1e4e6fae72afc9866953fce5
Merge: 2a013e3 86e488a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 5 18:11:04 2015 -0700
Merge branch 'mailbox-for-next' of
git://git.linaro.org/landing-teams/working/fujitsu/integration
Pull mailbox updates from Jassi Brar:
"Mainly we move from jiffy based timer to HRTIMER for finer control
over polling. Then a controller reduces its polling period from 10 to
1ms"
* 'mailbox-for-next' of
git://git.linaro.org/landing-teams/working/fujitsu/integration:
mailbox: arm_mhu: reduce txpoll_period from 10ms to 1 ms
mailbox: switch to hrtimer for tx_complete polling
mailbox: Drop owner assignment from platform_driver
commit 2a013e37ce691a7c072df27b35e9790fc8f5a82f
Merge: 1744771 e89c6fd
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 5 17:52:22 2015 -0700
Merge tag 'md/4.3' of git://neil.brown.name/md
Pull md updates from Neil Brown:
- an assortment of little fixes, several for minor races only likely to
be hit during testing
- further cluster-md-raid1 development, not ready for real use yet.
- new RAID6 syndrome code for ARM NEON
- fix a race where a write can return before failure of one device is
properly recorded in metadata, so an immediate crash might result in
that write being lost.
* tag 'md/4.3' of git://neil.brown.name/md: (33 commits)
md/raid5: ensure device failure recorded before write request returns.
md/raid5: use bio_list for the list of bios to return.
md/raid10: ensure device failure recorded before write request returns.
md/raid1: ensure device failure recorded before write request returns.
md-cluster: remove inappropriate try_module_get from join()
md: extend spinlock protection in register_md_cluster_operations
md-cluster: Read the disk bitmap sb and check if it needs recovery
md-cluster: only call complete(&cinfo->completion) when node join
cluster
md-cluster: add missed lockres_free
md-cluster: remove the unused sb_lock
md-cluster: init suspend_list and suspend_lock early in join
md-cluster: add the error check if failed to get dlm lock
md-cluster: init completion within lockres_init
md-cluster: fix deadlock issue on message lock
md-cluster: transfer the resync ownership to another node
md-cluster: split recover_slot for future code reuse
md-cluster: use %pU to print UUIDs
md: setup safemode_timer before it's being used
md/raid5: handle possible race as reshape completes.
md: sync sync_completed has correct value as recovery finishes.
...
commit bd516bd1feeb3890502178a74228ec05271f2b6d
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Thu Sep 3 11:30:30 2015 +0530
net: wan: sbni: fix device usage count
dev_get_by_name() will increment the usage count if the matching device
is found. But we were not decrementing the count if we have got the
device and the device is non-active.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 25b4a44c19c83d98e8c0807a7ede07c1f28eab8b
Author: Richard Laing <richard.laing@xxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 13:52:31 2015 +1200
net/ipv6: Correct PIM6 mrt_lock handling
In the IPv6 multicast routing code the mrt_lock was not being released
correctly in the MFC iterator, as a result adding or deleting a MIF would
cause a hang because the mrt_lock could not be acquired.
This fix is a copy of the code for the IPv4 case and ensures that the lock
is released correctly.
Signed-off-by: Richard Laing <richard.laing@xxxxxxxxxxxxxxxxxxx>
Acked-by: Cong Wang <cwang@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 17447717a3266965e257d3eae79d89539ce3ec0a
Merge: 2236597 a457974
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 5 17:26:24 2015 -0700
Merge tag 'nfsd-4.3' of git://linux-nfs.org/~bfields/linux
Pull nfsd updates from Bruce Fields:
"Nothing major, but:
- Add Jeff Layton as an nfsd co-maintainer: no change to existing
practice, just an acknowledgement of the status quo.
- Two patches ("nfsd: ensure that...") for a race overlooked by the
state locking rewrite, causing a crash noticed by multiple users.
- Lots of smaller bugfixes all over from Kinglong Mee.
- From Jeff, some cleanup of server rpc code in preparation for
possible shift of nfsd threads to workqueues"
* tag 'nfsd-4.3' of git://linux-nfs.org/~bfields/linux: (52 commits)
nfsd: deal with DELEGRETURN racing with CB_RECALL
nfsd: return CLID_INUSE for unexpected SETCLIENTID_CONFIRM case
nfsd: ensure that delegation stateid hash references are only put once
nfsd: ensure that the ol stateid hash reference is only put once
net: sunrpc: fix tracepoint Warning: unknown op '->'
nfsd: allow more than one laundry job to run at a time
nfsd: don't WARN/backtrace for invalid container deployment.
fs: fix fs/locks.c kernel-doc warning
nfsd: Add Jeff Layton as co-maintainer
NFSD: Return word2 bitmask if setting security label in OPEN/CREATE
NFSD: Set the attributes used to store the verifier for EXCLUSIVE4_1
nfsd: SUPPATTR_EXCLCREAT must be encoded before SECURITY_LABEL.
nfsd: Fix an FS_LAYOUT_TYPES/LAYOUT_TYPES encode bug
NFSD: Store parent's stat in a separate value
nfsd: Fix two typos in comments
lockd: NLM grace period shouldn't block NFSv4 opens
nfsd: include linux/nfs4.h in export.h
sunrpc: Switch to using hash list instead single list
sunrpc/nfsd: Remove redundant code by exports seq_operations functions
sunrpc: Store cache_detail in seq_file's private directly
...
commit a394d635193b641f2c86ead5ada5b115d57c51f8
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Sun Sep 6 01:46:54 2015 +0300
spi: Fix documentation of spi_alloc_master()
Actually, spi_master_put() after spi_alloc_master() must _not_ be followed
by kfree(). The memory is already freed with the call to spi_master_put()
through spi_master_class, which registers a release function. Calling both
spi_master_put() and kfree() results in often nasty (and delayed) crashes
elsewhere in the kernel, often in the networking stack.
This reverts commit eb4af0f5349235df2e4a5057a72fc8962d00308a.
Link to patch and concerns: https://lkml.org/lkml/2012/9/3/269
or
http://lkml.iu.edu/hypermail/linux/kernel/1209.0/00790.html
Alexey Klimov: This revert becomes valid after
94c69f765f1b4a658d96905ec59928e3e3e07e6a when spi-imx.c
has been fixed and there is no need to call kfree() so comment
for spi_alloc_master() should be fixed.
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Alexey Klimov <alexey.klimov@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 22365979ab15f8500254cb90037b0b4c17554739
Merge: 6c0f568 3a9508b
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 5 15:14:43 2015 -0700
Merge branch 'for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs
Pull btrfs updates from Chris Mason:
"This has Jeff Mahoney's long standing trim patch that fixes corners
where trims were missing. Omar has some raid5/6 fixes, especially for
using scrub and device replace when devices are missing.
Zhao Lie continues cleaning and fixing things, this series fixes some
really hard to hit corners in xfstests. I had to pull it last merge
window due to some deadlocks, but those are now resolved.
I added support for Tejun's new blkio controllers. It seems to work
well for single devices, we'll expand to multi-device as well"
* 'for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (47 commits)
btrfs: fix compile when block cgroups are not enabled
Btrfs: fix file read corruption after extent cloning and fsync
Btrfs: check if previous transaction aborted to avoid fs corruption
btrfs: use __GFP_NOFAIL in alloc_btrfs_bio
btrfs: Prevent from early transaction abort
btrfs: Remove unused arguments in tree-log.c
btrfs: Remove useless condition in start_log_trans()
Btrfs: add support for blkio controllers
Btrfs: remove unused mutex from struct 'btrfs_fs_info'
Btrfs: fix parity scrub of RAID 5/6 with missing device
Btrfs: fix device replace of a missing RAID 5/6 device
Btrfs: add RAID 5/6 BTRFS_RBIO_REBUILD_MISSING operation
Btrfs: count devices correctly in readahead during RAID 5/6 replace
Btrfs: remove misleading handling of missing device scrub
btrfs: fix clone / extent-same deadlocks
Btrfs: fix defrag to merge tail file extent
Btrfs: fix warning in backref walking
btrfs: Add WARN_ON() for double lock in btrfs_tree_lock()
btrfs: Remove root argument in extent_data_ref_count()
btrfs: Fix wrong comment of btrfs_alloc_tree_block()
...
commit 6c0f568e84a3cfc775682311d65205462c3f3bc1
Merge: c821990 559ec2f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Sep 5 14:27:38 2015 -0700
Merge branch 'akpm' (patches from Andrew)
Merge patch-bomb from Andrew Morton:
- a few misc things
- Andy's "ambient capabilities"
- fs/nofity updates
- the ocfs2 queue
- kernel/watchdog.c updates and feature work.
- some of MM. Includes Andrea's userfaultfd feature.
[ Hadn't noticed that userfaultfd was 'default y' when applying the
patches, so that got fixed in this merge instead. We do _not_ mark
new features that nobody uses yet 'default y' - Linus ]
* emailed patches from Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>: (118
commits)
mm/hugetlb.c: make vma_has_reserves() return bool
mm/madvise.c: make madvise_behaviour_valid() return bool
mm/memory.c: make tlb_next_batch() return bool
mm/dmapool.c: change is_page_busy() return from int to bool
mm: remove struct node_active_region
mremap: simplify the "overlap" check in mremap_to()
mremap: don't do uneccesary checks if new_len == old_len
mremap: don't do mm_populate(new_addr) on failure
mm: move ->mremap() from file_operations to vm_operations_struct
mremap: don't leak new_vma if f_op->mremap() fails
mm/hugetlb.c: make vma_shareable() return bool
mm: make GUP handle pfn mapping unless FOLL_GET is requested
mm: fix status code which move_pages() returns for zero page
mm: memcontrol: bring back the VM_BUG_ON() in mem_cgroup_swapout()
genalloc: add support of multiple gen_pools per device
genalloc: add name arg to gen_pool_get() and devm_gen_pool_create()
mm/memblock: WARN_ON when nid differs from overlap region
Documentation/features/vm: add feature description and arch support
status for batched TLB flush after unmap
mm: defer flush of writable TLB entries
mm: send one IPI per CPU to TLB flush all entries after unmapping pages
...
commit c82199061009d1561e31e17fca5e47a87cb7ff4c
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Fri Aug 28 19:42:30 2015 -0700
task_work: remove fifo ordering guarantee
In commit f341861fb0b ("task_work: add a scheduling point in
task_work_run()") I fixed a latency problem adding a cond_resched()
call.
Later, commit ac3d0da8f329 added yet another loop to reverse a list,
bringing back the latency spike :
I've seen in some cases this loop taking 275 ms, if for example a
process with 2,000,000 files is killed.
We could add yet another cond_resched() in the reverse loop, or we
can simply remove the reversal, as I do not think anything
would depend on order of task_work_add() submitted works.
Fixes: ac3d0da8f329 ("task_work: Make task_work_add() lockless")
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Reported-by: Maciej Żenczykowski <maze@xxxxxxxxxx>
Acked-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ade9c1a47c811a7ae1c874882ad9178af1ed1098
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Wed Feb 19 13:38:13 2014 -0800
Input: imx_keypad - remove obsolete comment
Since commit 81e8f2bc (Input: imx_keypad - add pm suspend and resume
support) the imx_keypad driver supports power management, so let's remove
the obsolete comment.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 9a436d524d3533cd15ed5a189d2237ff1e4e5343
Author: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Date: Sat Sep 5 11:31:21 2015 -0700
Input: touchscreen - add imx6ul_tsc driver support
Freescale i.MX6UL contains a internal touchscreen controller,
this patch add a driver to support this controller.
Signed-off-by: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 48ead50c1dd8e5cdb7ead067558a834c1e895e6e
Author: Sanchayan Maity <maitysanchayan@xxxxxxxxx>
Date: Sat Sep 5 10:32:09 2015 -0700
Input: Add touchscreen support for Colibri VF50
The Colibri Vybrid VF50 module supports 4-wire touchscreens using
FETs and ADC inputs. This driver uses the IIO consumer interface
and relies on the vf610_adc driver based on the IIO framework.
Signed-off-by: Sanchayan Maity <maitysanchayan@xxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit f5d75341fac6033f6afac900da110cc78e06d40d
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Sat Sep 5 10:29:09 2015 -0700
Input: i8042 - lower log level for "no controller" message
Nowadays the machines without i8042 controller is popular, and no need
to print "No controller found" message in the error log level, which
annoys at booting in quiet mode. Let's lower it info level.
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 5f1b2f77646fc0ef2f36fc554f5722a1381d0892
Author: Mitja Spes <mitja@xxxxxxxxx>
Date: Wed Sep 2 10:02:29 2015 +0200
rtc: abx80x: fix RTC write bit
Fix RTC write bit as per application manual
Cc: stable@xxxxxxxxxxxxxxx # 4.1+
Signed-off-by: Mitja Spes <mitja@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 8a67e93153f03a8d205727c0aeacb5524a414f77
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Fri Sep 4 08:58:05 2015 -0300
rtc: ab8500: Add a sentinel to ab85xx_rtc_ids[]
Add a sentinel to ab85xx_rtc_ids[] in order to fix the following error:
drivers/rtc/rtc-ab8500: struct platform_device_id is 24 bytes. The last
of 2 is:
0x61 0x62 0x38 0x35 0x34 0x30 0x2d 0x72 0x74 0x63 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x8c
FATAL: drivers/rtc/rtc-ab8500: struct platform_device_id is not
terminated with a NULL entry!
Reported-by: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Reported-by: Olof's autobuilder <build@xxxxxxxxx>
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit d78908d9717b627a261b1bfe6feb67181e12752e
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Mon Aug 10 09:47:45 2015 -0300
rtc: ds1374: Remove unused variable
Remove unused variable 'res' and fix the following build warning:
drivers/rtc/rtc-ds1374.c:667:6: warning: unused variable 'res'
[-Wunused-variable]
Reported-by: Olof's autobuilder <build@xxxxxxxxx>
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 73798d5c41fdb434ccbeeec76afc8106869a98c3
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Thu Aug 27 13:52:02 2015 +0200
rtc: Fix module autoload for OF platform drivers
These platform drivers have a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Acked-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 63074cc3d4b8367aa6d9dc5520b88ca6557d32fa
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Thu Aug 27 12:34:32 2015 +0200
rtc: Fix module autoload for rtc-{ab8500,max8997,s5m} drivers
These platform drivers have a platform device ID table but the module
alias information is not created so module autoloading will not work.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 399cf0f63f6f24d7a837fbfbc801010cb6e77579
Author: Keerthy <j-keerthy@xxxxxx>
Date: Tue Aug 18 15:11:16 2015 +0530
rtc: omap: Add external clock enabling support
Configure the clock source to external clock if available.
External clock is preferred as it can be ticking during suspend.
Signed-off-by: Keerthy <j-keerthy@xxxxxx>
Acked-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 532409aa1ba8b69d5a3dea159d4b1bd9adbd7a46
Author: Keerthy <j-keerthy@xxxxxx>
Date: Tue Aug 18 15:11:15 2015 +0530
rtc: omap: Add internal clock enabling support
The rtc can be clocked by an internal 32K clock. Adding the support
to enable the same.
Signed-off-by: Keerthy <j-keerthy@xxxxxx>
Acked-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit fff51e771eafc3b4fa6daf1372fd4a4023bb402b
Author: Keerthy <j-keerthy@xxxxxx>
Date: Tue Aug 18 15:11:14 2015 +0530
ARM: dts: AM437x: Add the internal and external clock nodes for rtc
rtc can either be supplied from internal 32k clock or external crystal
generated 32k clock. Internal clock is SOC specific and the external
clock is board dependent. Adding the corresponding nodes.
Signed-off-by: Keerthy <j-keerthy@xxxxxx>
Acked-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit ff02c0444b83201ff76cc49deccac8cf2bffc7bc
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Fri Aug 21 18:43:41 2015 +0900
rtc: s5m: fix to update ctrl register
According to datasheet, the S2MPS13X and S2MPS14X should update write
buffer via setting WUDR bit to high after ctrl register is written.
If not, ALARM interrupt of rtc-s5m doesn't happen first time when i use
tools/testing/selftests/timers/rtctest.c test program and hour format is
used to 12 hour mode in Odroid-XU3 board.
One more issue is the RTC doesn't keep time on Odroid-XU3 board when i
turn on board after power off even if RTC battery is connected. It can
be solved as setting WUDR & RUDR bits to high at the same time after
RTC_CTRL register is written. It's same with condition of only writing
ALARM registers, so this is for only S2MPS14 and we should set WUDR &
A_UDR bits to high on S2MPS13.
I can't find any reasonable description about this like fix from
datasheet, but can find similar codes from rtc driver source of
hardkernel kernel and vendor kernel.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # v3.16
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Tested-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 11143c19eb57a8aee4335e57b21f2897b9fff294
Author: Suneel Garapati <suneel.garapati@xxxxxxxxxx>
Date: Wed Aug 19 15:23:22 2015 +0530
rtc: add xilinx zynqmp rtc driver
Add support for RTC controller found on Xilinx Zynq Ultrascale+ MPSoC
platform.
Signed-off-by: Suneel Garapati <suneel.garapati@xxxxxxxxxx>
Acked-by: Moritz Fischer <moritz.fischer@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 12ece40d9196e01961192fc25cfdaf22392520de
Author: Suneel Garapati <suneel.garapati@xxxxxxxxxx>
Date: Wed Aug 19 15:23:21 2015 +0530
devicetree: bindings: rtc: add bindings for xilinx zynqmp rtc
adds file for description on device node bindings for RTC
found on Xilinx Zynq Ultrascale+ MPSoC.
Signed-off-by: Suneel Garapati <suneel.garapati@xxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit a038c3aa9f3afe9ab97a75827789859fb4af5767
Author: Bibek Basu <bbasu@xxxxxxxxxx>
Date: Fri Aug 14 20:44:02 2015 +0200
rtc: as3722: correct month value
The RTC month value is 1-indexed, but the kernel assumes it is 0-indexed.
This may result in the RTC not rolling over correctly.
Signed-off-by: Bibek Basu <bbasu@xxxxxxxxxx>
Signed-off-by: Felix Janda <felix.janda@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit e66ce07a9692f492580820640b446971dff97a74
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Mon Jun 1 07:53:01 2015 -0500
ARM: config: Switch PXA27x platforms to use PXA RTC driver
With the SA1100 and PXA RTC drivers be mutually exclusive and no
longer sharing hardware, PXA27x/PXA3xx platforms must use the PXA RTC
driver as the SA1100 platform device is no longer registered.
This change should be almost transparent to userspace. Former users of
pxa-rtc should be aware that 2 RTCs will be available on their kernels,
rtc0 being sa1100-rtc and rtc1 being pxa-rtc. Any userspace relying on
the fact that rtc0 was pxa-rtc should be fixed.
As a consequence:
- the first reboot after the switch will have the wrong time,
- on dual boot platform where the other OS programs some logic into the
sa1100 rtc IP, a lack of fix in userspace, ie. a kernel changing
sa1100-rtc thinking it is pxa-rtc could have dire consequence, such
as wiping the other OS data partition.
(Thanks to Robert Jarmik for help on the above commit text.)
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Acked-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Cc: Daniel Mack <daniel@xxxxxxxxxx>
Cc: Haojian Zhuang <haojian.zhuang@xxxxxxxxx>
Cc: Sergey Lapin <slapin@xxxxxxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Mike Rapoport <mike@xxxxxxxxxxxxxx>
Cc: Philipp Zabel <philipp.zabel@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 7b758ef4440cd581e8207d762af635c644c85f81
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Tue Feb 3 14:54:01 2015 -0600
ARM: mmp: remove unused RTC register definitions
Now that register definitions have been moved to the driver, regs-rtc.h is
no longer used and can be removed.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Cc: Eric Miao <eric.y.miao@xxxxxxxxx>
Cc: Haojian Zhuang <haojian.zhuang@xxxxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit d6679c48c13ce896a428d392ffe8a62ad6a75b77
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Tue Feb 3 14:46:29 2015 -0600
ARM: sa1100: remove unused RTC register definitions
Now that register definitions have been moved to the driver, we can remove
them from machine specific code.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 90d0ae8e9583355725583e9d1ff0ebdc97936f39
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Tue Feb 3 14:44:51 2015 -0600
rtc: sa1100/pxa: convert to run-time register mapping
SA1100 and PXA differ only in register offsets which are currently
hardcoded in a machine specific header. Some arm64 platforms (PXA1928)
have this RTC block as well (and not the PXA270 variant).
Convert the driver to use ioremap and set the register offsets
dynamically.
Since we are touching all the register accesses, convert them all to
readl_relaxed/writel_relaxed.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Acked-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Cc: Alessandro Zummo <a.zummo@xxxxxxxxxxxx>
Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Cc: rtc-linux@xxxxxxxxxxxxxxxx
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 2c4fabec8790384b91473aa3d0d28d4407168ef9
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Mon Feb 2 17:50:32 2015 -0600
ARM: pxa: add memory resource to SA1100 RTC device
The drivers for the SA1100 and PXA RTCs are now mutually exclusive, so
add the memory resource for the sa1100-rtc device. Since the memory
resource is already present in the pxa_rtc_resources, that makes
sa1100_rtc_resources and pxa_rtc_resources equivalent, so use
pxa_rtc_resources for both devices and remove the duplicate
sa1100_rtc_resources.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Cc: Daniel Mack <daniel@xxxxxxxxxx>
Cc: Haojian Zhuang <haojian.zhuang@xxxxxxxxx>
Acked-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 3cdf4ad9633e3ca616617e76b46915c02cba426b
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Wed May 13 09:20:04 2015 -0500
rtc: pxa: convert to use shared sa1100 functions
Currently, the rtc-sa1100 and rtc-pxa drivers co-exist as rtc-pxa has a
superset of functionality. Having 2 drivers sharing the same memory
resource is not allowed by the driver model if resources are properly
declared. This problem was avoided by not adding memory resources to the
SA1100 RTC driver, but that prevents clean-up of the SA1100 driver.
This commit converts the PXA RTC to use the exported SA1100 RTC
functions. Now the sa1100-rtc and pxa-rtc devices are mutually
exclusive, so we must remove the sa1100-rtc from pxa27x and pxa3xx.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Cc: Daniel Mack <daniel@xxxxxxxxxx>
Cc: Haojian Zhuang <haojian.zhuang@xxxxxxxxx>
Cc: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Alessandro Zummo <a.zummo@xxxxxxxxxxxx>
Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: rtc-linux@xxxxxxxxxxxxxxxx
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 8c0961ba7c9356186a0606a391f08e2ecb491a57
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Tue May 12 16:23:23 2015 -0500
rtc: sa1100: prepare to share sa1100_rtc_ops
Factor out the RTC initialization from the platform device specific
parts in order to share the RTC device ops with other drivers.
Specifically, it will be shared with rtc-pxa driver.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Cc: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Alessandro Zummo <a.zummo@xxxxxxxxxxxx>
Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Cc: rtc-linux@xxxxxxxxxxxxxxxx
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit dc2280ebf45bfa4fbc4b1588a6642aa33454a9b8
Author: Wang Dongsheng <dongsheng.wang@xxxxxxxxxxxxx>
Date: Wed Aug 12 17:14:13 2015 +0800
rtc: ds3232: fix WARNING trace in resume function
If ds3232 work on some platform that is not implementing
irq_set_wake, ds3232 will get a WARNING trace in resume.
So fix ds3232->suspended state to false when irq_set_irq_wake
return error.
WARNING: CPU: 0 PID: 729 at kernel/irq/manage.c:604
irq_set_irq_wake+0x4b/0x8c()
Unbalanced IRQ 201 wake disable
Modules linked in:
CPU: 0 PID: 729 Comm: sh Not tainted 3.12.19-rt30+ #25
[<800107d9>] (unwind_backtrace+0x1/0x88) from [<8000e4ef>]
(show_stack+0xb/0xc)
[<8000e4ef>] (show_stack+0xb/0xc) from [<802b5fa9>] (dump_stack+0x4d/0x60)
[<802b5fa9>] (dump_stack+0x4d/0x60) from [<800186dd>]
(warn_slowpath_common+0x45/0x64)
[<800186dd>] (warn_slowpath_common+0x45/0x64) from [<80018717>]
(warn_slowpath_fmt+0x1b/0x24)
[<80018717>] (warn_slowpath_fmt+0x1b/0x24) from [<8003a8d3>]
(irq_set_irq_wake+0x4b/0x8c)
[<8003a8d3>] (irq_set_irq_wake+0x4b/0x8c) from [<80204fcb>]
(ds3232_resume+0x2d/0x36)
[<80204fcb>] (ds3232_resume+0x2d/0x36) from [<801954c7>]
(dpm_run_callback.isra.13+0xb/0x28)
[<801954c7>] (dpm_run_callback.isra.13+0xb/0x28) from [<80195b1b>]
(device_resume+0x7b/0xa2)
[<80195b1b>] (device_resume+0x7b/0xa2) from [<80195f0f>]
(dpm_resume+0xbb/0x19c)
[<80195f0f>] (dpm_resume+0xbb/0x19c) from [<801960d9>]
(dpm_resume_end+0x9/0x12)
[<801960d9>] (dpm_resume_end+0x9/0x12) from [<80037e1d>]
(suspend_devices_and_enter+0x17d/0x1d0)
[<80037e1d>] (suspend_devices_and_enter+0x17d/0x1d0) from [<80037ee1>]
(pm_suspend+0x71/0x128)
[<80037ee1>] (pm_suspend+0x71/0x128) from [<80037449>]
(state_store+0x6d/0x80)
[<80037449>] (state_store+0x6d/0x80) from [<800af4d5>]
(sysfs_write_file+0x9f/0xde)
[<800af4d5>] (sysfs_write_file+0x9f/0xde) from [<8007a437>]
(vfs_write+0x7b/0x104)
[<8007a437>] (vfs_write+0x7b/0x104) from [<8007a7f7>]
(SyS_write+0x27/0x48)
[<8007a7f7>] (SyS_write+0x27/0x48) from [<8000c121>]
(ret_fast_syscall+0x1/0x44)
Signed-off-by: Wang Dongsheng <dongsheng.wang@xxxxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 467e1436ba85f78b8c4610c4549eb255a8211c42
Author: Niranjan Sivakumar <ns253@xxxxxxxxxxx>
Date: Sat Sep 5 18:20:35 2015 +0200
ALSA: hda - Fix white noise on Dell M3800
The M3800 is very minor workstation variant of the XPS 15 which has
already been patched for this issue. I figured it's probably more
important for this version of the laptop to be patched than the
regular XPS as Dell sells is pre-configured with Ubuntu to be used as
a Linux workstation. I have tested the patch on my the hardware on
Linux 4.2.0.
Signed-off-by: Niranjan Sivakumar <ns253@xxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # v4.1+
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit a161574e200ae63a5042120e0d8c36830e81bde3
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Thu Aug 13 18:05:06 2015 +0200
ALSA: hda - Use ALC880_FIXUP_FUJITSU for FSC Amilo M1437
It turned out that the machine has a bass speaker, so take a correct
fixup entry.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102501
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit bb148bdeb0ab16fc0ae8009799471e4d7180073b
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Thu Aug 13 18:02:39 2015 +0200
ALSA: hda - Enable headphone jack detect on old Fujitsu laptops
According to the bug report, FSC Amilo laptops with ALC880 can detect
the headphone jack but currently the driver disables it. It's partly
intentionally, as non-working jack detect was reported in the past.
Let's enable now.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102501
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 27b15e31dbc5f4d7fc93e6acaa898cbfd1cf74ea
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Aug 11 20:28:20 2015 +0900
rtc: s3c: remove unnecessary NULL assignment
It's unnecessary the code that assigns info->rtc_clk to NULL in
s3c_rtc_remove.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 7f23a93661eb5caa373f75a145cec14331a8caaa
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Aug 11 20:28:19 2015 +0900
rtc: s3c: add missing clk control
It's missed to call clk_unprepare() about info->rtc_src_clk in
s3c_rtc_remove and to call clk_disable_unprepare about info->rtc_clk in
error routine of s3c_rtc_probe.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 1fb1c35f56bb6ab4a65920c648154b0f78f634a5
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Wed Aug 12 19:21:46 2015 +0900
rtc: s3c: fix disabled clocks for alarm
The clock enable/disable codes for alarm have been removed from
commit 24e1455493da ("drivers/rtc/rtc-s3c.c: delete duplicate clock
control") and the clocks are disabled even if alarm is set, so alarm
interrupt can't happen.
The s3c_rtc_setaie function can be called several times with 'enabled'
argument having same value, so it needs to check whether clocks are
enabled or not.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # v4.1
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 80e274e96e5bc4ddf9ee4b31ab6f4a2a9fa08040
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 16:33:40 2015 +0200
rtc: at91sam9: remove useless include
Definitions from linux/platform_data/atmel.h are not used, remove the
include.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 1955f213a68323f7348fc06461017c7675efe6c1
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 16:33:39 2015 +0200
rtc: at91sam9: include linux/of.h
This driver is using device tree but is not including of.h
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 0c6e718389305cbc4cd9b8e3fd4b4173bd1127e6
Author: Nadav Haklai <nadavh@xxxxxxxxxxx>
Date: Thu Aug 6 17:18:48 2015 +0200
rtc: armada38x: Align RTC set time procedure with the official errata
According to the Armada38x functional errata FE-3124064, writing to
the RTC TIME register may fail. As a workaround, after writing to RTC
TIME register, issue a dummy write of 0x0 twice to the RTC Status
register. This is the updated implementation of the Errata that
eliminates the need of the long 100ms delay during the RTC set time
procedure.
[gregory.clement@xxxxxxxxxxxxxxxxxx]: removed the mutex and use the
spinlock again
Signed-off-by: Nadav Haklai <nadavh@xxxxxxxxxxx>
Reviewed-by: Neta Zur Hershkovits <neta@xxxxxxxxxxx>
Signed-off-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit efbbb4fd6b6fe0d3d2cfb3c5bbcdf00f1995cb60
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 4 11:33:59 2015 +0200
rtc: rx8025: check time validity when necessary
Check time validity when reading time as this is when we need to know.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 5c66e1e0b79bd63dcdfbc03b80823522643a1f14
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 4 11:24:33 2015 +0200
rtc: rx8025: fix RX8025_BIT_CTRL2_CTFG initialization
RX8025_BIT_CTRL2_CTFG was set to 0 only when it was already 0.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 4b33d36b670e7166e8a082e050bfb241ba65271f
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 4 10:56:50 2015 +0200
rtc: rx8025: remove useless initialization
irq_freq is already initialized to 1 in rtc_device_register()
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 8c4a4467cda299491eff64640c891a0b2926cb76
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 4 10:48:20 2015 +0200
rtc: rx8025: reset validity when setting time
Wait for the user to set the time to reset the validity bits. Until then,
the time may be invalid.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit a27c7bf657cb4ab893328359b66a584251be6cac
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 4 10:46:22 2015 +0200
rtc: rx8025: fix rx8025_init_client()
rx8025_init_client is modifying ctrl[0] and writing it to RX8025_REG_CTRL2
but ctrl[0] is actually RX8025_REG_CTRL1.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 8a06513df55ef10baf80f55d13786eb29efa4fa6
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 4 00:45:37 2015 +0200
rtc: rx8025: continue without alarm when irq request fails
Instead of bailing out, disable alarms and continue when
devm_request_threaded_irq() fails. This allows to still provide some
functionality.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit fd9061fb497926c0e62bf1c7ff727801499fd2ea
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 4 00:40:25 2015 +0200
rtc: rx8025: cleanup accessors
Remove useless error messages, at that point, the user already knows
something went wrong but will not be able to do anything about it anyway.
It is also highly unlikely that some registers are readable/writable
but not some other ones.
Also, transform rx8025_read_reg to be more resemblant to
i2c_smbus_read_byte_data()
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 6f0a8cfebb898b88fb0d934d7a44a6d4c98d5285
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Sun Jul 26 10:13:31 2015 +0200
rtc: rx8025: don't reset the time
Stop setting the time to epoch when it is invalid. The proper way to
handle
that is to return an error when it is invalid instead of returning an
incorrect value.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 2e10e74df72ff0f8ea65eb1ee6e39ed8278a91bf
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Sat Jul 25 15:54:59 2015 +0200
rtc: rx8025: fix transfer mode
The datasheet specifies that transfer mode must be 0 for write and either
0x4 (simplified read) or 0 (standard read). 0x8 is not specified, use
standard mode.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 32672c55951b2633bb93ec6f12734cf17e9d3a14
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Sat Jul 25 12:07:37 2015 +0200
rtc: rx8025: only handle dates between 2000 and 2099
The hardware is only capable of handling dates between 2000 and 2099,
enforce that.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 2ddd18693cb93126077bd072884dffca423c1e27
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Sat Jul 25 11:50:22 2015 +0200
rtc: rx8025: use BIT()
Use BIT() instead of hand coding.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit dbcce7cf1eb95c704faa3fff1acc974010c8e5a4
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Fri Jul 24 16:12:10 2015 +0200
rtc: rx8025: remove useless probe error message
It is useless to print a message when probe fails as the user is already
aware that it failed.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit f0b63a1d5a4a4d9d60fe728ede0fa78ec5aab8be
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Fri Jul 24 16:07:30 2015 +0200
rtc: rx8025: switch to managed irq allocation
Use devm_request_threaded_irq() so it is not necessary to call free_irq()
explicitly.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit b6a57c955c362cb9d6ace991cdd77376849abb44
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Fri Jul 24 15:59:43 2015 +0200
rtc: rx8025: Convert to threaded IRQ
The driver currently emulates the concept of threaded IRQ using a
workqueue, switch to threaded IRQ instead.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 15d3bdc23eb54c50b2a5f143325fe83c3ab0dd27
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Fri Jul 24 15:50:23 2015 +0200
rtc: rx8025: remove useless headers and reorder them
Remove the useless includes and order the remaining ones alphabetically.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 824625d3926f0caf4753426d2b24a8fc08a406c8
Author: Vladimir Zapolskiy <vz@xxxxxxxxx>
Date: Mon Jul 27 00:48:36 2015 +0300
rtc: tx4939: clean up tx4939_rtc_nvram_read()/tx4939_rtc_nvram_write()
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <vz@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit ecc663c3d0dc181fd15e4d60753024d180fd7e8f
Author: Vladimir Zapolskiy <vz@xxxxxxxxx>
Date: Mon Jul 27 00:48:35 2015 +0300
rtc: stk17ta8: clean up stk17ta8_nvram_read()/stk17ta8_nvram_write()
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <vz@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit d1cf4bdee8e574c0d2b7ce9fa8d9cd89c0ac761a
Author: Vladimir Zapolskiy <vz@xxxxxxxxx>
Date: Mon Jul 27 00:48:34 2015 +0300
rtc: rp5c01: clean up rp5c01_nvram_read()/rp5c01_nvram_write()
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <vz@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 99be3e371b2ac03b936044139be10cf0c7b9cc58
Author: Vladimir Zapolskiy <vz@xxxxxxxxx>
Date: Wed Aug 5 21:13:02 2015 +0300
rtc: m48t59: clean up m48t59_nvram_read()/m48t59_nvram_write()
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Spinlock acquisition/release is moved out of the loop body to get
atomic states of NVRAM reading and writing operations.
Signed-off-by: Vladimir Zapolskiy <vz@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit c472d7ded2dfbe7da29531a9c9e6b951e5658605
Author: Vladimir Zapolskiy <vz@xxxxxxxxx>
Date: Mon Jul 27 00:48:32 2015 +0300
rtc: ds1742: clean up ds1742_nvram_read()/ds1742_nvram_write()
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <vz@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit a9118d77b3be366c4843446d671a52ccfddcc15c
Author: Vladimir Zapolskiy <vz@xxxxxxxxx>
Date: Mon Jul 27 00:48:31 2015 +0300
rtc: ds1553: clean up ds1553_nvram_read()/ds1553_nvram_write()
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <vz@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 8ccba14233000f48639aad4cab55ed7b61260db5
Author: Vladimir Zapolskiy <vz@xxxxxxxxx>
Date: Wed Aug 5 21:12:58 2015 +0300
rtc: ds1511: clean up ds1511_nvram_read()/ds1511_nvram_write()
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
The change enables burst mode of access to SRAM for any read()/write()
operations, it is worth to mention that this may influence on
userspace, for instance prior to the change
read(fd, buf, 1);
read(fd, buf + 1, 1);
and
read(fd, buf, 2);
sequences of syscalls over DS1511's sysfs "nvram" fd led to different
DS1511 state changes and/or buf content, if some userspace applications
are written specifically for DS1511 and exploit this strange
"feature", they may be impacted.
Also the change corrects NVRAM size accessible to userspace from 255
bytes to 256 bytes.
Signed-off-by: Vladimir Zapolskiy <vz@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit f4843b19d2c7b5effd25e2a65b487d02bf55e96f
Author: Vladimir Zapolskiy <vz@xxxxxxxxx>
Date: Mon Jul 27 00:48:29 2015 +0300
rtc: ds1343: clean up ds1343_nvram_read()/ds1343_nvram_write()
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <vz@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit ca7c14d3a1ab1932732c506e32ab5b189b9c0a16
Author: Vladimir Zapolskiy <vz@xxxxxxxxx>
Date: Mon Jul 27 00:48:28 2015 +0300
rtc: ds1307: clean up ds1307_nvram_read()/ds1307_nvram_write()
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <vz@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 273e03041e6d48024a57682cbf7b61510f74ec64
Author: Vladimir Zapolskiy <vz@xxxxxxxxx>
Date: Mon Jul 27 00:48:27 2015 +0300
rtc: ds1305: clean up ds1305_nvram_read()/ds1305_nvram_write()
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller size in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <vz@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit a3781639e148497d7381d8786aaefe9f8b7e3028
Author: Vladimir Zapolskiy <vz@xxxxxxxxx>
Date: Mon Jul 27 00:48:26 2015 +0300
rtc: cmos: clean up cmos_nvram_read()/cmos_nvram_write()
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Signed-off-by: Vladimir Zapolskiy <vz@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 3c217e51d8a272b9301058fe845d6c69cc0651cb
Author: Sylvain Chouleur <sylvain.chouleur@xxxxxxxxx>
Date: Mon Jun 8 11:45:19 2015 +0200
rtc: cmos: century support
If century field is supported by the RTC CMOS device, then we should use
it and then do not consider years greater that 169 as an error.
For information, the year field of the rtc_time structure contains the
value to add to 1970 to obtain the current year.
This was a hack to be able to support years for 1970 to 2069.
This patch remains compatible with this implementation.
Signed-off-by: Sylvain Chouleur <sylvain.chouleur@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 11f67a8bbf65872c3e9edc70242420a8c314a860
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Fri Jul 31 11:39:51 2015 +0200
rtc: at91rm9200: get and use slow clock
Commit dca1a4b5ff6e ("clk: at91: keep slow clk enabled to prevent system
hang") added a workaround for the slow clock as it is not properly handled
by its users.
Get and use the slow clock as it is necessary for the at91rm9200 rtc.
Acked-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 202cc98acf96de1c3897194e1ed5ae1c80c8b0f3
Author: kbuild test robot <fengguang.wu@xxxxxxxxx>
Date: Fri Jul 31 15:01:04 2015 +0530
rtc: gemini: fix ptr_ret.cocci warnings
drivers/rtc/rtc-gemini.c:151:1-3: WARNING: PTR_ERR_OR_ZERO can be used
Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR
Generated by: scripts/coccinelle/api/ptr_ret.cocci
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit e7cba884af366f49ab7b7f5157e690357addebba
Author: viresh kumar <viresh.kumar@xxxxxxxxxx>
Date: Fri Jul 31 16:23:43 2015 +0530
rtc: Drop (un)likely before IS_ERR(_OR_NULL)
IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there
is no need to do that again from its callers. Drop it.
gemini driver was using likely() for a failure case while the rtc driver
is getting registered. That looks wrong and it should really be
unlikely. But because we are killing all the unlikely() flags, lets kill
that too.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Acked-by: Hans Ulli Kroll <ulli.kroll@xxxxxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 74000eb14a173f427240b90363580c686a675ddf
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Wed Jul 29 02:01:33 2015 +0200
rtc: at91rm9200: sort headers alphabetically
Sort included headers alphabetically.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Acked-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Acked-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
commit 8918bd8a5f6c37963ba04ae79ad6488108894ab9
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Tue Jul 28 21:51:10 2015 +0200
rtc: at91sam9: get sclk rate after enabling it
See help for clk_get_rate(): "obtain the current clock rate (in Hz) for a
clock source. This is only valid once the clock source has been enabled."
It currently returns the correct value but that may not stay that way.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Acked-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Acked-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
commit 6932ff5395e3a2541fba696b38dc71393cf7ce57
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Tue Jul 28 21:49:24 2015 +0200
rtc: at91sam9: sort headers alphabetically
Sort included headers alphabetically.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Acked-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Acked-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
commit 73ab31ce1bbc64c590b2a2d58364942adfa11a3f
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Tue Jul 28 21:47:57 2015 +0200
rtc: at91sam9: remove useless check
rtc->sclk necessarily points to a valid clocks at this point. Else the
probe would have aborted.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Acked-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Acked-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
commit ffe60fcfda98a3e4f51bc1e02ff5412a7e1c9c79
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Tue Jul 28 21:46:15 2015 +0200
rtc: at91sam9: properly handle error case
In case of a probe error, it is possible to abort after issuing
clk_prepare_enable(). Ensure the clock is disabled and unprepared in that
case.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Acked-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Acked-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
commit 27675ef03c0535158b77af76591920fe041ebf14
Author: Leo Yan <leo.yan@xxxxxxxxxx>
Date: Wed Jul 29 14:13:40 2015 +0800
rtc: pl031: fix typo for author email
The email address missed character ">", so add it.
Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 1c4fc2955ad37afb0d75ed5a67bad94c1529b0cf
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Thu Jul 30 18:18:46 2015 +0200
rtc: Export OF module alias information in missing drivers
The I2C core always reports the MODALIAS uevent as "i2c:<client name"
regardless if the driver was matched using the I2C id_table or the
of_match_table. So technically there's no need for a driver to export
the OF table since currently it's not used.
In fact, the I2C device ID table is mandatory for I2C drivers since
a i2c_device_id is passed to the driver's probe function even if the
I2C core used the OF table to match the driver.
And since the I2C core uses different tables, OF-only drivers needs to
have duplicated data that has to be kept in sync and also the dev node
compatible manufacturer prefix is stripped when reporting the MODALIAS.
To avoid the above, the I2C core behavior may be changed in the future
to not require an I2C device table for OF-only drivers and report the
OF module alias. So, it's better to also export the OF table to prevent
breaking module autoloading if that happens.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 8109d44f7604cd5ab833ea09da98703f6eb16460
Author: Adrian Huang <adrianhuang0701@xxxxxxxxx>
Date: Mon Jul 6 12:19:13 2015 +0800
rtc: cmos: Revert "rtc-cmos: Add an alarm disable quirk"
Commit d5a1c7e3fc38 ("rtc-cmos: Add an alarm disable quirk") that
added a special quirk is not needed because [PATCH 1/2] of this
patchset makes the kernel more robust:
rtc-cmos: Cancel alarm timer if alarm time is equal to now+1 seconds
Signed-off-by: Adrian Huang <ahuang12@xxxxxxxxxx>
Tested-by: Egbert Eich <eich@xxxxxxx>
Tested-by: Diego Ercolani <diego.ercolani@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 88b8d33b1c6aadba553c998db91c4b36be0fac52
Author: Adrian Huang <adrianhuang0701@xxxxxxxxx>
Date: Mon Jul 6 12:19:12 2015 +0800
rtc: cmos: Cancel alarm timer if alarm time is equal to now+1 seconds
Steps to reproduce the problem:
1) Enable RTC wake-up option in BIOS Setup
2) Issue one of these commands in the OS: "poweroff"
or "shutdown -h now"
3) System will shut down and then reboot automatically
Root-cause of the issue:
1) During the shutdown process, the hwclock utility is used
to save the system clock to hardware clock (RTC).
2) The hwclock utility invokes ioctl() with RTC_UIE_ON. The
kernel configures the RTC alarm for the periodic interrupt
(every 1 second).
3) The hwclock uitlity closes the /dev/rtc0 device, and the
kernel disables the RTC alarm irq (AIE bit of Register B)
via ioctl() with RTC_UIE_OFF. But, the configured alarm
time is the current_time + 1.
4) After the next 1 second is elapsed, the AF (alarm
interrupt flag) of Register C is set.
5) The S5 handler in BIOS is invoked to configure alarm
registers (enable AIE bit and configure alarm date/time).
But, BIOS does not clear the previous interrupt status
during alarm configuration. Therefore, "AF=AIE=1" causes
the rtc device to trigger an interrupt.
6) So, the machine reboots automatically right after shutdown.
This patch cancels the alarm timer if the following condictions are
met (suggested by Alexandre):
1) The configured alarm time is equal to current_time + 1
seconds.
2) The AIE timer is not in use.
The member 'alarm_expires' is introduced in struct cmos_rtc because
of the following reasons:
1) The configured alarm time can be retrieved from
cmos_read_alarm(), but we need to take the 'wrapped
timestamp' and 'time rollover' into consideration. The
function __rtc_read_alarm() eliminates the concerns. To
avoid the duplicated code in the lower level RTC driver,
invoking __rtc_read_alarm from the lower level RTC driver
is not encouraged. Moreover, the compilation error 'the
undefined __rtc_read_alarm" is observed if the lower level
RTC driver is compiled as a kernel module.
2) The uie_rtctimer.node.expires and aie_timer.node.expires can
be retrieved for the configured alarm time. But, the problem
is that either of them might configure the CMOS alarm time.
We cannot make sure UIE timer or AIE tiemr configured the
CMOS alarm time before. (uie_rtctimer or aie_timer is enabled
and then is disabled).
3) The patch introduces the member 'alarm_expires' to keep the
newly configured alarm time, so the above-mentioned concerns
can be eliminated.
The issue goes away after 20-time shutdown tests.
Signed-off-by: Adrian Huang <ahuang12@xxxxxxxxxx>
Tested-by: Egbert Eich <eich@xxxxxxx>
Tested-by: Diego Ercolani <diego.ercolani@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 80ca3277bc7f398e3315af996443464dac5d4b88
Author: S Twiss <stwiss.opensource@xxxxxxxxxxx>
Date: Tue Jul 21 11:29:07 2015 +0100
rtc: da9063: Add DA9062 RTC capability to DA9063 RTC driver
Add DA9062 RTC support into the existing DA9063 RTC driver component by
using generic access tables for common register and bit mask definitions.
The following change will add generic register and bit mask support to the
DA9063 RTC. The changes are slightly complicated by requiring support for
three register sets: DA9063-AD, DA9063-BB and DA9062-AA.
The following alterations have been made to the DA9063 RTC:
- Addition of a da9063_compatible_rtc_regmap structure to hold all generic
registers and bitmasks for this type of RTC component.
- A re-write of struct da9063 to use pointers for regmap and compatible
registers/masks definitions
- Addition of a of_device_id table for DA9063 and DA9062 defaults
- Refactoring functions to use struct da9063_compatible_rtc accesses to
generic registers/masks instead of using defines from registers.h
- Re-work of da9063_rtc_probe() to use of_match_node() and
dev_get_regmap()
to provide initialisation of generic registers and masks and access to
regmap
Signed-off-by: Steve Twiss <stwiss.opensource@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit d7f9777de884daf5721211bddfd21e7c8c156b17
Author: Henry Chen <henryc.chen@xxxxxxxxxxxx>
Date: Thu Jul 30 22:53:14 2015 +0800
rtc: mt6397: implement suspend/resume function in rtc-mt6397 driver
Implement the suspend/resume function in order to control rtc's irq_wake
flag and handle as wakeup source.
Signed-off-by: Henry Chen <henryc.chen@xxxxxxxxxxxx>
Acked-by: Eddie Huang <eddie.huang@xxxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 3ee2c40b7ac2bf121aaa1176d8ac25b6a26e3a94
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Thu Jul 23 16:01:08 2015 -0700
rtc: switch to using is_visible() to control sysfs attributes
Instead of creating wakealarm attribute manually, after the device has
been
registered, let's rely on facilities provided by the attribute groups to
control which attributes are visible and which are not. This allows to
create all needed attributes at once, at the same time that we register
RTC
class device.
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit a17ccd1c6a327e5b468358e8352a6af004261473
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Thu Jul 23 16:01:07 2015 -0700
rtc: switch wakealarm attribute to DEVICE_ATTR_RW
Instead of using older style DEVICE_ATTR for wakealarm attribute let's
switch to using DEVICE_ATTR_RW that ensures consistent across the kernel
permissions on the attribute.
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit df100c017ea9f1a6a517c3fba84f8507973c004e
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Thu Jul 23 16:01:06 2015 -0700
rtc: make rtc_does_wakealarm() return boolean
Users of rtc_does_wakealarm() return value treat it as boolean so let's
change the signature accordingly.
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit f2284f9c900a47961883b88064933a89b5dd5f46
Author: Henri Roosen <henriroosen@xxxxxxxxx>
Date: Fri Jul 24 10:16:06 2015 +0200
rtc: rx8025: remove obsolete local_irq_disable() and local_irq_enable()
for rtc_update_irq()
Since commit e6229bec25be ("rtc: make rtc_update_irq callable with irqs
enabled") rtc_update_irq() is callable with irqs enabled.
Signed-off-by: Henri Roosen <henriroosen@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 0d9030a2c3214cf8f9bfff84204e0f5ba5e790d7
Author: Octavian Purdila <octavian.purdila@xxxxxxxxx>
Date: Fri Jun 5 16:59:43 2015 +0300
rtc: fix drivers that consider 0 as a valid IRQ in client->irq
Since dab472eb931b ("i2c / ACPI: Use 0 to indicate that device does not
have interrupt assigned"), 0 is not a valid i2c client irq anymore, so
change all driver's checks accordingly.
The same issue occurs when the device is instantiated via device tree
with no IRQ, or from the i2c sysfs interface, even before the patch
above.
Signed-off-by: Octavian Purdila <octavian.purdila@xxxxxxxxx>
Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 1e4cd62558c293bc51cc179d676b708683a29c12
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Mon Jul 20 16:02:51 2015 -0700
rtc: dev: properly manage lifetime of dev and cdev in rtc device
struct rtc embeds both struct dev and struct cdev. Unfortunately
character
device structure may outlive the parent rtc structure unless we set it up
as parent of character device so that it will stay pinned until character
device is freed.
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit c3b399a4b6703a04ef6eb3efe35ff12163e409e0
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Mon Jul 20 16:02:50 2015 -0700
rtc: class: remove unnecessary device_get() in rtc_device_unregister
Technically the address of rtc->dev can never be NULL, so get_device()
can never fail. Also caller of rtc_device_unregister() supposed to be
the owner of the device and thus have a valid reference. Therefore
call to get_device() is not needed here.
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 6706664d92ea841913d5fcfd06c290fbe6d33bd2
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Mon Jul 20 16:02:49 2015 -0700
rtc: class: fix double free in rtc_register_device() error path
Commit 59cca865f21e ("drivers/rtc/class.c: fix device_register() error
handling") correctly noted that naked kfree() should not be used after
failed device_register() call, however, while it added the needed
put_device() it forgot to remove the original kfree() causing double-free.
Cc: Vasiliy Kulikov <segooon@xxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit dfe6c04aa289de06df95d888719af63d1d4c982d
Author: Guo Zeng <guo.zeng@xxxxxxx>
Date: Tue Jul 14 01:31:38 2015 +0000
rtc: sirfsoc: move to regmap APIs from platform-specific APIs
The current codes use CSR platform specific API exported by machine
codes to read/write RTC registers. they are:
sirfsoc_rtc_iobrg_readl()
sirfsoc_rtc_iobrg_writel()
commit b1999477ed91 ("ARM: prima2: move to use REGMAP APIs for rtciobrg")
moves to regmap support, now we can move to use regmap APIs in RTC
driver.
Signed-off-by: Guo Zeng <guo.zeng@xxxxxxx>
Signed-off-by: Barry Song <Baohua.Song@xxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit f4a2eecb3ff9f51b179b213e7cc3766f920f2dc5
Author: Vaibhav Jain <vaibhav@xxxxxxxxxxxxxxxxxx>
Date: Tue Jul 14 13:28:28 2015 +0530
rtc: opal: Enable alarms only when opal supports tpo
rtc-opal driver provides support for rtc alarms via
timed-power-on(tpo). However some Power platforms like BML use a fake
rtc clock and don't support tpo. Such platforms are indicated by the
missing 'has-tpo' property in the device tree.
Current implementation however enables callback for
rtc_class_ops.read/set alarm irrespective of the tpo support from the
platform. This results in a failed opal call when kernel tries to read
an existing alarms via opal_get_tpo_time during rtc device registration.
This patch fixes this issue by setting opal_rtc_ops.read/set_alarm
callback pointers only when tpo is supported.
Acked-by: Michael Neuling <mikey@xxxxxxxxxxx>
Acked-by: Neelesh Gupta <neelegup@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Vaibhav Jain <vaibhav@xxxxxxxxxxxxxxxxxx>
Acked-by: Stewart Smith <stewart@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit c28b42e3aee03fe869a3f73039cf92686ccbc8fb
Author: Joachim Eastwood <manabian@xxxxxxxxx>
Date: Sat Jul 11 19:28:49 2015 +0200
rtc: add rtc-lpc24xx driver
Add driver for the RTC found on NXP LPC178x/18xx/408x/43xx devices.
The RTC provides calendar and clock functionality together with
alarm interrupt support.
Signed-off-by: Joachim Eastwood <manabian@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit dcb9372b34c9de90672e4cf811d7c3a8519320aa
Author: Joachim Eastwood <manabian@xxxxxxxxx>
Date: Sat Jul 11 19:28:50 2015 +0200
doc: dt: add documentation for nxp,lpc1788-rtc
Document NXP LPC178x/18xx/408x/43xx bindings
Signed-off-by: Joachim Eastwood <manabian@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 045c6fdd37a01d950c0f5ca64733b53b184fe91b
Author: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Date: Fri Jul 10 15:39:51 2015 +0900
rtc: Drop owner assignment from platform_driver
platform_driver does not need to set an owner because
platform_driver_register() will set it.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit b28845433eb9c205c381ed69b09167d6ae5aac1c
Author: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Date: Fri Jul 10 15:39:50 2015 +0900
rtc: Drop owner assignment from i2c_driver
i2c_driver does not need to set an owner because i2c_register_driver()
will set it.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 653ebd75e9e469e99a40ab14128d915386dc78c6
Author: Andrea Scian <andrea.scian@xxxxxxx>
Date: Tue Jun 16 11:39:47 2015 +0200
rtc: pcf2127: use OFS flag to detect unreliable date and warn the user
The PCF2127 datasheet states that it's wrong to say that the date in
unreliable if BLF (battery low flag) is set but instead, OSF (seconds
register) should be used to check if oscillator, for any reason, stopped.
Battery may be low (usually below 2V5 threshold) but the date may be
anyway
correct (typically date is unreliable when input voltage is below 1V2).
Signed-off-by: Andrea Scian <andrea.scian@xxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 821f51c4da869706356ddecfeeac286bf4df9b98
Author: Andrea Scian <andrea.scian@xxxxxxx>
Date: Tue Jun 16 11:35:19 2015 +0200
rtc: use rtc_valid_tm() error code when reading date/time
There's a wrong comment in some RTC drivers that say it's better to ignore
rtc_valid_tm() when reading RTC timestamp. However this is wrong and is
better to return to the userspace the error if timestamp is not valid.
Signed-off-by: Andrea Scian <andrea.scian@xxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 4ab82103131777b9aabb6ba31aead6e5b0293b32
Author: Vaibhav Hiremath <vaibhav.hiremath@xxxxxxxxxx>
Date: Thu Jul 9 12:25:51 2015 +0530
rtc: 88pm80x: add device tree support
Along with DT support, this patch also cleans up the unnecessary
code around 'rtc_wakeup' initialization.
Signed-off-by: Chao Xie <chao.xie@xxxxxxxxxxx>
Signed-off-by: Vaibhav Hiremath <vaibhav.hiremath@xxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 617f6f7ef5bfe8c0ac580243c3da9a836c6e39bf
Author: Maninder Singh <maninder1.s@xxxxxxxxxxx>
Date: Wed Jul 8 12:26:47 2015 +0530
rtc: bq32k: remove redundant check
removing below static analysis error:
(error) Possible null pointer dereference: client
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
^^^^^^^
Error comes because client is dereferenced before NULL check.
So probably NULL this check is not required.
Signed-off-by: Maninder Singh <maninder1.s@xxxxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 508db592e2f54d731bf2f5eabd9642a1a566f276
Author: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Date: Tue Jul 7 11:16:14 2015 +0530
rtc: ds1685: Use module_platform_driver
Use module_platform_driver for drivers whose init and exit functions
only register and unregister, respectively.
A simplified version of the Coccinelle semantic patch that performs
this transformation is as follows:
@a@
identifier f, x;
@@
-static f(...) { return platform_driver_register(&x); }
@b depends on a@
identifier e, a.x;
@@
-static e(...) { platform_driver_unregister(&x); }
@c depends on a && b@
identifier a.f;
declarer name module_init;
@@
-module_init(f);
@d depends on a && b && c@
identifier b.e, a.x;
declarer name module_exit;
declarer name module_platform_driver;
@@
-module_exit(e);
+module_platform_driver(x);
Signed-off-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 7abea617a4bae178da0f42983998c779ec2f732d
Author: Nishanth Menon <nm@xxxxxx>
Date: Wed Jun 24 11:26:54 2015 -0500
rtc: ds1307: Support optional wakeup interrupt source
With the recent pinctrl-single changes, SoCs such as Texas
Instrument's OMAP processors can treat wake-up events from deeper idle
states as interrupts.
Let's add support for the optional second interrupt for wake-up using
the generic wakeirq support added in commit 4990d4fe327b ("PM /
Wakeirq: Add automated device wake IRQ handling")
Finally, to pass the wake-up interrupt in the dts file,
interrupts-extended property needs to be passed.
This is similar in approach to commit 2a0b965cfb6e ("serial: omap: Add
support for optional wake-up") + ee83bd3b6483 ("serial: omap: Switch
wake-up interrupt to generic wakeirq")
Signed-off-by: Nishanth Menon <nm@xxxxxx>
Reviewed-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Acked-by: Tony Lindgren <tony@xxxxxxxxxxx>
Acked-by: Felipe Balbi <balbi@xxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit eac7237fd8432e232af3c407e667dbdc17ebf1d8
Author: Nishanth Menon <nm@xxxxxx>
Date: Tue Jun 23 11:15:12 2015 -0500
rtc: ds1307: Sort the headers
It is always a good practice to keep the #includes sorted
Signed-off-by: Nishanth Menon <nm@xxxxxx>
Acked-by: Felipe Balbi <balbi@xxxxxx>
Reviewed-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit c5983191362af5ef7a627d8811a45f0fd01a3582
Author: Nishanth Menon <nm@xxxxxx>
Date: Tue Jun 23 11:15:11 2015 -0500
rtc: ds1307: Switch to managed irq allocation
Since we are not doing anything fancy in remove function that requires
us to sequence IRQ free operation, we might as well switch over to devm_
equivalent of managed IRQ allocation and remove the explicit free_irq
since it'd be done automatically at remove.
Signed-off-by: Nishanth Menon <nm@xxxxxx>
Acked-by: Felipe Balbi <balbi@xxxxxx>
Reviewed-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit 2fb07a10e0aa699ddb12aba1459208579bdc9802
Author: Felipe Balbi <balbi@xxxxxx>
Date: Tue Jun 23 11:15:10 2015 -0500
rtc: ds1307: Convert to threaded IRQ
The driver currently emulates the concept of threaded IRQ using a
workqueue, which it really does not need to. Instead, switch over to
threaded_irq handlers which is meant precisely for the same purpose.
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
Signed-off-by: Nishanth Menon <nm@xxxxxx>
Reviewed-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
commit e89c6fdf9e0eb1b5a03574d4ca73e83eae8deb91
Merge: c3cce6c 1081230
Author: NeilBrown <neilb@xxxxxxxx>
Date: Sat Sep 5 11:07:04 2015 +0200
Merge linux-block/for-4.3/core into md/for-linux
There were a few conflicts that are fairly easy to resolve.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 76fc5e7b2355af167dea1a32e93c57fc37900a5b
Author: Andy Lutomirski <luto@xxxxxxxxxx>
Date: Fri Sep 4 17:00:43 2015 -0700
x86/vm86: Block non-root vm86(old) if mmap_min_addr != 0
vm86 exposes an interesting attack surface against the entry
code. Since vm86 is mostly useless anyway if mmap_min_addr != 0,
just turn it off in that case.
There are some reports that vbetool can work despite setting
mmap_min_addr to zero. This shouldn't break that use case,
as CAP_SYS_RAWIO already overrides mmap_min_addr.
Suggested-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
Cc: Austin S Hemmelgarn <ahferroin7@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Brian Gerst <brgerst@xxxxxxxxx>
Cc: Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx>
Cc: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Matthew Garrett <mjg59@xxxxxxxxxxxxx>
Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Stas Sergeev <stsp@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 95cd2ea7d54b41b0b2828587f108fe270d59eede
Merge: 66c117d e713c80
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Sat Sep 5 09:00:30 2015 +0200
Merge branch 'linus' into x86/urgent, to be able to merge a dependent fix
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 30e7a65b3fdb53cc49f85c965095e40aceea3961
Author: Jon Hunter <jonathanh@xxxxxxxxxx>
Date: Thu Sep 3 09:10:37 2015 +0100
PM / Domains: Ensure subdomain is not in use before removing
The function pm_genpd_remove_subdomain() removes a subdomain from a
generic PM domain, however, it does not check if the subdomain has any
slave domains or device attached before doing so. Therefore, add a test
to verify that the subdomain does not have any slave domains associated
or any device attached before removing.
Signed-off-by: Jon Hunter <jonathanh@xxxxxxxxxx>
Acked-by: Kevin Hilman <khilman@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 5269e7067cd66f4797760f160be21ff50f2d1582
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Thu Sep 3 08:20:58 2015 -0700
cpufreq: Add ARM_MT8173_CPUFREQ dependency on THERMAL
If ARM_MT8173_CPUFREQ is configured, and THERMAL is configured as module,
the following build error is seen for arm:allmodconfig and
arm64:allmodconfig.
drivers/built-in.o: In function `mtk_cpufreq_ready':
:(.text+0x32a20c): undefined reference to `of_cpufreq_cooling_register'
drivers/built-in.o: In function `mtk_cpufreq_exit':
:(.text+0x32a420): undefined reference to `cpufreq_cooling_unregister'
The fix is similar to CPUFREQ_DT, but more restrictive since
ARM_MT8173_CPUFREQ can not be built as module.
Fixes: 1453863fb02a ("cpufreq: mediatek: Add MT8173 cpufreq driver")
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 559ec2f8fd50981821621f52db5e1a8ffcf8d792
Author: Nicholas Krause <xerofoify@xxxxxxxxx>
Date: Fri Sep 4 15:48:27 2015 -0700
mm/hugetlb.c: make vma_has_reserves() return bool
This makes vma_has_reserves() return bool due to this particular function
only returning either one or zero as its return value.
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1ecef9ed0f63bfff58895a4f3aec751e907c7f3d
Author: Nicholas Krause <xerofoify@xxxxxxxxx>
Date: Fri Sep 4 15:48:24 2015 -0700
mm/madvise.c: make madvise_behaviour_valid() return bool
This makes the madvise_bahaviour_valid() function return bool due to
this particular function always returning the value of either one or
zero as its return value.
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ca1d6c7d9d461effa2c4e8b9b227a14e9fdcf1cc
Author: Nicholas Krause <xerofoify@xxxxxxxxx>
Date: Fri Sep 4 15:48:22 2015 -0700
mm/memory.c: make tlb_next_batch() return bool
This makes the tlb_next_batch() bool due to this particular function only
ever returning either one or zero as its return value.
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d9e7e37b4d83371d08650612e0bb0b80a1240289
Author: Nicholas Krause <xerofoify@xxxxxxxxx>
Date: Fri Sep 4 15:48:19 2015 -0700
mm/dmapool.c: change is_page_busy() return from int to bool
This makes the function is_page_busy() return bool rather then an int now
due to this particular function's single return statement only ever
evaulating to either one or zero.
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 4e6dab4233f667c0ae465e5cb46603b49b4f6d74
Author: minkyung88.kim <minkyung88.kim@xxxxxxx>
Date: Fri Sep 4 15:48:16 2015 -0700
mm: remove struct node_active_region
struct node_active_region is not used anymore. Remove it.
Signed-off-by: minkyung88.kim <minkyung88.kim@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 9943242ca468149c4ce30d4633524c0866d4a87b
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Fri Sep 4 15:48:13 2015 -0700
mremap: simplify the "overlap" check in mremap_to()
Minor, but this check is overcomplicated. Two half-intervals do NOT
overlap if END1 <= START2 || END2 <= START1, mremap_to() just needs to
negate this check.
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Benjamin LaHaise <bcrl@xxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Laurent Dufour <ldufour@xxxxxxxxxxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1d3916869798755968b3cd764ab21f2bb86ffff7
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Fri Sep 4 15:48:10 2015 -0700
mremap: don't do uneccesary checks if new_len == old_len
The "new_len > old_len" branch in vma_to_resize() looks very confusing.
It only covers the VM_DONTEXPAND/pgoff checks but everything below is
equally unneeded if new_len == old_len.
Change this code to return if "new_len == old_len", new_len < old_len is
not possible, otherwise the code below is wrong anyway.
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Benjamin LaHaise <bcrl@xxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Laurent Dufour <ldufour@xxxxxxxxxxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d456fb9e5254df433d4806769d7ff75d80d66aa4
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Fri Sep 4 15:48:07 2015 -0700
mremap: don't do mm_populate(new_addr) on failure
move_vma() sets *locked even if move_page_tables() or ->mremap() fails,
change sys_mremap() to check "ret & ~PAGE_MASK".
I think we should simply remove the VM_LOCKED code in move_vma(), that is
why this patch doesn't change move_vma(). But this needs more cleanups.
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Benjamin LaHaise <bcrl@xxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Laurent Dufour <ldufour@xxxxxxxxxxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 5477e70a6420a6b7ca96c8e21413ee1c96a84260
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Fri Sep 4 15:48:04 2015 -0700
mm: move ->mremap() from file_operations to vm_operations_struct
vma->vm_ops->mremap() looks more natural and clean in move_vma(), and this
way ->mremap() can have more users. Say, vdso.
While at it, s/aio_ring_remap/aio_ring_mremap/.
Note: this is the minimal change before ->mremap() finds another user in
file_operations; this method should have more arguments, and it can be
used to kill arch_remap().
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Benjamin LaHaise <bcrl@xxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Laurent Dufour <ldufour@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit df1eab303c836c98a79de427aa1c7d6812acaaa9
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Fri Sep 4 15:48:01 2015 -0700
mremap: don't leak new_vma if f_op->mremap() fails
move_vma() can't just return if f_op->mremap() fails, we should unmap the
new vma like we do if move_page_tables() fails. To avoid the code
duplication this patch moves the "move entries back" under the new "if
(err)" branch.
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Benjamin LaHaise <bcrl@xxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Kirill Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Laurent Dufour <ldufour@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 31aafb45f4e1c34e4aba37c150ae4e74880b46ed
Author: Nicholas Krause <xerofoify@xxxxxxxxx>
Date: Fri Sep 4 15:47:58 2015 -0700
mm/hugetlb.c: make vma_shareable() return bool
This makes vma_shareable() return bool now due to this particular function
only ever returning either one or zero as its return value.
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
Acked-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
Acked-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1027e4436b6a5c413c95d95e50d0f26348a602ac
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Fri Sep 4 15:47:55 2015 -0700
mm: make GUP handle pfn mapping unless FOLL_GET is requested
With DAX, pfn mapping becoming more common. The patch adjusts GUP code to
cover pfn mapping for cases when we don't need struct page to proceed.
To make it possible, let's change follow_page() code to return -EEXIST
error code if proper page table entry exists, but no corresponding struct
page. __get_user_page() would ignore the error code and move to the next
page frame.
The immediate effect of the change is working MAP_POPULATE and mlock() on
DAX mappings.
[akpm@xxxxxxxxxxxxxxxxxxxx: fix arm64 build]
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Reviewed-by: Toshi Kani <toshi.kani@xxxxxx>
Acked-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d899844e9c98c9c74b4d9926fd3bd66a225f6978
Author: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Date: Fri Sep 4 15:47:53 2015 -0700
mm: fix status code which move_pages() returns for zero page
The manpage for move_pages(2) specifies that status code for zero page is
supposed to be -EFAULT. Currently kernel return -ENOENT in this case.
follow_page() can do it for us, if we would ask for FOLL_DUMP. The use of
FOLL_DUMP also means that the upper layer page tables pages are no longer
allocated.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
Reviewed-by: Christoph Lameter <cl@xxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ce9ce6659a5775047ad529ed77ab119da5fb8b0c
Author: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Date: Fri Sep 4 15:47:50 2015 -0700
mm: memcontrol: bring back the VM_BUG_ON() in mem_cgroup_swapout()
Clark stumbled over a VM_BUG_ON() in -RT which was then was removed by
Johannes in commit f371763a79d ("mm: memcontrol: fix false-positive
VM_BUG_ON() on -rt"). The comment before that patch was a tiny bit better
than it is now. While the patch claimed to fix a false-postive on -RT
this was not the case. None of the -RT folks ACKed it and it was not a
false positive report. That was a *real* problem.
This patch updates the comment that is improper because it refers to
"disabled preemption" as a consequence of that lock being taken. A
spin_lock() disables preemption, true, but in this case the code relies on
the fact that the lock _also_ disables interrupts once it is acquired.
And this is the important detail (which was checked the VM_BUG_ON()) which
needs to be pointed out. This is the hint one needs while looking at the
code. It was explained by Johannes on the list that the per-CPU variables
are protected by local_irq_save(). The BUG_ON() was helpful. This code
has been workarounded in -RT in the meantime. I wouldn't mind running
into more of those if the code in question uses *special* kind of locking
since now there is no verification (in terms of lockdep or BUG_ON()) and
therefore I bring the VM_BUG_ON() check back in.
The two functions after the comment could also have a "local_irq_save()"
dance around them in order to serialize access to the per-CPU variables.
This has been avoided because the interrupts should be off.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Clark Williams <williams@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c98c36355dd6d5c4433c8d17e8eb839ca9b97606
Author: Vladimir Zapolskiy <vladimir_zapolskiy@xxxxxxxxxx>
Date: Fri Sep 4 15:47:47 2015 -0700
genalloc: add support of multiple gen_pools per device
This change fills devm_gen_pool_create()/gen_pool_get() "name" argument
stub with contents and extends of_gen_pool_get() functionality on this
basis.
If there is no associated platform device with a device node passed to
of_gen_pool_get(), the function attempts to get a label property or device
node name (= repeats MTD OF partition standard) and seeks for a named
gen_pool registered by device of the parent device node.
The main idea of the change is to allow registration of independent
gen_pools under the same umbrella device, say "partitions" on "storage
device", the original functionality of one "partition" per "storage
device" is untouched.
[akpm@xxxxxxxxxxxxxxxxxxxx: fix constness in devres_find()]
[dan.carpenter@xxxxxxxxxx: freeing const data pointers]
Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@xxxxxxxxxx>
Cc: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Shawn Guo <shawnguo@xxxxxxxxxx>
Cc: Sascha Hauer <kernel@xxxxxxxxxxxxxx>
Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 73858173593c31cb94bce63fe1c24eb803bb04e6
Author: Vladimir Zapolskiy <vladimir_zapolskiy@xxxxxxxxxx>
Date: Fri Sep 4 15:47:43 2015 -0700
genalloc: add name arg to gen_pool_get() and devm_gen_pool_create()
This change modifies gen_pool_get() and devm_gen_pool_create() client
interfaces adding one more argument "name" of a gen_pool object.
Due to implementation gen_pool_get() is capable to retrieve only one
gen_pool associated with a device even if multiple gen_pools are created,
fortunately right at the moment it is sufficient for the clients, hence
provide NULL as a valid argument on both producer devm_gen_pool_create()
and consumer gen_pool_get() sides.
Because only one created gen_pool per device is addressable, explicitly
add a restriction to devm_gen_pool_create() to create only one gen_pool
per device, this implies two possible error codes returned by the
function, account it on client side (only misc/sram). This completes
client side changes related to genalloc updates.
[akpm@xxxxxxxxxxxxxxxxxxxx: gen_pool_get() cleanup]
Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@xxxxxxxxxx>
Cc: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Shawn Guo <shawnguo@xxxxxxxxxx>
Cc: Sascha Hauer <kernel@xxxxxxxxxxxxxx>
Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c0a294988322a804901fe24222027fe8a34defcb
Author: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 15:47:38 2015 -0700
mm/memblock: WARN_ON when nid differs from overlap region
Each memblock_region has nid to indicates the Node ID of this range. For
the overlap case, memblock_add_range() inserts the lower part and leave
the upper part as indicated in the overlapped region.
If the nid of the new range differs from the overlapped region, the
information recorded is not correct.
This patch adds a WARN_ON when the nid of the new range differs from the
overlapped region.
Signed-off-by: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c7e1e3ccfbd153c890240a391f258efaedfa94d0
Author: Mel Gorman <mgorman@xxxxxxx>
Date: Fri Sep 4 15:47:38 2015 -0700
Documentation/features/vm: add feature description and arch support
status for batched TLB flush after unmap
Signed-off-by: Mel Gorman <mgorman@xxxxxxx>
Acked-by: Ingo Molnar <mingo@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d950c9477d51f0cefc2ed3cf76e695d46af0d9c1
Author: Mel Gorman <mgorman@xxxxxxx>
Date: Fri Sep 4 15:47:35 2015 -0700
mm: defer flush of writable TLB entries
If a PTE is unmapped and it's dirty then it was writable recently. Due to
deferred TLB flushing, it's best to assume a writable TLB cache entry
exists. With that assumption, the TLB must be flushed before any IO can
start or the page is freed to avoid lost writes or data corruption. This
patch defers flushing of potentially writable TLBs as long as possible.
Signed-off-by: Mel Gorman <mgorman@xxxxxxx>
Reviewed-by: Rik van Riel <riel@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Acked-by: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 72b252aed506b8f1a03f7abd29caef4cdf6a043b
Author: Mel Gorman <mgorman@xxxxxxx>
Date: Fri Sep 4 15:47:32 2015 -0700
mm: send one IPI per CPU to TLB flush all entries after unmapping pages
An IPI is sent to flush remote TLBs when a page is unmapped that was
potentially accesssed by other CPUs. There are many circumstances where
this happens but the obvious one is kswapd reclaiming pages belonging to a
running process as kswapd and the task are likely running on separate
CPUs.
On small machines, this is not a significant problem but as machine gets
larger with more cores and more memory, the cost of these IPIs can be
high. This patch uses a simple structure that tracks CPUs that
potentially have TLB entries for pages being unmapped. When the unmapping
is complete, the full TLB is flushed on the assumption that a refill cost
is lower than flushing individual entries.
Architectures wishing to do this must give the following guarantee.
If a clean page is unmapped and not immediately flushed, the
architecture must guarantee that a write to that linear address
from a CPU with a cached TLB entry will trap a page fault.
This is essentially what the kernel already depends on but the window is
much larger with this patch applied and is worth highlighting. The
architecture should consider whether the cost of the full TLB flush is
higher than sending an IPI to flush each individual entry. An additional
architecture helper called flush_tlb_local is required. It's a trivial
wrapper with some accounting in the x86 case.
The impact of this patch depends on the workload as measuring any benefit
requires both mapped pages co-located on the LRU and memory pressure. The
case with the biggest impact is multiple processes reading mapped pages
taken from the vm-scalability test suite. The test case uses NR_CPU
readers of mapped files that consume 10*RAM.
Linear mapped reader on a 4-node machine with 64G RAM and 48 CPUs
4.2.0-rc1 4.2.0-rc1
vanilla flushfull-v7
Ops lru-file-mmap-read-elapsed 159.62 ( 0.00%) 120.68 ( 24.40%)
Ops lru-file-mmap-read-time_range 30.59 ( 0.00%) 2.80 ( 90.85%)
Ops lru-file-mmap-read-time_stddv 6.70 ( 0.00%) 0.64 ( 90.38%)
4.2.0-rc1 4.2.0-rc1
vanilla flushfull-v7
User 581.00 611.43
System 5804.93 4111.76
Elapsed 161.03 122.12
This is showing that the readers completed 24.40% faster with 29% less
system CPU time. From vmstats, it is known that the vanilla kernel was
interrupted roughly 900K times per second during the steady phase of the
test and the patched kernel was interrupts 180K times per second.
The impact is lower on a single socket machine.
4.2.0-rc1 4.2.0-rc1
vanilla flushfull-v7
Ops lru-file-mmap-read-elapsed 25.33 ( 0.00%) 20.38 ( 19.54%)
Ops lru-file-mmap-read-time_range 0.91 ( 0.00%) 1.44 (-58.24%)
Ops lru-file-mmap-read-time_stddv 0.28 ( 0.00%) 0.47 (-65.34%)
4.2.0-rc1 4.2.0-rc1
vanilla flushfull-v7
User 58.09 57.64
System 111.82 76.56
Elapsed 27.29 22.55
It's still a noticeable improvement with vmstat showing interrupts went
from roughly 500K per second to 45K per second.
The patch will have no impact on workloads with no memory pressure or have
relatively few mapped pages. It will have an unpredictable impact on the
workload running on the CPU being flushed as it'll depend on how many TLB
entries need to be refilled and how long that takes. Worst case, the TLB
will be completely cleared of active entries when the target PFNs were not
resident at all.
[sasha.levin@xxxxxxxxxx: trace tlb flush after disabling preemption in
try_to_unmap_flush]
Signed-off-by: Mel Gorman <mgorman@xxxxxxx>
Reviewed-by: Rik van Riel <riel@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Acked-by: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 5b74283ab251b9db55cbbe31d19ca72482103290
Author: Mel Gorman <mgorman@xxxxxxx>
Date: Fri Sep 4 15:47:29 2015 -0700
x86, mm: trace when an IPI is about to be sent
When unmapping pages it is necessary to flush the TLB. If that page was
accessed by another CPU then an IPI is used to flush the remote CPU. That
is a lot of IPIs if kswapd is scanning and unmapping >100K pages per
second.
There already is a window between when a page is unmapped and when it is
TLB flushed. This series increases the window so multiple pages can be
flushed using a single IPI. This should be safe or the kernel is hosed
already.
Patch 1 simply made the rest of the series easier to write as ftrace
could identify all the senders of TLB flush IPIS.
Patch 2 tracks what CPUs potentially map a PFN and then sends an IPI
to flush the entire TLB.
Patch 3 tracks when there potentially are writable TLB entries that
need to be batched differently
Patch 4 increases SWAP_CLUSTER_MAX to further batch flushes
The performance impact is documented in the changelogs but in the
optimistic
case on a 4-socket machine the full series reduces interrupts from 900K
interrupts/second to 60K interrupts/second.
This patch (of 4):
It is easy to trace when an IPI is received to flush a TLB but harder to
detect what event sent it. This patch makes it easy to identify the
source of IPIs being transmitted for TLB flushes on x86.
Signed-off-by: Mel Gorman <mgorman@xxxxxxx>
Reviewed-by: Rik van Riel <riel@xxxxxxxxxx>
Reviewed-by: Dave Hansen <dave.hansen@xxxxxxxxx>
Acked-by: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c47174fc362a089b1125174258e53ef4a69ce6b8
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:47:23 2015 -0700
userfaultfd: selftest
This test allocates two virtual areas and bounces the physical memory
across the two virtual areas using only userfaultfd.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Shuah Khan <shuah.kh@xxxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 2c5b7e1be74ff0175dedbbd325abe9f0dbbb09ae
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:47:23 2015 -0700
userfaultfd: avoid missing wakeups during refile in userfaultfd_read
During the refile in userfaultfd_read both waitqueues could look empty to
the lockless wake_userfault(). Use a seqcount to prevent this false
negative that could leave an userfault blocked.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 230c92a8797e0e717c6732de0fffdd5726c0f48f
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:47:20 2015 -0700
userfaultfd: propagate the full address in THP faults
The THP faults were not propagating the original fault address. The
latest version of the API with uffd.arg.pagefault.address is supposed to
propagate the full address through THP faults.
This was not a kernel crashing bug and it wouldn't risk to corrupt user
memory, but it would cause a SIGBUS failure because the wrong page was
being copied.
For various reasons this wasn't easily reproducible in the qemu workload,
but the strestest exposed the problem immediately.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit dfa37dc3fc1f6f81a6900d0e561c02362f4817f6
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:47:18 2015 -0700
userfaultfd: allow signals to interrupt a userfault
This is only simple to achieve if the userfault is going to return to
userland (not to the kernel) because we can avoid returning VM_FAULT_RETRY
despite we temporarily released the mmap_sem. The fault would just be
retried by userland then. This is safe at least on x86 and powerpc (the
two archs with the syscall implemented so far).
Hint to verify for which archs this is safe: after handle_mm_fault
returns, no access to data structures protected by the mmap_sem must be
done by the fault code in arch/*/mm/fault.c until up_read(&mm->mmap_sem)
is called.
This has two main benefits: signals can run with lower latency in
production (signals aren't blocked by userfaults and userfaults are
immediately repeated after signal processing) and gdb can then trivially
debug the threads blocked in this kind of userfaults coming directly from
userland.
On a side note: while gdb has a need to get signal processed, coredumps
always worked perfectly with userfaults, no matter if the userfault is
triggered by GUP a kernel copy_user or directly from userland.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e6485a47b758cae04a496764a1095961ee3249e4
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:47:15 2015 -0700
userfaultfd: require UFFDIO_API before other ioctls
UFFDIO_API was already forced before read/poll could work. This makes the
code more strict to force it also for all other ioctls.
All users would already have been required to call UFFDIO_API before
invoking other ioctls but this makes it more explicit.
This will ensure we can change all ioctls (all but UFFDIO_API/struct
uffdio_api) with a bump of uffdio_api.api.
There's no actual plan or need to change the API or the ioctl, the current
API already should cover fine even the non cooperative usage, but this is
just for the longer term future just in case.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ad465cae96b456b48d26c96f27a0577ba443472a
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:47:11 2015 -0700
userfaultfd: UFFDIO_COPY and UFFDIO_ZEROPAGE
These two ioctl allows to either atomically copy or to map zeropages
into the virtual address space. This is used by the thread that opened
the userfaultfd to resolve the userfaults.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b6ebaedb4cb1a18220ae626c3a9e184ee39dd248
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:47:08 2015 -0700
userfaultfd: avoid mmap_sem read recursion in mcopy_atomic
If the rwsem starves writers it wasn't strictly a bug but lockdep
doesn't like it and this avoids depending on lowlevel implementation
details of the lock.
[akpm@xxxxxxxxxxxxxxxxxxxx: delete weird BUILD_BUG_ON()]
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c1a4de99fada21e2e9251e52cbb51eff5aadc757
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:47:04 2015 -0700
userfaultfd: mcopy_atomic|mfill_zeropage: UFFDIO_COPY|UFFDIO_ZEROPAGE
preparation
This implements mcopy_atomic and mfill_zeropage that are the lowlevel
VM methods that are invoked respectively by the UFFDIO_COPY and
UFFDIO_ZEROPAGE userfaultfd commands.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1f1c6f075904c241f9e44eb37efa8777141fc938
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:47:01 2015 -0700
userfaultfd: UFFDIO_COPY|UFFDIO_ZEROPAGE uAPI
This implements the uABI of UFFDIO_COPY and UFFDIO_ZEROPAGE.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1380fca084743fef8d17e59b273473393944ce58
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:58 2015 -0700
userfaultfd: activate syscall
This activates the userfaultfd syscall.
[sfr@xxxxxxxxxxxxxxxx: activate syscall fix]
[akpm@xxxxxxxxxxxxxxxxxxxx: don't enable userfaultfd on powerpc]
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit a14c151e567cb2c3e62611da808a8bdab86fdee5
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:54 2015 -0700
userfaultfd: buildsystem activation
This allows to select the userfaultfd during configuration to build it.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 8d2afd96c20316d112e04d935d9e09150e988397
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:51 2015 -0700
userfaultfd: solve the race between UFFDIO_COPY|ZEROPAGE and read
Solve in-kernel the race between UFFDIO_COPY|ZEROPAGE and
userfaultfd_read if they are run on different threads simultaneously.
Until now qemu solved the race in userland: the race was explicitly
and intentionally left for userland to solve. However we can also
solve it in kernel.
Requiring all users to solve this race if they use two threads (one
for the background transfer and one for the userfault reads) isn't
very attractive from an API prospective, furthermore this allows to
remove a whole bunch of mutex and bitmap code from qemu, making it
faster. The cost of __get_user_pages_fast should be insignificant
considering it scales perfectly and the pagetables are already hot in
the CPU cache, compared to the overhead in userland to maintain those
structures.
Applying this patch is backwards compatible with respect to the
userfaultfd userland API, however reverting this change wouldn't be
backwards compatible anymore.
Without this patch qemu in the background transfer thread, has to read
the old state, and do UFFDIO_WAKE if old_state is missing but it
become REQUESTED by the time it tries to set it to RECEIVED (signaling
the other side received an userfault).
vcpu background_thr userfault_thr
----- ----- -----
vcpu0 handle_mm_fault()
postcopy_place_page
read old_state -> MISSING
UFFDIO_COPY 0x7fb76a139000 (no wakeup, still
pending)
vcpu0 fault at 0x7fb76a139000 enters handle_userfault
poll() is kicked
poll() -> POLLIN
read() -> 0x7fb76a139000
postcopy_pmi_change_state(MISSING, REQUESTED) -> REQUESTED
tmp_state = postcopy_pmi_change_state(old_state,
RECEIVED) -> REQUESTED
/* check that no userfault raced with UFFDIO_COPY
*/
if (old_state == MISSING && tmp_state ==
REQUESTED)
UFFDIO_WAKE from background thread
And a second case where a UFFDIO_WAKE would be needed is in the userfault
thread:
vcpu background_thr userfault_thr
----- ----- -----
vcpu0 handle_mm_fault()
postcopy_place_page
read old_state -> MISSING
UFFDIO_COPY 0x7fb76a139000 (no wakeup, still
pending)
tmp_state = postcopy_pmi_change_state(old_state,
RECEIVED) -> RECEIVED
vcpu0 fault at 0x7fb76a139000 enters handle_userfault
poll() is kicked
poll() -> POLLIN
read() -> 0x7fb76a139000
if
(postcopy_pmi_change_state(MISSING, REQUESTED) == RECEIVED)
UFFDIO_WAKE from
userfault thread
This patch removes the need of both UFFDIO_WAKE and of the associated
per-page tristate as well.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3004ec9cabf49f43fae2b2bd1855a4720f1def7a
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:48 2015 -0700
userfaultfd: allocate the userfaultfd_ctx cacheline aligned
Use proper slab to guarantee alignment.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 15b726ef048b31a24b3fefb6863083a25fe34800
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:44 2015 -0700
userfaultfd: optimize read() and poll() to be O(1)
This makes read O(1) and poll that was already O(1) becomes lockless.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ba85c702e4b247393ffe9e3fbc13d8aee7b02059
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:41 2015 -0700
userfaultfd: wake pending userfaults
This is an optimization but it's a userland visible one and it affects
the API.
The downside of this optimization is that if you call poll() and you
get POLLIN, read(ufd) may still return -EAGAIN. The blocked userfault
may be waken by a different thread, before read(ufd) comes
around. This in short means that poll() isn't really usable if the
userfaultfd is opened in blocking mode.
userfaults won't wait in "pending" state to be read anymore and any
UFFDIO_WAKE or similar operations that has the objective of waking
userfaults after their resolution, will wake all blocked userfaults
for the resolved range, including those that haven't been read() by
userland yet.
The behavior of poll() becomes not standard, but this obviates the
need of "spurious" UFFDIO_WAKE and it lets the userland threads to
restart immediately without requiring an UFFDIO_WAKE. This is even
more significant in case of repeated faults on the same address from
multiple threads.
This optimization is justified by the measurement that the number of
spurious UFFDIO_WAKE accounts for 5% and 10% of the total
userfaults for heavy workloads, so it's worth optimizing those away.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit a9b85f9415fd9e529d03299e5335433f614ec1fb
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:37 2015 -0700
userfaultfd: change the read API to return a uffd_msg
I had requests to return the full address (not the page aligned one) to
userland.
It's not entirely clear how the page offset could be relevant because
userfaults aren't like SIGBUS that can sigjump to a different place and it
actually skip resolving the fault depending on a page offset. There's
currently no real way to skip the fault especially because after a
UFFDIO_COPY|ZEROPAGE, the fault is optimized to be retried within the
kernel without having to return to userland first (not even self modifying
code replacing the .text that touched the faulting address would prevent
the fault to be repeated). Userland cannot skip repeating the fault even
more so if the fault was triggered by a KVM secondary page fault or any
get_user_pages or any copy-user inside some syscall which will return to
kernel code. The second time FAULT_FLAG_RETRY_NOWAIT won't be set leading
to a SIGBUS being raised because the userfault can't wait if it cannot
release the mmap_map first (and FAULT_FLAG_RETRY_NOWAIT is required for
that).
Still returning userland a proper structure during the read() on the uffd,
can allow to use the current UFFD_API for the future non-cooperative
extensions too and it looks cleaner as well. Once we get additional
fields there's no point to return the fault address page aligned anymore
to reuse the bits below PAGE_SHIFT.
The only downside is that the read() syscall will read 32bytes instead of
8bytes but that's not going to be measurable overhead.
The total number of new events that can be extended or of new future bits
for already shipped events, is limited to 64 by the features field of the
uffdio_api structure. If more will be needed a bump of UFFD_API will be
required.
[akpm@xxxxxxxxxxxxxxxxxxxx: use __packed]
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3f602d2724b1f7d2d27ddcd7963a040a5890fd16
Author: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Date: Fri Sep 4 15:46:34 2015 -0700
userfaultfd: Rename uffd_api.bits into .features
This is (seems to be) the minimal thing that is required to unblock
standard uffd usage from the non-cooperative one. Now more bits can be
added to the features field indicating e.g. UFFD_FEATURE_FORK and others
needed for the latter use-case.
Signed-off-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 86039bd3b4e6a1129318cbfed4e0a6e001656635
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:31 2015 -0700
userfaultfd: add new syscall to provide memory externalization
Once an userfaultfd has been created and certain region of the process
virtual address space have been registered into it, the thread responsible
for doing the memory externalization can manage the page faults in
userland by talking to the kernel using the userfaultfd protocol.
poll() can be used to know when there are new pending userfaults to be
read (POLLIN).
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Cc: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c1294d05de5df1ab8c93aa13c531782ede907e14
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:27 2015 -0700
userfaultfd: prevent khugepaged to merge if userfaultfd is armed
If userfaultfd is armed on a certain vma we can't "fill" the holes with
zeroes or we'll break the userland on demand paging. The holes if the
userfault is armed, are really missing information (not zeroes) that the
userland has to load from network or elsewhere.
The same issue happens for wrprotected ptes that we can't just convert
into a single writable pmd_trans_huge.
We could however in theory still merge across zeropages if only
VM_UFFD_MISSING is set (so if VM_UFFD_WP is not set)... that could be
slightly improved but it'd be much more complex code for a tiny corner
case.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 19a809afe2fe089317226bbe5c5a1ce7f53dcdca
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:24 2015 -0700
userfaultfd: teach vma_merge to merge across vma->vm_userfaultfd_ctx
vma->vm_userfaultfd_ctx is yet another vma parameter that vma_merge
must be aware about so that we can merge vmas back like they were
originally before arming the userfaultfd on some memory range.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 6b251fc96cf2cdf1ce4b5db055547e2a5679bc77
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:20 2015 -0700
userfaultfd: call handle_userfault() for userfaultfd_missing() faults
This is where the page faults must be modified to call
handle_userfault() if userfaultfd_missing() is true (so if the
vma->vm_flags had VM_UFFD_MISSING set).
handle_userfault() then takes care of blocking the page fault and
delivering it to userland.
The fault flags must also be passed as parameter so the "read|write"
kind of fault can be passed to userland.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 16ba6f811dfe44bc14f7946a4b257b85476fc16e
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:17 2015 -0700
userfaultfd: add VM_UFFD_MISSING and VM_UFFD_WP
These two flags gets set in vma->vm_flags to tell the VM common code
if the userfaultfd is armed and in which mode (only tracking missing
faults, only tracking wrprotect faults or both). If neither flags is
set it means the userfaultfd is not armed on the vma.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 745f234be12b6191b15eae8dd415cc81a9137f47
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:14 2015 -0700
userfaultfd: add vm_userfaultfd_ctx to the vm_area_struct
This adds the vm_userfaultfd_ctx to the vm_area_struct.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 932b18e0aec65acb089f4bd8761ee85e70f8eb6a
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:10 2015 -0700
userfaultfd: linux/userfaultfd_k.h
Kernel header defining the methods needed by the VM common code to
interact with the userfaultfd.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1038628d80e96e3a086189172d9be8eb85ecfabf
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:04 2015 -0700
userfaultfd: uAPI
Defines the uAPI of the userfaultfd, notably the ioctl numbers and
protocol.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 51360155eccb907ff8635bd10fc7de876408c2e0
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:04 2015 -0700
userfaultfd: waitqueue: add nr wake parameter to __wake_up_locked_key
userfaultfd needs to wake all waitqueues (pass 0 as nr parameter), instead
of the current hardcoded 1 (that would wake just the first waitqueue in
the head list).
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 25edd8bffd0f7563f0c04c1d219eb89061ce9886
Author: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Date: Fri Sep 4 15:46:00 2015 -0700
userfaultfd: linux/Documentation/vm/userfaultfd.txt
This is the latest userfaultfd patchset. The postcopy live migration
feature on the qemu side is mostly ready to be merged and it entirely
depends on the userfaultfd syscall to be merged as well. So it'd be great
if this patchset could be reviewed for merging in -mm.
Userfaults allow to implement on demand paging from userland and more
generally they allow userland to more efficiently take control of the
behavior of page faults than what was available before (PROT_NONE +
SIGSEGV trap).
The use cases are:
1) KVM postcopy live migration (one form of cloud memory
externalization).
KVM postcopy live migration is the primary driver of this work:
http://blog.zhaw.ch/icclab/setting-up-post-copy-live-migration-in-openstack/
http://lists.gnu.org/archive/html/qemu-devel/2015-02/msg04873.html
2) postcopy live migration of binaries inside linux containers:
http://thread.gmane.org/gmane.linux.kernel.mm/132662
3) KVM postcopy live snapshotting (allowing to limit/throttle the
memory usage, unlike fork would, plus the avoidance of fork
overhead in the first place).
While the wrprotect tracking is not implemented yet, the syscall API is
already contemplating the wrprotect fault tracking and it's generic
enough
to allow its later implementation in a backwards compatible fashion.
4) KVM userfaults on shared memory. The UFFDIO_COPY lowlevel method
should be extended to work also on tmpfs and then the
uffdio_register.ioctls will notify userland that UFFDIO_COPY is
available even when the registered virtual memory range is tmpfs
backed.
5) alternate mechanism to notify web browsers or apps on embedded
devices that volatile pages have been reclaimed. This basically
avoids the need to run a syscall before the app can access with the
CPU the virtual regions marked volatile. This depends on point 4)
to be fulfilled first, as volatile pages happily apply to tmpfs.
Even though there wasn't a real use case requesting it yet, it also
allows to implement distributed shared memory in a way that readonly
shared mappings can exist simultaneously in different hosts and they
can be become exclusive at the first wrprotect fault.
This patch (of 22):
Add documentation.
Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Acked-by: Pavel Emelyanov <xemul@xxxxxxxxxxxxx>
Cc: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Cc: zhang.zhanghailiang@xxxxxxxxxx
Cc: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
Cc: Andres Lagar-Cavilla <andreslc@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Peter Feiner <pfeiner@xxxxxxxxxx>
Cc: "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: "Huangpeng (Peter)" <peter.huangpeng@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 2d16e0fd3265b42648d267b7adb837db9798edaf
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Fri Sep 4 15:45:57 2015 -0700
mm/slab.h: fix argument order in cache_from_obj's error message
While debugging a networking issue, I hit a condition that triggered an
object to be freed into the wrong kmem cache, and thus triggered the
warning in cache_from_obj().
The arguments in the error message are in wrong order: the location
of the object's kmem cache is in cachep, not s.
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 45eb00cd3a034b8448f52fd9074e9b2b11d857c1
Author: Joonsoo Kim <js1304@xxxxxxxxx>
Date: Fri Sep 4 15:45:54 2015 -0700
mm/slub: don't wait for high-order page allocation
Description is almost copied from commit fb05e7a89f50 ("net: don't wait
for order-3 page allocation").
I saw excessive direct memory reclaim/compaction triggered by slub. This
causes performance issues and add latency. Slub uses high-order
allocation to reduce internal fragmentation and management overhead. But,
direct memory reclaim/compaction has high overhead and the benefit of
high-order allocation can't compensate the overhead of both work.
This patch makes auxiliary high-order allocation atomic. If there is no
memory pressure and memory isn't fragmented, the alloction will still
success, so we don't sacrifice high-order allocation's benefit here. If
the atomic allocation fails, direct memory reclaim/compaction will not be
triggered, allocation fallback to low-order immediately, hence the direct
memory reclaim/compaction overhead is avoided. In the allocation failure
case, kswapd is waken up and trying to make high-order freepages, so
allocation could success next time.
Following is the test to measure effect of this patch.
System: QEMU, CPU 8, 512 MB
Mem: 25% memory is allocated at random position to make fragmentation.
Memory-hogger occupies 150 MB memory.
Workload: hackbench -g 20 -l 1000
Average result by 10 runs (Base va Patched)
elapsed_time(s): 4.3468 vs 2.9838
compact_stall: 461.7 vs 73.6
pgmigrate_success: 28315.9 vs 7256.1
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Shaohua Li <shli@xxxxxx>
Cc: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Eric Dumazet <edumazet@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 80da026a8e5da83b6ab029807844587960490e2b
Author: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Date: Fri Sep 4 15:45:51 2015 -0700
mm/slub: fix slab double-free in case of duplicate sysfs filename
sysfs_slab_add() shouldn't call kobject_put at error path: this puts last
reference of kmem-cache kobject and frees it. Kmem cache will be freed
second time at error path in kmem_cache_create().
For example this happens when slub debug was enabled in runtime and
somebody creates new kmem cache:
# echo 1 | tee /sys/kernel/slab/*/sanity_checks
# modprobe configfs
"configfs_dir_cache" cannot be merged because existing slab have debug and
cannot create new slab because unique name ":t-0000096" already taken.
Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Acked-by: Christoph Lameter <cl@xxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 588f8ba913d35a667407afa29444bf2f94e03d19
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Fri Sep 4 15:45:48 2015 -0700
mm/slub: move slab initialization into irq enabled region
Initializing a new slab can introduce rather large latencies because most
of the initialization runs always with interrupts disabled.
There is no point in doing so. The newly allocated slab is not visible
yet, so there is no reason to protect it against concurrent alloc/free.
Move the expensive parts of the initialization into allocate_slab(), so
for all allocations with GFP_WAIT set, interrupts are enabled.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Acked-by: Christoph Lameter <cl@xxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3eed034d045ce93a40e232a6bd5f86127342053a
Author: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Date: Fri Sep 4 15:45:45 2015 -0700
slub: add support for kmem_cache_debug in bulk calls
Per request of Joonsoo Kim adding kmem debug support.
I've tested that when debugging is disabled, then there is almost no
performance impact as this code basically gets removed by the compiler.
Need some guidance in enabling and testing this.
bulk- PREVIOUS - THIS-PATCH
1 - 43 cycles(tsc) 10.811 ns - 44 cycles(tsc) 11.236 ns improved
-2.3%
2 - 27 cycles(tsc) 6.867 ns - 28 cycles(tsc) 7.019 ns improved
-3.7%
3 - 21 cycles(tsc) 5.496 ns - 22 cycles(tsc) 5.526 ns improved
-4.8%
4 - 24 cycles(tsc) 6.038 ns - 19 cycles(tsc) 4.786 ns improved
20.8%
8 - 17 cycles(tsc) 4.280 ns - 18 cycles(tsc) 4.572 ns improved
-5.9%
16 - 17 cycles(tsc) 4.483 ns - 18 cycles(tsc) 4.658 ns improved
-5.9%
30 - 18 cycles(tsc) 4.531 ns - 18 cycles(tsc) 4.568 ns improved
0.0%
32 - 58 cycles(tsc) 14.586 ns - 65 cycles(tsc) 16.454 ns improved
-12.1%
34 - 53 cycles(tsc) 13.391 ns - 63 cycles(tsc) 15.932 ns improved
-18.9%
48 - 65 cycles(tsc) 16.268 ns - 50 cycles(tsc) 12.506 ns improved
23.1%
64 - 53 cycles(tsc) 13.440 ns - 63 cycles(tsc) 15.929 ns improved
-18.9%
128 - 79 cycles(tsc) 19.899 ns - 86 cycles(tsc) 21.583 ns improved
-8.9%
158 - 90 cycles(tsc) 22.732 ns - 90 cycles(tsc) 22.552 ns improved
0.0%
250 - 95 cycles(tsc) 23.916 ns - 98 cycles(tsc) 24.589 ns improved
-3.2%
Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit fbd02630c6e3c60feecc4688f5f98b015d264516
Author: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Date: Fri Sep 4 15:45:43 2015 -0700
slub: initial bulk free implementation
This implements SLUB specific kmem_cache_free_bulk(). SLUB allocator now
both have bulk alloc and free implemented.
Choose to reenable local IRQs while calling slowpath __slab_free(). In
worst case, where all objects hit slowpath call, the performance should
still be faster than fallback function __kmem_cache_free_bulk(), because
local_irq_{disable+enable} is very fast (7-cycles), while the fallback
invokes this_cpu_cmpxchg() which is slightly slower (9-cycles).
Nitpicking, this should be faster for N>=4, due to the entry cost of
local_irq_{disable+enable}.
Do notice that the save+restore variant is very expensive, this is key to
why this optimization works.
CPU: i7-4790K CPU @ 4.00GHz
* local_irq_{disable,enable}: 7 cycles(tsc) - 1.821 ns
* local_irq_{save,restore} : 37 cycles(tsc) - 9.443 ns
Measurements on CPU CPU i7-4790K @ 4.00GHz
Baseline normal fastpath (alloc+free cost): 43 cycles(tsc) 10.834 ns
Bulk- fallback - this-patch
1 - 58 cycles(tsc) 14.542 ns - 43 cycles(tsc) 10.811 ns improved
25.9%
2 - 50 cycles(tsc) 12.659 ns - 27 cycles(tsc) 6.867 ns improved
46.0%
3 - 48 cycles(tsc) 12.168 ns - 21 cycles(tsc) 5.496 ns improved
56.2%
4 - 47 cycles(tsc) 11.987 ns - 24 cycles(tsc) 6.038 ns improved
48.9%
8 - 46 cycles(tsc) 11.518 ns - 17 cycles(tsc) 4.280 ns improved
63.0%
16 - 45 cycles(tsc) 11.366 ns - 17 cycles(tsc) 4.483 ns improved
62.2%
30 - 45 cycles(tsc) 11.433 ns - 18 cycles(tsc) 4.531 ns improved
60.0%
32 - 75 cycles(tsc) 18.983 ns - 58 cycles(tsc) 14.586 ns improved
22.7%
34 - 71 cycles(tsc) 17.940 ns - 53 cycles(tsc) 13.391 ns improved
25.4%
48 - 80 cycles(tsc) 20.077 ns - 65 cycles(tsc) 16.268 ns improved
18.8%
64 - 71 cycles(tsc) 17.799 ns - 53 cycles(tsc) 13.440 ns improved
25.4%
128 - 91 cycles(tsc) 22.980 ns - 79 cycles(tsc) 19.899 ns improved
13.2%
158 - 100 cycles(tsc) 25.241 ns - 90 cycles(tsc) 22.732 ns improved
10.0%
250 - 102 cycles(tsc) 25.583 ns - 95 cycles(tsc) 23.916 ns improved
6.9%
Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ebe909e0fdb34b980c5cf636c495e4f0bb0dfda8
Author: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Date: Fri Sep 4 15:45:40 2015 -0700
slub: improve bulk alloc strategy
Call slowpath __slab_alloc() from within the bulk loop, as the side-effect
of this call likely repopulates c->freelist.
Choose to reenable local IRQs while calling slowpath.
Saving some optimizations for later. E.g. it is possible to extract
parts of __slab_alloc() and avoid the unnecessary and expensive (37
cycles) local_irq_{save,restore}. For now, be happy calling
__slab_alloc() this lower icache impact of this func and I don't have to
worry about correctness.
Measurements on CPU CPU i7-4790K @ 4.00GHz
Baseline normal fastpath (alloc+free cost): 42 cycles(tsc) 10.601 ns
Bulk- fallback - this-patch
1 - 58 cycles(tsc) 14.516 ns - 49 cycles(tsc) 12.459 ns improved
15.5%
2 - 51 cycles(tsc) 12.930 ns - 38 cycles(tsc) 9.605 ns improved
25.5%
3 - 49 cycles(tsc) 12.274 ns - 34 cycles(tsc) 8.525 ns improved
30.6%
4 - 48 cycles(tsc) 12.058 ns - 32 cycles(tsc) 8.036 ns improved
33.3%
8 - 46 cycles(tsc) 11.609 ns - 31 cycles(tsc) 7.756 ns improved
32.6%
16 - 45 cycles(tsc) 11.451 ns - 32 cycles(tsc) 8.148 ns improved
28.9%
30 - 79 cycles(tsc) 19.865 ns - 68 cycles(tsc) 17.164 ns improved
13.9%
32 - 76 cycles(tsc) 19.212 ns - 66 cycles(tsc) 16.584 ns improved
13.2%
34 - 74 cycles(tsc) 18.600 ns - 63 cycles(tsc) 15.954 ns improved
14.9%
48 - 88 cycles(tsc) 22.092 ns - 77 cycles(tsc) 19.373 ns improved
12.5%
64 - 80 cycles(tsc) 20.043 ns - 68 cycles(tsc) 17.188 ns improved
15.0%
128 - 99 cycles(tsc) 24.818 ns - 89 cycles(tsc) 22.404 ns improved
10.1%
158 - 99 cycles(tsc) 24.977 ns - 92 cycles(tsc) 23.089 ns improved
7.1%
250 - 106 cycles(tsc) 26.552 ns - 99 cycles(tsc) 24.785 ns improved
6.6%
Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 994eb764ec5ad57c9b7c5e72b892205039a84b69
Author: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Date: Fri Sep 4 15:45:37 2015 -0700
slub bulk alloc: extract objects from the per cpu slab
First piece: acceleration of retrieval of per cpu objects
If we are allocating lots of objects then it is advantageous to disable
interrupts and avoid the this_cpu_cmpxchg() operation to get these objects
faster.
Note that we cannot do the fast operation if debugging is enabled, because
we would have to add extra code to do all the debugging checks. And it
would not be fast anyway.
Note also that the requirement of having interrupts disabled avoids having
to do processor flag operations.
Allocate as many objects as possible in the fast way and then fall back to
the generic implementation for the rest of the objects.
Measurements on CPU CPU i7-4790K @ 4.00GHz
Baseline normal fastpath (alloc+free cost): 42 cycles(tsc) 10.554 ns
Bulk- fallback - this-patch
1 - 57 cycles(tsc) 14.432 ns - 48 cycles(tsc) 12.155 ns improved
15.8%
2 - 50 cycles(tsc) 12.746 ns - 37 cycles(tsc) 9.390 ns improved
26.0%
3 - 48 cycles(tsc) 12.180 ns - 33 cycles(tsc) 8.417 ns improved
31.2%
4 - 48 cycles(tsc) 12.015 ns - 32 cycles(tsc) 8.045 ns improved
33.3%
8 - 46 cycles(tsc) 11.526 ns - 30 cycles(tsc) 7.699 ns improved
34.8%
16 - 45 cycles(tsc) 11.418 ns - 32 cycles(tsc) 8.205 ns improved
28.9%
30 - 80 cycles(tsc) 20.246 ns - 73 cycles(tsc) 18.328 ns improved
8.8%
32 - 79 cycles(tsc) 19.946 ns - 72 cycles(tsc) 18.208 ns improved
8.9%
34 - 78 cycles(tsc) 19.659 ns - 71 cycles(tsc) 17.987 ns improved
9.0%
48 - 86 cycles(tsc) 21.516 ns - 82 cycles(tsc) 20.566 ns improved
4.7%
64 - 93 cycles(tsc) 23.423 ns - 89 cycles(tsc) 22.480 ns improved
4.3%
128 - 100 cycles(tsc) 25.170 ns - 99 cycles(tsc) 24.871 ns improved
1.0%
158 - 102 cycles(tsc) 25.549 ns - 101 cycles(tsc) 25.375 ns improved
1.0%
250 - 101 cycles(tsc) 25.344 ns - 100 cycles(tsc) 25.182 ns improved
1.0%
Signed-off-by: Christoph Lameter <cl@xxxxxxxxx>
Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 484748f0b65a1950b2b93f444a2287e8dd2cedd6
Author: Christoph Lameter <cl@xxxxxxxxx>
Date: Fri Sep 4 15:45:34 2015 -0700
slab: infrastructure for bulk object allocation and freeing
Add the basic infrastructure for alloc/free operations on pointer arrays.
It includes a generic function in the common slab code that is used in
this infrastructure patch to create the unoptimized functionality for slab
bulk operations.
Allocators can then provide optimized allocation functions for situations
in which large numbers of objects are needed. These optimization may
avoid taking locks repeatedly and bypass metadata creation if all objects
in slab pages can be used to provide the objects required.
Allocators can extend the skeletons provided and add their own code to the
bulk alloc and free functions. They can keep the generic allocation and
freeing and just fall back to those if optimizations would not work (like
for example when debugging is on).
Signed-off-by: Christoph Lameter <cl@xxxxxxxxx>
Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 2ae44005b678431a5c7a55dafcd09421ba3fadf0
Author: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Date: Fri Sep 4 15:45:31 2015 -0700
slub: fix spelling succedd to succeed
With this patchset the SLUB allocator now has both bulk alloc and free
implemented.
This patchset mostly optimizes the "fastpath" where objects are available
on the per CPU fastpath page. This mostly amortize the less-heavy
none-locked cmpxchg_double used on fastpath.
The "fallback" bulking (e.g __kmem_cache_free_bulk) provides a good basis
for comparison. Measurements[1] of the fallback functions
__kmem_cache_{free,alloc}_bulk have been copied from slab_common.c and
forced "noinline" to force a function call like slab_common.c.
Measurements on CPU CPU i7-4790K @ 4.00GHz
Baseline normal fastpath (alloc+free cost): 42 cycles(tsc) 10.601 ns
Measurements last-patch with disabled debugging:
Bulk- fallback - this-patch
1 - 57 cycles(tsc) 14.448 ns - 44 cycles(tsc) 11.236 ns improved
22.8%
2 - 51 cycles(tsc) 12.768 ns - 28 cycles(tsc) 7.019 ns improved
45.1%
3 - 48 cycles(tsc) 12.232 ns - 22 cycles(tsc) 5.526 ns improved
54.2%
4 - 48 cycles(tsc) 12.025 ns - 19 cycles(tsc) 4.786 ns improved
60.4%
8 - 46 cycles(tsc) 11.558 ns - 18 cycles(tsc) 4.572 ns improved
60.9%
16 - 45 cycles(tsc) 11.458 ns - 18 cycles(tsc) 4.658 ns improved
60.0%
30 - 45 cycles(tsc) 11.499 ns - 18 cycles(tsc) 4.568 ns improved
60.0%
32 - 79 cycles(tsc) 19.917 ns - 65 cycles(tsc) 16.454 ns improved
17.7%
34 - 78 cycles(tsc) 19.655 ns - 63 cycles(tsc) 15.932 ns improved
19.2%
48 - 68 cycles(tsc) 17.049 ns - 50 cycles(tsc) 12.506 ns improved
26.5%
64 - 80 cycles(tsc) 20.009 ns - 63 cycles(tsc) 15.929 ns improved
21.3%
128 - 94 cycles(tsc) 23.749 ns - 86 cycles(tsc) 21.583 ns improved
8.5%
158 - 97 cycles(tsc) 24.299 ns - 90 cycles(tsc) 22.552 ns improved
7.2%
250 - 102 cycles(tsc) 25.681 ns - 98 cycles(tsc) 24.589 ns improved
3.9%
Benchmarking shows impressive improvements in the "fastpath" with a small
number of objects in the working set. Once the working set increases,
resulting in activating the "slowpath" (that contains the heavier locked
cmpxchg_double) the improvement decreases.
I'm currently working on also optimizing the "slowpath" (as network stack
use-case hits this), but this patchset should provide a good foundation
for further improvements. Rest of my patch queue in this area needs some
more work, but preliminary results are good. I'm attending Netfilter
Workshop[2] next week, and I'll hopefully return working on further
improvements in this area.
This patch (of 6):
s/succedd/succeed/
Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Pekka Enberg <penberg@xxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ec6a90661a0d6ce1461d05c7a58a0a151154e14a
Author: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Date: Fri Sep 4 15:45:28 2015 -0700
watchdog: rename watchdog_suspend() and watchdog_resume()
Rename watchdog_suspend() to lockup_detector_suspend() and
watchdog_resume() to lockup_detector_resume() to avoid confusion with the
watchdog subsystem and to be consistent with the existing name
lockup_detector_init().
Also provide comment blocks to explain the watchdog_running and
watchdog_suspended variables and their relationship.
Signed-off-by: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Reviewed-by: Aaron Tomlin <atomlin@xxxxxxxxxx>
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Don Zickus <dzickus@xxxxxxxxxx>
Cc: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 999bbe49ea0118b70ddf3f5d679f51dc7a97ae55
Author: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Date: Fri Sep 4 15:45:25 2015 -0700
watchdog: use suspend/resume interface in fixup_ht_bug()
Remove watchdog_nmi_disable_all() and watchdog_nmi_enable_all() since
these functions are no longer needed. If a subsystem has a need to
deactivate the watchdog temporarily, it should utilize the
watchdog_suspend() and watchdog_resume() functions.
[akpm@xxxxxxxxxxxxxxxxxxxx: fix build with CONFIG_LOCKUP_DETECTOR=m]
Signed-off-by: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Reviewed-by: Aaron Tomlin <atomlin@xxxxxxxxxx>
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Don Zickus <dzickus@xxxxxxxxxx>
Cc: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d4bdd0b21c7652a8271f873cc755486b255c1bbd
Author: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Date: Fri Sep 4 15:45:21 2015 -0700
watchdog: use park/unpark functions in update_watchdog_all_cpus()
Remove update_watchdog() and restart_watchdog_hrtimer() since these
functions are no longer needed. Changes of parameters such as the sample
period are honored at the time when the watchdog threads are being
unparked.
Signed-off-by: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Reviewed-by: Aaron Tomlin <atomlin@xxxxxxxxxx>
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Don Zickus <dzickus@xxxxxxxxxx>
Cc: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 8c073d27d7ad293bf734cc8475689413afadab81
Author: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Date: Fri Sep 4 15:45:18 2015 -0700
watchdog: introduce watchdog_suspend() and watchdog_resume()
This interface can be utilized to deactivate the hard and soft lockup
detector temporarily. Callers are expected to minimize the duration of
deactivation. Multiple deactivations are allowed to occur in parallel but
should be rare in practice.
[akpm@xxxxxxxxxxxxxxxxxxxx: remove unneeded static initialization]
Signed-off-by: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Reviewed-by: Aaron Tomlin <atomlin@xxxxxxxxxx>
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Don Zickus <dzickus@xxxxxxxxxx>
Cc: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 81a4beef91ba4a9e8ad6054ca9933dff7e25ff28
Author: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Date: Fri Sep 4 15:45:15 2015 -0700
watchdog: introduce watchdog_park_threads() and watchdog_unpark_threads()
Originally watchdog_nmi_enable(cpu) and watchdog_nmi_disable(cpu) were
only called in watchdog thread context. However, the following commits
utilize these functions outside of watchdog thread context too.
commit 9809b18fcf6b8d8ec4d3643677345907e6b50eca
Author: Michal Hocko <mhocko@xxxxxxx>
Date: Tue Sep 24 15:27:30 2013 -0700
watchdog: update watchdog_thresh properly
commit b3738d29323344da3017a91010530cf3a58590fc
Author: Stephane Eranian <eranian@xxxxxxxxxx>
Date: Mon Nov 17 20:07:03 2014 +0100
watchdog: Add watchdog enable/disable all functions
Hence, it is now possible that these functions execute concurrently with
the same 'cpu' argument. This concurrency is problematic because per-cpu
'watchdog_ev' can be accessed/modified without adequate synchronization.
The patch series aims to address the above problem. However, instead of
introducing locks to protect per-cpu 'watchdog_ev' a different approach is
taken: Invoke these functions by parking and unparking the watchdog
threads (to ensure they are always called in watchdog thread context).
static struct smp_hotplug_thread watchdog_threads = {
...
.park = watchdog_disable, // calls watchdog_nmi_disable()
.unpark = watchdog_enable, // calls watchdog_nmi_enable()
};
Both previously mentioned commits call these functions in a similar way
and thus in principle contain some duplicate code. The patch series also
avoids this duplication by providing a commonly usable mechanism.
- Patch 1/4 introduces the watchdog_{park|unpark}_threads functions that
park/unpark all watchdog threads specified in 'watchdog_cpumask'. They
are intended to be called inside of kernel/watchdog.c only.
- Patch 2/4 introduces the watchdog_{suspend|resume} functions which can
be utilized by external callers to deactivate the hard and soft lockup
detector temporarily.
- Patch 3/4 utilizes watchdog_{park|unpark}_threads to replace some code
that was introduced by commit 9809b18fcf6b8d8ec4d3643677345907e6b50eca.
- Patch 4/4 utilizes watchdog_{suspend|resume} to replace some code that
was introduced by commit b3738d29323344da3017a91010530cf3a58590fc.
A few corner cases should be mentioned here for completeness.
- kthread_park() of watchdog/N could hang if cpu N is already locked up.
However, if watchdog is enabled the lockup will be detected anyway.
- kthread_unpark() of watchdog/N could hang if cpu N got locked up after
kthread_park(). The occurrence of this scenario should be _very_ rare
in practice, in particular because it is not expected that temporary
deactivation will happen frequently, and if it happens at all it is
expected that the duration of deactivation will be short.
This patch (of 4): introduce watchdog_park_threads() and
watchdog_unpark_threads()
These functions are intended to be used only from inside kernel/watchdog.c
to park/unpark all watchdog threads that are specified in
watchdog_cpumask.
Signed-off-by: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Reviewed-by: Aaron Tomlin <atomlin@xxxxxxxxxx>
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Don Zickus <dzickus@xxxxxxxxxx>
Cc: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit aacfbe6a9724bb6d66a656a5abcc681d5649ed92
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Fri Sep 4 15:45:12 2015 -0700
kernel/watchdog: move NMI function header declarations from watchdog.h to
nmi.h
The kernel's NMI watchdog has nothing to do with the watchdog subsystem.
Its header declarations should be in linux/nmi.h, not linux/watchdog.h.
The code provided two sets of dummy functions if HARDLOCKUP_DETECTOR is
not configured, one in the include file and one in kernel/watchdog.c.
Remove the dummy functions from kernel/watchdog.c and use those from the
include file.
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Don Zickus <dzickus@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 314b08ff5205420d956d14657e16d92c460a6f21
Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Date: Fri Sep 4 15:45:09 2015 -0700
watchdog: simplify housekeeping affinity with the appropriate mask
housekeeping_mask gathers all the CPUs that aren't part of the nohz_full
set. This is exactly what we want the watchdog to be affine to without
the need to use complicated cpumask operations.
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Reviewed-by: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Don Zickus <dzickus@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 230ec93909f00678401cb2d63b8b95f1dea68e40
Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Date: Fri Sep 4 15:45:06 2015 -0700
smpboot: allow passing the cpumask on per-cpu thread registration
It makes the registration cheaper and simpler for the smpboot per-cpu
kthread users that don't need to always update the cpumask after threads
creation.
[sfr@xxxxxxxxxxxxxxxx: fix for allow passing the cpumask on per-cpu
thread registration]
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Reviewed-by: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Don Zickus <dzickus@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3dd08c0c918f9bf058572ddbf26e7d6fb5674a5c
Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Date: Fri Sep 4 15:45:03 2015 -0700
smpboot: make cleanup to mirror setup
The per-cpu kthread cleanup() callback is the mirror of the setup()
callback. When the per-cpu kthread is started, it first calls setup()
to initialize the resources which are then released by cleanup() when
the kthread exits.
Now since the introduction of a per-cpu kthread cpumask, the kthreads
excluded by the cpumask on boot may happen to be parked immediately
after their creation without taking the setup() stage, waiting to be
asked to unpark to do so. Then when smpboot_unregister_percpu_thread()
is later called, the kthread is stopped without having ever called
setup().
But this triggers a bug as the kthread unconditionally calls cleanup()
on exit but this doesn't mirror any setup(). Thus the kernel crashes
because we try to free resources that haven't been initialized, as in
the watchdog case:
WATCHDOG disable 0
WATCHDOG disable 1
WATCHDOG disable 2
BUG: unable to handle kernel NULL pointer dereference at
(null)
IP: hrtimer_active+0x26/0x60
[...]
Call Trace:
hrtimer_try_to_cancel+0x1c/0x280
hrtimer_cancel+0x1d/0x30
watchdog_disable+0x56/0x70
watchdog_cleanup+0xe/0x10
smpboot_thread_fn+0x23c/0x2c0
kthread+0xf8/0x110
ret_from_fork+0x3f/0x70
This bug is currently masked with explicit kthread unparking before
kthread_stop() on smpboot_destroy_threads(). This forces a call to
setup() and then unpark().
We could fix this by unconditionally calling setup() on kthread entry.
But setup() isn't always cheap. In the case of watchdog it launches
hrtimer, perf events, etc... So we may as well like to skip it if there
are chances the kthread will never be used, as in a reduced cpumask value.
So let's simply do a state machine check before calling cleanup() that
makes sure setup() has been called before mirroring it.
And remove the nasty hack workaround.
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Reviewed-by: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Don Zickus <dzickus@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 5869b5064b0950afc447610c0f5d4134b71d9e94
Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Date: Fri Sep 4 15:45:00 2015 -0700
smpboot: fix memory leak on error handling
The cpumask is allocated before threads get created. If the latter step
fails, we need to free the cpumask.
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Reviewed-by: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Don Zickus <dzickus@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit a068acf2ee77693e0bf39d6e07139ba704f461c3
Author: Kees Cook <keescook@xxxxxxxxxxxx>
Date: Fri Sep 4 15:44:57 2015 -0700
fs: create and use seq_show_option for escaping
Many file systems that implement the show_options hook fail to correctly
escape their output which could lead to unescaped characters (e.g. new
lines) leaking into /proc/mounts and /proc/[pid]/mountinfo files. This
could lead to confusion, spoofed entries (resulting in things like
systemd issuing false d-bus "mount" notifications), and who knows what
else. This looks like it would only be the root user stepping on
themselves, but it's possible weird things could happen in containers or
in other situations with delegated mount privileges.
Here's an example using overlay with setuid fusermount trusting the
contents of /proc/mounts (via the /etc/mtab symlink). Imagine the use
of "sudo" is something more sneaky:
$ BASE="ovl"
$ MNT="$BASE/mnt"
$ LOW="$BASE/lower"
$ UP="$BASE/upper"
$ WORK="$BASE/work/ 0 0
none /proc fuse.pwn user_id=1000"
$ mkdir -p "$LOW" "$UP" "$WORK"
$ sudo mount -t overlay -o "lowerdir=$LOW,upperdir=$UP,workdir=$WORK"
none /mnt
$ cat /proc/mounts
none /root/ovl/mnt overlay
rw,relatime,lowerdir=ovl/lower,upperdir=ovl/upper,workdir=ovl/work/ 0 0
none /proc fuse.pwn user_id=1000 0 0
$ fusermount -u /proc
$ cat /proc/mounts
cat: /proc/mounts: No such file or directory
This fixes the problem by adding new seq_show_option and
seq_show_option_n helpers, and updating the vulnerable show_option
handlers to use them as needed. Some, like SELinux, need to be open
coded due to unusual existing escape mechanisms.
[akpm@xxxxxxxxxxxxxxxxxxxx: add lost chunk, per Kees]
[keescook@xxxxxxxxxxxx: seq_show_option should be using const parameters]
Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
Acked-by: Serge Hallyn <serge.hallyn@xxxxxxxxxxxxx>
Acked-by: Jan Kara <jack@xxxxxxxx>
Acked-by: Paul Moore <paul@xxxxxxxxxxxxxx>
Cc: J. R. Okajima <hooanon05g@xxxxxxxxx>
Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 46359295a352e01a5a017297c70b7ee0c5da6de6
Author: Joseph Qi <joseph.qi@xxxxxxxxxx>
Date: Fri Sep 4 15:44:54 2015 -0700
ocfs2: clean up redundant NULL checks before kfree
NULL check before kfree is redundant and so clean them up.
Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7ecef14ab1db961545354fa443749aeda2ea1b75
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Fri Sep 4 15:44:51 2015 -0700
ocfs2: neaten do_error, ocfs2_error and ocfs2_abort
These uses sometimes do and sometimes don't have '\n' terminations. Make
the uses consistently use '\n' terminations and remove the newline from
the functions.
Miscellanea:
o Coalesce formats
o Realign arguments
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d0c97d52f5e1de125394d748be7bd5763fd9ed9e
Author: Xue jiufei <xuejiufei@xxxxxxxxxx>
Date: Fri Sep 4 15:44:48 2015 -0700
ocfs2: do not set fs read-only if rec[0] is empty while committing
truncate
While appending an extent to a file, it will call these functions:
ocfs2_insert_extent
-> call ocfs2_grow_tree() if there's no free rec
-> ocfs2_add_branch add a new branch to extent tree,
now rec[0] in the leaf of rightmost path is empty
-> ocfs2_do_insert_extent
-> ocfs2_rotate_tree_right
-> ocfs2_extend_rotate_transaction
-> jbd2_journal_restart if jbd2_journal_extend fail
-> ocfs2_insert_path
-> ocfs2_extend_trans
-> jbd2_journal_restart if jbd2_journal_extend fail
-> ocfs2_insert_at_leaf
-> ocfs2_et_update_clusters
Function jbd2_journal_restart() may be called and it may happened that
buffers dirtied in ocfs2_add_branch() are committed
while buffers dirtied in ocfs2_insert_at_leaf() and
ocfs2_et_update_clusters() are not.
So an empty rec[0] is left in rightmost path which will cause
read-only filesystem when call ocfs2_commit_truncate()
with the error message: "Inode %lu has an empty extent record".
This is not a serious problem, so remove the rightmost path when call
ocfs2_commit_truncate().
Signed-off-by: joyce.xue <xuejiufei@xxxxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7f27ec978b0ef37391262bbf15c587fd8526e268
Author: yangwenfang <vicky.yangwenfang@xxxxxxxxxx>
Date: Fri Sep 4 15:44:45 2015 -0700
ocfs2: call ocfs2_journal_access_di() before ocfs2_journal_dirty() in
ocfs2_write_end_nolock()
1: After we call ocfs2_journal_access_di() in ocfs2_write_begin(),
jbd2_journal_restart() may also be called, in this function transaction
A's t_updates-- and obtains a new transaction B. If
jbd2_journal_commit_transaction() is happened to commit transaction A,
when t_updates==0, it will continue to complete commit and unfile
buffer.
So when jbd2_journal_dirty_metadata(), the handle is pointed a new
transaction B, and the buffer head's journal head is already freed,
jh->b_transaction == NULL, jh->b_next_transaction == NULL, it returns
EINVAL, So it triggers the BUG_ON(status).
thread 1 jbd2
ocfs2_write_begin jbd2_journal_commit_transaction
ocfs2_write_begin_nolock
ocfs2_start_trans
jbd2__journal_start(t_updates+1,
transaction A)
ocfs2_journal_access_di
ocfs2_write_cluster_by_desc
ocfs2_mark_extent_written
ocfs2_change_extent_flag
ocfs2_split_extent
ocfs2_extend_rotate_transaction
jbd2_journal_restart
(t_updates-1,transaction B) t_updates==0
__jbd2_journal_refile_buffer
(jh->b_transaction = NULL)
ocfs2_write_end
ocfs2_write_end_nolock
ocfs2_journal_dirty
jbd2_journal_dirty_metadata(bug)
ocfs2_commit_trans
2. In ext4, I found that: jbd2_journal_get_write_access() called by
ext4_write_end.
ext4_write_begin
ext4_journal_start
__ext4_journal_start_sb
ext4_journal_check_start
jbd2__journal_start
ext4_write_end
ext4_mark_inode_dirty
ext4_reserve_inode_write
ext4_journal_get_write_access
jbd2_journal_get_write_access
ext4_mark_iloc_dirty
ext4_do_update_inode
ext4_handle_dirty_metadata
jbd2_journal_dirty_metadata
3. So I think we should put ocfs2_journal_access_di before
ocfs2_journal_dirty in the ocfs2_write_end. and it works well after my
modification.
Signed-off-by: vicky <vicky.yangwenfang@xxxxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Cc: Zhangguanghui <zhang.guanghui@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 40476b8294466d40e7db57b4cbf69a831a4486b8
Author: Tina Ruchandani <ruchandani.tina@xxxxxxxxx>
Date: Fri Sep 4 15:44:43 2015 -0700
ocfs2: use 64bit variables to track heartbeat time
o2hb_elapsed_msecs computes the time taken for a disk heartbeat.
'struct timeval' variables are used to store start and end times. On
32-bit systems, the 'tv_sec' component of 'struct timeval' will overflow
in year 2038 and beyond.
This patch solves the overflow with the following:
1. Replace o2hb_elapsed_msecs using 'ktime_t' values to measure start
and end time, and built-in function 'ktime_ms_delta' to compute the
elapsed time. ktime_get_real() is used since the code prints out the
wallclock time.
2. Changes format string to print time as a single 64-bit nanoseconds
value ("%lld") instead of seconds and microseconds. This simplifies
the code since converting ktime_t to that format would need expensive
computation. However, the debug log string is less readable than the
previous format.
Signed-off-by: Tina Ruchandani <ruchandani.tina@xxxxxxxxx>
Suggested by: Arnd Bergmann <arnd@xxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit ad694821224634d46b6571f0161e85ac2e397396
Author: Joseph Qi <joseph.qi@xxxxxxxxxx>
Date: Fri Sep 4 15:44:40 2015 -0700
ocfs2: fix race between crashed dio and rm
There is a race case between crashed dio and rm, which will lead to
OCFS2_VALID_FL not set read-only.
N1 N2
------------------------------------------------------------------------
dd with direct flag
rm file
crashed with an dio entry left
in orphan dir
clear OCFS2_VALID_FL in
ocfs2_remove_inode
recover N1 and read the corrupted inode,
and set filesystem read-only
So we skip the inode deletion this time and wait for dio entry recovered
first.
Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit f57a22ddecd6f26040a67e2c12880f98f88b6e00
Author: Yiwen Jiang <jiangyiwen@xxxxxxxxxx>
Date: Fri Sep 4 15:44:37 2015 -0700
ocfs2: avoid access invalid address when read o2dlm debug messages
The following case will lead to a lockres is freed but is still in use.
cat /sys/kernel/debug/o2dlm/locking_state dlm_thread
lockres_seq_start
-> lock dlm->track_lock
-> get resA
resA->refs decrease to 0,
call dlm_lockres_release,
and wait for "cat" unlock.
Although resA->refs is already set to 0,
increase resA->refs, and then unlock
lock dlm->track_lock
-> list_del_init()
-> unlock
-> free resA
In such a race case, invalid address access may occurs. So we should
delete list res->tracking before resA->refs decrease to 0.
Signed-off-by: Yiwen Jiang <jiangyiwen@xxxxxxxxxx>
Reviewed-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Mark Fasheh <mfasheh@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 743b5f1434f57a147226c747fe228cadeb7b05ed
Author: Tariq Saeed <tariq.x.saeed@xxxxxxxxxx>
Date: Fri Sep 4 15:44:34 2015 -0700
ocfs2: take inode lock in ocfs2_iop_set/get_acl()
This bug in mainline code is pointed out by Mark Fasheh. When
ocfs2_iop_set_acl() and ocfs2_iop_get_acl() are entered from VFS layer,
inode lock is not held. This seems to be regression from older kernels.
The patch is to fix that.
Orabug: 20189959
Signed-off-by: Tariq Saeed <tariq.x.saeed@xxxxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3d46a44a0c01b15d385ccaae24b56f619613c256
Author: Tariq Saeed <tariq.x.saeed@xxxxxxxxxx>
Date: Fri Sep 4 15:44:31 2015 -0700
ocfs2: fix BUG_ON() in ocfs2_ci_checkpointed()
PID: 614 TASK: ffff882a739da580 CPU: 3 COMMAND: "ocfs2dc"
#0 [ffff882ecc3759b0] machine_kexec at ffffffff8103b35d
#1 [ffff882ecc375a20] crash_kexec at ffffffff810b95b5
#2 [ffff882ecc375af0] oops_end at ffffffff815091d8
#3 [ffff882ecc375b20] die at ffffffff8101868b
#4 [ffff882ecc375b50] do_trap at ffffffff81508bb0
#5 [ffff882ecc375ba0] do_invalid_op at ffffffff810165e5
#6 [ffff882ecc375c40] invalid_op at ffffffff815116fb
[exception RIP: ocfs2_ci_checkpointed+208]
RIP: ffffffffa0a7e940 RSP: ffff882ecc375cf0 RFLAGS: 00010002
RAX: 0000000000000001 RBX: 000000000000654b RCX: ffff8812dc83f1f8
RDX: 00000000000017d9 RSI: ffff8812dc83f1f8 RDI: ffffffffa0b2c318
RBP: ffff882ecc375d20 R8: ffff882ef6ecfa60 R9: ffff88301f272200
R10: 0000000000000000 R11: 0000000000000000 R12: ffffffffffffffff
R13: ffff8812dc83f4f0 R14: 0000000000000000 R15: ffff8812dc83f1f8
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
#7 [ffff882ecc375d28] ocfs2_check_meta_downconvert at ffffffffa0a7edbd
[ocfs2]
#8 [ffff882ecc375d38] ocfs2_unblock_lock at ffffffffa0a84af8 [ocfs2]
#9 [ffff882ecc375dc8] ocfs2_process_blocked_lock at ffffffffa0a85285
[ocfs2]
#10 [ffff882ecc375e18] ocfs2_downconvert_thread_do_work at
ffffffffa0a85445 [ocfs2]
#11 [ffff882ecc375e68] ocfs2_downconvert_thread at ffffffffa0a854de
[ocfs2]
#12 [ffff882ecc375ee8] kthread at ffffffff81090da7
#13 [ffff882ecc375f48] kernel_thread_helper at ffffffff81511884
assert is tripped because the tran is not checkpointed and the lock level
is PR.
Some time ago, chmod command had been executed. As result, the following
call
chain left the inode cluster lock in PR state, latter on causing the
assert.
system_call_fastpath
-> my_chmod
-> sys_chmod
-> sys_fchmodat
-> notify_change
-> ocfs2_setattr
-> posix_acl_chmod
-> ocfs2_iop_set_acl
-> ocfs2_set_acl
-> ocfs2_acl_set_mode
Here is how.
1119 int ocfs2_setattr(struct dentry *dentry, struct iattr *attr)
1120 {
1247 ocfs2_inode_unlock(inode, 1); <<< WRONG thing to do.
..
1258 if (!status && attr->ia_valid & ATTR_MODE) {
1259 status = posix_acl_chmod(inode, inode->i_mode);
519 posix_acl_chmod(struct inode *inode, umode_t mode)
520 {
..
539 ret = inode->i_op->set_acl(inode, acl, ACL_TYPE_ACCESS);
287 int ocfs2_iop_set_acl(struct inode *inode, struct posix_acl *acl, ...
288 {
289 return ocfs2_set_acl(NULL, inode, NULL, type, acl, NULL,
NULL);
224 int ocfs2_set_acl(handle_t *handle,
225 struct inode *inode, ...
231 {
..
252 ret = ocfs2_acl_set_mode(inode, di_bh,
253 handle,
mode);
168 static int ocfs2_acl_set_mode(struct inode *inode, struct buffer_head
...
170 {
183 if (handle == NULL) {
>>> BUG: inode lock not held in ex at this point <<<
184 handle = ocfs2_start_trans(OCFS2_SB(inode->i_sb),
185
OCFS2_INODE_UPDATE_CREDITS);
ocfs2_setattr.#1247 we unlock and at #1259 call posix_acl_chmod. When we
reach
ocfs2_acl_set_mode.#181 and do trans, the inode cluster lock is not held
in EX
mode (it should be). How this could have happended?
We are the lock master, were holding lock EX and have released it in
ocfs2_setattr.#1247. Note that there are no holders of this lock at
this point. Another node needs the lock in PR, and we downconvert from
EX to PR. So the inode lock is PR when do the trans in
ocfs2_acl_set_mode.#184. The trans stays in core (not flushed to disc).
Now another node want the lock in EX, downconvert thread gets kicked
(the one that tripped assert abovt), finds an unflushed trans but the
lock is not EX (it is PR). If the lock was at EX, it would have flushed
the trans ocfs2_ci_checkpointed -> ocfs2_start_checkpoint before
downconverting (to NULL) for the request.
ocfs2_setattr must not drop inode lock ex in this code path. If it
does, takes it again before the trans, say in ocfs2_set_acl, another
cluster node can get in between, execute another setattr, overwriting
the one in progress on this node, resulting in a mode acl size combo
that is a mix of the two.
Orabug: 20189959
Signed-off-by: Tariq Saeed <tariq.x.saeed@xxxxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Cc: Joseph Qi <joseph.qi@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 72f6fe1fe5a386225cdc30f025681830a63a117e
Author: Norton.Zhu <norton.zhu@xxxxxxxxxx>
Date: Fri Sep 4 15:44:28 2015 -0700
ocfs2: optimize error handling in dlm_request_join
Currently error handling in dlm_request_join is a little obscure, so
optimize it to promote readability.
If packet.code is invalid, reset it to JOIN_DISALLOW to keep it
meaningful. It only influences the log printing.
Signed-off-by: Norton.Zhu <norton.zhu@xxxxxxxxxx>
Cc: Srinivas Eeda <srinivas.eeda@xxxxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 928dda1f9433f024ac48c3d97ae683bf83dd0e42
Author: Yiwen Jiang <jiangyiwen@xxxxxxxxxx>
Date: Fri Sep 4 15:44:25 2015 -0700
ocfs2: fix a tiny case that inode can not removed
When running dirop_fileop_racer we found a case that inode
can not removed.
Two nodes, say Node A and Node B, mount the same ocfs2 volume. Create
two dirs /race/1/ and /race/2/ in the filesystem.
Node A Node B
rm -r /race/2/
mv /race/1/ /race/2/
call ocfs2_unlink(), get
the EX mode of /race/2/
wait for B unlock /race/2/
decrease i_nlink of /race/2/ to 0,
and add inode of /race/2/ into
orphan dir, unlock /race/2/
got EX mode of /race/2/. because
/race/1/ is dir, so inc i_nlink
of /race/2/ and update into disk,
unlock /race/2/
because i_nlink of /race/2/
is not zero, this inode will
always remain in orphan dir
This patch fixes this case by test whether i_nlink of new dir is zero.
Signed-off-by: Yiwen Jiang <jiangyiwen@xxxxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Cc: Joseph Qi <joseph.qi@xxxxxxxxxx>
Cc: Xue jiufei <xuejiufei@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 6ab855a99b735c227ad1e0deda636833f41c5b87
Author: WeiWei Wang <wangww631@xxxxxxxxxx>
Date: Fri Sep 4 15:44:23 2015 -0700
ocfs2: add ip_alloc_sem in direct IO to protect allocation changes
In ocfs2, ip_alloc_sem is used to protect allocation changes on the
node. In direct IO, we add ip_alloc_sem to protect date consistent
between direct-io and ocfs2_truncate_file race (buffer io use
ip_alloc_sem already). Although inode->i_mutex lock is used to avoid
concurrency of above situation, i think ip_alloc_sem is still needed
because protect allocation changes is significant.
Other filesystem like ext4 also uses rw_semaphore to protect data
consistent between get_block-vs-truncate race by other means, So
ip_alloc_sem in ocfs2 direct io is needed.
Signed-off-by: Weiwei Wang <wangww631@xxxxxxxxxx>
Signed-off-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 34237681e02ad1617138926f437d0a147249ec13
Author: Goldwyn Rodrigues <rgoldwyn@xxxxxxx>
Date: Fri Sep 4 15:44:20 2015 -0700
ocfs2: clear the rest of the buffers on error
In case a validation fails, clear the rest of the buffers and return the
error to the calling function.
This also facilitates bubbling up the error originating from ocfs2_error
to calling functions.
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 17a5b9ab32fe0464e7f556e28a2b49d2023fb533
Author: Goldwyn Rodrigues <rgoldwyn@xxxxxxx>
Date: Fri Sep 4 15:44:17 2015 -0700
ocfs2: acknowledge return value of ocfs2_error()
Caveat: This may return -EROFS for a read case, which seems wrong. This
is happening even without this patch series though. Should we convert
EROFS to EIO?
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7d0fb9148ab6f52006de7cce18860227594ba872
Author: Goldwyn Rodrigues <rgoldwyn@xxxxxxx>
Date: Fri Sep 4 15:44:11 2015 -0700
ocfs2: add errors=continue
OCFS2 is often used in high-availaibility systems. However, ocfs2
converts the filesystem to read-only at the drop of the hat. This may
not be necessary, since turning the filesystem read-only would affect
other running processes as well, decreasing availability.
This attempt is to add errors=continue, which would return the EIO to
the calling process and terminate furhter processing so that the
filesystem is not corrupted further. However, the filesystem is not
converted to read-only.
As a future plan, I intend to create a small utility or extend
fsck.ocfs2 to fix small errors such as in the inode. The input to the
utility such as the inode can come from the kernel logs so we don't have
to schedule a downtime for fixing small-enough errors.
The patch changes the ocfs2_error to return an error. The error
returned depends on the mount option set. If none is set, the default
is to turn the filesystem read-only.
Perhaps errors=continue is not the best option name. Historically it is
used for making an attempt to progress in the current process itself.
Should we call it errors=eio? or errors=killproc? Suggestions/Comments
welcome.
Sources are available at:
https://github.com/goldwynr/linux/tree/error-cont
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
Signed-off-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 513e2dae9422223072ed3887e91efebec2fc0a01
Author: Xue jiufei <xuejiufei@xxxxxxxxxx>
Date: Fri Sep 4 15:44:11 2015 -0700
ocfs2: flush inode data to disk and free inode when i_count becomes zero
Disk inode deletion may be heavily delayed when one node unlink a file
after the same dentry is freed on another node(say N1) because of memory
shrink but inode is left in memory. This inode can only be freed while
N1 doing the orphan scan work.
However, N1 may skip orphan scan for several times because other nodes
may do the work earlier. In our tests, it may take 1 hour on 4 nodes
cluster and it hurts the user experience. So we think the inode should
be freed after the data flushed to disk when i_count becomes zero to
avoid such circumstances.
Signed-off-by: Joyce.xue <xuejiufei@xxxxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 0f5e7b41f91814447defc34e915fc5d6e52266d9
Author: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Date: Fri Sep 4 15:44:08 2015 -0700
ocfs2: trusted xattr missing CAP_SYS_ADMIN check
The trusted extended attributes are only visible to the process which
hvae CAP_SYS_ADMIN capability but the check is missing in ocfs2
xattr_handler trusted list. The check is important because this will be
used for implementing mechanisms in the userspace for which other
ordinary processes should not have access to.
Signed-off-by: Sanidhya Kashyap <sanidhya.gatech@xxxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Cc: Taesoo kim <taesoo@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 807a7907114c7c703017ed7a96477a2eeb0d08e0
Author: jiangyiwen <jiangyiwen@xxxxxxxxxx>
Date: Fri Sep 4 15:44:06 2015 -0700
ocfs2: set filesytem read-only when ocfs2_delete_entry failed.
In ocfs2_rename, it will lead to an inode with two entried(old and new) if
ocfs2_delete_entry(old) failed. Thus, filesystem will be inconsistent.
The case is described below:
ocfs2_rename
-> ocfs2_start_trans
-> ocfs2_add_entry(new)
-> ocfs2_delete_entry(old)
-> __ocfs2_journal_access *failed* because of -ENOMEM
-> ocfs2_commit_trans
So filesystem should be set to read-only at the moment.
Signed-off-by: Yiwen Jiang <jiangyiwen@xxxxxxxxxx>
Cc: Joseph Qi <joseph.qi@xxxxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Reviewed-by: Mark Fasheh <mfasheh@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit f83c7b5e9fd633fe91128af116e6472a8c4d29a5
Author: Joseph Qi <joseph.qi@xxxxxxxxxx>
Date: Fri Sep 4 15:44:03 2015 -0700
ocfs2/dlm: use list_for_each_entry instead of list_for_each
Use list_for_each_entry instead of list_for_each to simplify code.
Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 0e3d9eafb86183a33efc42f0beff5afceebbafba
Author: Joseph Qi <joseph.qi@xxxxxxxxxx>
Date: Fri Sep 4 15:44:00 2015 -0700
ocfs2: remove unneeded code in dlm_register_domain_handlers
The last goto statement is unneeded, so remove it.
Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit cdd09f49cb271d95cbe69ef886459e0490040e98
Author: Joseph Qi <joseph.qi@xxxxxxxxxx>
Date: Fri Sep 4 15:43:57 2015 -0700
ocfs2: fix BUG when o2hb_register_callback fails
In dlm_register_domain_handlers, if o2hb_register_callback fails, it
will call dlm_unregister_domain_handlers to unregister. This will
trigger the BUG_ON in o2hb_unregister_callback because hc_magic is 0.
So we should call o2hb_setup_callback to initialize hc first.
Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 914a9b74295774b92409fbc3e0abcfa9185d9469
Author: Joseph Qi <joseph.qi@xxxxxxxxxx>
Date: Fri Sep 4 15:43:54 2015 -0700
ocfs2: remove unneeded code in ocfs2_dlm_init
status is already initialized and it will only be 0 or negatives in the
code flow. So remove the unneeded assignment after the lable 'local'.
Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3cb2ec43f63c42412a18620f1226eb4aa434a7a8
Author: Joseph Qi <joseph.qi@xxxxxxxxxx>
Date: Fri Sep 4 15:43:52 2015 -0700
ocfs2: adjust code to match locking/unlocking order
Unlocking order in ocfs2_unlink and ocfs2_rename mismatches the
corresponding locking order, although it won't cause issues, adjust the
code so that it looks more reasonable.
Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit bf59e6623a3a92a2bf428f2d6592c81aae6317e1
Author: Joseph Qi <joseph.qi@xxxxxxxxxx>
Date: Fri Sep 4 15:43:49 2015 -0700
ocfs2: clean up unused local variables in ocfs2_file_write_iter
Since commit 86b9c6f3f891 ("ocfs2: remove filesize checks for sync I/O
journal commit") removes filesize checks for sync I/O journal commit,
variables old_size and old_clusters are not actually used any more. So
clean them up.
Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 372a447c4bb8271d128def5f93e3365d5d06b4d8
Author: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
Date: Fri Sep 4 15:43:46 2015 -0700
ocfs2: do not log twice error messages
'o2hb_map_slot_data' and 'o2hb_populate_slot_data' are called from only
one place, in 'o2hb_region_dev_write'. Return value is checked and
'mlog_errno' is called to log a message if it is not 0.
So there is no need to call 'mlog_errno' directly within these functions.
This would result on logging the message twice.
Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit acf8fdbe6afb084666df347602fe4258f1cf5fd5
Author: Joseph Qi <joseph.qi@xxxxxxxxxx>
Date: Fri Sep 4 15:43:43 2015 -0700
ocfs2: do not BUG if buffer not uptodate in __ocfs2_journal_access
When storage network is unstable, it may trigger the BUG in
__ocfs2_journal_access because of buffer not uptodate. We can retry the
write in this case or return error instead of BUG.
Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Reported-by: Zhangguanghui <zhang.guanghui@xxxxxxx>
Tested-by: Zhangguanghui <zhang.guanghui@xxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit faaebf18f831c1546bdc65ff8f49d2a73e675ded
Author: Joseph Qi <joseph.qi@xxxxxxxxxx>
Date: Fri Sep 4 15:43:40 2015 -0700
ocfs2: fix several issues of append dio
1) Take rw EX lock in case of append dio.
2) Explicitly treat the error code -EIOCBQUEUED as normal.
3) Set di_bh to NULL after brelse if it may be used again later.
Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Cc: Yiwen Jiang <jiangyiwen@xxxxxxxxxx>
Cc: Weiwei Wang <wangww631@xxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 512f62acbdf1ee81ce4882c85835f5420a1c304c
Author: Joseph Qi <joseph.qi@xxxxxxxxxx>
Date: Fri Sep 4 15:43:37 2015 -0700
ocfs2: fix race between dio and recover orphan
During direct io the inode will be added to orphan first and then
deleted from orphan. There is a race window that the orphan entry will
be deleted twice and thus trigger the BUG when validating
OCFS2_DIO_ORPHANED_FL in ocfs2_del_inode_from_orphan.
ocfs2_direct_IO_write
...
ocfs2_add_inode_to_orphan
>>>>>>>> race window.
1) another node may rm the file and then down, this node
take care of orphan recovery and clear flag
OCFS2_DIO_ORPHANED_FL.
2) since rw lock is unlocked, it may race with another
orphan recovery and append dio.
ocfs2_del_inode_from_orphan
So take inode mutex lock when recovering orphans and make rw unlock at the
end of aio write in case of append dio.
Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx>
Reported-by: Yiwen Jiang <jiangyiwen@xxxxxxxxxx>
Cc: Weiwei Wang <wangww631@xxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 81cf09edc793688cbf53c3082802571e2018f3ac
Author: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Date: Fri Sep 4 15:43:35 2015 -0700
sh: use PFN_DOWN macro
Replace ((x) >> PAGE_SHIFT) with the predefined PFN_DOWN macro.
Signed-off-by: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Acked-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 917520e100e1db5e8dd546dd94fef070a31652a5
Author: SF Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 15:43:32 2015 -0700
ntfs: delete unnecessary checks before calling iput()
iput() tests whether its argument is NULL and then returns immediately.
Thus the test around the call is not needed.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Reviewed-by: Anton Altaparmakov <anton@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 35108d71383c5f4abc286430c0b5da79d22553f9
Author: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
Date: Fri Sep 4 15:43:29 2015 -0700
scripts/spelling.txt: add some typo-words
I wrote a small script to show word-pair from all linux spelling-typo
commits, and get following result by sort | uniq -c:
181 occured -> occurred
78 transfered -> transferred
67 recieved -> received
65 dependant -> dependent
58 wether -> whether
56 accomodate -> accommodate
54 occured -> occurred
51 recieve -> receive
47 cant -> can't
40 sucessfully -> successfully
...
Some of them are not in spelling.txt, this patch adds the most common
word-pairs into spelling.txt.
Signed-off-by: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e260fe01fa39eddb05bd8b70fad5bc9a129648f2
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Fri Sep 4 15:43:26 2015 -0700
scripts: decode_stacktrace: fix ARM architecture decoding
Fix the stack decoder for the ARM architecture.
An ARM stack is designed as :
[ 81.547704] [<c023eb04>] (bucket_find_contain) from [<c023ec88>]
(check_sync+0x40/0x4f8)
[ 81.559668] [<c023ec88>] (check_sync) from [<c023f8c4>]
(debug_dma_sync_sg_for_cpu+0x128/0x194)
[ 81.571583] [<c023f8c4>] (debug_dma_sync_sg_for_cpu) from [<c0327dec>]
(__videobuf_s
The current script doesn't expect the symbols to be bound by
parenthesis, and triggers the following errors :
awk: cmd. line:1: error: Unmatched ( or \(: / (check_sync$/
[ 81.547704] (bucket_find_contain) from (check_sync+0x40/0x4f8)
Fix it by chopping starting and ending parenthesis from the each symbol
name.
As a side note, this probably comes from the function
dump_backtrace_entry(), which is implemented differently for each
architecture. That makes a single decoding script a bit a challenge.
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Cc: Sasha Levin <sasha.levin@xxxxxxxxxx>
Cc: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Cc: Michal Marek <mmarek@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit fa70900e0984792cc45a9e51c28684c3287058c2
Author: Jean Delvare <jdelvare@xxxxxxx>
Date: Fri Sep 4 15:43:24 2015 -0700
scripts/Lindent: handle missing indent gracefully
If indent is not found, bail out immediately instead of spitting random
shell script error messages.
Signed-off-by: Jean Delvare <jdelvare@xxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit d40e1e6532efbb40f8fc1f5af093063a3d186754
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Fri Sep 4 15:43:21 2015 -0700
kerneldoc: Convert error messages to GNU error message format
Editors like emacs and vi recognize a number of error message formats.
The format used by the kerneldoc tool is not recognized by emacs.
Change the kerneldoc error message format to the GNU style such that the
emacs prev-error and next-error commands can be used to navigate through
kerneldoc error messages. For more information about the GNU error
message format, see also
https://www.gnu.org/prep/standards/html_node/Errors.html.
This patch has been generated via the following sed command:
sed -i.orig 's/Error(\${file}:\$.):/\${file}:\$.:
error:/g;s/Warning(\${file}:\$.):/\${file}:\$.:
warning:/g;s/Warning(\${file}):/\${file}:1:
warning:/g;s/Info(\${file}:\$.):/\${file}:\$.: info:/g' scripts/kernel-doc
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Cc: Johannes Berg <johannes.berg@xxxxxxxxx>
Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit c22b6ae69ee93c1ecc6821847a8542163fbf3e1a
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Fri Sep 4 15:43:18 2015 -0700
scripts/spelling.txt: spelling of uninitialized
I just did a spelling mistake of uninitialized and wrote that as
unintialized. Fortunately I noticed it in my final review.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 779a6ce877bf711323f998b3a7382cdbe7350d87
Author: Maninder Singh <maninder1.s@xxxxxxxxxxx>
Date: Fri Sep 4 15:43:15 2015 -0700
scripts/spelling.txt: add misspelled words for check
misspelled words for check:-
chcek
chck
cehck
I myself did these spell mistakes in changelog for patches, Thus
suggesting to add in spelling.txt, so that checkpatch.pl warns it
earlier. References:-
./arch/powerpc/kernel/exceptions-64e.S:456: . . . make sure you chcek
https://lkml.org/lkml/2015/6/25/289
./arch/x86/mm/pageattr.c:1368: * No need to cehck in that case
[akpm@xxxxxxxxxxxxxxxxxxxx: add whcih->which, whcih I always get wrong]
Signed-off-by: Maninder Singh <maninder1.s@xxxxxxxxxxx>
Acked-by: Kees Cook <keescook@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 4712e722f91457e60723b9cef6265a74290efba9
Author: Jan Kara <jack@xxxxxxxx>
Date: Fri Sep 4 15:43:12 2015 -0700
fsnotify: get rid of fsnotify_destroy_mark_locked()
fsnotify_destroy_mark_locked() is subtle to use because it temporarily
releases group->mark_mutex. To avoid future problems with this
function, split it into two.
fsnotify_detach_mark() is the part that needs group->mark_mutex and
fsnotify_free_mark() is the part that must be called outside of
group->mark_mutex. This way it's much clearer what's going on and we
also avoid some pointless acquisitions of group->mark_mutex.
Signed-off-by: Jan Kara <jack@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 925d1132a03e33cb8f29a0057300d023b4f1be23
Author: Jan Kara <jack@xxxxxxxx>
Date: Fri Sep 4 15:43:09 2015 -0700
fsnotify: remove mark->free_list
Free list is used when all marks on given inode / mount should be
destroyed when inode / mount is going away. However we can free all of
the marks without using a special list with some care.
Signed-off-by: Jan Kara <jack@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 1e39fc01836d02a11515aaabd97a0a938326bfe2
Author: Jan Kara <jack@xxxxxxxx>
Date: Fri Sep 4 15:43:06 2015 -0700
fsnotify: document mark locking
Signed-off-by: Jan Kara <jack@xxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 3c53e514212455db9923c203694a72007558b48f
Author: Jan Kara <jack@xxxxxxx>
Date: Fri Sep 4 15:43:03 2015 -0700
fsnotify: fix check in inotify fdinfo printing
A check in inotify_fdinfo() checking whether mark is valid was always
true due to a bug. Luckily we can never get to invalidated marks since
we hold mark_mutex and invalidated marks get removed from the group list
when they are invalidated under that mutex.
Anyway fix the check to make code more future proof.
Signed-off-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7c49b8616460ebb12ee56d80d1abfbc20b6f3cbb
Author: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Date: Fri Sep 4 15:43:01 2015 -0700
fs/notify: optimize inotify/fsnotify code for unwatched files
I have a _tiny_ microbenchmark that sits in a loop and writes single
bytes to a file. Writing one byte to a tmpfs file is around 2x slower
than reading one byte from a file, which is a _bit_ more than I expecte.
This is a dumb benchmark, but I think it's hard to deny that write() is
a hot path and we should avoid unnecessary overhead there.
I did a 'perf record' of 30-second samples of read and write. The top
item in a diffprofile is srcu_read_lock() from fsnotify(). There are
active inotify fd's from systemd, but nothing is actually listening to
the file or its part of the filesystem.
I *think* we can avoid taking the srcu_read_lock() for the common case
where there are no actual marks on the file. This means that there will
both be nothing to notify for *and* implies that there is no need for
clearing the ignore mask.
This patch gave a 13.1% speedup in writes/second on my test, which is an
improvement from the 10.8% that I saw with the last version.
Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Eric Paris <eparis@xxxxxxxxxx>
Cc: John McCutchan <john@xxxxxxxxxxxxxxxxx>
Cc: Robert Love <rlove@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 031e29b5877f31676739dc2f847d04c2c0732034
Author: Yuriy Kolerov <yuriy.kolerov@xxxxxxxxxxxx>
Date: Fri Sep 4 15:42:58 2015 -0700
drivers/video/concole: add negative dependency for VGA_CONSOLE on ARC
Architectures which support VGA console must define screen_info
structurture from "uapi/linux/screen_info.h". Otherwise undefined
symbol error occurs. Usually it's defined in "setup.c" for each
architecture.
If an architecture does not support VGA console (ARC's case) there are 2
ways: define a dummy instance of screen_info or add a negative
dependency for VGA_CONSOLE in to prevent selecting this option.
I've implemented the second way. However the best solution is to add
HAVE_VGA_CONSOLE option for targets which support VGA console. Then
turn off VGA_CONSOLE by default and add dependency to HAVE_VGA_CONSOLE.
But right now it's better to just add a negative dependency for ARC and
then consider how to collaborate about this issue with maintainers of
other architectures.
Signed-off-by: Yuriy Kolerov <yuriy.kolerov@xxxxxxxxxxxx>
Acked-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Jaya Kumar <jayalk@xxxxxxxxxxxx>
Cc: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 746bf6d64275be0c65b0631d8a72b16f1454cfa1
Author: Andy Lutomirski <luto@xxxxxxxxxx>
Date: Fri Sep 4 15:42:51 2015 -0700
capabilities: add a securebit to disable PR_CAP_AMBIENT_RAISE
Per Andrew Morgan's request, add a securebit to allow admins to disable
PR_CAP_AMBIENT_RAISE. This securebit will prevent processes from adding
capabilities to their ambient set.
For simplicity, this disables PR_CAP_AMBIENT_RAISE entirely rather than
just disabling setting previously cleared bits.
Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
Acked-by: Andrew G. Morgan <morgan@xxxxxxxxxx>
Acked-by: Serge Hallyn <serge.hallyn@xxxxxxxxxxxxx>
Cc: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Serge Hallyn <serge.hallyn@xxxxxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Cc: Aaron Jones <aaronmdjones@xxxxxxxxx>
Cc: Ted Ts'o <tytso@xxxxxxx>
Cc: Andrew G. Morgan <morgan@xxxxxxxxxx>
Cc: Mimi Zohar <zohar@xxxxxxxxxxxxxxxxxx>
Cc: Austin S Hemmelgarn <ahferroin7@xxxxxxxxx>
Cc: Markku Savela <msa@xxxxxxxxxxx>
Cc: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx>
Cc: Michael Kerrisk <mtk.manpages@xxxxxxxxx>
Cc: James Morris <james.l.morris@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 32ae976ed3b5ba39c9208ace41bcdf4157d21db3
Author: Andy Lutomirski <luto@xxxxxxxxxx>
Date: Fri Sep 4 15:42:48 2015 -0700
selftests/capabilities: Add tests for capability evolution
This test focuses on ambient capabilities. It requires either root or
the ability to create user namespaces. Some of the test cases will be
skipped for nonroot users.
Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
Acked-by: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx> # Original author
Cc: Serge E. Hallyn <serge.hallyn@xxxxxxxxxx>
Cc: James Morris <james.l.morris@xxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 58319057b7847667f0c9585b9de0e8932b0fdb08
Author: Andy Lutomirski <luto@xxxxxxxxxx>
Date: Fri Sep 4 15:42:45 2015 -0700
capabilities: ambient capabilities
Credit where credit is due: this idea comes from Christoph Lameter with
a lot of valuable input from Serge Hallyn. This patch is heavily based
on Christoph's patch.
===== The status quo =====
On Linux, there are a number of capabilities defined by the kernel. To
perform various privileged tasks, processes can wield capabilities that
they hold.
Each task has four capability masks: effective (pE), permitted (pP),
inheritable (pI), and a bounding set (X). When the kernel checks for a
capability, it checks pE. The other capability masks serve to modify
what capabilities can be in pE.
Any task can remove capabilities from pE, pP, or pI at any time. If a
task has a capability in pP, it can add that capability to pE and/or pI.
If a task has CAP_SETPCAP, then it can add any capability to pI, and it
can remove capabilities from X.
Tasks are not the only things that can have capabilities; files can also
have capabilities. A file can have no capabilty information at all [1].
If a file has capability information, then it has a permitted mask (fP)
and an inheritable mask (fI) as well as a single effective bit (fE) [2].
File capabilities modify the capabilities of tasks that execve(2) them.
A task that successfully calls execve has its capabilities modified for
the file ultimately being excecuted (i.e. the binary itself if that
binary is ELF or for the interpreter if the binary is a script.) [3] In
the capability evolution rules, for each mask Z, pZ represents the old
value and pZ' represents the new value. The rules are:
pP' = (X & fP) | (pI & fI)
pI' = pI
pE' = (fE ? pP' : 0)
X is unchanged
For setuid binaries, fP, fI, and fE are modified by a moderately
complicated set of rules that emulate POSIX behavior. Similarly, if
euid == 0 or ruid == 0, then fP, fI, and fE are modified differently
(primary, fP and fI usually end up being the full set). For nonroot
users executing binaries with neither setuid nor file caps, fI and fP
are empty and fE is false.
As an extra complication, if you execute a process as nonroot and fE is
set, then the "secure exec" rules are in effect: AT_SECURE gets set,
LD_PRELOAD doesn't work, etc.
This is rather messy. We've learned that making any changes is
dangerous, though: if a new kernel version allows an unprivileged
program to change its security state in a way that persists cross
execution of a setuid program or a program with file caps, this
persistent state is surprisingly likely to allow setuid or file-capped
programs to be exploited for privilege escalation.
===== The problem =====
Capability inheritance is basically useless.
If you aren't root and you execute an ordinary binary, fI is zero, so
your capabilities have no effect whatsoever on pP'. This means that you
can't usefully execute a helper process or a shell command with elevated
capabilities if you aren't root.
On current kernels, you can sort of work around this by setting fI to
the full set for most or all non-setuid executable files. This causes
pP' = pI for nonroot, and inheritance works. No one does this because
it's a PITA and it isn't even supported on most filesystems.
If you try this, you'll discover that every nonroot program ends up with
secure exec rules, breaking many things.
This is a problem that has bitten many people who have tried to use
capabilities for anything useful.
===== The proposed change =====
This patch adds a fifth capability mask called the ambient mask (pA).
pA does what most people expect pI to do.
pA obeys the invariant that no bit can ever be set in pA if it is not
set in both pP and pI. Dropping a bit from pP or pI drops that bit from
pA. This ensures that existing programs that try to drop capabilities
still do so, with a complication. Because capability inheritance is so
broken, setting KEEPCAPS, using setresuid to switch to nonroot uids, and
then calling execve effectively drops capabilities. Therefore,
setresuid from root to nonroot conditionally clears pA unless
SECBIT_NO_SETUID_FIXUP is set. Processes that don't like this can
re-add bits to pA afterwards.
The capability evolution rules are changed:
pA' = (file caps or setuid or setgid ? 0 : pA)
pP' = (X & fP) | (pI & fI) | pA'
pI' = pI
pE' = (fE ? pP' : pA')
X is unchanged
If you are nonroot but you have a capability, you can add it to pA. If
you do so, your children get that capability in pA, pP, and pE. For
example, you can set pA = CAP_NET_BIND_SERVICE, and your children can
automatically bind low-numbered ports. Hallelujah!
Unprivileged users can create user namespaces, map themselves to a
nonzero uid, and create both privileged (relative to their namespace)
and unprivileged process trees. This is currently more or less
impossible. Hallelujah!
You cannot use pA to try to subvert a setuid, setgid, or file-capped
program: if you execute any such program, pA gets cleared and the
resulting evolution rules are unchanged by this patch.
Users with nonzero pA are unlikely to unintentionally leak that
capability. If they run programs that try to drop privileges, dropping
privileges will still work.
It's worth noting that the degree of paranoia in this patch could
possibly be reduced without causing serious problems. Specifically, if
we allowed pA to persist across executing non-pA-aware setuid binaries
and across setresuid, then, naively, the only capabilities that could
leak as a result would be the capabilities in pA, and any attacker
*already* has those capabilities. This would make me nervous, though --
setuid binaries that tried to privilege-separate might fail to do so,
and putting CAP_DAC_READ_SEARCH or CAP_DAC_OVERRIDE into pA could have
unexpected side effects. (Whether these unexpected side effects would
be exploitable is an open question.) I've therefore taken the more
paranoid route. We can revisit this later.
An alternative would be to require PR_SET_NO_NEW_PRIVS before setting
ambient capabilities. I think that this would be annoying and would
make granting otherwise unprivileged users minor ambient capabilities
(CAP_NET_BIND_SERVICE or CAP_NET_RAW for example) much less useful than
it is with this patch.
===== Footnotes =====
[1] Files that are missing the "security.capability" xattr or that have
unrecognized values for that xattr end up with has_cap set to false.
The code that does that appears to be complicated for no good reason.
[2] The libcap capability mask parsers and formatters are dangerously
misleading and the documentation is flat-out wrong. fE is *not* a mask;
it's a single bit. This has probably confused every single person who
has tried to use file capabilities.
[3] Linux very confusingly processes both the script and the interpreter
if applicable, for reasons that elude me. The results from thinking
about a script's file capabilities and/or setuid bits are mostly
discarded.
Preliminary userspace code is here, but it needs updating:
https://git.kernel.org/cgit/linux/kernel/git/luto/util-linux-playground.git/commit/?h=cap_ambient&id=7f5afbd175d2
Here is a test program that can be used to verify the functionality
(from Christoph):
/*
* Test program for the ambient capabilities. This program spawns a shell
* that allows running processes with a defined set of capabilities.
*
* (C) 2015 Christoph Lameter <cl@xxxxxxxxx>
* Released under: GPL v3 or later.
*
*
* Compile using:
*
* gcc -o ambient_test ambient_test.o -lcap-ng
*
* This program must have the following capabilities to run properly:
* Permissions for CAP_NET_RAW, CAP_NET_ADMIN, CAP_SYS_NICE
*
* A command to equip the binary with the right caps is:
*
* setcap cap_net_raw,cap_net_admin,cap_sys_nice+p ambient_test
*
*
* To get a shell with additional caps that can be inherited by other
processes:
*
* ./ambient_test /bin/bash
*
*
* Verifying that it works:
*
* From the bash spawed by ambient_test run
*
* cat /proc/$$/status
*
* and have a look at the capabilities.
*/
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <cap-ng.h>
#include <sys/prctl.h>
#include <linux/capability.h>
/*
* Definitions from the kernel header files. These are going to be removed
* when the /usr/include files have these defined.
*/
#define PR_CAP_AMBIENT 47
#define PR_CAP_AMBIENT_IS_SET 1
#define PR_CAP_AMBIENT_RAISE 2
#define PR_CAP_AMBIENT_LOWER 3
#define PR_CAP_AMBIENT_CLEAR_ALL 4
static void set_ambient_cap(int cap)
{
int rc;
capng_get_caps_process();
rc = capng_update(CAPNG_ADD, CAPNG_INHERITABLE, cap);
if (rc) {
printf("Cannot add inheritable cap\n");
exit(2);
}
capng_apply(CAPNG_SELECT_CAPS);
/* Note the two 0s at the end. Kernel checks for these */
if (prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_RAISE, cap, 0, 0)) {
perror("Cannot set cap");
exit(1);
}
}
int main(int argc, char **argv)
{
int rc;
set_ambient_cap(CAP_NET_RAW);
set_ambient_cap(CAP_NET_ADMIN);
set_ambient_cap(CAP_SYS_NICE);
printf("Ambient_test forking shell\n");
if (execv(argv[1], argv + 1))
perror("Cannot exec");
return 0;
}
Signed-off-by: Christoph Lameter <cl@xxxxxxxxx> # Original author
Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
Acked-by: Serge E. Hallyn <serge.hallyn@xxxxxxxxxx>
Acked-by: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Cc: Aaron Jones <aaronmdjones@xxxxxxxxx>
Cc: Ted Ts'o <tytso@xxxxxxx>
Cc: Andrew G. Morgan <morgan@xxxxxxxxxx>
Cc: Mimi Zohar <zohar@xxxxxxxxxxxxxxxxxx>
Cc: Austin S Hemmelgarn <ahferroin7@xxxxxxxxx>
Cc: Markku Savela <msa@xxxxxxxxxxx>
Cc: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx>
Cc: Michael Kerrisk <mtk.manpages@xxxxxxxxx>
Cc: James Morris <james.l.morris@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit e9f069868d60550c4b46f084ac9276a57c1b4711
Author: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 15:42:42 2015 -0700
kernel/kthread.c:kthread_create_on_node(): clarify documentation
- Make it clear that the `node' arg refers to memory allocations only:
kthread_create_on_node() does not pin the new thread to that node's
CPUs.
- Encourage the use of NUMA_NO_NODE.
[nzimmer@xxxxxxx: use NUMA_NO_NODE in kthread_create() also]
Cc: Nathan Zimmer <nzimmer@xxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Eric Dumazet <edumazet@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 04697858d89e4bf2650364f8d6956e2554e8ef88
Author: Yinghai Lu <yinghai@xxxxxxxxxx>
Date: Fri Sep 4 15:42:39 2015 -0700
mm: check if section present during memory block registering
Tony Luck found on his setup, if memory block size 512M will cause crash
during booting.
BUG: unable to handle kernel paging request at ffffea0074000020
IP: get_nid_for_pfn+0x17/0x40
PGD 128ffcb067 PUD 128ffc9067 PMD 0
Oops: 0000 [#1] SMP
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.2.0-rc8 #1
...
Call Trace:
? register_mem_sect_under_node+0x66/0xe0
register_one_node+0x17b/0x240
? pci_iommu_alloc+0x6e/0x6e
topology_init+0x3c/0x95
do_one_initcall+0xcd/0x1f0
The system has non continuous RAM address:
BIOS-e820: [mem 0x0000001300000000-0x0000001cffffffff] usable
BIOS-e820: [mem 0x0000001d70000000-0x0000001ec7ffefff] usable
BIOS-e820: [mem 0x0000001f00000000-0x0000002bffffffff] usable
BIOS-e820: [mem 0x0000002c18000000-0x0000002d6fffefff] usable
BIOS-e820: [mem 0x0000002e00000000-0x00000039ffffffff] usable
So there are start sections in memory block not present. For example:
memory block : [0x2c18000000, 0x2c20000000) 512M
first three sections are not present.
The current register_mem_sect_under_node() assume first section is
present, but memory block section number range [start_section_nr,
end_section_nr] would include not present section.
For arch that support vmemmap, we don't setup memmap for struct page
area within not present sections area.
So skip the pfn range that belong to absent section.
[akpm@xxxxxxxxxxxxxxxxxxxx: simplification]
[rientjes@xxxxxxxxxx: more simplification]
Fixes: bdee237c0343 ("x86: mm: Use 2GB memory block size on large memory
x86-64 systems")
Fixes: 982792c782ef ("x86, mm: probe memory block size for generic x86
64bit")
Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx>
Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx>
Reported-by: Tony Luck <tony.luck@xxxxxxxxx>
Tested-by: Tony Luck <tony.luck@xxxxxxxxx>
Cc: Greg KH <greg@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Tested-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> [3.15+]
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit aa1057b3dec478b20c77bad07442318ae36d893c
Author: Ryan Ding <ryan.ding@xxxxxxxxxx>
Date: Fri Sep 4 15:42:36 2015 -0700
ocfs2: direct write will call ocfs2_rw_unlock() twice when doing aio+dio
ocfs2_file_write_iter() is usng the wrong return value ('written'). This
will cause ocfs2_rw_unlock() be called both in write_iter & end_io,
triggering a BUG_ON.
This issue was introduced by commit 7da839c47589 ("ocfs2: use
__generic_file_write_iter()").
Orabug: 21612107
Fixes: 7da839c47589 ("ocfs2: use __generic_file_write_iter()")
Signed-off-by: Ryan Ding <ryan.ding@xxxxxxxxxx>
Reviewed-by: Junxiao Bi <junxiao.bi@xxxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Mark Fasheh <mfasheh@xxxxxxxx>
Cc: Joel Becker <jlbec@xxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 7f36e3e56db1ae75d1e157011b3cb2e0957f0a7e
Author: Tang Chen <tangchen@xxxxxxxxxxxxxx>
Date: Fri Sep 4 15:42:32 2015 -0700
memory-hotplug: add hot-added memory ranges to memblock before allocate
node_data for a node.
Commit f9126ab9241f ("memory-hotplug: fix wrong edge when hot add a new
node") hot-added memory range to memblock, after creating pgdat for new
node.
But there is a problem:
add_memory()
|--> hotadd_new_pgdat()
|--> free_area_init_node()
|--> get_pfn_range_for_nid()
|--> find start_pfn and end_pfn in memblock
|--> ......
|--> memblock_add_node(start, size, nid) -------- Here, just too
late.
get_pfn_range_for_nid() will find that start_pfn and end_pfn are both 0.
As a result, when adding memory, dmesg will give the following wrong
message.
Initmem setup node 5 [mem 0x0000000000000000-0xffffffffffffffff]
On node 5 totalpages: 0
Built 5 zonelists in Node order, mobility grouping on. Total pages:
32588823
Policy zone: Normal
init_memory_mapping: [mem 0x60000000000-0x607ffffffff]
The solution is simple, just add the memory range to memblock a little
earlier, before hotadd_new_pgdat().
[akpm@xxxxxxxxxxxxxxxxxxxx: coding-style fixes]
Signed-off-by: Tang Chen <tangchen@xxxxxxxxxxxxxx>
Cc: Xishi Qiu <qiuxishi@xxxxxxxxxx>
Cc: Yasuaki Ishimatsu <isimatu.yasuaki@xxxxxxxxxxxxxx>
Cc: Kamezawa Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
Cc: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Cc: Gu Zheng <guz.fnst@xxxxxxxxxxxxxx>
Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Cc: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
Cc: David Rientjes <rientjes@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> [4.2.x]
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit 254a0f4135482dc02701562a38e10675a48c8ddf
Author: Rabin Vincent <rabin@xxxxxx>
Date: Fri May 22 20:58:49 2015 +0200
CRISv10: delete unused lib/dmacopy.c
This file is never built.
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jespern@xxxxxxxx>
commit c2ffc68afc0fce16923a54b2dad4d544463b9e0b
Author: Rabin Vincent <rabin@xxxxxx>
Date: Fri May 22 20:58:48 2015 +0200
CRISv10: delete unused lib/old_checksum.c
This file is never built.
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 7f0144e7779a8c62e3177301d4b2179432ce5460
Author: Rabin Vincent <rabin@xxxxxx>
Date: Fri Feb 20 19:35:16 2015 +0100
CRIS: fix switch_mm() lockdep splat
With lockdep support implemented on CRISv32, we get the following splat.
switch_mm() can be called both from the scheduler() (with interrupts
disabled) and from flush_old_exec (via activate_mm()), with interrupts
enabled. Fix it by disabling interrupts in activate_mm(), similar to
powerpc and hexagon.
t======================================================
[ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ]
3.19.0-08802-g20bc9f1-dirty #323 Not tainted
------------------------------------------------------
init/1 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
(mmu_context_lock){+.+...}, at: [<c0009290>] switch_mm+0x22/0xc6
and this task is already holding:
(&rq->lock){-.-.-.}, at: [<c01a0756>] __schedule+0x5e/0x648
which would create a new lock dependency:
(&rq->lock){-.-.-.} -> (mmu_context_lock){+.+...}
but this new dependency connects a HARDIRQ-irq-safe lock:
(&rq->lock){-.-.-.}
... which became HARDIRQ-irq-safe at:
[<c002b03c>] scheduler_tick+0x28/0x5e
[<c0007c6c>] timer_interrupt+0x4e/0x6a
[<c0043ac4>] handle_irq_event_percpu+0x54/0x13c
[<c004343c>] generic_handle_irq+0x2a/0x36
to a HARDIRQ-irq-unsafe lock:
(mmu_context_lock){+.+...}
... which became HARDIRQ-irq-unsafe at:
... [<c0039e60>] __lock_acquire+0x8f8/0x1d9c
[<c0009290>] switch_mm+0x22/0xc6
[<c009c260>] flush_old_exec+0x500/0x5d4
[<c00da4c6>] load_elf_phdrs+0x7a/0x84
[<c00dbdb0>] load_elf_binary+0x21c/0x13b4
[<c009cdb6>] do_execve+0x22/0x2c
[<c001dcf2>] ____call_usermodehelper+0x0/0x154
[<c000581e>] ret_from_kernel_thread+0xe/0x14
other info that might help us debug this:
Possible interrupt unsafe locking scenario:
CPU0 CPU1
---- ----
lock(mmu_context_lock);
local_irq_disable();
lock(&rq->lock);
lock(mmu_context_lock);
<Interrupt>
lock(&rq->lock);
*** DEADLOCK ***
1 lock held by init/1:
#0: (&rq->lock){-.-.-.}, at: [<c01a0756>] __schedule+0x5e/0x648
Call Trace:
[<c019fe9e>] printk+0x0/0x4e
[<c00368f8>] print_shortest_lock_dependencies+0x0/0x15c
[<c0048628>] print_stack_trace+0x0/0x88
[<c0038912>] __lock_is_held+0x3e/0x5e
[<c003b894>] lock_acquire+0x8a/0xcc
[<c01a50c4>] _raw_spin_lock+0x44/0x7a
[<c0009290>] switch_mm+0x22/0xc6
[<c01a06f8>] __schedule+0x0/0x648
[<c01a0d76>] schedule+0x36/0x7c
[<c0037d04>] trace_hardirqs_on+0x0/0x1e
[<c0004e18>] do_work_pending+0x30/0xd4
[<c000591a>] _work_pending+0xe/0x12
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 94c5c115c1f7d347d5ec7f32a090f8643dd42525
Author: Rabin Vincent <rabin@xxxxxx>
Date: Thu May 14 18:19:37 2015 +0200
CRISv32: enable LOCKDEP_SUPPORT
Now that we have stack tracing and irq flags tracing support,
we can also enable lockdep support
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit aa6f4d2b6547a9949d87c9b09a872a7015366588
Author: Rabin Vincent <rabin@xxxxxx>
Date: Thu May 14 18:19:03 2015 +0200
CRIS: add STACKTRACE_SUPPORT
Add stacktrace support, which is required for lockdep and tracing. The
stack tracing simply looks at all kernel text symbols found on the
stack, similar to the trap stack dumping code, which can also be
converted to use this.
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 3fffa23ee0a348aef1b597b67626d4724667143b
Author: Rabin Vincent <rabin@xxxxxx>
Date: Fri Feb 20 18:57:37 2015 +0100
CRISv32: annotate irq enable in idle loop
Use a call to local_irq_enable() instead of incline asm so that the
irqsoff latency tracer knows that interrupts are enabled here.
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 444e0c2881bcc70db6833d9c653c6ced36813d3b
Author: Rabin Vincent <rabin@xxxxxx>
Date: Thu Feb 19 21:36:55 2015 +0100
CRISv32: add support for irqflags tracing
Add support irqflags tracing, which is required for things like lockdep
and ftrace.
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 20ae24739968ae7f94d0e73215d444042f91df78
Author: Rabin Vincent <rabin@xxxxxx>
Date: Sat Feb 28 23:59:50 2015 +0100
CRIS: UAPI: use generic types.h
CRIS' types.h is functionally identical to the asm-generic version.
Effective diff:
+#ifndef _ASM_GENERIC_TYPES_H
+#define _ASM_GENERIC_TYPES_H
+
#include <asm-generic/int-ll64.h>
+
+#endif
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 258a9ff66c30c830f6e2f06856878be4d4cc81af
Author: Rabin Vincent <rabin@xxxxxx>
Date: Sat Feb 28 23:55:46 2015 +0100
CRIS: UAPI: use generic shmbuf.h
CRIS' shmbuf.h is equivalent to the asm-generic verison.
Effective diff:
-#ifndef _CRIS_SHMBUF_H
-#define _CRIS_SHMBUF_H
+#ifndef __ASM_GENERIC_SHMBUF_H
+#define __ASM_GENERIC_SHMBUF_H
+
+#include <asm/bitsperlong.h>
struct ipc64_perm shm_perm;
size_t shm_segsz;
__kernel_time_t shm_atime;
+#if __BITS_PER_LONG != 64
unsigned long __unused1;
+#endif
__kernel_time_t shm_dtime;
+#if __BITS_PER_LONG != 64
unsigned long __unused2;
+#endif
__kernel_time_t shm_ctime;
+#if __BITS_PER_LONG != 64
unsigned long __unused3;
+#endif
__kernel_pid_t shm_cpid;
__kernel_pid_t shm_lpid;
- unsigned long shm_nattch;
- unsigned long __unused4;
- unsigned long __unused5;
+ __kernel_ulong_t shm_nattch;
+ __kernel_ulong_t __unused4;
+ __kernel_ulong_t __unused5;
};
struct shminfo64 {
- unsigned long shmmax;
- unsigned long shmmin;
- unsigned long shmmni;
- unsigned long shmseg;
- unsigned long shmall;
- unsigned long __unused1;
- unsigned long __unused2;
- unsigned long __unused3;
- unsigned long __unused4;
+ __kernel_ulong_t shmmax;
+ __kernel_ulong_t shmmin;
+ __kernel_ulong_t shmmni;
+ __kernel_ulong_t shmseg;
+ __kernel_ulong_t shmall;
+ __kernel_ulong_t __unused1;
+ __kernel_ulong_t __unused2;
+ __kernel_ulong_t __unused3;
+ __kernel_ulong_t __unused4;
};
#endif
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 74d94adb351161cc4027f94e878ac4e80adcfdc9
Author: Rabin Vincent <rabin@xxxxxx>
Date: Sat Feb 28 23:53:37 2015 +0100
CRIS: UAPI: use generic msgbuf.h
CRIS' msgbuf.h is equivalent to the asm-generic version.
Effective diff:
-#ifndef _CRIS_MSGBUF_H
-#define _CRIS_MSGBUF_H
-
-
+#ifndef __ASM_GENERIC_MSGBUF_H
+#define __ASM_GENERIC_MSGBUF_H
+#include <asm/bitsperlong.h>
struct msqid64_ds {
struct ipc64_perm msg_perm;
__kernel_time_t msg_stime;
+#if __BITS_PER_LONG != 64
unsigned long __unused1;
+#endif
__kernel_time_t msg_rtime;
+#if __BITS_PER_LONG != 64
unsigned long __unused2;
+#endif
__kernel_time_t msg_ctime;
+#if __BITS_PER_LONG != 64
unsigned long __unused3;
- unsigned long msg_cbytes;
- unsigned long msg_qnum;
- unsigned long msg_qbytes;
+#endif
+ __kernel_ulong_t msg_cbytes;
+ __kernel_ulong_t msg_qnum;
+ __kernel_ulong_t msg_qbytes;
__kernel_pid_t msg_lspid;
__kernel_pid_t msg_lrpid;
- unsigned long __unused4;
- unsigned long __unused5;
+ __kernel_ulong_t __unused4;
+ __kernel_ulong_t __unused5;
};
#endif
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 45266922510fcd1e55df483f41be8debd5df9de8
Author: Rabin Vincent <rabin@xxxxxx>
Date: Sat Feb 28 23:47:37 2015 +0100
CRIS: UAPI: use generic socket.h
CRIS' socket.h is equivalent to the asm-generic version.
Effective diff:
-#ifndef _ASM_SOCKET_H
-#define _ASM_SOCKET_H
-
-
+#ifndef __ASM_GENERIC_SOCKET_H
+#define __ASM_GENERIC_SOCKET_H
#include <asm/sockios.h>
#define SO_LINGER 13
#define SO_BSDCOMPAT 14
#define SO_REUSEPORT 15
+#ifndef SO_PASSCRED
#define SO_PASSCRED 16
#define SO_PEERCRED 17
#define SO_RCVLOWAT 18
#define SO_SNDLOWAT 19
#define SO_RCVTIMEO 20
#define SO_SNDTIMEO 21
+#endif
#define SO_SECURITY_AUTHENTICATION 22
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 53789d25a0603e5c836e460c758867d2071eb135
Author: Rabin Vincent <rabin@xxxxxx>
Date: Sat Feb 28 23:43:31 2015 +0100
CRIS: UAPI: use generic sembuf.h
CRIS's sembuf.h is equivalent to the asm-generic version.
Effective diff:
-#ifndef _CRIS_SEMBUF_H
-#define _CRIS_SEMBUF_H
+#ifndef __ASM_GENERIC_SEMBUF_H
+#define __ASM_GENERIC_SEMBUF_H
+#include <asm/bitsperlong.h>
struct semid64_ds {
struct ipc64_perm sem_perm;
__kernel_time_t sem_otime;
+#if __BITS_PER_LONG != 64
unsigned long __unused1;
+#endif
__kernel_time_t sem_ctime;
+#if __BITS_PER_LONG != 64
unsigned long __unused2;
+#endif
unsigned long sem_nsems;
unsigned long __unused3;
unsigned long __unused4;
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit c823b970b632a86e4f01f3eae9c0860350b70c3c
Author: Rabin Vincent <rabin@xxxxxx>
Date: Sat Feb 28 23:21:25 2015 +0100
CRIS: UAPI: use generic sockios.h
CRIS' sockios.h is equivalent to the asm-generic version.
Effective diff:
-#ifndef __ARCH_CRIS_SOCKIOS__
-#define __ARCH_CRIS_SOCKIOS__
+#ifndef __ASM_GENERIC_SOCKIOS_H
+#define __ASM_GENERIC_SOCKIOS_H
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 889d74a4d40f60427d0482bc271bfc5660a1157b
Author: Rabin Vincent <rabin@xxxxxx>
Date: Sat Feb 28 22:59:42 2015 +0100
CRIS: UAPI: use generic auxvec.h
CRIS's auxvec.h is empty just like the asm-generic version.
Effective diff:
-#ifndef __ASMCRIS_AUXVEC_H
-#define __ASMCRIS_AUXVEC_H
+#ifndef __ASM_GENERIC_AUXVEC_H
+#define __ASM_GENERIC_AUXVEC_H
+
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 0c02fa2f4ef47334387aeb3aef21ccdab6513459
Author: Rabin Vincent <rabin@xxxxxx>
Date: Sat Feb 28 23:31:10 2015 +0100
CRIS: UAPI: use generic headers via Kbuild
Use Kbuild magic to include the generic headers.
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit f377ea88b862bf7151be96d276f4cb740f8e1c41
Merge: 51e771c 73bf1b7
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 15:49:32 2015 -0700
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm updates from Dave Airlie:
"This is the main pull request for the drm for 4.3. Nouveau is
probably the biggest amount of changes in here, since it missed 4.2.
Highlights below, along with the usual bunch of fixes.
All stuff outside drm should have applicable acks.
Highlights:
- new drivers:
freescale dcu kms driver
- core:
more atomic fixes
disable some dri1 interfaces on kms drivers
drop fb panic handling, this was just getting more broken, as
more locking was required.
new core fbdev Kconfig support - instead of each driver
enable/disabling it
struct_mutex cleanups
- panel:
more new panels
cleanup Kconfig
- i915:
Skylake support enabled by default
legacy modesetting using atomic infrastructure
Skylake fixes
GEN9 workarounds
- amdgpu:
Fiji support
CGS support for amdgpu
Initial GPU scheduler - off by default
Lots of bug fixes and optimisations.
- radeon:
DP fixes
misc fixes
- amdkfd:
Add Carrizo support for amdkfd using amdgpu.
- nouveau:
long pending cleanup to complete driver,
fully bisectable which makes it larger,
perfmon work
more reclocking improvements
maxwell displayport fixes
- vmwgfx:
new DX device support, supports OpenGL 3.3
screen targets support
- mgag200:
G200eW support
G200e new revision support
- msm:
dragonboard 410c support, msm8x94 support, msm8x74v1 support
yuv format support
dma plane support
mdp5 rotation
initial hdcp
- sti:
atomic support
- exynos:
lots of cleanups
atomic modesetting/pageflipping support
render node support
- tegra:
tegra210 support (dc, dsi, dp/hdmi)
dpms with atomic modesetting support
- atmel:
support for 3 more atmel SoCs
new input formats, PRIME support.
- dwhdmi:
preparing to add audio support
- rockchip:
yuv plane support"
* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (1369
commits)
drm/amdgpu: rename gmc_v8_0_init_compute_vmid
drm/amdgpu: fix vce3 instance handling
drm/amdgpu: remove ib test for the second VCE Ring
drm/amdgpu: properly enable VM fault interrupts
drm/amdgpu: fix warning in scheduler
drm/amdgpu: fix buffer placement under memory pressure
drm/amdgpu/cz: fix cz_dpm_update_low_memory_pstate logic
drm/amdgpu: fix typo in dce11 watermark setup
drm/amdgpu: fix typo in dce10 watermark setup
drm/amdgpu: use top down allocation for non-CPU accessible vram
drm/amdgpu: be explicit about cpu vram access for driver BOs (v2)
drm/amdgpu: set MEC doorbell range for Fiji
drm/amdgpu: implement burst NOP for SDMA
drm/amdgpu: add insert_nop ring func and default implementation
drm/amdgpu: add amdgpu_get_sdma_instance helper function
drm/amdgpu: add AMDGPU_MAX_SDMA_INSTANCES
drm/amdgpu: add burst_nop flag for sdma
drm/amdgpu: add count field for the SDMA NOP packet v2
drm/amdgpu: use PT for VM sync on unmap
drm/amdgpu: make wait_event uninterruptible in push_job
...
commit 2493d3e28a22087116158249d79410fd355d1e83
Author: Rabin Vincent <rabin@xxxxxx>
Date: Fri Mar 27 22:35:11 2015 +0100
CRIS: UAPI: fix elf.h export
CRIS userspace (uClibc for one) expects asm/elf.h to be exported but
this header appears to have gone missing at some point. Move it to
uapi/ and export it.
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 3a79a075375cebb672ddaea7896378afa0203e87
Author: Rabin Vincent <rabin@xxxxxx>
Date: Thu May 14 17:00:58 2015 +0200
CRIS: don't make asm/elf.h depend on asm/user.h
We're going to export asm/elf.h; remove its dependencies on the
non-exported asm/user.h and the unused asm/system.h include.
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 835e4177284e1574033dea47d4bb8e55c21b6345
Author: Rabin Vincent <rabin@xxxxxx>
Date: Fri Mar 27 22:32:27 2015 +0100
CRIS: UAPI: fix ptrace.h
The exported ptrace.h header on CRIS references an "arch" directory
which does not exist. Fix this by having the variants in the same
directory and including them conditionally, similar to other
architectures.
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 4b86715748da506b176b5ec50c041b335c9d1769
Author: Jesper Nilsson <jespern@xxxxxxxx>
Date: Wed Jun 3 13:04:23 2015 +0200
CRISv32: Squash compile warnings for axisflashmap
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 939b83fb03f275016cd72a0f81f49bf8e63c2a14
Author: Jesper Nilsson <jespern@xxxxxxxx>
Date: Wed Jun 3 12:42:01 2015 +0200
CRISv32: Add GPIO driver to the default configs
Fix a number of small issues visible when GPIO is enabled:
- Correct missing default for !ETRAXFS in Kconfig
- Remove information on number of bits for some Kconfigs
related to the GPIO, they are different in ETRAX FS and ARTPEC-3
- Fix compile warning in ARTPEC-3 GPIO driver
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit 94230178678cb7e0f82ff2c161ac84742f79a2e7
Author: Jesper Nilsson <jespern@xxxxxxxx>
Date: Wed Jun 3 12:25:51 2015 +0200
CRISv32: ETRAX FS: Squash warnings in pinmux driver
Squash the followng warnings
arch/cris/arch-v32/mach-fs/pinmux.c: In function
'crisv32_pinmux_alloc_fixed':
arch/cris/arch-v32/mach-fs/pinmux.c:104:2: warning: ISO C90 forbids mixed
declarations and code [-Wdeclaration-after-statement]
arch/cris/arch-v32/mach-fs/pinmux.c: In function
'crisv32_pinmux_dealloc_fixed':
arch/cris/arch-v32/mach-fs/pinmux.c:238:2: warning: ISO C90 forbids mixed
declarations and code [-Wdeclaration-after-statement]
arch/cris/arch-v32/mach-fs/pinmux.c: In function '__crisv32_pinmux_alloc':
arch/cris/arch-v32/mach-fs/pinmux.c:49:1: warning: control reaches end of
non-void function [-Wreturn-type]
Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
commit ee59843cd2b4331db49671c7f045ee2ff9d535b6
Author: Chen Gang <xili_gchen_5257@xxxxxxxxxxx>
Date: Wed May 6 21:48:12 2015 +0800
CRIS: Wire up missing syscalls
The related warnings:
CALL scripts/checksyscalls.sh
<stdin>:1229:2: warning: #warning syscall sched_setattr not implemented
[-Wcpp]
<stdin>:1232:2: warning: #warning syscall sched_getattr not implemented
[-Wcpp]
<stdin>:1235:2: warning: #warning syscall renameat2 not implemented
[-Wcpp]
<stdin>:1238:2: warning: #warning syscall seccomp not implemented
[-Wcpp]
<stdin>:1241:2: warning: #warning syscall getrandom not implemented
[-Wcpp]
<stdin>:1244:2: warning: #warning syscall memfd_create not implemented
[-Wcpp]
<stdin>:1247:2: warning: #warning syscall bpf not implemented [-Wcpp]
<stdin>:1250:2: warning: #warning syscall execveat not implemented
[-Wcpp]
Signed-off-by: Chen Gang <gang.chen.5i5j@xxxxxxxxx>
Signed-off-by: Jesper Nilsson <jespern@xxxxxxxx>
commit f59625a8f770741d590da09be4f0fcfc75b31e46
Author: Rabin Vincent <rabin@xxxxxx>
Date: Thu May 14 14:36:56 2015 +0200
CRISv32: allow CONFIG_DEBUG_BUGVERBOSE
Support for verbose BUG reporting already exists, but the HAVE flag that
allows the option to be enabled is missing.
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jespern@xxxxxxxx>
commit 98a725a57a8e92bfbe962a8c69975ce0f9ff11fe
Author: Rabin Vincent <rabin@xxxxxx>
Date: Thu May 14 14:36:55 2015 +0200
CRISv32: add unreachable() to BUG()
Add an unreachable() in the BUG() implementations, to get rid of
several warnings similar to the one below:
kernel/sched/core.c: In function 'pick_next_task':
kernel/sched/core.c:2690:1: warning: control reaches end of non-void
function [-Wreturn-type]
Signed-off-by: Rabin Vincent <rabin@xxxxxx>
Signed-off-by: Jesper Nilsson <jespern@xxxxxxxx>
commit 6a4756f6951f97a9a601ba24632c5906750ef00d
Author: Christophe Jaillet <christophe.jaillet@xxxxxxxxxx>
Date: Fri May 1 15:58:19 2015 +0200
cris: arch-v32: gpio: Use kzalloc instead of kmalloc/memset
Turn a kmalloc/memset into an equivalent kzalloc.
Doing so also move the zero'ing of the memory outside of a mutex.
Signed-off-by: Christophe Jaillet <christophe.jaillet@xxxxxxxxxx>
Signed-off-by: Jesper Nilsson <jespern@xxxxxxxx>
commit 73bf1b7be7aab60d7c651402441dd0b0b4991098
Merge: 5b78cb6 35c7a95
Author: Dave Airlie <airlied@xxxxxxxxx>
Date: Sat Sep 5 07:46:09 2015 +1000
Merge branch 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux
into drm-next
A few more fixes for amdgpu from the last few days:
- Fix several copy paste typos
- Resume from suspend fixes for VCE
- Fix the GPU scheduler warning in kfifo_out
- Re-enable GPUVM fault interrupts which were inadvertently disabled
- GPUVM page table hang fix when paging
* 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux:
drm/amdgpu: rename gmc_v8_0_init_compute_vmid
drm/amdgpu: fix vce3 instance handling
drm/amdgpu: remove ib test for the second VCE Ring
drm/amdgpu: properly enable VM fault interrupts
drm/amdgpu: fix warning in scheduler
drm/amdgpu: fix buffer placement under memory pressure
drm/amdgpu/cz: fix cz_dpm_update_low_memory_pstate logic
drm/amdgpu: fix typo in dce11 watermark setup
drm/amdgpu: fix typo in dce10 watermark setup
drm/amdgpu: use top down allocation for non-CPU accessible vram
drm/amdgpu: be explicit about cpu vram access for driver BOs (v2)
commit 4eae50143bcbfda819c650b7ed6739f3b6338ffc
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Fri Sep 4 15:17:53 2015 -0400
Revert "NFS: Make close(2) asynchronous when closing NFS O_DIRECT files"
This reverts commit f895c53f8ace3c3e49ebf9def90e63fc6d46d2bf.
This commit causes a NFSv4 regression in that close()+unlink() can end
up failing. The reason is that we no longer have a guarantee that the
CLOSE has completed on the server, meaning that the subsequent call to
REMOVE may fail with NFS4ERR_FILE_OPEN if the server implements Windows
unlink() semantics.
Reported-by: <Olga Kornievskaia <aglo@xxxxxxxxx>
Cc: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 5cf9d70659594e1a75b34d18619d0bb6e0cbbafa
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Fri Sep 4 15:07:37 2015 -0400
NFS: Optimise away the close-to-open getattr if there is no cached data
If there is no cached data, then there is no need to track the file
change attribute on close.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 35c7a9526af75040fac744babd0fafe18b8fe0a1
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Thu Sep 3 18:01:00 2015 -0400
drm/amdgpu: rename gmc_v8_0_init_compute_vmid
It should be gfx_v8_0_init_compute_vmid since it's
part of the gfx block.
Acked-by: Leo Liu <leo.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit be4f38e28ca2bbd6d06db8064277d71389746e26
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Thu Sep 3 19:03:11 2015 -0400
drm/amdgpu: fix vce3 instance handling
Need to properly handle the instances for the idle
checks and soft reset.
Acked-by: Leo Liu <leo.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 898e50d444e12f735e45d07cd3f306ac5d4abca8
Author: Leo Liu <leo.liu@xxxxxxx>
Date: Fri Sep 4 15:08:55 2015 -0400
drm/amdgpu: remove ib test for the second VCE Ring
it seems the VCE ring 1 ib test not reliable, remove it for now.
Signed-off-by: Leo Liu <leo.liu@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Tested-and-Reviewed-by: Sonny Jiang <sonny.jiang@xxxxxxx>
commit 140b519f7a117c86c085b3800a2fea3015cd877f
Author: Christian König <christian.koenig@xxxxxxx>
Date: Fri Sep 4 18:48:29 2015 +0200
drm/amdgpu: properly enable VM fault interrupts
This fixes not printing VM faults.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 51e771c0d25b43d0f12b2c7c01939942becbbe28
Merge: abebcdf 01b944f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 12:02:11 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input subsystem updates from Dmitry Torokhov:
"Drivers, drivers, drivers... No interesting input core changes this
time"
* 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (74 commits)
Input: elan_i2c - use iap_version to get firmware information
Input: max8997_haptic - fix module alias
Input: elan_i2c - fix typos for validpage_count
Input: psmouse - add small delay for IBM trackpoint pass-through mode
Input: synaptics - fix handling of disabling gesture mode
Input: elan_i2c - enable ELAN0100 acpi panels
Input: gpio-keys - report error when disabling unsupported key
Input: sur40 - fix error return code
Input: sentelic - silence some underflow warnings
Input: zhenhua - switch to using bitrev8()
Input: cros_ec_keyb - replace KEYBOARD_CROS_EC dependency
Input: cap11xx - add LED support
Input: elants_i2c - fix for devm_gpiod_get API change
Input: elan_i2c - enable asynchronous probing
Input: elants_i2c - enable asynchronous probing
Input: elants_i2c - wire up regulator support
Input: do not emit unneeded EV_SYN when suspending
Input: elants_i2c - disable idle mode before updating firmware
MAINTAINERS: Add maintainer for atmel_mxt_ts
Input: atmel_mxt_ts - remove warning on zero T44 count
...
commit abebcdfb64f1b39eeeb14282d9cd4aad1ed86f8d
Merge: 670c039 d5f362a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 11:46:02 2015 -0700
Merge tag 'sound-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
"There are little changes in core part, but lots of development are
found in drivers, especially ASoC. The diffstat shows regmap-related
changes for a slight API additions / changes, and that's all.
Looking at the code size statistics, the most significant addition is
for Intel Skylake. (Note that SKL support is still underway, the
codec driver is missing.) Also STI controller driver is a major
addition as well as a few new codec drivers.
In HD-audio side, there are fewer changes than the past. The
noticeable change is the support of ELD notification from i915
graphics driver. Thus this pull request carries a few changes in
drm/i915.
Other than that, USB-audio got a rewrite of runtime PM code. It was
initiated by lockdep warning, but resulted in a good cleanup in the
end.
Below are the highlights:
Common:
- Factoring out of AC'97 reset code from ASoC into the core helper
- A few regmap API extensions (in case it's not pulled yet)
ASoC:
- New drivers for Cirrus CS4349, GTM601, InvenSense ICS43432, Realtek
RT298 and ST STI controllers
- Machine drivers for Rockchip systems with MAX98090 and RT5645 and
RT5650
- Initial driver support for Intel Skylake devices
- Lots of rsnd cleanup and enhancements
- A few DAPM fixes and cleanups
- A large number of cleanups in various drivers (conversion and
standardized to regmap, component) mostly by Lars-Peter and Axel
HD-audio:
- Extended HD-audio core for Intel Skylake controller support
- Quirks for Dell headsets, Alienware 15
- Clean up of pin-based quirk tables for Realtek codecs
- ELD notifier implenetation for Intel HDMI/DP
USB-audio:
- Refactor runtime PM code to make lockdep happier"
* tag 'sound-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (411 commits)
drm/i915: Add locks around audio component bind/unbind
drm/i915: Drop port_mst_index parameter from pin/eld callback
ALSA: hda - Fix missing inline for dummy snd_hdac_set_codec_wakeup()
ALSA: hda - Wake the codec up on pin/ELD notify events
ALSA: hda - allow codecs to access the i915 pin/ELD callback
drm/i915: Call audio pin/ELD notify function
drm/i915: Add audio pin sense / ELD callback
ASoC: zx296702-i2s: Fix resource leak when unload module
ASoC: sti_uniperif: Ensure component is unregistered when unload module
ASoC: au1x: psc-i2s: Convert to use devm_ioremap_resource
ASoC: sh: dma-sh7760: Convert to devm_snd_soc_register_platform
ASoC: spear_pcm: Use devm_snd_dmaengine_pcm_register to fix resource
leak
ALSA: fireworks/bebob/dice/oxfw: fix substreams counting at vmalloc
failure
ASoC: Clean up docbook warnings
ASoC: txx9: Convert to devm_snd_soc_register_platform
ASoC: pxa: Convert to devm_snd_soc_register_platform
ASoC: nuc900: Convert to devm_snd_soc_register_platform
ASoC: blackfin: Convert to devm_snd_soc_register_platform
ASoC: au1x: Convert to devm_snd_soc_register_platform
ASoC: qcom: Constify asoc_qcom_lpass_cpu_dai_ops
...
commit 670c039deeffb5c0a3a900de53b95dba781aaf89
Merge: 8bd8fd0 13d20b3
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 11:40:40 2015 -0700
Merge tag 'backlight-for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight
Pull backlight updates from Lee Jones:
- Stop using LP855X Platform Data to control regulators
- Move PWM8941 WLED driver into Backlight
- Remove invalid use of IS_ERR_VALUE() macro
- Remove duplicate check for NULL data before unregistering
- Export I2C Device ID structure
* tag 'backlight-for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
backlight: tosa: Export I2C module alias information
backlight: lp8788_bl: Delete a check before
backlight_device_unregister()
backlight: sky81452: Remove unneeded use of IS_ERR_VALUE() macro
backlight: pm8941-wled: Move PM8941 WLED driver to backlight
backlight: lp855x: Use private data for regulator control
commit 8bd8fd0a29bfd5ad8e1976edd8c4c40cdb39aa4f
Merge: 3527122 5a688c4
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 11:35:03 2015 -0700
Merge tag 'mfd-for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
Pull MFD updates from Lee Jones:
"New Device Support:
- New Clocksource driver from ST
- New MFD/ACPI/DMA drivers for Intel's Sunrisepoint PCH based platforms
- Add support for Arizona WM8998 and WM1814
- Add support for Dialog Semi DA9062 and DA9063
- Add support for Kontron COMe-bBL6 and COMe-cBW6
- Add support for X-Powers AXP152
- Add support for Atmel, many
- Add support for STMPE, many
- Add support for USB in X-Powers AXP22X
Core Frameworks:
- New Base API to traverse devices and their children in reverse order
Bug Fixes:
- Fix race between runtime-suspend and IRQs
- Obtain platform data form more reliable source
Fix-ups:
- Constifying things
- Variable signage changes
- Kconfig depends|selects changes
- Make use of BIT() macro
- Do not supply .owner attribute in *_driver structures
- MAINTAINERS entries
- Stop using set_irq_flags()
- Start using irq_set_chained_handler_and_data()
- Export DT device ID structures"
* tag 'mfd-for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (69 commits)
mfd: jz4740-adc: Init mask cache in generic IRQ chip
mfd: cros_ec: spi: Add OF match table
mfd: stmpe: Add OF match table
mfd: max77686: Split out regulator part from the DT binding
mfd: Add DT binding for Maxim MAX77802 IC
mfd: max77686: Use a generic name for the PMIC node in the example
mfd: max77686: Don't suggest in binding to use a deprecated property
mfd: Add MFD_CROS_EC dependencies
mfd: cros_ec: Remove CROS_EC_PROTO dependency for SPI and I2C drivers
mfd: axp20x: Add a cell for the usb power_supply part of the axp20x
PMICs
mfd: axp20x: Add missing registers, and mark more registers volatile
mfd: arizona: Fixup some formatting/white space errors
mfd: wm8994: Fix NULL pointer exception on missing pdata
of: Add vendor prefix for Nuvoton
mfd: mt6397: Implement wake handler and suspend/resume to handle wake
up event
mfd: atmel-hlcdc: Add support for new SoCs
mfd: Export OF module alias information in missing drivers
mfd: stw481x: Export I2C module alias information
mfd: da9062: Support for the DA9063 OnKey in the DA9062 core
mfd: max899x: Avoid redundant irq_data lookup
...
commit 352712274507645b6f82b8763977ad87321919a3
Merge: 88a9988 ab98193
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 11:10:18 2015 -0700
Merge tag 'dmaengine-4.3-rc1' of
git://git.infradead.org/users/vkoul/slave-dma
Pull dmaengine updates from Vinod Koul:
"This time we have aded a new capability for scatter-gathered memset
using dmaengine APIs. This is supported in xdmac & hdmac drivers
We have added support for reusing descriptors for examples like video
buffers etc. Driver will follow
The behaviour of descriptor ack has been clarified and documented
New devices added are:
- dma controller in sun[457]i SoCs
- lpc18xx dmamux
- ZTE ZX296702 dma controller
- Analog Devices AXI-DMAC DMA controller
- eDMA support for dma-crossbar
- imx6sx support in imx-sdma driver
- imx-sdma device to device support
Other:
- jz4780 fixes
- ioatdma large refactor and cleanup for removal of ioat v1 and v2
which is deprecated and fixes
- ACPI support in X-Gene DMA engine driver
- ipu irq fixes
- mvxor fixes
- minor fixes spread thru drivers"
[ The Kconfig and Makefile entries got re-sorted alphabetically, and I
handled the conflict with the new Intel integrated IDMA driver by
slightly mis-sorting it on purpose: "IDMA64" got sorted after "IMX" in
order to keep the Intel entries together. I think it might be a good
idea to just rename the IDMA64 config entry to INTEL_IDMA64 to make
the sorting be a true sort, not this mismash.
Also, this merge disables the COMPILE_TEST for the sun4i DMA
controller, because it does not compile cleanly at all. - Linus ]
* tag 'dmaengine-4.3-rc1' of
git://git.infradead.org/users/vkoul/slave-dma: (89 commits)
dmaengine: ioatdma: add Broadwell EP ioatdma PCI dev IDs
dmaengine :ipu: change ipu_irq_handler() to remove compile warning
dmaengine: ioatdma: Fix variable array length
dmaengine: ioatdma: fix sparse "error" with prep lock
dmaengine: hdmac: Add memset capabilities
dmaengine: sort the sh Makefile
dmaengine: sort the sh Kconfig
dmaengine: sort the dw Kconfig
dmaengine: sort the Kconfig
dmaengine: sort the makefile
drivers/dma: make mv_xor.c driver explicitly non-modular
dmaengine: Add support for the Analog Devices AXI-DMAC DMA controller
devicetree: Add bindings documentation for Analog Devices AXI-DMAC
dmaengine: xgene-dma: Fix the lock to allow client for further
submission of requests
dmaengine: ioatdma: fix coccinelle warning
dmaengine: ioatdma: fix zero day warning on incompatible pointer type
dmaengine: tegra-apb: Simplify locking for device using global pause
dmaengine: tegra-apb: Remove unnecessary return statements and variables
dmaengine: tegra-apb: Avoid unnecessary channel base address calculation
dmaengine: tegra-apb: Remove unused variables
...
commit 88a99886c26fec8bf662e7b6bc080431a8660326
Merge: 8d2faea 1ab3638
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 10:22:09 2015 -0700
Merge tag 'pinctrl-v4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij:
"This is the bulk of pin control changes for the v4.3 development
cycle.
Like with GPIO it's a lot of stuff. If my subsystems are any sign of
the overall tempo of the kernel v4.3 will be a gigantic diff.
[ It looks like 4.3 is calmer than 4.2 in most other subsystems, but
we'll see - Linus ]
Core changes:
- It is possible configure groups in debugfs.
- Consolidation of chained IRQ handler install/remove replacing all
call sites where irq_set_handler_data() and
irq_set_chained_handler() were done in succession with a combined
call to irq_set_chained_handler_and_data(). This series was
created by Thomas Gleixner after the problem was observed by
Russell King.
- Tglx also made another series of patches switching
__irq_set_handler_locked() for irq_set_handler_locked() which is
way cleaner.
- Tglx also wrote a good bunch of patches to make use of
irq_desc_get_xxx() accessors and avoid looking up irq_descs from
IRQ numbers. The goal is to get rid of the irq number from the
handlers in the IRQ flow which is nice.
Driver feature enhancements:
- Power management support for the SiRF SoC Atlas 7.
- Power down support for the Qualcomm driver.
- Intel Cherryview and Baytrail: switch drivers to use raw spinlocks
in IRQ handlers to play nice with the realtime patch set.
- Rework and new modes handling for Qualcomm SPMI-MPP.
- Pinconf power source config for SH PFC.
New drivers and subdrivers:
- A new driver for Conexant Digicolor CX92755.
- A new driver for UniPhier PH1-LD4, PH1-Pro4, PH1-sLD8, PH1-Pro5,
ProXtream2 and PH1-LD6b SoC pin control support.
- Reverse-egineered the S/PDIF settings for the Allwinner sun4i
driver.
- Support for Qualcomm Technologies QDF2xxx ARM64 SoCs
- A new Freescale i.mx6ul subdriver.
Cleanup:
- Remove platform data support in a number of SH PFC subdrivers"
* tag 'pinctrl-v4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (95 commits)
pinctrl: at91: fix null pointer dereference
pinctrl: mediatek: Implement wake handler and suspend resume
pinctrl: mediatek: Fix multiple registration issue.
pinctrl: sh-pfc: r8a7794: add USB pin groups
pinctrl: at91: Use generic irq_{request,release}_resources()
pinctrl: cherryview: Use raw_spinlock for locking
pinctrl: baytrail: Use raw_spinlock for locking
pinctrl: imx6ul: Remove .owner field
pinctrl: zynq: Fix typos in smc0_nand_grp and smc0_nor_grp
pinctrl: sh-pfc: Implement pinconf power-source param for voltage
switching
clk: rockchip: add pclk_pd_pmu to the list of rk3288 critical clocks
pinctrl: sun4i: add spdif to pin description.
pinctrl: atlas7: clear ugly branch statements for pull and drivestrength
pinctrl: baytrail: Serialize all register access
pinctrl: baytrail: Drop FSF mailing address
pinctrl: rockchip: only enable gpio clock when it setting
pinctrl/mediatek: fix spelling mistake in dev_err error message
pinctrl: cherryview: Serialize all register access
pinctrl: UniPhier: PH1-Pro5: add I2C ch6 pin-mux setting
pinctrl: nomadik: reflect current input value
...
commit 8d2faea672606827c2018143ec7d88c760f2d6de
Merge: 02cf1da 01e2dae
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 10:07:45 2015 -0700
Merge tag 'gpio-v4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio
Pull GPIO updates from Linus Walleij:
"This is the bulk of GPIO changes for the v4.3 kernel cycle.
There is quite a lot going on in the GPIO subsystem this merge window,
so the main matter is decribed below.
The hits in other subsystems when making the GPIO flags optional are
all ACKed by their respective subsystem maintainers.
Core changes:
- Root out the wrapper devm_gpiod_get() and gpiod_get() etc versions
of the descriptor calls that did not use the flags argument on the
end. This was around for too long and eventually Uwe Kleine-König
took the time to clean it out and the last users are removed along
with the macros in this tag. In several cases the use of flags
simplifies the code. For this reason we have (ACKed) patches
hitting in DRM, IIO, media, NFC, USB+PHY up until we hammer in the
nail with removing the macros.
- Add a fat document describing how much ready-made GPIO stuff we
have i the kernel to discourage people from reinventing a square
wheel in userspace, as so often happens.
- Create a separate lockdep class for each instance of a GPIO IRQ
chip instead of using one class for all chips, as the current code
will not work with systems with several GPIO chips doing lockdep
debugging.
- Protect against driver unloading also when a GPIO line is only used
as IRQ for the GPIOLIB_IRQCHIP helpers.
- If the GPIO chip has no designated owner, assign the parent device
driver owner as owner.
- Consolidation of chained IRQ handler install/remove replacing all
call sites where irq_set_handler_data() and
irq_set_chained_handler() were done in succession with a combined
call to irq_set_chained_handler_and_data().
This series was created by Thomas Gleixner after the problem was
observed by Russell King.
- Tglx also made another series of patches switching
__irq_set_handler_locked() for irq_set_handler_locked() which is
way cleaner.
- Tglx and Jiang Liu wrote a good bunch of patches to make use of
irq_desc_get_xxx() accessors and avoid looking up irq_descs from
IRQ numbers. The goal is to get rid of the irq number from the
handlers in the IRQ flow which is nice.
- Rob Herring killed off the set_irq_flags() for all GPIO drivers.
This was an ARM specific function that is replaced with the generic
irq_modify_status() where special flags are actually needed.
- When an OF node has a pin range for its GPIOs, return -EPROBE_DEFER
if the pin controller isn't available. Pretty logical, yet needed
to be fixed.
- If a driver using GPIOLIB_IRQCHIP has its own irq_*_resources call
back, then call these instead of the defaults provided by the
GPIOLIB.
- Fix an undocumented ABI hole: named GPIOs were not properly
documented.
Driver improvements:
- Add get_direction() support to the generic GPIO driver, it's
strange that we didn't have that before.
- Make it possible to have input-only GPIO chips using the generic
GPIO driver.
- Clean out platform data support from the Emma Mobile (EM) driver
- Finegrained runtime PM support for the RCAR driver.
- Support r8a7795 (R-car H3) in the RCAR driver.
- Support interrupts on GPIOs 16 thru 31 in the DaVinci driver.
- Some consolidation and new support in the MPC8xxx driver, we now
support MPC5125.
- Preempt-RT-friendly patches: the OMAP, MPC8xxx, drivers uses raw
spinlocks making it work better with the realime patches.
- Interrupt support for the EXTRAXFS GPIO driver.
- Make the ETRAXFS GPIO driver support also ARTPEC-3.
- Interrupt and wakeup support for the BRCMSTB driver, also for
wakeup from S5 cold boot.
- Mask MXC IRQs during suspend.
- Improve OMAP2 GPIO set_debounce() to work according to spec.
- The VF610 driver handles IRQs properly.
New drivers:
- ZTE ZX GPIO driver"
* tag 'gpio-v4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (87 commits)
Revert "gpio: extraxfs: fix returnvar.cocci warnings"
gpio: tc3589x: use static container helper
gpio: xlp: fix error return code
gpio: vf610: handle level IRQ's properly
gpio: max732x: Fix error handling in probe()
gpio: omap: fix clk_prepare/unprepare usage
gpio: omap: protect regs access in omap_gpio_irq_handler
gpio: omap: fix omap2_set_gpio_debounce
gpio: omap: switch to use platform_get_irq
gpio: omap: remove wrong irq_domain_remove usage in probe
gpiolib: add description for gpio irqchip fields in struct gpio_chip
gpio: extraxfs: fix returnvar.cocci warnings
gpiolib: irqchip: use different lockdep class for each gpio irqchip
gpio/grgpio: fix deadlock in grgpio_irq_unmap()
Documentation: gpio: consumer: describe active low property
gpio: mxc: fix section mismatch warning
gpio/mxc: mask gpio interrupts in suspend
gpio: omap: Fix missing raw locks conversion
gpio: brcmstb: support wakeup from S5 cold boot
gpio: brcmstb: Add interrupt and wakeup source support
...
commit 072502a67c9164625288cca17704808e6c06273f
Merge: 84fb901 1ed8111 2de9d60
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Fri Sep 4 17:22:10 2015 +0100
Merge remote-tracking branches 'regmap/topic/lockdep' and
'regmap/topic/seq-delay' into regmap-next
commit 84fb9015d20dc12a2d36f7d775700a53cc45ad90
Merge: a458a6d ad3a942 e874e6c
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Fri Sep 4 17:22:09 2015 +0100
Merge remote-tracking branches 'regmap/topic/debugfs' and
'regmap/topic/force-update' into regmap-next
commit a458a6d411b86de7a2a8e51f9016cf017d5ed545
Merge: f7474161 04782ca
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Fri Sep 4 17:22:08 2015 +0100
Merge remote-tracking branch 'regmap/topic/core' into regmap-next
commit f74741615368af1b8401be4b7a6f0b9ccbc2420a
Merge: b3959b5 9a16ea9
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Fri Sep 4 17:22:07 2015 +0100
Merge remote-tracking branch 'regmap/fix/raw' into regmap-linus
commit b3959b5cd33383d9fa9b6c653e162331c2af2e08
Merge: 64291f7 2f9b660
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Fri Sep 4 17:22:07 2015 +0100
Merge remote-tracking branch 'regmap/fix/core' into regmap-linus
commit 04782ca20a8ebb5acf0c35756a38964ae5ea7321
Merge: d5b98eb 17649c9
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Fri Sep 4 17:16:39 2015 +0100
Merge branch 'topic/smbus-block' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into regmap-core
commit 0de6cfb9f314db230c47b2158e7725208b3b4728
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 09:13:56 2015 -0700
Revert "uart: pl011: Rename regs with enumeration"
This reverts commit 534e14e2293d8cd714b94513686228453b21fae2 as with
this patch the serial console is broken on lots of platforms.
Reported-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: Jun Nie <jun.nie@xxxxxxxxxx>
Acked-by: Will Deacon <will.deacon@xxxxxxx>
Tested-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit f11c98417c65ddd730c483c1c9290ae0f7b121a7
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 09:13:39 2015 -0700
Revert "uart: pl011: Introduce register accessor"
This reverts commit 7b753f318d1456c8e7740f3bd96d1dbb362d5449 as with
this patch the serial console is broken on lots of platforms.
Reported-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: Jun Nie <jun.nie@xxxxxxxxxx>
Acked-by: Will Deacon <will.deacon@xxxxxxx>
Tested-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ab66ca27c801605c6bb19baed2933544dd7d39e6
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 09:13:30 2015 -0700
Revert "uart: pl011: Introduce register look up table"
This reverts commit 2c096a9eedc6841d3610545f4e6c3d72bd0962be as with
this patch the serial console is broken on lots of platforms.
Reported-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: Jun Nie <jun.nie@xxxxxxxxxx>
Acked-by: Will Deacon <will.deacon@xxxxxxx>
Tested-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 8e50254a6ab2abb6ae08699adffe3d89e4c75912
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 09:12:03 2015 -0700
Revert "uart: pl011: Improve LCRH register access decision"
This reverts commit 09dcc7dfc05b31bf0bbcd1511cd1a2644908d5c8 as with
this patch the serial console is broken on lots of platforms.
Reported-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: Jun Nie <jun.nie@xxxxxxxxxx>
Acked-by: Will Deacon <will.deacon@xxxxxxx>
Tested-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 062a68a5e0aaa9577d75391ffafa11e3c2a5f892
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 09:11:24 2015 -0700
Revert "uart: pl011: Add support to ZTE ZX296702 uart"
This reverts commit 8cd90e50d1408c65c355084b1c7f8f9085f49c6b as with
this patch the serial console is broken on lots of platforms.
Reported-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: Jun Nie <jun.nie@xxxxxxxxxx>
Acked-by: Will Deacon <will.deacon@xxxxxxx>
Tested-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 0c0672922dcc70ffba11d96385e98e42fb3ae08d
Author: Alexander Spyridakis <a.spyridakis@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 17:06:24 2015 +0200
arm/arm64: KVM: Fix PSCI affinity info return value for non valid cores
If a guest requests the affinity info for a non-existing vCPU we need to
properly return an error, instead of erroneously reporting an off state.
Signed-off-by: Alexander Spyridakis <a.spyridakis@xxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Alvise Rigo <a.rigo@xxxxxxxxxxxxxxxxxxxxxx>
Acked-by: Mark Rutland <mark.rutland@xxxxxxx>
Reviewed-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 02cf1da2548d318ad4db9eb4cf8656e24b11aefc
Merge: a4fdb2a 8d03bc5
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 08:59:53 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
Pull tile updates from Chris Metcalf:
"This includes secure computing support as well as miscellaneous minor
improvements"
* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
tile: correct some typos in opcode type names
tile/vdso: emit a GNU hash as well
tile: Remove finish_arch_switch
tile: enable full SECCOMP support
tile/time: Migrate to new 'set-state' interface
commit 857d1a973077245f03b351e2539529c86267bfe4
Author: Mark Rutland <mark.rutland@xxxxxxx>
Date: Mon Aug 24 14:42:05 2015 +0100
arm64: KVM: set {v,}TCR_EL2 RES1 bits
Currently we don't set the RES1 bits of TCR_EL2 and VTCR_EL2 when
configuring them, which could lead to unexpected behaviour when an
architectural meaning is defined for those bits.
Set the RES1 bits to avoid issues.
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Cc: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: Suzuki Poulose <suzuki.poulose@xxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 4ad9e16af36bbe8657aabe494ff912acbc213ce4
Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Date: Fri Sep 4 16:24:39 2015 +0200
arm/arm64: KVM: arch timer: Reset CNTV_CTL to 0
Provide a better quality of implementation and be architecture compliant
on ARMv7 for the architected timer by resetting the CNTV_CTL to 0 on
reset of the timer.
This change alone fixes the UEFI reset issue reported by Laszlo back in
February.
Cc: Laszlo Ersek <lersek@xxxxxxxxxx>
Cc: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Cc: Drew Jones <drjones@xxxxxxxxxx>
Cc: Wei Huang <wei@xxxxxxxxxx>
Cc: Peter Maydell <peter.maydell@xxxxxxxxxx>
Reviewed-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 04bdfa8ab5bab929cc57f73952c503a88372601d
Author: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Date: Fri Sep 4 16:24:38 2015 +0200
arm/arm64: KVM: vgic: Move active state handling to flush_hwstate
We currently set the physical active state only when we *inject* a new
pending virtual interrupt, but this is actually not correct, because we
could have been preempted and run something else on the system that
resets the active state to clear. This causes us to run the VM with the
timer set to fire, but without setting the physical active state.
The solution is to always check the LR configurations, and we if have a
mapped interrupt in the LR in either the pending or active state
(virtual), then set the physical active state.
Acked-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 71c6da846be478a61556717ef1ee1cea91f5d6a8
Author: Andrey Ryabinin <aryabinin@xxxxxxxx>
Date: Thu Sep 3 14:32:01 2015 +0300
crypto: ghash-clmulni: specify context size for ghash async algorithm
Currently context size (cra_ctxsize) doesn't specified for
ghash_async_alg. Which means it's zero. Thus crypto_create_tfm()
doesn't allocate needed space for ghash_async_ctx, so any
read/write to ctx (e.g. in ghash_async_init_tfm()) is not valid.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Andrey Ryabinin <aryabinin@xxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 5134e999cb72c621f48305d5c201ab30156505c1
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Fri Sep 4 00:11:54 2015 -0400
drm/amdgpu: fix warning in scheduler
This should never happen so warn when the count does
not equal the expected size.
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit a4fdb2a46f617b8b2cd47acec026ec16532edbc6
Merge: 807249d 674c242c
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Sep 4 07:18:09 2015 -0700
Merge tag 'arm64-upstream' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 updates from Will Deacon:
- Support for new architectural features introduced in ARMv8.1:
* Privileged Access Never (PAN) to catch user pointer dereferences in
the kernel
* Large System Extension (LSE) for building scalable atomics and locks
(depends on locking/arch-atomic from tip, which is included here)
* Hardware Dirty Bit Management (DBM) for updating clean PTEs
automatically
- Move our PSCI implementation out into drivers/firmware/, where it can
be shared with arch/arm/. RMK has also pulled this component branch
and has additional patches moving arch/arm/ over. MAINTAINERS is
updated accordingly.
- Better BUG implementation based on the BRK instruction for trapping
- Leaf TLB invalidation for unmapping user pages
- Support for PROBE_ONLY PCI configurations
- Various cleanups and non-critical fixes, including:
* Always flush FP/SIMD state over exec()
* Restrict memblock additions based on range of linear mapping
* Ensure *(LIST_POISON) generates a fatal fault
* Context-tracking syscall return no longer corrupts return value when
not forced on.
* Alternatives patching synchronisation/stability improvements
* Signed sub-word cmpxchg compare fix (tickled by HAVE_CMPXCHG_LOCAL)
* Force SMP=y
* Hide direct DCC access from userspace
* Fix EFI stub memory allocation when DRAM starts at 0x0
* tag 'arm64-upstream' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (92 commits)
arm64: flush FP/SIMD state correctly after execve()
arm64: makefile: fix perf_callchain.o kconfig dependency
arm64: set MAX_MEMBLOCK_ADDR according to linear region size
of/fdt: make memblock maximum physical address arch configurable
arm64: Fix source code file path in comments
arm64: entry: always restore x0 from the stack on syscall return
arm64: mdscr_el1: avoid exposing DCC to userspace
arm64: kconfig: Move LIST_POISON to a safe value
arm64: Add __exception_irq_entry definition for function graph
arm64: mm: ensure patched kernel text is fetched from PoU
arm64: alternatives: ensure secondary CPUs execute ISB after patching
arm64: make ll/sc __cmpxchg_case_##name asm consistent
arm64: dma-mapping: Simplify pgprot handling
arm64: restore cpu suspend/resume functionality
ARM64: PCI: do not enable resources on PROBE_ONLY systems
arm64: cmpxchg: truncate sub-word signed types before comparison
arm64: alternative: put secondary CPUs into polling loop during patch
arm64/Documentation: clarify wording regarding memory below the Image
arm64: lse: fix lse cmpxchg code indentation
arm64: remove redundant object file list
...
commit ef9be10c8c999e00b239eec24cf01952a308f8e7
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date: Fri Aug 28 10:44:20 2015 +0200
mac80211: reject software RSSI CQM with beacon filtering
When beacon filtering is enabled the mac80211 software implementation
for RSSI CQM cannot work as beacons will not be available. Rather than
accepting such a configuration without proper effect, reject it.
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 52a45f38ca5998db0394e782d137595a82a08b43
Author: Arik Nemtsov <arik@xxxxxxxxxx>
Date: Sat Aug 15 22:39:53 2015 +0300
mac80211: avoid VHT usage with no 80MHz chans allowed
Currently if 80MHz channels are not allowed for use, the VHT IE is not
included in the probe request for an AP. This is not good enough if the
AP is configured with the wrong regulatory and supports VHT even where
prohibited or in TDLS scenarios.
Mark the ifmgd with the DISABLE_VHT flag for the misbehaving-AP case, and
unset VHT support from the peer-station entry for the TDLS case.
Signed-off-by: Arik Nemtsov <arikx.nemtsov@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 549cc1c560128d583698ba9a73af283fe87dbab8
Author: Maciej S. Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 19:00:31 2015 +0200
cfg80211: regulatory: restore proper user alpha2
restore_regulatory_settings() should restore alpha2
as computed in restore_alpha2(), not raw user_alpha2 to
behave as described in the comment just above that code.
This fixes endless loop of calling CRDA for "00" and "97"
countries after resume from suspend on my laptop.
Looks like others had the same problem, too:
http://ath9k-devel.ath9k.narkive.com/knY5W6St/ath9k-and-crda-messages-in-logs
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/899335
https://forum.porteus.org/viewtopic.php?t=4975&p=36436
https://forums.opensuse.org/showthread.php/483356-Authentication-Regulatory-Domain-issues-ath5k-12-2
Signed-off-by: Maciej Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 4c0778933a3d7c35a94e8c35847acd9bb59a257d
Author: João Paulo Rechi Vita <jprvita@xxxxxxxxx>
Date: Tue Aug 25 08:56:43 2015 -0400
rfkill: Copy "all" global state to other types
When switching the state of all RFKill switches of type all we need to
replicate the RFKILL_TYPE_ALL global state to all the other types global
state, so it is used to initialize persistent RFKill switches on
register.
Signed-off-by: João Paulo Rechi Vita <jprvita@xxxxxxxxxxxx>
Acked-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 22f66895e60cfc55b92f6fa93f05bb3fbdbd0bed
Author: Avri Altman <avri.altman@xxxxxxxxx>
Date: Tue Aug 18 16:52:07 2015 +0300
mac80211: protect non-HT BSS when HT TDLS traffic exists
HT TDLS traffic should be protected in a non-HT BSS to avoid
collisions. Therefore, when TDLS peers join/leave, check if
protection is (now) needed and set the ht_operation_mode of
the virtual interface according to the HT capabilities of the
TDLS peer(s).
This works because a non-HT BSS connection never sets (or
otherwise uses) the ht_operation_mode; it just means that
drivers must be aware that this field applies to all HT
traffic for this virtual interface, not just the traffic
within the BSS. Document that.
Signed-off-by: Avri Altman <avri.altman@xxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 98a1f8282b8c37378c1b947d661a58942331ca90
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 26 12:22:14 2015 +0200
mac80211: Do not use sizeof() on pointer type
The rate_control_cap_mask() function takes a parameter mcs_mask, which
GCC will take to be u8 * even though it was declared with a fixed size.
This causes the following warning:
net/mac80211/rate.c: In function 'rate_control_cap_mask':
net/mac80211/rate.c:719:25: warning: 'sizeof' on array function
parameter 'mcs_mask' will return size of 'u8 * {aka unsigned char *}'
[-Wsizeof-array-argument]
for (i = 0; i < sizeof(mcs_mask); i++)
^
net/mac80211/rate.c:684:10: note: declared here
u8 mcs_mask[IEEE80211_HT_MCS_MASK_LEN],
^
This can be easily fixed by using the IEEE80211_HT_MCS_MASK_LEN directly
within the loop condition.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 5631d9c429857194bd55d7bcd8fa5bdd1a9899a3
Author: Michal Marek <mmarek@xxxxxxxx>
Date: Wed Aug 19 17:36:41 2015 +0200
kbuild: Fix clang detection
We cannot detect clang before including the arch Makefile, because that
can set the default cross compiler. We also cannot detect clang after
including the arch Makefile, because powerpc wants to know about clang.
Solve this by using an deferred variable. This costs us a few shell
invocations, but this is only a constant number.
Reported-by: Behan Webster <behanw@xxxxxxxxxxxxxxxxxx>
Reported-by: Anton Blanchard <anton@xxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 86bfbc15660a61bb7b3df73db11939eec3393008
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 13:03:04 2015 +0200
ALSA: sparc: amd7930: Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 3716001bcb7f5822382ac1f2f54226b87312cc6b
Author: Riku Voipio <riku.voipio@xxxxxxxxxx>
Date: Wed Sep 2 12:57:24 2015 +0300
deb-pkg: add source package
Make deb-pkg build both source and binary package like make rpm-pkg does.
For people who only need binary kernel package, there is now bindeb-pkg
target, same target also used to build the .deb files if built from the
source package using dpkg-buildpackage.
Generated source package will build the same kernel .config than what
was available for make deb-pkg. The name of the source package can
be set with KDEB_SOURCENAME enviroment variable.
The source package is useful for GPL compliance, or for feeding to a
automated debian package builder.
Cc: Chris J Arges <chris.j.arges@xxxxxxxxxxxxx>
Reviewed-by: maximilian attems <maks@xxxxxxx>
Reviewed-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 26803821463c4e76322559b3dfb0c6b0fcc8aee8
Author: Riku Voipio <riku.voipio@xxxxxxxxxx>
Date: Wed Sep 2 12:57:08 2015 +0300
package/Makefile: move source tar creation to a function
Split source tarball creation from rpm-pkg target
so it can be used from deb-pkg target as well. As
added bonus, we can now pretty print TAR the name of
tarball created in quiet mode
This patch prepares the groundwork for deb-pkg source
package adding bit.
Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 21adf76e908dd03ae47c8f4dd53b180996a725ad
Merge: 5b92356 53ff6bc
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Fri Sep 4 11:00:56 2015 +0200
Merge tag 'perf-urgent-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
- In some cases where perf_event.fork.{pid,tid} should be used we were
instead
using perf_event.comm.{pid,tid}, which is not a problem for for the
'pid'
case, that sits in the same place in these union_perf_event members,
but
comm.tid sits where fork.ppid is, oops.
These cases were considered as (potentially) problematic:
- 'perf script' with !sample_id_all, i.e. only non old kernels
without
perf_event_attr.sample_id_all.
- intel_pt could be affected when decoding without timestamps, as
the exit
event is only used to flush out data which anyway gets flushed at
the
end of the session.
- intel_bts also uses the exit event to flush data which would
probably not
cause errors as it would get flushed at the end of the session
instead.
Fix it. (Adrian Hunter)
- Due to relaxing the compiler checks for bison generated files, we
missed
updating one parse_events_add_pmu() caller when this function had its
prototype changed, fix it. (Jiri Olsa)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 1adecc6755e1e4193b5618ddb2e107f6d6e88f4b
Author: Woodrow Shen <woodrow.shen@xxxxxxxxxxxxx>
Date: Fri Sep 4 15:08:12 2015 +0800
ALSA: hda - Add some FIXUP quirks for white noise on Dell laptop.
Dell laptop has a series model to use the same codec but different
subsystem ID.
At the same time they happens the white noise by login screen and
headphone;
for fixing them together, I only can add these IDs to FIXUP function
ALC292_FIXUP_DISABLE_AAMIX,
then try to solve such the similar issues.
Codec: Realtek ALC3235
Vendor Id: 0x10ec0293
Subsystem Id: 0x102806dd
Subsystem Id: 0x102806df
Subsystem Id: 0x102806e0
Cc: <stable@xxxxxxxxxxxxxxx>
BugLink: https://bugs.launchpad.net/bugs/1492132
Signed-off-by: Woodrow Shen <woodrow.shen@xxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit eb38f3a4f6e86f8bb10a3217ebd85ecc5d763aae
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Thu Sep 3 22:20:00 2015 -0700
Input: evdev - do not report errors form flush()
We've got bug reports showing the old systemd-logind (at least
system-210) aborting unexpectedly, and this turned out to be because
of an invalid error code from close() call to evdev devices. close()
is supposed to return only either EINTR or EBADFD, while the device
returned ENODEV. logind was overreacting to it and decided to kill
itself when an unexpected error code was received. What a tragedy.
The bad error code comes from flush fops, and actually evdev_flush()
returns ENODEV when device is disconnected or client's access to it is
revoked. But in these cases the fact that flush did not actually happen is
not an error, but rather normal behavior. For non-disconnected devices
result of flush is also not that interesting as there is no potential of
data loss and even if it fails application has no way of handling the
error. Because of that we are better off always returning success from
evdev_flush().
Also returning EINTR from flush()/close() is discouraged (as it is not
clear how application should handle this error), so let's stop taking
evdev->mutex interruptibly.
Bugzilla: http://bugzilla.suse.com/show_bug.cgi?id=939834
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 22c15e5e008297c90daa8657fea1a3f0e0675454
Author: James Chen <james.chen@xxxxxxxxxx>
Date: Thu Sep 3 22:12:38 2015 -0700
Input: elants_i2c - extend the calibration timeout to 12 seconds
The 23 inch device found in Chrome project buddy requires 9.2~10.5 seconds
to complete calibration. Let's increase calibration timeout to 12 seconds
to give the device enough time.
Signed-off-by: James Chen <james.chen@xxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 26492f195eed08b95ad5acdfbe625062ad7d86c6
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 10:50:57 2015 -0700
Input: sparcspkr - fix module autoload for OF platform drivers
These platform drivers have a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 5b78cb668764061bd8a06f73f9bd081ba6942fef
Merge: aed160e 6fa2d19
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Sep 4 13:09:20 2015 +1000
Merge tag 'drm-intel-next-fixes-2015-09-02' of
git://anongit.freedesktop.org/drm-intel into drm-next
i915 display fixes headed for v4.3. Mostly SKL, but some regression
fixes too.
* tag 'drm-intel-next-fixes-2015-09-02' of
git://anongit.freedesktop.org/drm-intel:
i915: Set ddi_pll_sel in DP MST path
drm/i915: Don't use link_bw for PLL setup
drm/i915: Preserve SSC earlier
drm/i915/skl: Adding DDI_E power well domain
drm/i915: eDP can be present on DDI-E
drm/i915/skl: Enable DDI-E
drm/i915: Enable HDMI on DDI-E
drm/i915: apply the PCI_D0/D3 hibernation workaround everywhere on pre
GEN6
drm/i915: Check DP link status on long hpd too
drm/i915: set CDCLK if DPLL0 enabled during resuming from S3
commit aed160eac581258f5f280b6e4b3f49b106973a78
Merge: 41e8a0a3 4c156c2
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Sep 4 13:08:40 2015 +1000
Merge branch 'drm-rockchip-2015-08-26' of
https://github.com/markyzq/kernel-drm-rockchip into drm-next
Here are some fixes and some new features for rockchip drm,
tested on popmetal rk3288 board, can you land them?
* 'drm-rockchip-2015-08-26' of
https://github.com/markyzq/kernel-drm-rockchip:
drm/rockchip: vop: support plane scale
drm/rockchip: vop: restore vop registers when resume
drm/rockchip: vop: Default enable win2/3 area0 bit
drm/rockchip: vop: Add yuv plane support
drm/rockchip: vop: Fix window dest start point
drm/rockchip: vop: Fix virtual stride calculation
commit 41e8a0a3046530911bf2f2fc28c971bf588858b8
Merge: 55cdb31 aa3469c
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Sep 4 13:08:08 2015 +1000
Merge tag 'vmwgfx-next-15-09-01' of
git://people.freedesktop.org/~thomash/linux into drm-next
Pull request of 2015-09-01
A single commit. Workaround for
https://bugzilla.redhat.com/show_bug.cgi?id=1227193
* tag 'vmwgfx-next-15-09-01' of
git://people.freedesktop.org/~thomash/linux:
drm/vmwgfx: Allow dropped masters render-node like access on legacy
nodes v2
commit 55cdb314494b0372c2f0ba3a589aeb412a9626ba
Merge: 9949558 c305857
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Sep 4 13:07:18 2015 +1000
Merge branch 'exynos-drm-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next
This is a last pull request, which includes two g2d patches
I missed, and more cleanup series of Exynos drm driver.
The cleanup series makes Exynos drm driver more simple,
and removes unnecessary codes, and considers multiple plane format
of framebuffer. I hope this not to be late.
* 'exynos-drm-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
drm/exynos: remove buf_cnt from struct exynos_drm_fb
drm/exynos: remove exynos_drm_fb_get_buf_cnt()
drm/exynos: cleanup exynos_user_fb_create()
drm/exynos: update exynos_drm_framebuffer_init() for multiple buffers
drm/exynos: cleanup to get gem object for fb
drm/exynos: update fb_info via only one function
drm/exynos: cleanup exynos_drm_fbdev_update()
drm/exynos: s/exynos_gem_obj/obj in exynos_drm_fbdev.c
drm/exynos: remove exynos_drm_fb_set_buf_cnt()
drm/exynos: remove superfluous checks in g2d_check_reg_offset()
drm/exynos: fix size check in g2d_check_buf_desc_is_valid()
commit 99495589aa4de7166af254bc497cdbe133fc24bb
Merge: 879a37d bddf802
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Sep 4 13:06:29 2015 +1000
Merge branch 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux
into drm-next
More fixes for radeon and amdgpu for 4.3:
- Send full DP aux address fixes for radeon and amdgpu
- Fix an HDMI display regression for pre-DCE5 parts
- UVD suspend fixes for amdgpu
- Add an rs480 suspend quirk
- Fix bo reserve handling in amdgpu GEM_OP ioctl
- GPU scheduler fixes
- SDMA optimizations
- MEC fix for Fiji
* 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux: (21
commits)
drm/amdgpu: set MEC doorbell range for Fiji
drm/amdgpu: implement burst NOP for SDMA
drm/amdgpu: add insert_nop ring func and default implementation
drm/amdgpu: add amdgpu_get_sdma_instance helper function
drm/amdgpu: add AMDGPU_MAX_SDMA_INSTANCES
drm/amdgpu: add burst_nop flag for sdma
drm/amdgpu: add count field for the SDMA NOP packet v2
drm/amdgpu: use PT for VM sync on unmap
drm/amdgpu: make wait_event uninterruptible in push_job
drm/amdgpu: fix amdgpu_bo_unreserve order in GEM_OP IOCTL v2
drm/amdgpu: partially revert "modify amdgpu_fence_wait_any() to
amdgpu_fence_wait_multiple()" v2
Add radeon suspend/resume quirk for HP Compaq dc5750.
drm/amdgpu: re-work sync_resv
drm/amdgpu/atom: Send out the full AUX address
drm/radeon/native: Send out the full AUX address
drm/radeon/atom: Send out the full AUX address
drm/amdgpu: use IB for fill_buffer instead of direct command
drm/amdgpu: stop trying to suspend UVD sessions v2
drm/amdgpu: add scheduler dependency callback v2
drm/amdgpu: let the scheduler work more with jobs v2
...
commit dc3a04d551b5d21f1badbb39bfe8e5bc1289b184
Author: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 17:11:22 2015 -0700
security/device_cgroup: Fix RCU_LOCKDEP_WARN() condition
f78f5b90c4ff ("rcu: Rename rcu_lockdep_assert() to RCU_LOCKDEP_WARN()")
introduced a bug by incorrectly inverting the condition when moving from
rcu_lockdep_assert() to RCU_LOCKDEP_WARN(). This commit therefore fixes
the inversion.
Reported-by: Felipe Balbi <balbi@xxxxxx>
Reported-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Acked-by: Serge Hallyn <serge.hallyn@xxxxxxxxxxxxx>
Tested-by: Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx>
commit 807249d3ada1ff28a47c4054ca4edd479421b671
Merge: ff474e8 2db9704
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 16:55:55 2015 -0700
Merge branch 'upstream' of
git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS updates from Ralf Baechle:
"This is the main pull request for 4.3 for MIPS. Here's the summary:
Three fixes that didn't make 4.2-stable:
- a -Os build might compile the kernel using the MIPS16 instruction
set but the R2 optimized inline functions in <uapi/asm/swab.h> are
implemented using 32-bit wide instructions which is invalid.
- a build error in pgtable-bits.h for a particular kernel
configuration.
- accessing registers of the CM GCR might have been compiled to use
64 bit accesses but these registers are onl 32 bit wide.
And also a few new bits:
- move the ATH79 GPIO driver to drivers/gpio
- the definition of IRQCHIP_DECLARE has moved to linux/irqchip.h,
change ATH79 accordingly.
- fix definition of pgprot_writecombine
- add an implementation of dma_map_ops.mmap
- fix alignment of quiet build output for vmlinuz link
- BCM47xx: Use kmemdup rather than duplicating its implementation
- Netlogic: Fix 0x0x prefixes of constants.
- merge Bjorn Helgaas' series to remove most of the weak keywords
from function declarations.
- CP0 and CP1 registers are best considered treated as unsigned
values to avoid large values from becoming negative values.
- improve support for the MIPS GIC timer.
- enable common clock framework for Malta and SEAD3.
- a number of improvments and fixes to dump_tlb().
- document the MIPS TLB dump functionality in Magic SysRq.
- Cavium Octeon CN68XX improvments.
- NetLogic improvments.
- irq: Use access helper irq_data_get_affinity_mask.
- handle MSA unaligned accesses.
- a number of R6-related math-emu fixes.
- support for I6400.
- improvments to MSA support.
- add uprobes support.
- move from deprecated __initcall to arch_initcall.
- remove finish_arch_switch().
- IRQ cleanups by Thomas Gleixner.
- migrate to new 'set-state' interface.
- random small cleanups"
* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
(148 commits)
MIPS: UAPI: Fix unrecognized opcode WSBH/DSBH/DSHD when using MIPS16.
MIPS: Fix alignment of quiet build output for vmlinuz link
MIPS: math-emu: Remove unused handle_dsemul function declaration
MIPS: math-emu: Add support for the MIPS R6 MAX{, A} FPU instruction
MIPS: math-emu: Add support for the MIPS R6 MIN{, A} FPU instruction
MIPS: math-emu: Add support for the MIPS R6 CLASS FPU instruction
MIPS: math-emu: Add support for the MIPS R6 RINT FPU instruction
MIPS: math-emu: Add support for the MIPS R6 MSUBF FPU instruction
MIPS: math-emu: Add support for the MIPS R6 MADDF FPU instruction
MIPS: math-emu: Add support for the MIPS R6 SELNEZ FPU instruction
MIPS: math-emu: Add support for the MIPS R6 SELEQZ FPU instruction
MIPS: math-emu: Add support for the CMP.condn.fmt R6 instruction
MIPS: inst.h: Add new MIPS R6 FPU opcodes
MIPS: Octeon: Fix management port MII address on Kontron S1901
MIPS: BCM47xx: Use kmemdup rather than duplicating its implementation
STAGING: Octeon: Use common helpers for determining interface and port
MIPS: Octeon: Support interfaces 4 and 5
MIPS: Octeon: Set up 1:1 mapping between CN68XX PKO queues and ports
MIPS: Octeon: Initialize CN68XX PKO
STAGING: Octeon: Support CN68XX style WQE
...
commit ff474e8ca8547d09cb82ebab56d4c96f9eea01ce
Merge: 4c92b5b 390fd59
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 16:41:38 2015 -0700
Merge tag 'powerpc-4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
Pull powerpc updates from Michael Ellerman:
- support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask
from Benjamin Herrenschmidt
- EEH fixes for SRIOV from Gavin
- introduce rtas_get_sensor_fast() for IRQ handlers from Thomas Huth
- use hardware RNG for arch_get_random_seed_* not arch_get_random_*
from Paul Mackerras
- seccomp filter support from Michael Ellerman
- opal_cec_reboot2() handling for HMIs & machine checks from Mahesh
Salgaonkar
- add powerpc timebase as a trace clock source from Naveen N. Rao
- misc cleanups in the xmon, signal & SLB code from Anshuman Khandual
- add an inline function to update POWER8 HID0 from Gautham R. Shenoy
- fix pte_pagesize_index() crash on 4K w/64K hash from Michael Ellerman
- drop support for 64K local store on 4K kernels from Michael Ellerman
- move dma_get_required_mask() from pnv_phb to pci_controller_ops from
Andrew Donnellan
- initialize distance lookup table from drconf path from Nikunj A
Dadhania
- enable RTC class support from Vaibhav Jain
- disable automatically blocked PCI config from Gavin Shan
- add LEDs driver for PowerNV platform from Vasant Hegde
- fix endianness issues in the HVSI driver from Laurent Dufour
- kexec endian fixes from Samuel Mendoza-Jonas
- fix corrupted pdn list from Gavin Shan
- fix fenced PHB caused by eeh_slot_error_detail() from Gavin Shan
- Freescale updates from Scott: Highlights include 32-bit memcpy/memset
optimizations, checksum optimizations, 85xx config fragments and
updates, device tree updates, e6500 fixes for non-SMP, and misc
cleanup and minor fixes.
- a ton of cxl updates & fixes:
- add explicit precision specifiers from Rasmus Villemoes
- use more common format specifier from Rasmus Villemoes
- destroy cxl_adapter_idr on module_exit from Johannes Thumshirn
- destroy afu->contexts_idr on release of an afu from Johannes
Thumshirn
- compile with -Werror from Daniel Axtens
- EEH support from Daniel Axtens
- plug irq_bitmap getting leaked in cxl_context from Vaibhav Jain
- add alternate MMIO error handling from Ian Munsie
- allow release of contexts which have been OPENED but not STARTED
from Andrew Donnellan
- remove use of macro DEFINE_PCI_DEVICE_TABLE from Vaishali Thakkar
- release irqs if memory allocation fails from Vaibhav Jain
- remove racy attempt to force EEH invocation in reset from Daniel
Axtens
- fix + cleanup error paths in cxl_dev_context_init from Ian Munsie
- fix force unmapping mmaps of contexts allocated through the kernel
api from Ian Munsie
- set up and enable PSL Timebase from Philippe Bergheaud
* tag 'powerpc-4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (140 commits)
cxl: Set up and enable PSL Timebase
cxl: Fix force unmapping mmaps of contexts allocated through the kernel
api
cxl: Fix + cleanup error paths in cxl_dev_context_init
powerpc/eeh: Fix fenced PHB caused by eeh_slot_error_detail()
powerpc/pseries: Cleanup on pci_dn_reconfig_notifier()
powerpc/pseries: Fix corrupted pdn list
powerpc/powernv: Enable LEDS support
powerpc/iommu: Set default DMA offset in dma_dev_setup
cxl: Remove racy attempt to force EEH invocation in reset
cxl: Release irqs if memory allocation fails
cxl: Remove use of macro DEFINE_PCI_DEVICE_TABLE
powerpc/powernv: Fix mis-merge of OPAL support for LEDS driver
powerpc/powernv: Reset HILE before kexec_sequence()
powerpc/kexec: Reset secondary cpu endianness before kexec
powerpc/hvsi: Fix endianness issues in the HVSI driver
leds/powernv: Add driver for PowerNV platform
powerpc/powernv: Create LED platform device
powerpc/powernv: Add OPAL interfaces for accessing and modifying system
LED states
powerpc/powernv: Fix the log message when disabling VF
cxl: Allow release of contexts which have been OPENED but not STARTED
...
commit 4c92b5bb14226faa16d29a1df5752baf1ff22b53
Merge: c706c7e fca8b80
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 16:36:33 2015 -0700
Merge branch 'pcmcia' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Pull ARM pcmcia updates from Russell King:
"A series of changes updating the PXA and SA11x0 PCMCIA code to use
devm_* APIs, and resolve some resource leaks in doing so. This
results in a few small cleanups which are included in this set.
FYI, the recommit of these today is to add Robert Jarzmik's
reviewed-by tags, which I'd forgotten to add from mid-July"
* 'pcmcia' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
pcmcia: soc_common: remove skt_dev_info's clk pointer
pcmcia: sa11xx_base.c: remove useless init/exit functions
pcmcia: sa1111: simplify clk handing in sa1111_pcmcia_add()
pcmcia: sa1111: update socket driver to use devm_clk_get() API
pcmcia: pxa2xx: convert memory allocation to devm_* API
pcmcia: pxa2xx: update socket driver to use devm_clk_get() API
pcmcia: sa11x0: convert memory allocation to devm_* API
pcmcia: sa11x0: fix missing clk_put() in sa11x0 socket drivers
commit c706c7eb0d08098f0d768aeef945d7cf1f8858b4
Merge: 79b0691 3ff32a0
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 16:27:01 2015 -0700
Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Pull ARM development updates from Russell King:
"Included in this update:
- moving PSCI code from ARM64/ARM to drivers/
- removal of some architecture internals from global kernel view
- addition of software based "privileged no access" support using the
old domains register to turn off the ability for kernel
loads/stores to access userspace. Only the proper accessors will
be usable.
- addition of early fixup support for early console
- re-addition (and reimplementation) of OMAP special interconnect
barrier
- removal of finish_arch_switch()
- only expose cpuX/online in sysfs if hotpluggable
- a number of code cleanups"
* 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (41 commits)
ARM: software-based priviledged-no-access support
ARM: entry: provide uaccess assembly macro hooks
ARM: entry: get rid of multiple macro definitions
ARM: 8421/1: smp: Collapse arch_cpu_idle_dead() into cpu_die()
ARM: uaccess: provide uaccess_save_and_enable() and uaccess_restore()
ARM: mm: improve do_ldrd_abort macro
ARM: entry: ensure that IRQs are enabled when calling
syscall_trace_exit()
ARM: entry: efficiency cleanups
ARM: entry: get rid of asm_trace_hardirqs_on_cond
ARM: uaccess: simplify user access assembly
ARM: domains: remove DOMAIN_TABLE
ARM: domains: keep vectors in separate domain
ARM: domains: get rid of manager mode for user domain
ARM: domains: move initial domain setting value to asm/domains.h
ARM: domains: provide domain_mask()
ARM: domains: switch to keeping domain value in register
ARM: 8419/1: dma-mapping: harmonize definition of DMA_ERROR_CODE
ARM: 8417/1: refactor bitops functions with BIT_MASK() and BIT_WORD()
ARM: 8416/1: Feroceon: use of_iomap() to map register base
ARM: 8415/1: early fixmap support for earlycon
...
commit 79b0691d0c1d3d4a976e3304a1512e6eca9671ec
Merge: ca520ca 5b92356
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 16:15:41 2015 -0700
Merge branch 'perf-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fixes from Ingo Molnar:
"Tooling fixes plus a handful of late arriving tooling changes"
* 'perf-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf tools: Fix link time error with sample_reg_masks on non x86
perf build: Fix Intel PT instruction decoder dependency problem
perf dwarf: Fix potential array out of bounds access
perf record: Add ability to name registers to record
perf/x86: Add list of register names
perf script: Enable printing of interrupted machine state
perf evlist: Open event on evsel cpus and threads
bpf tools: New API to get name from a BPF object
perf tools: Fix build on powerpc broken by pt/bts
commit ca520cab25e0e8da717c596ccaa2c2b3650cfa09
Merge: 4c12ab7 d420acd
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 15:46:07 2015 -0700
Merge branch 'locking-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull locking and atomic updates from Ingo Molnar:
"Main changes in this cycle are:
- Extend atomic primitives with coherent logic op primitives
(atomic_{or,and,xor}()) and deprecate the old partial APIs
(atomic_{set,clear}_mask())
The old ops were incoherent with incompatible signatures across
architectures and with incomplete support. Now every architecture
supports the primitives consistently (by Peter Zijlstra)
- Generic support for 'relaxed atomics':
- _acquire/release/relaxed() flavours of xchg(), cmpxchg() and
{add,sub}_return()
- atomic_read_acquire()
- atomic_set_release()
This came out of porting qwrlock code to arm64 (by Will Deacon)
- Clean up the fragile static_key APIs that were causing repeat bugs,
by introducing a new one:
DEFINE_STATIC_KEY_TRUE(name);
DEFINE_STATIC_KEY_FALSE(name);
which define a key of different types with an initial true/false
value.
Then allow:
static_branch_likely()
static_branch_unlikely()
to take a key of either type and emit the right instruction for the
case. To be able to know the 'type' of the static key we encode it
in the jump entry (by Peter Zijlstra)
- Static key self-tests (by Jason Baron)
- qrwlock optimizations (by Waiman Long)
- small futex enhancements (by Davidlohr Bueso)
- ... and misc other changes"
* 'locking-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (63 commits)
jump_label/x86: Work around asm build bug on older/backported GCCs
locking, ARM, atomics: Define our SMP atomics in terms of _relaxed()
operations
locking, include/llist: Use linux/atomic.h instead of asm/cmpxchg.h
locking/qrwlock: Make use of _{acquire|release|relaxed}() atomics
locking/qrwlock: Implement queue_write_unlock() using
smp_store_release()
locking/lockref: Remove homebrew cmpxchg64_relaxed() macro definition
locking, asm-generic: Add _{relaxed|acquire|release}() variants for
'atomic_long_t'
locking, asm-generic: Rework atomic-long.h to avoid bulk code
duplication
locking/atomics: Add _{acquire|release|relaxed}() variants of some
atomic operations
locking, compiler.h: Cast away attributes in the WRITE_ONCE() magic
locking/static_keys: Make verify_keys() static
jump label, locking/static_keys: Update docs
locking/static_keys: Provide a selftest
jump_label: Provide a self-test
s390/uaccess, locking/static_keys: employ static_branch_likely()
x86, tsc, locking/static_keys: Employ static_branch_likely()
locking/static_keys: Add selftest
locking/static_keys: Add a new static_key interface
locking/static_keys: Rework update logic
locking/static_keys: Add static_key_{en,dis}able() helpers
...
commit 724a7636ad026a3a68f3fc626ccd04111f65cfd9
Merge: 4548a69 410f038
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Sep 3 15:43:06 2015 -0700
Merge branch 'sctp-fixes'
Marcelo Ricardo Leitner says:
====================
couple of sctp fixes for 0ca50d12fe46
These are two fixes for sctp after my patch on 0ca50d12fe46 ("sctp: fix
src address selection if using secondary addresses")
The first, fix a dst leak on those it decided to skip.
The second, adds the fallback on src selection that Vlad had asked
about. Unfortunatelly a lot of ipvs setups relies on the old behavior
and I don't see a better fix for it.
Please consider both to -stable tree.
====================
Acked-by: Neil Horman <nhorman@xxxxxxxxxxxxx>
Acked-by: Vlad Yasevich <vyasevich@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 410f03831c0768f2b1850d28ba697b167ddcb89b
Author: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Date: Wed Sep 2 16:20:22 2015 -0300
sctp: add routing output fallback
Commit 0ca50d12fe46 added a restriction that the address must belong to
the output interface, so that sctp will use the right interface even
when using secondary addresses.
But it breaks IPVS setups, on which people is used to attach VIP
addresses to loopback interface on real servers. It's preferred to
attach to the interface actually in use, but it's a very common setup
and that used to work.
This patch then saves the first routing good result, even if it would be
going out through an interface that doesn't have that address. If no
better hit found, it's then used. This effectively restores the original
behavior if no better interface could be found.
Fixes: 0ca50d12fe46 ("sctp: fix src address selection if using secondary
addresses")
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d82f0f1fc8a4f214a50c9dfc64e3896f9894afb7
Author: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Date: Wed Sep 2 16:20:21 2015 -0300
sctp: fix dst leak
Commit 0ca50d12fe46 failed to release the reference to dst entries that
it decided to skip.
Fixes: 0ca50d12fe46 ("sctp: fix src address selection if using secondary
addresses")
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4548a697e4969d695047cebd6d9af5e2f6cc728e
Author: Atsushi Nemoto <nemoto@xxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 17:49:29 2015 +0900
net: eth: altera: fix napi poll_list corruption
tse_poll() calls __napi_complete() with irq enabled. This leads napi
poll_list corruption and may stop all napi drivers working.
Use napi_complete() instead of __napi_complete().
Signed-off-by: Atsushi Nemoto <nemoto@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4e33d1f0a145d48e8cf287954bbf791af8387cfb
Author: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 11:12:59 2015 +0200
KVM: PPC: Book3S: Fix typo in top comment about locking
Signed-off-by: Greg Kurz <gkurz@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
commit d1178cbcdcf91900ccf10a177350d7945703c151
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 21 17:34:13 2015 -0600
IB/ipoib: Suppress warning for send only join failures
We expect send only joins to fail, it just means there are no listeners
for the group. The correct thing to do is silently drop the packet
at source.
Eg avahi will full join 224.0.0.251 which causes a send only IGMP packet
to 224.0.0.22, and then a warning level kmessage like this:
ib0: sendonly multicast join failed for
ff12:401b:ffff:0000:0000:0000:0000:0016, status -22
If there is no IP router listening to IGMP.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit c3acdc06a95ff20d920220ecb931186b0bb22c42
Author: Doug Ledford <dledford@xxxxxxxxxx>
Date: Thu Sep 3 17:05:58 2015 -0400
IB/ipoib: Clean up send-only multicast joins
Even though we don't expect the group to be created by the SM we
sill need to provide all the parameters to force the SM to validate
they are correct.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 4c12ab7e5e2e892fa94df500f96001837918a281
Merge: 9cbf22b 01a5ad8
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 13:10:22 2015 -0700
Merge tag 'for-f2fs-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs
Pull f2fs updates from Jaegeuk Kim:
"The major work includes fixing and enhancing the existing extent_cache
feature, which has been well settling down so far and now it becomes a
default mount option accordingly.
Also, this version newly registers a f2fs memory shrinker to reclaim
several objects consumed by a couple of data structures in order to
avoid memory pressures.
Another new feature is to add ioctl(F2FS_GARBAGE_COLLECT) which
triggers a cleaning job explicitly by users.
Most of the other patches are to fix bugs occurred in the corner cases
across the whole code area"
* tag 'for-f2fs-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (85 commits)
f2fs: upset segment_info repair
f2fs: avoid accessing NULL pointer in f2fs_drop_largest_extent
f2fs: update extent tree in batches
f2fs: fix to release inode correctly
f2fs: handle f2fs_truncate error correctly
f2fs: avoid unneeded initializing when converting inline dentry
f2fs: atomically set inode->i_flags
f2fs: fix wrong pointer access during try_to_free_nids
f2fs: use __GFP_NOFAIL to avoid infinite loop
f2fs: lookup neighbor extent nodes for merging later
f2fs: split __insert_extent_tree_ret for readability
f2fs: kill dead code in __insert_extent_tree
f2fs: adjust showing of extent cache stat
f2fs: add largest/cached stat in extent cache
f2fs: fix incorrect mapping for bmap
f2fs: add annotation for space utilization of regular/inline dentry
f2fs: fix to update cached_en of extent tree properly
f2fs: fix typo
f2fs: check the node block address of newly allocated nid
f2fs: go out for insert_inode_locked failure
...
commit bf2d087749d91e1fa2826edde1e2fd650d3053ca
Author: Corey Minyard <cminyard@xxxxxxxxxx>
Date: Thu Aug 27 15:49:18 2015 -0500
ipmi:ssif: Add a module parm to specify that SMBus alerts don't work
They are broken on some platforms, this gives people a chance to work
around it until the firmware is fixed.
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit acbd9ae70a94bdc626508f444879e19ebe1c421f
Author: Brijesh Singh <brijeshkumar.singh@xxxxxxx>
Date: Mon Aug 24 09:15:25 2015 -0500
ipmi: add of_device_id in MODULE_DEVICE_TABLE
Fix autoloading ipmi modules when using device tree.
Signed-off-by: Brijesh Singh <brijeshkumar.singh@xxxxxxx>
Moved this change up into the CONFIG_OF section to account
for changes to the probing code.
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit d08828973d96eb26e48fb7ca8fb8a8d49adbe53a
Author: Corey Minyard <cminyard@xxxxxxxxxx>
Date: Tue Aug 18 14:29:10 2015 -0500
ipmi: Compensate for BMCs that wont set the irq enable bit
It appears that some BMCs support interrupts but don't support setting
the irq enable bits. The interrupts are just always on. Sigh.
Add code to compensate.
The new code was very similar to another functions, so this also
factors out the common code into other functions.
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
Tested-by: Henrik Korkuc <henrik@xxxxxxxxx>
commit c49c097610fe1aabf86111297280a718abb5dcc2
Author: Hidehiro Kawai <hidehiro.kawai.ez@xxxxxxxxxxx>
Date: Mon Jul 27 14:55:16 2015 +0900
ipmi: Don't call receive handler in the panic context
Received handlers defined as ipmi_recv_hndl member of struct
ipmi_user_hndl can take a spinlock. This means that if the kernel
panics while holding the lock, a deadlock may happen on the lock
while flushing queued messages in the panic context.
Calling the receive handler doesn't make much meanings in the panic
context, simply skip it to avoid possible deadlocks.
Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@xxxxxxxxxxx>
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit 06e5e345fea8df24b1d935f98741343df4cab664
Author: Hidehiro Kawai <hidehiro.kawai.ez@xxxxxxxxxxx>
Date: Mon Jul 27 14:55:16 2015 +0900
ipmi: Avoid touching possible corrupted lists in the panic context
When processing queued messages in the panic context, IPMI driver
tries to do it without any locking to avoid deadlocks. However,
this means we can touch a corrupted list if the kernel panicked
while manipulating the list. Fortunately, current `add-tail and
del-from-head' style implementation won't touch the corrupted part,
but it is inherently risky.
To get rid of the risk, this patch re-initializes the message lists
on panic if the related spinlock has already been acquired. As the
result, we may lose queued messages, but it's not so painful.
Dropping messages on the received message list is also less
problematic because no one can respond the received messages.
Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@xxxxxxxxxxx>
Fixed a comment typo.
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit 82802f968bd3118af04eaeb3814c21d9813be527
Author: Hidehiro Kawai <hidehiro.kawai.ez@xxxxxxxxxxx>
Date: Mon Jul 27 14:55:16 2015 +0900
ipmi: Don't flush messages in sender() in run-to-completion mode
When flushing queued messages in run-to-completion mode,
smi_event_handler() is recursively called.
flush_messages()
smi_event_handler()
handle_transaction_done()
deliver_recv_msg()
ipmi_smi_msg_received()
smi_recv_tasklet()
sender()
flush_messages()
smi_event_handler()
...
The depth of the recursive call depends on the number of queued
messages, so it can cause a stack overflow if many messages have
been queued.
To solve this problem, this patch removes flush_messages()
from sender()@ipmi_si_intf.c. Instead, add flush_messages() to
caller side of sender() if needed. Additionally, to implement this,
add new handler flush_messages to struct ipmi_smi_handlers.
Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@xxxxxxxxxxx>
Fixed up a comment and some spacing issues.
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit e45361d733d0a1432b0f6307375045e66ac02489
Author: Hidehiro Kawai <hidehiro.kawai.ez@xxxxxxxxxxx>
Date: Mon Jul 27 14:55:16 2015 +0900
ipmi: Factor out message flushing procedure
Factor out message flushing procedure which is used in run-to-completion
mode. This patch doesn't change the logic.
Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@xxxxxxxxxxx>
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit b0868dd5c17c0d9cc8919e786db2e428aa225621
Author: Hidehiro Kawai <hidehiro.kawai.ez@xxxxxxxxxxx>
Date: Mon Jul 27 14:55:16 2015 +0900
ipmi: Remove unneeded set_run_to_completion call
send_panic_events() calls intf->handlers->set_run_to_completion(),
but it has already been done in the caller function panic_event().
Remove it from send_panic_events().
Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@xxxxxxxxxxx>
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit 81d02b7f8c507f06299476a0e5b2aa677c5eaecb
Author: Corey Minyard <cminyard@xxxxxxxxxx>
Date: Sat Jun 13 10:34:25 2015 -0500
ipmi: Make some data const that was only read
Several data structures were only used for reading, so make them
const.
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit 5186cf9c74034a4a7856de9c8048493be34c457d
Author: Mathias Krause <minipli@xxxxxxxxxxxxxx>
Date: Sat Jun 13 14:19:33 2015 +0200
ipmi: constify SSIF ACPI device ids
Constify the ACPI device ID array, it doesn't need to be writable at
runtime.
Signed-off-by: Mathias Krause <minipli@xxxxxxxxxxxxxx>
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit a7930899ca0082a33350b253c6ed34f67255f98e
Author: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Sat Jun 27 18:12:14 2015 +0200
ipmi: Delete an unnecessary check before the function call
"cleanup_one_si"
The cleanup_one_si() function tests whether its argument is NULL and then
returns immediately. Thus the test around the call is not needed.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit fedb25ea903d3520b6cff00c41740a892cf6bc0e
Author: Shailendra Verma <shailendra.capricorn@xxxxxxxxx>
Date: Tue May 26 00:54:57 2015 +0530
char:ipmi - Change 1 to true for bool type variables during
initialization.
Signed-off-by: Shailendra Verma <shailendra.capricorn@xxxxxxxxx>
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit 881c585ef79addb2440a7f8d59bda5640d0ff623
Author: Nicholas Krause <xerofoify@xxxxxxxxx>
Date: Sat May 9 15:32:28 2015 -0400
impi:Remove unneeded setting of module owner to THIS_MODULE in the
platform structure, powernv_ipmi_driver
This removes the no longer required setting of the module owner
for the plaform structure,powernv_ipmi_driver to THIS_MODULE as
the driver core for ipmi drivers will directly find and
set the module owner for this driver.
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit b2234ee9fc059c17e811a365383e3412a2f50bed
Author: Corey Minyard <cminyard@xxxxxxxxxx>
Date: Thu Feb 19 11:29:24 2015 -0600
ipmi: Add a comment in how messages are delivered from the lower layer
To avoid confusion in the future.
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit cca85f19c260df495a487495479c67803b25fa8a
Author: Neelesh Gupta <neelegup@xxxxxxxxxxxxxxxxxx>
Date: Thu Jul 16 16:46:54 2015 +0530
ipmi/powernv: Fix potential invalid pointer dereference
If the OPAL call to receive the ipmi message fails, then we free up the
smi message and return. But, the driver still holds the reference to
old smi message in the 'cur_msg' which can potentially be accessed later
and freed again leading to kernel oops. To fix it up,
The kernel driver should reset the 'cur_msg' and send reply to the user
in addition to freeing the message.
Signed-off-by: Neelesh Gupta <neelegup@xxxxxxxxxxxxxxxxxx>
Fixed a checkpatch warning dealing with an else after a return.
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit 0fbcf4af7c8362d4691f9388efa57d0b14b34225
Author: Corey Minyard <cminyard@xxxxxxxxxx>
Date: Tue Jun 9 16:51:46 2015 -0500
ipmi: Convert the IPMI SI ACPI handling to a platform device
The IPMI SI driver was using direct PNP, but that was not really
ideal because the IPMI device is a platform device. There was
some special handling in the acpi_pnp.c code for making this work,
but that was breaking ACPI handling for the IPMI SSIF driver.
So without this patch there were significant issues getting the
SSIF driver to work with ACPI.
So use a platform device for ACPI detection and remove the
entry from acpi_pnp.c.
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit 92e847212676bb3c5f9f7e317907367dbb8c504b
Author: Corey Minyard <cminyard@xxxxxxxxxx>
Date: Thu Sep 3 14:58:55 2015 -0500
ipmi: Add device tree bindings information
Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx>
commit 7fbc67df2cd6d0b72fd5d6d3acaa79ab6f5b0224
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Mon Aug 24 19:04:51 2015 +0300
IB/srp: Fix possible protection fault
srp_destroy_qp is designed to indicate we are safe to continue with
freeing the channel resources by modifying the qp error state,
posting a dummy wr on the queue-pair and waiting for it to flush.
This also holds for the channel registration pool as we are unmapping
the memory region when handling a scsi response. Destroying the
channel registration pool before we make sure we processed all the
inflight IO might introduce a use-after-free of the registration pool.
This use-after-free is demonstrated in the stack trace below where
srp is trying to unmap a used FMR after the fmr_pool was already
destroyed.
general protection fault: 0000 [#1] SMP
RIP: 0010:[<ffffffff8151121b>] [<ffffffff8151121b>]
_raw_spin_lock_irqsave+0x1b/0x50
Call Trace:
[<ffffffffa055d88a>] ib_fmr_pool_unmap+0x1a/0xb0 [ib_core]
[<ffffffffa06c00ed>] srp_unmap_data.isra.28+0x17d/0x250 [ib_srp]
[<ffffffffa06c01eb>] srp_free_req+0x2b/0x60 [ib_srp]
[<ffffffffa06c0c94>] srp_recv_completion+0x174/0x580 [ib_srp]
[<ffffffffa04580fe>] mlx4_eq_int+0x4de/0xe50 [mlx4_core]
[<ffffffffa0458b00>] mlx4_msi_x_interrupt+0x10/0x20 [mlx4_core]
[<ffffffff810abc45>] handle_irq_event_percpu+0x35/0x1b0
[<ffffffff810abdf2>] handle_irq_event+0x32/0x50
[<ffffffff810ae5cf>] handle_edge_irq+0x6f/0x120
[<ffffffff8100455a>] handle_irq+0x1a/0x30
[<ffffffff8151b475>] do_IRQ+0x45/0xb0
[<ffffffff8151162d>] common_interrupt+0x6d/0x6d
[<ffffffff813e4d2f>] cpuidle_enter_state+0x4f/0xc0
[<ffffffff813e4e6c>] cpuidle_idle_call+0xcc/0x210
[<ffffffff8100b9ea>] arch_cpu_idle+0xa/0x30
[<ffffffff810ab1e1>] cpu_startup_entry+0xe1/0x270
[<ffffffff81030b3a>] start_secondary+0x21a/0x2c0
Reported-by: Eliott Kespi <eliottk@xxxxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 9cbf22b37ae0592dea809cb8d424990774c21786
Merge: ea814ab b3a5bbf
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 12:57:48 2015 -0700
Merge tag 'dlm-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm
Pull dlm updates from David Teigland:
"This set mainly includes a change to the way the dlm uses the SCTP API
in the kernel, removing the direct dependency on the sctp module.
Other odd SCTP-related fixes are also included.
The other notable fix is for a long standing regression in the
behavior of lock value blocks for user space locks"
* tag 'dlm-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
dlm: print error from kernel_sendpage
dlm: fix lvb copy for user locks
dlm: sctp_accept_from_sock() can be static
dlm: fix reconnecting but not sending data
dlm: replace BUG_ON with a less severe handling
dlm: use sctp 1-to-1 API
dlm: fix not reconnecting on connecting error handling
dlm: fix race while closing connections
dlm: fix connection stealing if using SCTP
commit ea814ab9aab23505f6828a0cc01c985e59847f4e
Merge: e31fb9e bdfe0cbd
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 12:52:19 2015 -0700
Merge tag 'ext4_for_linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 updates from Ted Ts'o:
"Pretty much all bug fixes and clean ups for 4.3, after a lot of
features and other churn going into 4.2"
* tag 'ext4_for_linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
Revert "ext4: remove block_device_ejected"
ext4: ratelimit the file system mounted message
ext4: silence a format string false positive
ext4: simplify some code in read_mmp_block()
ext4: don't manipulate recovery flag when freezing no-journal fs
jbd2: limit number of reserved credits
ext4 crypto: remove duplicate header file
ext4: update c/mtime on truncate up
jbd2: avoid infinite loop when destroying aborted journal
ext4, jbd2: add REQ_FUA flag when recording an error in the superblock
ext4 crypto: fix spelling typo in comment
ext4 crypto: exit cleanly if ext4_derive_key_aes() fails
ext4: reject journal options for ext2 mounts
ext4: implement cgroup writeback support
ext4: replace ext4_io_submit->io_op with ->io_wbc
ext4 crypto: check for too-short encrypted file names
ext4 crypto: use a jbd2 transaction when adding a crypto policy
jbd2: speedup jbd2_journal_dirty_metadata()
commit 0629cb06cdf8f1a403ce71bce5b83380ae898e1a
Author: Ira Weiny <ira.weiny@xxxxxxxxx>
Date: Thu Sep 3 14:16:30 2015 -0400
IB/core: Move SM class defines from ib_mad.h to ib_smi.h
When the hfi1 driver was added these definitions were moved from the qib
driver
to ib_mad.h to be used by both qib and hfi1. They should have been moved
to
ib_smi.h instead.
Fixes: d4ab347005fb ("IB/core: Add core header changes needed for OPA")
Reviewed-by: Hal Rosenstock <hal@xxxxxxxxxxxx>
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit ce755c9b01e09ee4907cf79bd0f57fa5cf65c4c3
Author: Ira Weiny <ira.weiny@xxxxxxxxx>
Date: Wed Sep 2 18:45:54 2015 -0400
IB/core: Remove unnecessary defines from ib_mad.h
Remove the unused IB_NOTICE_REPRESS_* defines.
When the hfi1 driver was added these definitions were moved from the qib
driver
to ib_mad.h. They should have been removed instead.
Fixes: d4ab347005fb ("IB/core: Add core header changes needed for OPA")
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Reviewed-by: Hal Rosenstock <hal@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 6f876ce4b53f7c748e07cedab661aa4bcc8a09d2
Author: Ira Weiny <ira.weiny@xxxxxxxxx>
Date: Wed Sep 2 18:46:21 2015 -0400
IB/hfi1: Add PSM2 user space header to header_install
When the hfi1 driver was added a user space header file (hfi1_user.h) was
added
to be shared between PSM2 and the driver. However, the file was not
added to
the header install. Add it now.
Fixes: d4ab347005fb ("IB/core: Add core header changes needed for OPA")
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit e31fb9e00543e5d3c5b686747d3c862bc09b59f3
Merge: 824b005 9181f8b
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 12:28:30 2015 -0700
Merge branch 'for_linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
Pull ext3 removal, quota & udf fixes from Jan Kara:
"The biggest change in the pull is the removal of ext3 filesystem
driver (~28k lines removed). Ext4 driver is a full featured
replacement these days and both RH and SUSE use it for several years
without issues. Also there are some workarounds in VM & block layer
mainly for ext3 which we could eventually get rid of.
Other larger change is addition of proper error handling for
dquot_initialize(). The rest is small fixes and cleanups"
[ I wasn't convinced about the ext3 removal and worried about things
falling through the cracks for legacy users, but ext4 maintainers
piped up and were all unanimously in favor of removal, and maintaining
all legacy ext3 support inside ext4. - Linus ]
* 'for_linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
udf: Don't modify filesystem for read-only mounts
quota: remove an unneeded condition
ext4: memory leak on error in ext4_symlink()
mm/Kconfig: NEED_BOUNCE_POOL: clean-up condition
ext4: Improve ext4 Kconfig test
block: Remove forced page bouncing under IO
fs: Remove ext3 filesystem driver
doc: Update doc about journalling layer
jfs: Handle error from dquot_initialize()
reiserfs: Handle error from dquot_initialize()
ocfs2: Handle error from dquot_initialize()
ext4: Handle error from dquot_initialize()
ext2: Handle error from dquot_initalize()
quota: Propagate error from ->acquire_dquot()
commit 66c117d7fa2ae429911e60d84bf31a90b2b96189
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Thu Sep 3 12:34:55 2015 +0200
x86/alternatives: Make optimize_nops() interrupt safe and synced
Richard reported the following crash:
[ 0.036000] BUG: unable to handle kernel paging request at 55501e06
[ 0.036000] IP: [<c0aae48b>] common_interrupt+0xb/0x38
[ 0.036000] Call Trace:
[ 0.036000] [<c0409c80>] ? add_nops+0x90/0xa0
[ 0.036000] [<c040a054>] apply_alternatives+0x274/0x630
Chuck decoded:
" 0: 8d 90 90 83 04 24 lea 0x24048390(%eax),%edx
6: 80 fc 0f cmp $0xf,%ah
9: a8 0f test $0xf,%al
>> b: a0 06 1e 50 55 mov 0x55501e06,%al
10: 57 push %edi
11: 56 push %esi
Interrupt 0x30 occurred while the alternatives code was replacing the
initial 0x90,0x90,0x90 NOPs (from the ASM_CLAC macro) with the
optimized version, 0x8d,0x76,0x00. Only the first byte has been
replaced so far, and it makes a mess out of the insn decoding."
optimize_nops() is buggy in two aspects:
- It's not disabling interrupts across the modification
- It's lacking a sync_core() call
Add both.
Fixes: 4fd4b6e5537c 'x86/alternatives: Use optimized NOPs for padding'
Reported-and-tested-by: "Richard W.M. Jones" <rjones@xxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Richard W.M. Jones <rjones@xxxxxxxxxx>
Cc: Chuck Ebbert <cebbert.lkml@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1509031232340.15006@nanos
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 6fd8edabc2b03203e6bc44e77d1dfff415e706cc
Author: Jubin John <jubin.john@xxxxxxxxx>
Date: Wed Sep 2 10:43:24 2015 -0400
IB/hfi1: Add CSRs for CONFIG_SDMA_VERBOSITY
3 CSRs needed by the CONFIG_SDMA_VERBOSITY code were removed during
the CSR clean up. Adding these CSRs back to resolve 0-day build failure:
https://lists.01.org/pipermail/kbuild-all/2015-August/011919.html
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Signed-off-by: Jubin John <jubin.john@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 824b005c86f91fe02eb2743a4526361f11786f70
Merge: dd5cdb4 f49a26e
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 11:55:55 2015 -0700
Merge branch 'hpfs' (patches from Mikulas)
Merge hpfs upddate from Mikulas Patocka.
* emailed patches from Mikulas Patocka <mikulas@xxxxxxxxxxxxx>:
hpfs: update ctime and mtime on directory modification
hpfs: support hotfixes
commit f49a26e7718dd30b49e3541e3e25aecf5e7294e2
Author: Mikulas Patocka <mikulas@xxxxxxxxxxxxx>
Date: Wed Sep 2 22:51:53 2015 +0200
hpfs: update ctime and mtime on directory modification
Update ctime and mtime when a directory is modified. (though OS/2 doesn't
update them anyway)
Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx>
Cc: stable@xxxxxxxxxx # v3.3+
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit a64eefaac1c5cc8dbc6995228fe08a61b8e1d26b
Author: Mikulas Patocka <mikulas@xxxxxxxxxxxxx>
Date: Wed Sep 2 22:50:12 2015 +0200
hpfs: support hotfixes
When the OS/2 driver hits a disk write error, it writes the sector to
another location and adds the sector mapping to the hotfix map.
This patch makes the hpfs driver understand the hotfix map and remap
accesses accoring to it.
Signed-off-by: Mikulas Patocka <mikulas@xxxxxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
commit b636401f0ec9bbf7931774e00f3adf7ee9214cce
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Wed Sep 2 22:23:04 2015 +0300
mlx5: Fix incorrect wc pkey_index assignment for GSI messages
Since patch series "Demux IB CM requests in the rdma_cm module" the
P_Key index is taken from the work completion rather than the message
itself.
The HCA provides us with the message P_Key. In order to provide the
P_Key index, we need to look it up. Given that this is relevant only
for GSI messages (session establishments) which is less performance
critical,
micro-optimize against the GSI (is_qp1) branch.
Fixes: 4c21b5bcef73 ("IB/cma: Add net_dev and private data checks to
RDMA CM")
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 11d748045c6dadb279d1acdb6d2ea8f3f2ede85b
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Tue Sep 1 09:56:56 2015 +0300
IB/mlx5: avoid destroying a NULL mr in reg_user_mr error flow
The mlx5_ib_reg_user_mr() function will attempt to call clean_mr() in
its error flow even though there is never a case where the error flow
occurs with a valid MR pointer to destroy.
Remove the clean_mr() call and the incorrect comment above it.
Fixes: b4cfe447d47b ("IB/mlx5: Implement on demand paging by adding
support for MMU notifiers")
Cc: Eli Cohen <eli@xxxxxxxxxxxx>
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Reviewed-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 8f7e0a806db0a3ba33234af3c39d68ed8c144071
Author: Andreas Gruenbacher <agruenba@xxxxxxxxxx>
Date: Thu Aug 27 13:02:54 2015 -0500
gfs2: A minor "sbstats" cleanup
It seems cleaner to avoid the temporary value here.
Signed-off-by: Andreas Gruenbacher <agruenba@xxxxxxxxxx>
Signed-off-by: Bob Peterson <rpeterso@xxxxxxxxxx>
commit c9ea8c8b74b5fb2584879e4338770ed252d8a489
Author: Andreas Gruenbacher <agruenba@xxxxxxxxxx>
Date: Thu Aug 27 13:05:08 2015 -0500
gfs2: Fix a typo in a comment
Signed-off-by: Andreas Gruenbacher <agruenba@xxxxxxxxxx>
Signed-off-by: Bob Peterson <rpeterso@xxxxxxxxxx>
commit 4d207133e9c362bc05a3bb6701d63eeb75cc4b77
Author: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
Date: Thu Aug 27 12:51:45 2015 -0500
gfs2: Make statistics unsigned, suitable for use with do_div()
None of these statistics can meaningfully be negative, and the
numerator for do_div() must have the type u64. The generic
implementation of do_div() used on some 32-bit architectures asserts
that, resulting in a compiler error in gfs2_rgrp_congested().
Fixes: 0166b197c2ed ("GFS2: Average in only non-zero round-trip times
...")
Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
Signed-off-by: Bob Peterson <rpeterso@xxxxxxxxxx>
Acked-by: Andreas Gruenbacher <agruenba@xxxxxxxxxx>
commit 88ffbf3e037e67b52c46d528aca1618489c21f68
Author: Bob Peterson <rpeterso@xxxxxxxxxx>
Date: Mon Mar 16 11:02:46 2015 -0500
GFS2: Use resizable hash table for glocks
This patch changes the glock hash table from a normal hash table to
a resizable hash table, which scales better. This also simplifies
a lot of code.
Signed-off-by: Bob Peterson <rpeterso@xxxxxxxxxx>
Signed-off-by: Andreas Gruenbacher <agruenba@xxxxxxxxxx>
Acked-by: Steven Whitehouse <swhiteho@xxxxxxxxxx>
commit 15562c439d0a1850b71aa1c0d92d1f4fb9503c8d
Author: Bob Peterson <rpeterso@xxxxxxxxxx>
Date: Mon Mar 16 11:52:05 2015 -0500
GFS2: Move glock superblock pointer to field gl_name
What uniquely identifies a glock in the glock hash table is not
gl_name, but gl_name and its superblock pointer. This patch makes
the gl_name field correspond to a unique glock identifier. That will
allow us to simplify hashing with a future patch, since the hash
algorithm can then take the gl_name and hash its components in one
operation.
Signed-off-by: Bob Peterson <rpeterso@xxxxxxxxxx>
Signed-off-by: Andreas Gruenbacher <agruenba@xxxxxxxxxx>
Acked-by: Steven Whitehouse <swhiteho@xxxxxxxxxx>
commit 81648d043191e5f8f5870c5af6060b56383b139d
Author: Andreas Gruenbacher <agruenba@xxxxxxxxxx>
Date: Thu Aug 27 11:43:00 2015 -0500
gfs2: Simplify the seq file code for "sbstats"
Don't use struct gfs2_glock_iter as the helper data structure for
iterating
through "sbstats"; we are not iterating through glocks here.
Signed-off-by: Andreas Gruenbacher <agruenba@xxxxxxxxxx>
Signed-off-by: Bob Peterson <rpeterso@xxxxxxxxxx>
commit 270e869d846af143f60b7404e01e785d18420007
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Sep 2 20:25:48 2015 +0200
drm/amdgpu: fix buffer placement under memory pressure
Some buffers (UVD/VM page tables) must be placed in VRAM,
but the byte restriction for moving buffers didn't took this
into account.
Port of radeon commit 4b09556660bfe1b43d72ca858524c6baf2c6cb1d.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit b632ffa7cee439ba5dce3b3bc4a5cbe2b3e20133
Author: Christoph Hellwig <hch@xxxxxx>
Date: Wed Aug 26 11:00:37 2015 +0200
IB/uverbs: reject invalid or unknown opcodes
We have many WR opcodes that are only supported in kernel space
and/or require optional information to be copied into the WR
structure. Reject all those not explicitly handled so that we
can't pass invalid information to drivers.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 54b9a96f10d9acb7b1ffd40e2e1736443eb7656d
Author: Nicholas Krause <xerofoify@xxxxxxxxx>
Date: Wed Aug 26 23:00:59 2015 -0400
IB/cxgb4: Fix if statement in pick_local_ip6adddrs
This fixes an if statement checking the return value of the function
get_lladdr for success in the function pick_local_ip6addrs to instead
of directly checking the return value of this call check the opposite
as get_lladdr returns zero for success which would incorrectly make
this if statement block not execute with the current if statement
check.
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
Acked-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 731857715f03035c812c3f6bdcb6b0179150c1aa
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 10:50:21 2015 -0700
Input: regulator-haptic - fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 544edf56fdbf3916f4dad4e2dc71de3965a9d964
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 10:49:46 2015 -0700
Input: pwm-beeper - fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit e4dbe796285d96976586487fe0555f678c95b60f
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 10:49:17 2015 -0700
Input: ab8500-ponkey - Fix module autoload for OF platform driver
This platform driver has a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit f2bc114b82ecbd32b3581bebdf40f1f2c4e9941b
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Thu Sep 3 10:47:25 2015 -0700
Input: cyttsp - remove unnecessary MODULE_ALIAS()
The drivers have a I2C device ID table that is used to create the module
aliases and also "cyttsp" and "cyttsp4" are not supported I2C device IDs
so these module aliases are never used.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 4aeca98c49e9873e18b27540a0ba18b22e1b9424
Author: João Paulo Rechi Vita <jprvita@xxxxxxxxx>
Date: Thu Sep 3 10:04:49 2015 -0700
Input: elan_i2c - add ACPI ID "ELAN1000"
This ACPI ID present in the DSDT of the ASUS E202SA laptop.
Signed-off-by: João Paulo Rechi Vita <jprvita@xxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 9f42a89da6b4dc015631e01ba990d3db2cae2a1b
Author: Leo Yan <leo.yan@xxxxxxxxxx>
Date: Wed Sep 2 10:57:47 2015 +0800
clk: Hi6220: separately build stub clock driver
The previous code, kernel builds Hi6220's common clock driver and stub
clock driver together. Stub clock driver has introduced the dependency
with CONFIG_MAILBOX, so kernel will not build Hi6220's common clock
driver due ARM64's defconfig have not enabled CONFIG_MAILBOX by default.
So separately build stub clock driver and common clock driver for
Hi6220; and only let stub clock driver has the dependency with
CONFIG_MAILBOX.
Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx>
Tested-by: Kevin Hilman <khilman@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 50ef28a6ac216fd8b796257a3768fef8f57b917d
Author: Peter Griffin <peter.griffin@xxxxxxxxxx>
Date: Tue Sep 1 07:48:11 2015 -0300
[media] c8sectpfe: Remove select on undefined LIBELF_32
LIBELF_32 is not defined in Kconfig, and is left over legacy
which is not required in the upstream driver, so remove it.
Suggested-by: Valentin Rothberg <valentinrothberg@xxxxxxxxx>
Signed-off-by: Peter Griffin <peter.griffin@xxxxxxxxxx>
Acked-by: Lee Jones <lee.jones@xxxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 01b944fe1cd4e21a2a9ed51adbdbafe2d5e905ba
Merge: e51e384 58f1eae
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Thu Sep 3 10:01:44 2015 -0700
Merge branch 'next' into for-linus
Prepare first round of input updates for 4.3 merge window.
commit 58f1eae48e5372200553de07b5ecc7574803ee91
Author: Duson Lin <dusonlin@xxxxxxxxxx>
Date: Thu Sep 3 09:46:45 2015 -0700
Input: elan_i2c - use iap_version to get firmware information
When driver is in IAP mode ic_type query may return 0xff. However
iap_version will always be valid, so let's use it to determine parameters
of the firmware that the controller is supposed to accept.
Signed-off-by: Duson Lin <dusonlin@xxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit cfd34ed8deede7cbb0ba46d61870f075ac9694e3
Author: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Date: Fri Aug 21 17:12:20 2015 -0300
[media] i2c: fix platform_no_drv_owner.cocci warnings
drivers/media/i2c/tc358743.c:1960:3-8: No need to set .owner here. The
core will do it.
Remove .owner field if calls are used which set it automatically
Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci
CC: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 543409a2475de00d336468eee5bba8409092db16
Author: Steven Rostedt <rostedt@xxxxxxxxxxx>
Date: Thu Aug 20 18:03:43 2015 -0300
[media] cx231xx: Use wake_up_interruptible() instead of
wake_up_interruptible_nr()
While looking at use cases of the wake queues in order to add support
for simple wait queues, I noticed that there was only a single user of
wake_up_interruptible_nr(), and that use was doing a single task wake
up. Have that user use the proper wake_up_interruptible() instead, and
perhaps we can even remove the function wake_up_interruptible_nr().
Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit abeaca0ff5666a1cd7460304e619e4c6a486ea04
Author: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
Date: Thu Aug 20 04:35:43 2015 -0300
[media] tc358743: only queue subdev notifications if devnode is set
Hardware interrupts are enabled in the probe function, before the subdev
is registered to its v4l2_device. Until v4l2_device_register_subdev_node
is called, sd->devnode is NULL and v4l2_subdev_notify_event must not be
called.
Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 22dbe35a3aa2c06cef9faa472c46e8decbcd64e9
Author: Hans Verkuil <hverkuil@xxxxxxxxx>
Date: Wed Aug 19 03:27:27 2015 -0300
[media] tc358743: add missing Kconfig dependency/select
As reported by Randy:
> when CONFIG_MEDIA_CONTROLLER is not enabled:
>
> ../drivers/media/i2c/tc358743.c: In function 'tc358743_probe':
> ../drivers/media/i2c/tc358743.c:1890:29: error: 'struct v4l2_subdev'
has no member named 'entity'
> err = media_entity_init(&sd->entity, 1, &state->pad, 0);
> ^
> ../drivers/media/i2c/tc358743.c:1940:26: error: 'struct v4l2_subdev'
has no member named 'entity'
> media_entity_cleanup(&sd->entity);
> ^
> ../drivers/media/i2c/tc358743.c: In function 'tc358743_remove':
> ../drivers/media/i2c/tc358743.c:1955:26: error: 'struct v4l2_subdev'
has no member named 'entity'
> media_entity_cleanup(&sd->entity);
> ^
This driver depends on VIDEO_V4L2_SUBDEV_API and needs to select HDMI.
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 62e5f051c110a4f8de66f4c33e690892089aaac4
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Tue Aug 18 10:23:05 2015 -0300
[media] c8sectpfe: Use %pad to print 'dma_addr_t'
Use %pad to print 'dma_addr_t' in order to fix the following
build warning:
drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c:588:2: warning:
format '%x' expects argument of type 'unsigned int', but argument 5 has type
'dma_addr_t' [-Wformat=]
Reported-by: Olof's autobuilder <build@xxxxxxxxx>
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 5e7c4274a70aa2d6f485996d0ca1dad52d0039ca
Author: Jens Axboe <axboe@xxxxxx>
Date: Thu Sep 3 19:28:20 2015 +0300
block: Check for gaps on front and back merges
We are checking for gaps to previous bio_vec, which can
only detect back merges gaps. Moreover, at the point where
we check for a gap, we don't know if we will attempt a back
or a front merge. Thus, check for gap to prev in a back merge
attempt and check for a gap to next in a front merge attempt.
Signed-off-by: Jens Axboe <axboe@xxxxxx>
[sagig: Minor rename change]
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
commit 062683901ad5c29ac375e6b7c7bca2737d41e11a
Author: Masanari Iida <standby24x7@xxxxxxxxx>
Date: Mon Aug 17 08:20:56 2015 -0300
[media] DocBook media: Fix typo "the the" in xml files
This patch fix spelling typo "the the" found in controls.xml
and vidioc-g-param.xml.
These xml files are'nt generated from any source files, so I have
to fix these xml files directly.
Signed-off-by: Masanari Iida <standby24x7@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 1e137d92c0c6f162d57ede1ba85c298acde26bdc
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Tue Aug 18 05:31:10 2015 -0300
[media] tc358743: make reset gpio optional
Commit 256148246852 ("[media] tc358743: support probe from device tree")
specified in the device tree binding documentation that the reset gpio
is optional. Make the implementation match accordingly.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Acked-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 06d3f2e02024912d46e1fc8387c0284c9dfc36ad
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Tue Aug 18 05:31:09 2015 -0300
[media] tc358743: set direction of reset gpio using devm_gpiod_get
Commit 256148246852 ("[media] tc358743: support probe from device tree")
failed to explicitly set the direction of the reset gpio. Use the
optional flag of devm_gpiod_get to make up leeway.
This is also necessary because the flag parameter will become mandatory
soon.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Acked-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 362eda04ba0638af1c41dcc1e594dcbff80346c1
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Thu Sep 3 00:53:24 2015 -0400
drm/amdgpu/cz: fix cz_dpm_update_low_memory_pstate logic
The logic was reversed. This feature is not enabled
at the moment, but fix it now for the future.
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 99a092383794e07d60644b449a01656da112eb1f
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Thu Sep 3 10:16:23 2015 -0400
drm/amdgpu: fix typo in dce11 watermark setup
Using the wrong watermwark value for the secondary
watermark. Copy paste typo. Noticed by Mykola.
Reviewed-by: Harry Wentland <harry.wentland@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit be9fd2e978939ab3e59ee4164fa0893e70359557
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Thu Sep 3 10:19:03 2015 -0400
drm/amdgpu: fix typo in dce10 watermark setup
Using the wrong watermwark value for the secondary
watermark. Copy paste typo. Noticed by Mykola.
Reviewed-by: Harry Wentland <harry.wentland@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit dd5cdb48edfd34401799056a9acf61078d773f90
Merge: 1e1a4e8 62da986
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Sep 3 08:08:17 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller:
"Another merge window, another set of networking changes. I've heard
rumblings that the lightweight tunnels infrastructure has been voted
networking change of the year. But what do I know?
1) Add conntrack support to openvswitch, from Joe Stringer.
2) Initial support for VRF (Virtual Routing and Forwarding), which
allows the segmentation of routing paths without using multiple
devices. There are some semantic kinks to work out still, but
this is a reasonably strong foundation. From David Ahern.
3) Remove spinlock fro act_bpf fast path, from Alexei Starovoitov.
4) Ignore route nexthops with a link down state in ipv6, just like
ipv4. From Andy Gospodarek.
5) Remove spinlock from fast path of act_gact and act_mirred, from
Eric Dumazet.
6) Document the DSA layer, from Florian Fainelli.
7) Add netconsole support to bcmgenet, systemport, and DSA. Also
from Florian Fainelli.
8) Add Mellanox Switch Driver and core infrastructure, from Jiri
Pirko.
9) Add support for "light weight tunnels", which allow for
encapsulation and decapsulation without bearing the overhead of a
full blown netdevice. From Thomas Graf, Jiri Benc, and a cast of
others.
10) Add Identifier Locator Addressing support for ipv6, from Tom
Herbert.
11) Support fragmented SKBs in iwlwifi, from Johannes Berg.
12) Allow perf PMUs to be accessed from eBPF programs, from Kaixu Xia.
13) Add BQL support to 3c59x driver, from Loganaden Velvindron.
14) Stop using a zero TX queue length to mean that a device shouldn't
have a qdisc attached, use an explicit flag instead. From Phil
Sutter.
15) Use generic geneve netdevice infrastructure in openvswitch, from
Pravin B Shelar.
16) Add infrastructure to avoid re-forwarding a packet in software
that was already forwarded by a hardware switch. From Scott
Feldman.
17) Allow AF_PACKET fanout function to be implemented in a bpf
program, from Willem de Bruijn"
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1458
commits)
netfilter: nf_conntrack: make nf_ct_zone_dflt built-in
netfilter: nf_dup{4, 6}: fix build error when nf_conntrack disabled
net: fec: clear receive interrupts before processing a packet
ipv6: fix exthdrs offload registration in out_rt path
xen-netback: add support for multicast control
bgmac: Update fixed_phy_register()
sock, diag: fix panic in sock_diag_put_filterinfo
flow_dissector: Use 'const' where possible.
flow_dissector: Fix function argument ordering dependency
ixgbe: Resolve "initialized field overwritten" warnings
ixgbe: Remove bimodal SR-IOV disabling
ixgbe: Add support for reporting 2.5G link speed
ixgbe: fix bounds checking in ixgbe_setup_tc for 82598
ixgbe: support for ethtool set_rxfh
ixgbe: Avoid needless PHY access on copper phys
ixgbe: cleanup to use cached mask value
ixgbe: Remove second instance of lan_id variable
ixgbe: use kzalloc for allocating one thing
flow: Move __get_hash_from_flowi{4,6} into flow_dissector.c
ixgbe: Remove unused PCI bus types
...
commit fca8b807a667c6f34af1cffe57efbd17b257d07b
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Mar 26 11:01:04 2015 +0000
pcmcia: soc_common: remove skt_dev_info's clk pointer
We no longer need to store the clk pointer in struct skt_dev_info as we
no longer need to remember the clk pointer for the cleanup paths.
Reviewed-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit c3eb700c5db18be80c1ba37d39995b4c23fbe792
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Mar 26 10:57:48 2015 +0000
pcmcia: sa11xx_base.c: remove useless init/exit functions
A library module is not required to have module init/exit functions.
Get rid of these unnecessary functions.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 321ae9646bbfdf27550ecb65617322abc2b92052
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Mar 26 10:46:35 2015 +0000
pcmcia: sa1111: simplify clk handing in sa1111_pcmcia_add()
clk_get(dev, NULL) will always refer to the same clock, so it's
pointless calling this multiple times for the same device. As we no
longer have to worry about the cleanup (via use of devm_clk_get()) we
can simplify sa1111_pcmcia_add() too.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 924e5ea2ce0f6addb8b098760d840b0923573d19
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Mar 26 10:27:08 2015 +0000
pcmcia: sa1111: update socket driver to use devm_clk_get() API
Update the pxa2xx socket driver to use the devm_clk_get() API so that
the cleanup paths are simplified.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 8e2caf0d21a7059d8b56cb19d5d0182a28b1eabc
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Mar 26 10:33:16 2015 +0000
pcmcia: pxa2xx: convert memory allocation to devm_* API
Convert the pxa2xx socket driver memory allocation to use devm_kzalloc()
to simplify the cleanup path.
Reviewed-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit ac92f1517379299c03dc501b6a44be49cfcbcfe4
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Mar 26 10:27:08 2015 +0000
pcmcia: pxa2xx: update socket driver to use devm_clk_get() API
Update the pxa2xx socket driver to use the devm_clk_get() API so that
the cleanup paths are simplified.
Reviewed-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit cace5dce5581a5a1232b68e1bc7b778ff40c328b
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Wed Sep 2 15:06:08 2015 -0400
drm/amdgpu: use top down allocation for non-CPU accessible vram
Should help avoid fragmentation of vram due to CPU access
requirements.
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 857d913d057f8e7330e9f17eaa2b0eb7ad492c33
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Thu Aug 27 00:14:16 2015 -0400
drm/amdgpu: be explicit about cpu vram access for driver BOs (v2)
For kernel driver BOs, be explicit about whether we need
vram access up front. This avoids unecessary migrations and
avoids using visible vram for buffers were it's not needed.
v2: line wrap fixes
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 3ff32a0def6e0d2e21a6c5ad1b00726592774018
Merge: 40d3f02 8149795
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 3 15:28:50 2015 +0100
Merge branch 'devel-stable' into for-linus
Conflicts:
drivers/perf/arm_pmu.c
commit 40d3f02851577da27b5cbb1538888301245ef1e7
Merge: e0aa3a6 3939f33 9205b79 3fa6097 a5e090a
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Sep 3 15:28:37 2015 +0100
Merge branches 'cleanup', 'fixes', 'misc', 'omap-barrier' and 'uaccess'
into for-linus
commit b7dc42fd79390c074e2bff3b172b585d5c2d80c2
Author: Steven Rostedt (Red Hat) <rostedt@xxxxxxxxxxx>
Date: Thu Sep 3 08:57:12 2015 -0400
ring-buffer: Revert "ring-buffer: Get timestamp after event is allocated"
The commit a4543a2fa9ef31 "ring-buffer: Get timestamp after event is
allocated" is needed for some future work. But after adding it, there is a
race somewhere that causes the saved timestamp to have a slight shift, and
get ahead of the actual timestamp and make it look like time goes
backwards.
I'm still looking into why this happens, but in the mean time, this is
holding up other work to get in. I'm reverting the change for now (which
makes the problem go away), and will add it back after I know what is
wrong
and fix it.
Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
commit 2db97045aa40da4312f7321845bc52b136c8603a
Merge: fb2646a e0d8b2e
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Thu Sep 3 14:06:33 2015 +0200
Merge branch '4.2-fixes' into mips-for-linux-next
commit d5f362a7b977bdfaf8a955f3d604a29267bd5464
Author: David Henningsson <david.henningsson@xxxxxxxxxxxxx>
Date: Thu Sep 3 11:51:35 2015 +0200
drm/i915: Add locks around audio component bind/unbind
This will make sure that audio callbacks do not race with
component bind/unbind.
[Note: this is an update patch to commit [51e1d83cab99: drm/i915: Call
audio pin/ELD notify function] where I mistakenly applied the older
version. Jani and Daniel's review tags were to the latest version,
so I add them below, too -- tiwai]
Signed-off-by: David Henningsson <david.henningsson@xxxxxxxxxxxxx>
Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx>
Acked-by: Daniel Vetter <daniel@xxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit e0d8b2ec532852d4b5aabcec3e7611848c32237d
Author: Yousong Zhou <yszhou4tech@xxxxxxxxx>
Date: Thu Sep 3 17:47:45 2015 +0800
MIPS: UAPI: Fix unrecognized opcode WSBH/DSBH/DSHD when using MIPS16.
The nomips16 has to be added both as function attribute and assembler
directive.
When only function attribute is specified, the compiler will inline the
function with -Os optimization. The generated assembly code cannot be
correctly assembled because ISA mode switch has to be done through jump
instruction.
When only ".set nomips16" directive is used, the generated assembly code
will use MIPS32 code for the inline assembly template and MIPS16 for the
function return. The compiled binary is invalid:
00403100 <__arch_swab16>:
403100: 7c0410a0 wsbh v0,a0
403104: e820ea31 swc2 $0,-5583(at)
while correct code should be:
00402650 <__arch_swab16>:
402650: 7c0410a0 wsbh v0,a0
402654: 03e00008 jr ra
402658: 3042ffff andi v0,v0,0xffff
Signed-off-by: Yousong Zhou <yszhou4tech@xxxxxxxxx>
Cc: Chen Jie <chenj@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11087/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit f0675d4a8ed9d3e863ff611561ee0944969a2784
Author: David Henningsson <david.henningsson@xxxxxxxxxxxxx>
Date: Thu Sep 3 11:51:34 2015 +0200
drm/i915: Drop port_mst_index parameter from pin/eld callback
The port_mst_index parameter was reserved for future use, but
maintainers prefer to add it later when it is actually used.
[Note: this is an update patch to commit [51e1d83cab99: drm/i915: Call
audio pin/ELD notify function] where I mistakenly applied the older
version. Jani and Daniel's review tags were to the latest version,
so I add them below, too -- tiwai]
Signed-off-by: David Henningsson <david.henningsson@xxxxxxxxxxxxx>
Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx>
Acked-by: Daniel Vetter <daniel@xxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit fb2646ab032d12ef06225c64768691c7ecc500ec
Author: Alex Smith <alex.smith@xxxxxxxxxx>
Date: Tue Aug 18 15:03:10 2015 +0100
MIPS: Fix alignment of quiet build output for vmlinuz link
The "LD vmlinuz" line in the quiet build output is misaligned with the
rest of the output. Fix this.
Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11019/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 65ab562cabe01d524ec6b50f37694200745c21c1
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Wed Aug 12 10:14:35 2015 +0100
MIPS: math-emu: Remove unused handle_dsemul function declaration
handle_dsemul does not exist and it's not being used in the code at all
so remove its declaration. The deliberate DS emulation exception is
handled by the do_dsemulret C code.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10950/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit a79f5f9ba5088f157482feaa6ae2bacc9da0f5db
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Aug 13 09:56:36 2015 +0200
MIPS: math-emu: Add support for the MIPS R6 MAX{, A} FPU instruction
MIPS R6 introduced the following instruction:
Scalar Floating-Point Maximum and
Scalar Floating-Point argument with Maximum Absolute Value
MAX.fmt writes the maximum value of the inputs fs and ft to the
destination fd.
MAXA.fmt takes input arguments fs and ft and writes the argument with
the maximum absolute value to the destination fd.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10961/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 4e9561b20e2f5c1170704a81ec7e1ac961ba5e68
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Aug 13 09:56:35 2015 +0200
MIPS: math-emu: Add support for the MIPS R6 MIN{, A} FPU instruction
MIPS R6 introduced the following instruction:
Scalar Floating-Point Minimum and
Scalar Floating-Point argument with Minimum Absolute Value
MIN.fmt writes the minimum value of the inputs fs and ft to the
destination fd.
MINA.fmt takes input arguments fs and ft and writes the argument with
the minimum absolute value to the destination fd.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10960/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 38db37ba069f9d801ef56b820cfc7c247a7ffc02
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Aug 13 09:56:34 2015 +0200
MIPS: math-emu: Add support for the MIPS R6 CLASS FPU instruction
MIPS R6 introduced the following instruction:
Stores in fd a bit mask reflecting the floating-point class of the
floating point scalar value fs.
CLASS.fmt: FPR[fd] = class(FPR[fs])
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10959/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 400bd2e41393a783e0532321fdb369d2cc15ea26
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Aug 13 09:56:33 2015 +0200
MIPS: math-emu: Add support for the MIPS R6 RINT FPU instruction
MIPS R6 introduced the following instruction:
Floating-Point Round to Integral
Scalar floating-point round to integral floating point value.
RINT.fmt: FPR[fd] = round_int(FPR[fs])
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10958/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 83d43305a1df2aa2976e3ccf012e4cf0dc29673d
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Aug 13 09:56:32 2015 +0200
MIPS: math-emu: Add support for the MIPS R6 MSUBF FPU instruction
MIPS R6 introduced the following instruction:
Floating Point Fused Multiply Subtract:
MSUBF.fmt To perform a fused multiply-subtract of FP values.
MSUBF.fmt: FPR[fd] = FPR[fd] - (FPR[fs] x FPR[ft])
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10957/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit e24c3bec3e8e254a3784b3e4c97bd3a76fbcc807
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Aug 13 09:56:31 2015 +0200
MIPS: math-emu: Add support for the MIPS R6 MADDF FPU instruction
MIPS R6 introduced the following instruction:
Floating Point Fused Multiply Add:
MADDF.fmt To perform a fused multiply-add of FP values.
MADDF.fmt: FPR[fd] = FPR[fd] + (FPR[fs] x FPR[ft])
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10956/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 130fe357ee895421a4aefef7b1285bf52f295afe
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Aug 13 09:56:30 2015 +0200
MIPS: math-emu: Add support for the MIPS R6 SELNEZ FPU instruction
MIPS R6 introduced the following instruction:
SELNEZ.fmt: FPR[fd] ï?¬ FPR[ft].bit0 ? FPR[fs] : 0
Add support for emulating the single and double precision
formats of the said instruction.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10955/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 67613f02788d73541c7c9b1c851061b8c223057b
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Aug 13 09:56:29 2015 +0200
MIPS: math-emu: Add support for the MIPS R6 SELEQZ FPU instruction
MIPS R6 introduced the following instruction:
SELEQZ.fmt: FPR[fd] ï?¬ FPR[ft].bit0 ? 0 : FPR[fs]
Add support for emulating the single and double precision formats
of the said instruction.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10954/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit f8c3c6717a7128f9601b20f890d658283d59561a
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Aug 13 09:56:28 2015 +0200
MIPS: math-emu: Add support for the CMP.condn.fmt R6 instruction
Add support for emulating the new CMP.condn.fmt R6 instructions and
return SIGILL for the old C.cond.fmt if R2 emulation is not enabled
since it's not supported by R6.
The functionality of the new CMP.condn.fmt is the following one:
If the comparison specified by the condn field of the instruction
is true for the operand values, the result is true; otherwise, the
result is false. If no exception is taken, the result is written into
FPR fd; true is all 1s and false is all 0s repeated the operand width
of fmt. All other bits beyond the operand width fmt are UNPREDICTABLE.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10953/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 107d34009ef00d1680521be2c4a1cba31f9b69a6
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Aug 13 09:56:27 2015 +0200
MIPS: inst.h: Add new MIPS R6 FPU opcodes
Add opcodes for the new MIPS R6 FPU instructions.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10952/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit cef232ec86cdadfa7f58c7db140084db0b6cc9db
Author: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Date: Tue Aug 11 10:56:28 2015 +0300
MIPS: Octeon: Fix management port MII address on Kontron S1901
Management port MII address is incorrect on Kontron S1901 resulting
in broken networking. Fix by providing definitions for the in-tree DT
pruning code.
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10914/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit e5dd8f2cf65cb228fad881ecd35093d8409d17c6
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Fri Aug 7 09:59:10 2015 +0200
MIPS: BCM47xx: Use kmemdup rather than duplicating its implementation
The patch was generated using fixed coccinelle semantic patch
scripts/coccinelle/api/memdup.cocci [1].
[1]: http://permalink.gmane.org/gmane.linux.kernel/2014320
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Acked-by: Hauke Mehrtens <hauke@xxxxxxxxxx>
Cc: Hauke Mehrtens <hauke@xxxxxxxxxx>
Cc: RafaÅ? MiÅ?ecki <zajec5@xxxxxxxxx>
Cc: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10898/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 1d39a5e4ce09172358a5435a3411a46e76a04bb4
Author: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Date: Thu Aug 13 16:21:46 2015 +0300
STAGING: Octeon: Use common helpers for determining interface and port
Currently the Octeon Ethernet driver hardcodes the mapping between
interface/port and IPD port number. Since we have generic helpers for
the very same purpose, we might as well use them instead. This prevents
having the same information in multiple places.
Signed-off-by: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10975/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 31705376a2fd71f5c5b596fb2d3b2c6232a6268a
Author: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Date: Thu Aug 13 16:21:45 2015 +0300
MIPS: Octeon: Support interfaces 4 and 5
Add the support for mapping between interface/port numbers and IPD port
numbers also for the additional interfaces some Octeon II models have.
Signed-off-by: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10967/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 85847d8033b66c2f36e9a992ff3873fb10d72b80
Author: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Date: Thu Aug 13 16:21:44 2015 +0300
MIPS: Octeon: Set up 1:1 mapping between CN68XX PKO queues and ports
Use the internal port number also as the queue number on CN68XX.
Signed-off-by: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10962/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 153bfe381356226ed4c330bb2dff957a6e6c3986
Author: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Date: Thu Aug 13 16:21:43 2015 +0300
MIPS: Octeon: Initialize CN68XX PKO
CN68XX requires a different PKO configuration. This patch provides
just enough setup to get the XAUI interfaces on CN6880 working with
default parameters.
Signed-off-by: Janne Huttunen <janne.huttunen@xxxxxxx>
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10974/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit f8023da8ae40c275403568d6f9fc9b585c7f6fab
Author: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Date: Thu Aug 13 16:21:42 2015 +0300
STAGING: Octeon: Support CN68XX style WQE
CN68XX has a bit different WQE structure. This patch provides the new
definitions and converts the code to use the proper variant based on
the actual model.
Signed-off-by: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10973/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit d5f9bc7360fc130b6f26e7c0684bc61df29deb6a
Author: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Date: Thu Aug 13 16:21:41 2015 +0300
STAGING: Octeon: Increase output command buffers
The Octeon II models have more interfaces and thus require more output
command buffers. Increase the allocation to support these models.
Signed-off-by: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10965/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit f5cfc8db28e63d992d293d5b49d7cb8ec5214c56
Author: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Date: Thu Aug 13 16:21:40 2015 +0300
STAGING: Octeon: Set SSO group mask properly on CN68XX
CN68XX uses SSO instead of POW.
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10966/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit bcbb13964dd4174f3a512d6a4460173c5c252199
Author: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Date: Thu Aug 13 16:21:39 2015 +0300
STAGING: Octeon: Properly enable/disable SSO WQE interrupts
The Octeon models with SSO instead of POW need to use a different register
for configuring the WQE interrupt thresholds.
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10964/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 70b4e2ed4343f03bd7d64d6a58801ff28d231d34
Author: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Date: Thu Aug 13 16:21:38 2015 +0300
MIPS: Octeon: Add definitions for setting up SSO
Some Octeon II models have SSO instead of POW and use a different register
for setting the interrupt thresholds. Add the necessary definitions for
configuring the interrupts also on those models.
Signed-off-by: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10972/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit b92084ba545b73933ca179d46fe11801f7f9d349
Author: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Date: Thu Aug 13 16:21:37 2015 +0300
MIPS: Octeon: Configure minimum PKO packet sizes on CN68XX
CN68XX has common minimum packet size filters that need to be configured
for the traffic to work. Just set them to a default value.
Signed-off-by: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10963/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 4397564542c18d2fee904b1e2c09ae15a871d853
Author: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Date: Thu Aug 13 16:21:36 2015 +0300
MIPS: Octeon: Configure XAUI pkinds
Configure the pkinds of XAUI interfaces on Octeon models that have
them. This simple configuration uses 1:1 mapping between the PIP input
port number and the selected pkind.
Signed-off-by: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10971/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit fce0af1dc34e2765357dfbd21dd923c89254bcdb
Author: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Date: Thu Aug 13 16:21:35 2015 +0300
MIPS: Octeon: Support all PIP input ports on CN68XX
CN68XX has 48 PIP input ports.
Signed-off-by: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10969/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 2c8c3f0201333f430b632c6b62a5b81456284884
Author: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Date: Thu Aug 13 16:21:34 2015 +0300
MIPS: Octeon: Support additional interfaces on CN68XX
CN68XX has 9 interfaces.
Signed-off-by: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10968/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit c0034c30ed301e28c72dc516156baabf5840ce5f
Author: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Date: Thu Aug 13 16:21:33 2015 +0300
MIPS: Octeon: Fix CN6880 hang on XAUI init
Some CN68XX series Octeon II chips seem to hang if a reset is issued on
XAUI initialization. Avoid the hang by disabling the reset on affected
models. Tested on Cavium EBB6800 evaluation board and Kontron S1901 board.
Signed-off-by: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Signed-off-by: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Cc: David Daney <ddaney.cavm@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Janne Huttunen <janne.huttunen@xxxxxxxxx>
Cc: Aaro Koskinen <aaro.koskinen@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Patchwork: http://patchwork.linux-mips.org/patch/10970/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit af0cfb2c44ee5cd3c86d1ffd054d318f536cb6dd
Author: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Date: Thu Aug 6 12:22:43 2015 +0100
MIPS: pistachio: Allow to enable the external timer based clocksource
This commit introduces a new config, so the user can choose to enable
the General Purpose Timer based clocksource. This option is required
to have CPUFreq support.
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: James Hartley <James.Hartley@xxxxxxxxxx>
Cc: Govindraj Raja <Govindraj.Raja@xxxxxxxxxx>
Cc: Damien Horsley <Damien.Horsley@xxxxxxxxxx>
Cc: James Hogan <James.Hogan@xxxxxxxxxx>
Cc: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Cc: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Patchwork: http://patchwork.linux-mips.org/patch/10887/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 84583983c31983068429d82e6f9262009d584549
Author: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Date: Fri Aug 7 16:39:31 2015 +0100
CLOCKSOURCE: Add Pistachio clocksource-only driver
The Pistachio SoC provides four general purpose timers, and allow
to implement a clocksource driver.
This driver can be used as a replacement for the MIPS GIC and MIPS R4K
clocksources and sched clocks, which are clocked from the CPU clock.
Given the general purpose timers are clocked from an independent clock,
this new clocksource driver will be useful to introduce CPUFreq support
for Pistachio machines.
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Signed-off-by: Govindraj Raja <govindraj.raja@xxxxxxxxxx>
Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Acked-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: James Hartley <James.Hartley@xxxxxxxxxx>
Cc: Damien Horsley <Damien.Horsley@xxxxxxxxxx>
Cc: James Hogan <James.Hogan@xxxxxxxxxx>
Cc: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Cc: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10899/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit d6ed2b9b60cb03091e0c84c270d145a475606297
Author: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Date: Mon Jul 27 15:02:33 2015 +0100
Documentation: dt: Add Pistachio SoC general purpose timer binding
document
Add a device-tree binding document for the clocksource driver provided
by Pistachio SoC general purpose timers.
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Reviewed-by: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: James Hartley <James.Hartley@xxxxxxxxxx>
Cc: Govindraj Raja <Govindraj.Raja@xxxxxxxxxx>
Cc: Damien Horsley <Damien.Horsley@xxxxxxxxxx>
Cc: James Hogan <James.Hogan@xxxxxxxxxx>
Cc: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10783/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit fc6a6772f888ee8ab4c5428854f7f1d3abda13df
Author: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Date: Mon Jul 27 15:00:15 2015 +0100
CLOCKSOURCE: mips-gic: Update clockevent frequency on clock rate changes
This commit introduces the clockevent frequency update, using
a clock notifier. It will be used to support CPUFreq on platforms
using MIPS GIC based clockevents.
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Acked-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: James Hartley <James.Hartley@xxxxxxxxxx>
Cc: Govindraj Raja <Govindraj.Raja@xxxxxxxxxx>
Cc: Damien Horsley <Damien.Horsley@xxxxxxxxxx>
Cc: James Hogan <James.Hogan@xxxxxxxxxx>
Cc: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10782/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 42b002ab73e00b24356be4f01954fa961fea4d82
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Sat Aug 22 02:40:41 2015 -0700
MIPS: Kconfig: Enable common clock framework for Malta and SEAD3
Now that we're ready to enable COMMON_CLK for GIC platforms do so for
Malta and SEAD3. The only other user of the GIC Pistachio does already
do so.
[ralf@xxxxxxxxxxxxxx: Rewrite the commit message because applied in the
right order there is no breakage thus no fix required.]
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/11038/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 67d4e669c1e504a491e44737f3561eaba919b304
Author: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Date: Mon Jul 27 15:00:14 2015 +0100
CLOCKSOURCE: mips-gic: Split clocksource and clockevent initialization
This is preparation work for the introduction of clockevent frequency
update with a clock notifier. This is only possible when the device
is passed a clk struct, so let's split the legacy and devicetree
initialization.
Reviewed-by: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Acked-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: James Hartley <James.Hartley@xxxxxxxxxx>
Cc: Govindraj Raja <Govindraj.Raja@xxxxxxxxxx>
Cc: Damien Horsley <Damien.Horsley@xxxxxxxxxx>
Cc: James Hogan <James.Hogan@xxxxxxxxxx>
Cc: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10781/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit f95ac8558b88a5e9ae2b1d580a5cc55bffa512fa
Author: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Date: Mon Jul 27 15:00:13 2015 +0100
CLOCKSOURCE: mips-gic: Add missing error returns checks
This commit adds the required checks on the functions that return
an error. Some of them are not critical, so only a warning is
printed.
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Reviewed-by: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Acked-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: James Hartley <James.Hartley@xxxxxxxxxx>
Cc: Govindraj Raja <Govindraj.Raja@xxxxxxxxxx>
Cc: Damien Horsley <Damien.Horsley@xxxxxxxxxx>
Cc: James Hogan <James.Hogan@xxxxxxxxxx>
Cc: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10780/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit eb811c73b69f18cefb7a63f22fe07212c6575650
Author: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Date: Mon Jul 27 15:00:12 2015 +0100
CLOCKSOURCE: mips-gic: Enable the clock before using it
For the clock to be used (e.g. get its rate through clk_get_rate)
it should be prepared and enabled first.
Also, while the clock is enabled the driver must hold a reference to it,
so let's remove the call to clk_put.
Reviewed-by: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Acked-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: James Hartley <James.Hartley@xxxxxxxxxx>
Cc: Govindraj Raja <Govindraj.Raja@xxxxxxxxxx>
Cc: Damien Horsley <Damien.Horsley@xxxxxxxxxx>
Cc: James Hogan <James.Hogan@xxxxxxxxxx>
Cc: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10779/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 1a3d59579b9f436da038f377309cf2270c76318e
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Aug 3 08:49:30 2015 -0700
MIPS: Tidy up FPU context switching
Rather than saving the scalar FP or vector context in the assembly
resume function, reuse the existing C code we have in fpu.h to do
exactly that. This reduces duplication, results in a much easier to read
resume function & should allow the compiler to optimise out more MSA
code due to is_msa_enabled()/cpu_has_msa being known-zero at compile
time for kernels without MSA support.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10830/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 23eb6f4016758b756b54704b359e3c51d425d6ab
Author: Antonio Ospite <ao2@xxxxxx>
Date: Tue Apr 28 13:11:25 2015 +0200
MIPS: Netlogic: Fix 0x0x prefixes.
Fix the 0x0x prefix in integer constants, in this case the registers
interval is actually 0x8065 .. 0x80A4 as confirmed some lines above in
the code.
Signed-off-by: Antonio Ospite <ao2@xxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Jiri Kosina <trivial@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/9908/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit b7565cc3321987e46d1f65f5b5eb3fb48268fdc2
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Wed Jul 29 23:17:00 2015 +0200
Documentation: MIPS now supports uprobes.
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 40e084a506eba78310cd5e8ab700fd1226c6130a
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Wed Jul 29 22:44:53 2015 +0200
MIPS: Add uprobes support.
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit e3b28831c18c6c95c51b6bb717fa116d2b658ba9
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Tue Jul 28 20:37:43 2015 +0200
MIPS: Set trap_no field in thread_struct on exception.
This reverts commit 7281cd22973008a782860e48ed8d85d00204168c and adds
actual functionality to use the field.
commit 8c576912e4708144cbaa28228cc910746f39bafd
Author: Subhendu Sekhar Behera <sbehera@xxxxxxxxxxxx>
Date: Sat Aug 1 17:44:23 2015 +0530
MIPS: Netlogic: NAND IRQ mapping
Add NAND IRQ mapping for XLP9xx processor.
Signed-off-by: Subhendu Sekhar Behera <sbehera@xxxxxxxxxxxx>
Signed-off-by: Jayachandran C <jchandra@xxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10820/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 079e31600786b1ef8cab15ac6345605ad9150daf
Author: Kamlakant Patel <kamlakant.patel@xxxxxxxxxxxx>
Date: Sat Aug 1 17:44:22 2015 +0530
MIPS: Netlogic: set ARCH_REQUIRE_GPIOLIB for XLP platform
This is needed to enable GPIO framework support for Netlogic XLP platform.
Signed-off-by: Kamlakant Patel <kamlakant.patel@xxxxxxxxxxxx>
Signed-off-by: Jayachandran C <jchandra@xxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10818/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit a8a747764a970fc4c4f39f554c7dc08a4ca67db8
Author: Kamlakant Patel <kamlakant.patel@xxxxxxxxxxxx>
Date: Sat Aug 1 17:44:21 2015 +0530
MIPS: Netlogic: add device tree entry for XLP GPIO
Add GPIO entries to the Netlogic XLP device tree files.
Signed-off-by: Kamlakant Patel <kamlakant.patel@xxxxxxxxxxxx>
Signed-off-by: Jayachandran C <jchandra@xxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10819/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 325f0a1833c41d2d399fda161866923b72592cc9
Author: Kamlakant Patel <kamlakant.patel@xxxxxxxxxxxx>
Date: Sat Aug 1 17:44:20 2015 +0530
MIPS: Netlogic: Use chip_data for irq_chip methods
Update mips/netlogic/common/irq.c and mips/pci/msi-xlp.c to use chip_data
to store interrupt controller data pointer. It uses handler_data now,
and that causes errors when an API (like the GPIO subsystem) tries to
use the handler data.
Signed-off-by: Kamlakant Patel <kamlakant.patel@xxxxxxxxxxxx>
Signed-off-by: Jayachandran C <jchandra@xxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10817/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 832f5dacfa0bb081a3b3b979a36a132b28ffacf3
Author: Alban Bedel <albeu@xxxxxxx>
Date: Sun Aug 2 18:30:11 2015 +0200
MIPS: Remove all the uses of custom gpio.h
Currently CONFIG_ARCH_HAVE_CUSTOM_GPIO_H is defined for all MIPS
machines, and each machine type provides its own gpio.h. However
only a handful really implement the GPIO API, most just forward
everythings to gpiolib.
The Alchemy machine is notable as it provides a system to allow
implementing the GPIO API at the board level. But it is not used by
any board currently supported, so it can also be removed.
For most machine types we can just remove the custom gpio.h, as well
as the custom wrappers if some exists. Some of the code found in
the wrappers must be moved to the respective GPIO driver.
A few more fixes are need in some drivers as they rely on linux/gpio.h
to provides some machine specific definitions, or used asm/gpio.h
instead of linux/gpio.h for the gpio API.
Signed-off-by: Alban Bedel <albeu@xxxxxxx>
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Hauke Mehrtens <hauke@xxxxxxxxxx>
Cc: RafaÅ? MiÅ?ecki <zajec5@xxxxxxxxx>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Alexandre Courbot <gnurou@xxxxxxxxx>
Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Cc: Florian Fainelli <florian@xxxxxxxxxxx>
Cc: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Cc: Joe Perches <joe@xxxxxxxxxxx>
Cc: Daniel Walter <dwalter@xxxxxxxxxx>
Cc: Sergey Ryazanov <ryazanov.s.a@xxxxxxxxx>
Cc: Huacai Chen <chenhc@xxxxxxxxxx>
Cc: James Hartley <james.hartley@xxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: Jiri Kosina <jkosina@xxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Wolfram Sang <wsa@xxxxxxxxxxxxx>
Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Cc: Varka Bhadram <varkabhadram@xxxxxxxxx>
Cc: Masanari Iida <standby24x7@xxxxxxxxx>
Cc: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Michael Buesch <m@xxxxxxx>
Cc: abdoulaye berthe <berthe.ab@xxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-ide@xxxxxxxxxxxxxxx
Cc: linux-gpio@xxxxxxxxxxxxxxx
Cc: linux-input@xxxxxxxxxxxxxxx
Cc: netdev@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10828/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 1d473c2cb9fe25fc6bad30b0eb8d92e384496042
Author: Alban Bedel <albeu@xxxxxxx>
Date: Fri Jul 3 11:11:49 2015 +0200
MIPS: ath79: Move the GPIO driver to drivers/gpio
GPIO drivers should be in drivers/gpio
Signed-off-by: Alban Bedel <albeu@xxxxxxx>
Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Cc: linux-gpio@xxxxxxxxxxxxxxx
Cc: Alexandre Courbot <gnurou@xxxxxxxxx>
Cc: Gabor Juhos <juhosg@xxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10597/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit f689332b19fa1120de1bd84988a7bd0c08bd9b7b
Author: Alban Bedel <albeu@xxxxxxx>
Date: Fri Jul 3 11:11:48 2015 +0200
MIPS: Ath79: Remove the unused GPIO function API
To prepare moving the GPIO driver to drivers/gpio remove the
platform specific pinmux API. As it is not used by any board,
and such functionality should better be implemented using the
pinmux subsystem just removing it seems to be the best option.
Signed-off-by: Alban Bedel <albeu@xxxxxxx>
Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Cc: linux-gpio@xxxxxxxxxxxxxxx
Cc: Alexandre Courbot <gnurou@xxxxxxxxx>
Cc: Gabor Juhos <juhosg@xxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10596/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 5fac4f7ac067b2eee3aaf19eff8bd1d7d8e9a91e
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Thu Jul 30 08:16:10 2015 -0700
MIPS: Select CONFIG_ARCH_USE_CMPXCHG_LOCKREF for MIPS64
On MIPS64 we have spinlocks that are 32b in size and an efficient
cmpxchg64 implementation, so we qualify to make use of cmpxchg backed
lockrefs. Select the ARCH_USE_CMPXCHG_LOCKREF Kconfig symbol and provide
a trivial implementation of arch_spin_value_unlocked to satisfy the
lockref code.
Using Linus' simple testcase from
http://article.gmane.org/gmane.linux.file-systems/77466 on a dual core
system with an in-development MIPS64 CPU running on FPGA I see around an
8% gain:
Pre-patch:
Total loops: 252698
Total loops: 251482
Total loops: 250806
Total loops: 252885
Total loops: 251666
Post-patch:
Total loops: 273728
Total loops: 269932
Total loops: 269341
Total loops: 275004
Total loops: 270208
[ralf@xxxxxxxxxxxxxx: Fixed conflict.]
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Steven J. Hill <Steven.Hill@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10810/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit f51246efee2b6bc72e86bc1d16599fc7c455b986
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Wed Jul 29 12:14:42 2015 +0200
MIPS: Get rid of finish_arch_switch().
MIPS was using finish_arch_switch() as a hook to restore and initialize
CPU context for all threads, even newly created kernel and user threads.
This is however entirely solvable within switch_to() so get rid of
finish_arch_switch() which is in the way of scheduler cleanups.
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit f1f5e414851fdb69a3200e5c15799ea4788d423e
Author: Alex Smith <alex.smith@xxxxxxxxxx>
Date: Fri Jul 24 16:16:12 2015 +0100
MIPS: Use Ingenic-specific write combine attribute on all Ingenic
platforms
The Ingenic-specific write combining cache attribute was defined based
on CONFIG_MACH_JZ4740 and therefore not used on JZ4780. Change this to
CONFIG_MACH_INGENIC so that it gets used on all Ingenic platforms.
Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10769/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 8c172467be36f7c9591e59b647e4cd342ce2ef41
Author: Alex Smith <alex.smith@xxxxxxxxxx>
Date: Thu Jul 30 12:03:42 2015 +0100
MIPS: Add implementation of dma_map_ops.mmap()
The generic implementation of dma_map_ops.mmap(), dma_common_mmap(),
is not correct for non-coherent devices. It expects to be passed a
virtual address previously returned by dma_alloc_coherent(), which for
a non-coherent device will return a KSEG1 address. It then attempts to
convert that virtual address to a physical address using virt_to_page()
which will yield an incorrect address.
Also, dma_common_mmap() does not handle the DMA_ATTR_WRITE_COMBINE
attribute, and therefore dma_mmap_writecombine() will not actually set
the appropriate pgprot_t flags for write combining.
This patch adds an implementation of dma_map_ops.mmap() that correctly
handles KSEG1 addresses, and enables write combining when requested.
Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: Sadegh Abbasi <Sadegh.Abbasi@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10808/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit c4687b15a8487e8ef028814a301a88958baf72bc
Author: Alex Smith <alex.smith@xxxxxxxxxx>
Date: Fri Jul 24 16:16:10 2015 +0100
MIPS: Fix definition of pgprot_writecombine()
If pgprot_writecombine is not #defined, asm-generic/pgtable.h will try
to provide a default implementation by #defining it to pgprot_noncached.
However our implementation is an inline function rather than a #define,
so it was never actually used because of the #define in generic code.
Add "#define pgprot_writecombine pgprot_writecombine" to prevent generic
code from re-defining it.
Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10767/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 0ce3417e84825155e2d74ac65e133bf7ba995a74
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:27 2015 -0700
MIPS: Drop EXPERIMENTAL tag from O32+FP64 & MSA
CONFIG_MIPS_O32_FP64_SUPPORT and CONFIG_CPU_HAS_MSA are in pretty good
shape these days, and in much wider use than they once were. Stop
referring to them as EXPERIMENTAL.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10801/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 3cc9fa7fb3e38e83e59977c8bc5c355687232362
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:25 2015 -0700
MIPS: Advertise MSA support via HWCAP when present
If MSA is supported by both the hardware & the kernel then advertise
that support to userland via the AT_HWCAP aux vector.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Huacai Chen <chenhc@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10799/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 4c0630346e2fcfe68eac8fa31d38daf04570e671
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:24 2015 -0700
MIPS: Advertise MIPSr6 via HWCAP when appropriate
When running on a CPU implementing the release 6 of the MIPS32 or MIPS64
ISA, advertise that to userland via the appropriate HWCAP bit.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Huacai Chen <chenhc@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10798/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit e14f1db7a61f016d74393ca9e8fc49a91d27f603
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:23 2015 -0700
MIPS: AT_HWCAP aux vector infrastructure
In order for userland to determine whether various features are safe to
use, it will need to know both that the hardware supports those features
and that the kernel is recent enough & configured appropriately to
support them. For example under the O32 modeless FP proposal the dynamic
linker & ifunc resolvers will need this information. The kernel is the
only thing in a position to know availability accurately, so the kernel
needs to provide the information to userland. This patch introduces the
infrastructure to provide the AT_HWCAP aux vector to userland in order
to provide that information. It also defines the 2 currently specified
flags, which indicate MIPSr6 & MSA support.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Huacai Chen <chenhc@xxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: Alex Smith <alex@xxxxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10797/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit bf82cb30c7e58b3a9742f0a45962ebdf51befac7
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:22 2015 -0700
MIPS: Save MSA extended context around signals
It is desirable for signal handlers to be allowed to make use of MSA,
particularly if auto vectorisation is used when compiling a program.
The MSA context must therefore be saved & restored before & after
invoking the signal handler. Make use of the extended context structs
defined in the preceding patch to save MSA context after the sigframe
when appropriate.
[ralf@xxxxxxxxxxxxxx: Fixed conflicts.]
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Richard Weinberger <richard@xxxxxx>
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10796/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit f1fe2d21f4e1aca8644cea888dc618f0183ad671
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:21 2015 -0700
MIPS: Add definitions for extended context
The context introduced by MSA needs to be saved around signals. However,
we can't increase the size of struct sigcontext because that will change
the offset of the signal mask in struct sigframe or struct ucontext.
This patch instead places the new context immediately after the struct
sigframe for traditional signals, or similarly after struct ucontext for
RT signals. The layout of struct sigframe & struct ucontext is identical
from their sigcontext fields onwards, so the offset from the sigcontext
to the extended context will always be the same regardless of the type
of signal.
Userland will be able to search through the extended context by using
the magic values to detect which types of context are present. Any
unrecognised context can be skipped over using the size field of struct
extcontext. Once the magic value END_EXTCONTEXT_MAGIC is seen it is
known that there are no further extended context structures to examine.
This approach is somewhat similar to that taken by ARM to save VFP &
other context at the end of struct ucontext.
Userland can determine whether extended context is present by checking
for the USED_EXTCONTEXT bit in the sc_used_math field of struct
sigcontext. Whilst this could potentially change the historic semantics
of sc_used_math if further extended context which does not imply FP
context were to be introduced in the future, I have been unable to find
any userland code making use of sc_used_math at all. Using one of the
fields described as unused in struct sigcontext was considered, but the
kernel does not already write to those fields so there would be no
guarantee of the field being clear on older kernels. Other alternatives
would be to have userland check the kernel version, or to have a HWCAP
bit indicating presence of extended context. However there is a desire
to have the context & information required to decode it be self
contained such that, for example, debuggers could decode the saved
context easily.
[ralf@xxxxxxxxxxxxxx: Fixed conflict.]
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@xxxxxxxxxx>
Cc: Alex Smith <alex@xxxxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Richard Weinberger <richard@xxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Daniel Borkmann <dborkman@xxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10795/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 0d071fa3772b85fe5d81032fbc011c623570d2fc
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:20 2015 -0700
MIPS: Indicate FP mode in sigcontext sc_used_math
The sc_used_math field of struct sigcontext & its variants has
traditionally been used as a boolean value indicating only whether or
not floating point context is saved within the sigcontext. With various
supported FP modes & the ability to switch between them this information
will no longer be enough to decode the meaning of the data stored in the
sc_fpregs fields of struct sigcontext.
To make that possible 3 bits are defined within sc_used_math:
- Bit 0 (USED_FP) represents whether FP was used, essentially
providing the boolean flag which sc_used_math as a whole provided
previously.
- Bit 1 (USED_FR1) provides the value of the Status.FR bit at the time
the FP context was saved.
- Bit 2 (USED_HYBRID_FPRS) indicates whether the FP context was saved
under the hybrid FPR scheme. Essentially, when set the odd singles
are located in bits 63:32 of the preceding even indexed sc_fpregs
element.
Any userland that tests whether the sc_used_math field is zero or
non-zero will continue to function as expected. Having said that, I
could not find any userland which uses the sc_used_math field at all.
[ralf@xxxxxxxxxxxxxx: Fixed rejects.]
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Richard Weinberger <richard@xxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10794/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 6a24432cf9cfb6e071fb3566144a3a5ace9d3c0d
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:19 2015 -0700
MIPS: Remove unused {get,put}_sigset functions
These functions are never called & thus dead code. Remove them.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Richard Weinberger <richard@xxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10793/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit d02a40aff6e043bae1cd6e6416e9048990928b1d
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:18 2015 -0700
MIPS: Use common FP sigcontext code for O32 compat
Make use of the common FP sigcontext code for O32 binaries running on
MIPS64 kernels now that it is taking appropriate offsets into struct
sigcontext(32) from struct mips_abi.
[ralf@xxxxxxxxxxxxxx: Fixed reject.]
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Richard Weinberger <richard@xxxxxx>
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10792/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 6f0aba63bfb3eb33b68cf746c44b6ab302599180
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:17 2015 -0700
MIPS: Skip odd double FP registers when copying FP32 sigcontext
When a task uses 32 bit floating point, the odd indexed 32b register
values are stored in bits 63:32 of the preceding even indexed 64b
FP register field in saved context. Thus there is no point in
preserving the odd indexed 64b register fields since they hold no
valid context. This patch will cause them to be skipped, as is
already done in arch/mips/kernel/signal32.c.
[ralf@xxxxxxxxxxxxxx: Fixed reject.]
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Richard Weinberger <richard@xxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10791/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 64243c2a945640392b59fe1dc66c30ee1ca04170
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:16 2015 -0700
MIPS: Move FP usage checks into protected_{save, restore}_fp_context
In preparation for sharing protected_{save,restore}_fp_context with
compat ABIs, move the FP usage checks into said functions. This will
both enable that code to be shared, and allow for extensions of it in
further patches to also be shared.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Richard Weinberger <richard@xxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10790/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 2db9ca0a355100c40d1bef2aae3b9d9cf199cd04
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:15 2015 -0700
MIPS: Use struct mips_abi offsets to save FP context
When saving FP state to struct sigcontext, make use of the offsets
provided by struct mips_abi to obtain appropriate addresses for the
sc_fpregs & sc_fpc_csr fields of the sigcontext. This is done only for
the native struct sigcontext in this patch (ie. for O32 in CONFIG_32BIT
kernels or for N64 in CONFIG_64BIT kernels) but is done in preparation
for sharing this code with compat ABIs in further patches.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Richard Weinberger <richard@xxxxxx>
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10789/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 778561006e5891801ac794ddf7b21148a5555e35
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:14 2015 -0700
MIPS: Add offsets to sigcontext FP fields to struct mips_abi
Add fields to struct mips_abi, which holds information regarding the
kernel-userland ABI regarding signals, to specify the offsets to the FP
related fields within the appropriate variant of struct sigcontext.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Richard Weinberger <richard@xxxxxx>
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10788/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 689ee8565c5b5af9369f4c34af04196f2d3fea83
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 27 12:58:13 2015 -0700
MIPS: Simplify EVA FP context handling code
The protected_{save,restore}_fp_context functions had effectively
different implementations for EVA. Simplify & unify the code somewhat
such that EVA configurations simply guarantee the FPU-not-owned path
through the standard code path.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Matthew Fortune <matthew.fortune@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Richard Weinberger <richard@xxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10787/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 397d08b006fc8bbb087615214400b86b64f8fe50
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:42:05 2015 +0530
MIPS: sni: Migrate to new 'set-state' interface
Migrate sni driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10612/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 0c16240ab07ff8a0e611f676f86a92a4b513d15d
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:42:04 2015 +0530
MIPS: IP27: Migrate to new 'set-state' interface
Migrate sgidriver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
We weren't doing anything in the ->set_mode() callback. So, this patch
doesn't provide any set-state callbacks.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Deng-Cheng Zhu <dengcheng.zhu@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10611/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 59113d93c2b483485cf62f0b057f896e420048c2
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:42:03 2015 +0530
MIPS: rt3352: Migrate to new 'set-state' interface
Migrate ralink driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10610/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 1fed884d5f3d615d56d3b3c07d5ef95f7b49b5f5
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:42:02 2015 +0530
MIPS: loongsoon32: Migrate to new 'set-state' interface
Migrate loongsoon32 driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Kelvin Cheung <keguang.zhang@xxxxxxxxx>
Cc: Huacai Chen <chenhc@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10609/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit e3280b2a54b38406563d6422685a20172382d365
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:42:01 2015 +0530
MIPS: loongson64/timer: Migrate to new 'set-state' interface
Migrate loongson driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
[ralf@xxxxxxxxxxxxxx: Folded in Viresh's followon fix.]
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Huacai Chen <chenhc@xxxxxxxxxx>
Cc: Michael Opdenacker <michael.opdenacker@xxxxxxxxxxxxxxxxxx>
Cc: Hongliang Tao <taohl@xxxxxxxxxx>
Cc: Valentin Rothberg <valentinrothberg@xxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10608/
Patchwork: https://patchwork.linux-mips.org/patch/10883/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit d199da550da30e0946a7554f8a93ef75f66f8005
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:42:00 2015 +0530
MIPS: cevt-txx9: Migrate to new 'set-state' interface
Migrate cevt-txx9 driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Deng-Cheng Zhu <dengcheng.zhu@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10607/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 57e148cabbb2f1e6770d6a506088486142b26b97
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:41:59 2015 +0530
MIPS: cevt-sb1250: Migrate to new 'set-state' interface
Migrate cevt-rsb1250 driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10606/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 877c61dc63c2eaa98515abfd89596f293b543342
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:41:58 2015 +0530
MIPS: cevt-r4k: Migrate to new 'set-state' interface
Migrate cevt-4k driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
We weren't doing anything in the ->set_mode() callback. So, this patch
doesn't provide any set-state callbacks.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: Qais Yousef <qais.yousef@xxxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10605/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit c88f2fb4d81df3dbafd79d51b2cacefb356d466c
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:41:57 2015 +0530
MIPS: cevt-gt641xx: Migrate to new 'set-state' interface
Migrate cevt-gt641xx driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10604/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 9f95618f9fe5fc902a3d8fecd10c98e482fab6c5
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:41:56 2015 +0530
MIPS: cevt-ds1287: Migrate to new 'set-state' interface
Migrate cevt-ds1287 driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10603/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 1edf907a09e1cad9032411d84679b637ab696593
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:41:55 2015 +0530
MIPS: cevt-bcm1480: Migrate to new 'set-state' interface
Migrate cevt-bcm1480 driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
Read operation on R_SCD_TIMER_CFG and R_SCD_TIMER_INIT registers isn't
performed now for many modes as there returned values aren't used.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10602/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit c87cbe06916868e1b14a0681e874b96cfab61083
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:41:54 2015 +0530
MIPS: jz4740: Migrate to new 'set-state' interface
Migrate jz4740 driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: Deng-Cheng Zhu <dengcheng.zhu@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10601/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 20a7835f8f3666eaaec599f8f9f1628c4e7e88dd
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:41:53 2015 +0530
MIPS: Jazz: Migrate to new 'set-state' interface
Migrate jazz driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
We weren't doing anything in the ->set_mode() callback. So, this patch
doesn't provide any set-state callbacks.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10600/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 3dcd7779ac4dada4a2c97e19a9ac3593891d89a0
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Jul 6 16:41:52 2015 +0530
MIPS: Alchemy: Migrate to new 'set-state' interface
Migrate alchemy driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
We weren't doing anything in the ->set_mode() callback. So, this patch
doesn't provide any set-state callbacks.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linaro-kernel@xxxxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10599/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit f17c4ca33601f03f4b5f598f085ee356358932b7
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Thu Jul 23 12:02:09 2015 +0200
MIPS: Kconfig: Separate 32BIT and 64BIT config block by blank line.
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 1249ed3540809d30d1fe42c94276a9db2845d173
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Mon Jul 20 09:10:20 2015 +0200
MIPS: math-emu: Move from deprecated __initcall to arch_initcall.
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 1bab0b627f6d9cd5af08f6be81288883d3b1aa9c
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Mon Jul 20 09:09:40 2015 +0200
MIPS: Lasat: Move from deprecated __initcall to arch_initcall.
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 8d6b591ce9b2706403b4c79d72c4483a7fbeda54
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Mon Jul 20 09:04:41 2015 +0200
MIPS: unaligned: Move from deprecated __initcall to arch_initcall.
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 486fcde40d8f903dbd460fb0b5a35423528032e3
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Mon Jul 20 08:58:20 2015 +0200
MIPS: Sibyte: Move bus watcher from deprecated __initcall to
device_initcall
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit bae637a2148c97882a1bbfdac08d7a5f4441cdb3
Author: James Hogan <james.hogan@xxxxxxxxxx>
Date: Wed Jul 15 16:17:47 2015 +0100
MIPS: Rearrange ENTRYLO field definitions
The generic field definitions (i.e. present before MIPS32/MIPS64) in
mipsregs.h are conventionally not prefixed with MIPS_, so rename the
recently added MIPS_ENTRYLO_* definitions for the G, V, D, and C fields
to ENTRYLO_*. Also rearrange to put the EntryLo and EntryHi definitions
in the right place in the file.
Fixes: 8ab6abcb6aa4 ("MIPS: mipsregs.h: Add EntryLo bit definitions")
Reported-by: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10725/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 9bd860cae3c46a83371ce899ae0d665b6e253687
Author: James Hogan <james.hogan@xxxxxxxxxx>
Date: Wed Jul 15 16:17:46 2015 +0100
MIPS: dump_tlb: Dump FrameMask register if exists
The FrameMask register is relevant to the TLB so it should be dumped by
dump_tlb_regs(), however it is only present in certain cores (r10000,
r12000, r14000, r16000). Add dumping of it, conditional upon
current_cpu_type().
Suggested-by: Joshua Kinard <kumba@xxxxxxxxxx>
Suggested-by: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Joshua Kinard <kumba@xxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10724/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 5d3c3c7d296d9622560558de96875cf694d96f58
Author: James Hogan <james.hogan@xxxxxxxxxx>
Date: Wed Jul 15 16:17:45 2015 +0100
MIPS: dump_tlb: Only dump PageGrain if interesting
The PageGrain register may not exist if certain architectural features
aren't present, therefore only print out its value when dumping the TLB
registers if it is expected to contain fields relevant to the TLB.
Fixes: d1e9a4f54735 ("MIPS: Add SysRq operation to dump TLBs on all CPUs")
Reported-by: Joshua Kinard <kumba@xxxxxxxxxx>
Reported-by: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Joshua Kinard <kumba@xxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10723/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit aaa7be48fdbf14836ff1bc61c72969960a5923c6
Author: James Hogan <james.hogan@xxxxxxxxxx>
Date: Wed Jul 15 16:17:44 2015 +0100
MIPS: Probe for small (1KiB) page support
Probe Config3 for small page support. This will be useful to give clues
as to whether the PageGrain register exists.
Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10722/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 3c865dd9c1d64046877112451f13db2cb46d4d28
Author: James Hogan <james.hogan@xxxxxxxxxx>
Date: Wed Jul 15 16:17:43 2015 +0100
MIPS: Refactor dumping of TLB registers for r3k/r4k
The TLB registers are dumped in a couble of places:
- sysrq_tlbdump_single() - when dumping TLB state.
- do_mcheck() - in response to a machine check error.
The main TLB registers also differ between r3k and r4k, but r4k appears
to be assumed.
Refactor this code into a dump_tlb_regs() function, implemented for both
r3k and r4k, and used by both of the above functions.
Fixes: d1e9a4f54735 ("MIPS: Add SysRq operation to dump TLBs on all CPUs")
Suggested-by: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10721/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 0f6ce77538c3f0628acdeee30738e4c8fe08d7e2
Author: James Hogan <james.hogan@xxxxxxxxxx>
Date: Wed Jul 15 16:17:42 2015 +0100
Documentation/sysrq.txt: Mention MIPS TLB dump (x)
Commit d1e9a4f54735 ("MIPS: Add SysRq operation to dump TLBs on all
CPUs") added the 'x' sysrq key for dumping MIPS TLB entries, but didn't
document it in Documentation/sysrq.txt.
Add mention of the MIPS use of the 'x' SysRq key.
Reported-by: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-doc@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10720/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit c909ca718e8f50cf484ef06a8dd935e738e8e53d
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Fri Jul 17 10:38:32 2015 +0100
MIPS: math-emu: Emulate missing BC1{EQ,NE}Z instructions
Commit c8a34581ec09 ("MIPS: Emulate the BC1{EQ,NE}Z FPU instructions")
added support for emulating the new R6 BC1{EQ,NE}Z branches but it missed
the case where the instruction that caused the exception was not on a DS.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Fixes: c8a34581ec09 ("MIPS: Emulate the BC1{EQ,NE}Z FPU instructions")
Cc: <stable@xxxxxxxxxxxxxxx> # 4.0+
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10738/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit e8f80cc1a6d80587136b015e989a12827e1fcfe5
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Fri Jul 17 10:36:03 2015 +0100
MIPS: math-emu: Allow m{f,t}hc emulation on MIPS R6
The mfhc/mthc instructions are supported on MIPS R6 so emulate
them if needed.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # 4.0+
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10737/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 166457436e38175e1d9891f98d9d6edbee100f32
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 16 16:43:33 2015 +0100
MIPS: math-emu: Fix indentation
Fix indentation for the final 'else' blocks.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10735/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit bbdd8147b1b9efb7268a7cad31e148d794363abe
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 16 14:06:45 2015 +0100
MIPS: cp1emu: Fix closing bracket for the d_fmt case
The double format (d_fmt) case uses an opening bracket which then
closes at the end of the word format (w_fmt). This can be rather confusing
so add the closing bracket at the end of the d_fmt case and use another
one
for the w_fmt one.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10733/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 674d10e26dd4c1a1b9161e9dcce0667d1c5dd318
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 16 13:24:46 2015 +0100
MIPS: Kconfig: Drop the EXPERIMENTAL tag from MIPS R6
The MIPS R6 ISA support has been part of mainline since v4.0
and it should be in a good shape nowadays so it is not an
experimental feature anymore.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10731/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit c46a2f01fb2bea6ae7e4e3f3f2aad65d8eda837d
Author: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Date: Wed Jul 15 11:48:15 2015 +0200
MIPS: Treat CP1 control registers as unsigned ints.
These are bitfields and treating them as signed values doesn't make
any sense.
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Reported-by: Chris Packham <judge.packham@xxxxxxxxx>
commit 82eb8f7342cf722a8bf3d42e9982f56bff166b85
Author: Chris Packham <judge.packham@xxxxxxxxx>
Date: Wed Jul 15 10:44:30 2015 +1200
MIPS: Use unsigned int when reading CP0 registers
Update __read_32bit_c0_register() and __read_32bit_c0_ctrl_register() to
use "unsigned int res;" instead of "int res;". There is little reason to
treat these register values as signed. They are either counters (which
by definition are unsigned) or are made up of various bit fields to be
interpreted as per the CPU datasheet.
This has come up via u-boot[1] which sync's asm/mipsregs.h with the
kernel. In u-boots case the value read from read_c0_count() is assigned
to an unsigned long [2] which triggers a sign extension and causes a
bug.
U-boot should probably be more explicit about the types used for the
timer_read_counter() API but that aside is there any reason to treat
these values as signed integers? A quick grep around the arch/mips makes
me thing that there may be some bugs lurking when read_c0_count() starts
to yield a negative value but I haven't really explored any of them.
[1] - http://lists.denx.de/pipermail/u-boot/2015-July/219086.html
[2] - http://git.denx.de/?p=u-boot.git;a=blob;f=arch/mips/cpu/time.c#l11
Signed-off-by: Chris Packham <judge.packham@xxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Daniel Schwierzeck <daniel.schwierzeck@xxxxxxxxx>
Cc: Chris Packham <judge.packham@xxxxxxxxx>
Cc: Steven J. Hill <Steven.Hill@xxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Paul Burton <paul.burton@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10718/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 570e5d26ff2e970e018343675bc64302420221d8
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Fri Jul 10 16:52:39 2015 +0100
MIPS: malta: Use generic platform_maar_init
The default implementation of platform_maar_init is sufficient for Malta
boards where we want to allow speculation in the regions of memory
corresponding to DDR & disallow it elsewhere. Drop the custom
implementation such that the default is used, reducing the duplication
of information provided by the Malta platform code.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10677/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit cbd95a89996d1b5fadf411e9218c64e713a83099
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Fri Jul 10 16:52:38 2015 +0100
MIPS: mm: default platform_maar_init using bootmem data
Introduce a default weak implementation of platform_maar_init which
makes use of the data that platforms already provide to the bootmem
allocator. This should hopefully cover the most common configurations,
reduce the duplication of information provided by platforms & leaves
platforms with the option of providing a custom implementation if
required.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Steven J. Hill <Steven.Hill@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10676/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit e4aa1f153add29343eeb8b3bf0f64e7c6fc7e697
Author: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Date: Mon Jun 22 12:21:00 2015 +0100
MIPS: MSA unaligned memory access support
The MSA architecture specification allows for hardware to not implement
unaligned vector memory accesses in some or all cases. A typical example
of this is the I6400 core which does not implement unaligned vector
memory access when the memory crosses a page boundary. The architecture
also requires that such memory accesses complete successfully as far as
userland is concerned, so the kernel is required to emulate them.
This patch implements support for emulating unaligned MSA ld & st
instructions by copying between the user memory & the tasks FP context
in struct thread_struct, updating hardware registers from there as
appropriate in order to avoid saving & restoring the entire vector
context for each unaligned memory access.
Tested both using an I6400 CPU and with a QEMU build hacked to produce
AdEL exceptions for unaligned vector memory accesses.
[paul.burton@xxxxxxxxxx:
- Remove #ifdef's
- Move msa_op into enum major_op rather than #define
- Replace msa_{to,from}_wd with {read,write}_msa_wr_{b,h,w,l} and the
format-agnostic wrappers, removing the custom endian mangling for
big endian systems.
- Restructure the msa_op case in emulate_load_store_insn to share
more code between the load & store cases.
- Avoid the need for a temporary union fpureg on the stack by simply
reusing the already suitably aligned context in struct
thread_struct.
- Use sizeof(*fpr) rather than hardcoding 16 as the size for user
memory checks & copies.
- Stop recalculating the address of the unaligned vector memory access
and rely upon the value read from BadVAddr as we do for other
unaligned memory access instructions.
- Drop the now unused val8 & val16 fields in union fpureg.
- Rewrite commit message.
- General formatting cleanups.]
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Cc: Huacai Chen <chenhc@xxxxxxxxxx>
Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Jie Chen <chenj@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10573/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 6b35e11442db48638c9e9f2ff19f706484a73abe
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jun 22 12:20:59 2015 +0100
MIPS: Introduce accessors for MSA vector registers
Introduce accessor functions allowing the kernel to access arbitrary
vector registers using an arbitrary data format. The accessors are
implemented in assembly, using macros to avoid massive duplication, in
order to make use of the existing support for MSA with & without
toolchain support. The accessors will be used in a later patch.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10572/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 6701ca2df4e22fb130330800b6cde687cb761637
Author: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Date: Mon Jun 22 12:20:58 2015 +0100
MIPS: Declare MSA MI10 instruction formats
Declare a struct describing the MSA MI10 instruction format used for ld &
st instructions, for use by subsequent patches.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Leonid Yegoshin <Leonid.Yegoshin@xxxxxxxxxx>
Cc: Steven J. Hill <Steven.Hill@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10571/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit b620c9720a0e18bc2067c65ad3b9020e813372eb
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Sun Jul 12 18:12:03 2015 -0500
MIPS: Remove "__weak" definition from arch-specific linkage.h
"__weak" is defined in include/linux/compiler-gcc.h. We shouldn't need an
arch-specific definition.
Remove the "__weak" definition from arch/mips/include/asm/linkage.h.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10689/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit e1d97497309867cdc1064ed6b10953abd1740b05
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Sun Jul 12 18:11:54 2015 -0500
MIPS: Remove "weak" from mips_cdmm_phys_base() declaration
Weak header file declarations are error-prone because they make every
definition weak, and the linker chooses one based on link order (see
10629d711ed7 ("PCI: Remove __weak annotation from pcibios_get_phb_of_node
decl")).
mips_cdmm_phys_base() is defined only in
arch/mips/mti-malta/malta-memory.c
so there's no problem with multiple definitions. But it works better to
have a weak default implementation and allow a strong function to override
it. Then we don't have to test whether a definition is present, and if
there are ever multiple strong definitions, we get a link error instead of
calling a random definition.
Add a weak mips_cdmm_phys_base() definition and remove the weak annotation
from the declaration in arch/mips/include/asm/cdmm.h.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10688/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 770847bad0200b62af2d93808b4e69d82f14264e
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Sun Jul 12 18:11:46 2015 -0500
MIPS: Remove "weak" from get_c0_fdc_int() declaration
Weak header file declarations are error-prone because they make every
definition weak, and the linker chooses one based on link order (see
10629d711ed7 ("PCI: Remove __weak annotation from pcibios_get_phb_of_node
decl")).
The most elegant solution is to have a weak default implementation and
allow a strong function to override it. Then we don't have to test
whether a definition is present, and if there are ever multiple strong
definitions, we get a link error instead of calling a random definition.
Add a weak get_c0_fdc_int() definition with the default code and remove
the
weak annotation from the declaration.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10687/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit ec0b9d35d1fbf7e3a3eccc662ad641794d3685a5
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Sun Jul 12 18:11:38 2015 -0500
MIPS: Remove "weak" from get_c0_compare_int() declaration
Weak header file declarations are error-prone because they make every
definition weak, and the linker chooses one based on link order (see
10629d711ed7 ("PCI: Remove __weak annotation from pcibios_get_phb_of_node
decl")).
get_c0_compare_int() is defined in several files. Each definition is
weak,
so I assume Kconfig prevents two or more from being included. The caller
contains default code used when get_c0_compare_int() isn't defined at all.
Add a weak get_c0_compare_int() definition with the default code and
remove
the weak annotation from the declaration.
Then the platform implementations will be strong and will override the
weak
default. If multiple platforms are ever configured in, we'll get a link
error instead of calling a random platform's implementation.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10686/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 5a73882fd2c3a86b502d54da532d373a1f2db15e
Author: York Sun <yorksun@xxxxxxxxxxxxx>
Date: Wed Sep 2 11:40:46 2015 -0500
i2c: mux: reg Change ioread endianness for readback
Reading the register (if allowed) after writing is to ensure writing
is completed on a posted bus. The endianness of reading doesn't matter.
Signed-off-by: York Sun <yorksun@xxxxxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit a05a34e7f6ff4a942186e99932885b10c6bc1d1a
Author: Mike Rapoport <mike.rapoport@xxxxxxxxx>
Date: Wed Sep 2 11:03:41 2015 +0300
i2c: mux: reg: fix compilation warnings
With CONFIG_OF=n, the following warnings occur when compiling
drivers/i2c/muxes/i2c-mux-reg.c:
CC drivers/i2c/muxes/i2c-mux-reg.o
drivers/i2c/muxes/i2c-mux-reg.c:170:13: warning: â??struct gpiomuxâ??
declared inside parameter list [enabled by default]
struct platform_device *pdev)
^
drivers/i2c/muxes/i2c-mux-reg.c:170:13: warning: its scope
is only this definition or declaration, which is probably not what you
want [enabled by default]
drivers/i2c/muxes/i2c-mux-reg.c: In function â??i2c_mux_reg_probeâ??:
drivers/i2c/muxes/i2c-mux-reg.c:201:3: warning: passing argument 1 of
â??i2c_mux_reg_probe_dtâ?? from incompatible pointer type [enabled by default]
ret = i2c_mux_reg_probe_dt(mux, pdev);
^
Signed-off-by: Mike Rapoport <mike.rapoport@xxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit fce388afd633cdf20844e17f47b0d97c7ee06e69
Author: Wolfram Sang <wsa@xxxxxxxxxxxxx>
Date: Thu Aug 20 23:40:46 2015 +0200
i2c: mux: reg: simplify register size checking
Checking was done at three different locations, just do it once and
properly at probing time.
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
Tested-by: York Sun <yorksun@xxxxxxxxxxxxx>
commit b9c93646fd5cb669d096fec5ad25a01f04cfde27
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Sep 3 12:20:37 2015 +0530
regulator: pbias: program pbias register offset in pbias driver
Add separate compatible strings for every platform and populate the
pbias register offset in the driver data.
This helps avoid depending on the dt for pbias register offset.
Also update the dt binding documentation for the new compatible
strings.
Suggested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Acked-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit f35f3a48d6ee810557b58e6b7d933438999401b6
Author: Thomas Huth <thuth@xxxxxxxxxx>
Date: Wed Sep 2 11:14:48 2015 +0200
KVM: PPC: Book3S: Fix size of the PSPB register
The size of the Problem State Priority Boost Register is only
32 bits, but the kvm_vcpu_arch->pspb variable is declared as
"ulong", ie. 64-bit. However, the assembler code accesses this
variable with 32-bit accesses, and the KVM_REG_PPC_PSPB macro
is defined with SIZE_U32, too, so that the current code is
broken on big endian hosts: kvmppc_get_one_reg_hv() will only
return zero for this register since it is using the wrong half
of the pspb variable. Let's fix this problem by adjusting the
size of the pspb field in the kvm_vcpu_arch structure.
Signed-off-by: Thomas Huth <thuth@xxxxxxxxxx>
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
commit 06554d9f6cc8f0b5ec903db19726a15dfc7b09d6
Author: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 17:41:20 2015 +0530
KVM: PPC: Book3S HV: Exit on H_DOORBELL if HOST_IPI is set
The code that handles the case when we receive a H_DOORBELL interrupt
has a comment which says "Hypervisor doorbell - exit only if host IPI
flag set". However, the current code does not actually check if the
host IPI flag is set. This is due to a comparison instruction that
got missed.
As a result, the current code performs the exit to host only
if some sibling thread or a sibling sub-core is exiting to the
host. This implies that, an IPI sent to a sibling core in
(subcores-per-core != 1) mode will be missed by the host unless the
sibling core is on the exit path to the host.
This patch adds the missing comparison operation which will ensure
that when HOST_IPI flag is set, we unconditionally exit to the host.
Fixes: 66feed61cdf6
Cc: stable@xxxxxxxxxxxxxxx # v4.1+
Signed-off-by: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>
Reviewed-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
commit 7f23532866f931be626e69ff55caf39e54516047
Author: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 21:48:58 2015 +0530
KVM: PPC: Book3S HV: Fix race in starting secondary threads
The current dynamic micro-threading code has a race due to which a
secondary thread naps when it is supposed to be running a vcpu. As a
side effect of this, on a guest exit, the primary thread in
kvmppc_wait_for_nap() finds that this secondary thread hasn't cleared
its vcore pointer. This results in "CPU X seems to be stuck!"
warnings.
The race is possible since the primary thread on exiting the guests
only waits for all the secondaries to clear its vcore pointer. It
subsequently expects the secondary threads to enter nap while it
unsplits the core. A secondary thread which hasn't yet entered the nap
will loop in kvm_no_guest until its vcore pointer and the do_nap flag
are unset. Once the core has been unsplit, a new vcpu thread can grab
the core and set the do_nap flag *before* setting the vcore pointers
of the secondary. As a result, the secondary thread will now enter nap
via kvm_unsplit_nap instead of running the guest vcpu.
Fix this by setting the do_nap flag after setting the vcore pointer in
the PACA of the secondary in kvmppc_run_core. Also, ensure that a
secondary thread doesn't nap in kvm_unsplit_nap when the vcore pointer
in its PACA struct is set.
Fixes: b4deba5c41e9
Signed-off-by: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>
Reviewed-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
commit abceaa9cded5f059f8c3b3b6f32730084fe5e39f
Author: Xunlei Pang <pang.xunlei@xxxxxxxxxx>
Date: Mon Aug 31 11:34:05 2015 +0800
cpuidle/coupled: Add sanity check for safe_state_index
Since we are using cpuidle_driver::safe_state_index directly as the
target state index, it is better to add the sanity check at the point
of registering the driver.
Signed-off-by: Xunlei Pang <pang.xunlei@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 29e47e2173349ee06bd339f7753821c720d50923
Author: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Date: Wed Sep 2 10:16:13 2015 +0200
PM / Domains: Try power off masters in error path of __pm_genpd_poweron()
While powering up a genpd, its domain masters are first being powered up.
In the error path of __pm_genpd_poweron(), we didn't care to try power off
these domain masters. Let's deal with that to avoid leaving unused PM
domains powered.
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit a2022001cebd0825b96aa0f3345ea3ad44ae79d4
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Wed Sep 2 14:36:50 2015 +0530
cpufreq: dt: Tolerance applies on both sides of target voltage
Tolerance applies on both sides of the target voltage, i.e. both min and
max sides. But while checking if a voltage is supported by the regulator
or not, we haven't taken care of tolerance on the lower side. Fix that.
Cc: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
Fixes: 045ee45c4ff2 ("cpufreq: cpufreq-dt: disable unsupported OPPs")
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Reviewed-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 8bc862843901e282e58f5ecd66f1df24366ecb6b
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Wed Sep 2 14:36:49 2015 +0530
cpufreq: dt: Print error on failing to mark OPPs as shared
We need to explicitly mark OPPs as shared, when they are not defined
with OPP-v2 bindings. This operation can potentially fail, and in that
case we should at least print an error message.
Fixes: 2e02d8723edf ("cpufreq: dt: Add support for operating-points-v2
bindings")
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 7d5d0c8ba369cbfb68eec6912f35197d82214668
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Wed Sep 2 14:36:48 2015 +0530
cpufreq: dt: Check OPP count before marking them shared
We need to explicitly mark OPPs as shared, when they are not defined
with OPP-v2 bindings. But this isn't required to be done if we failed to
initialize OPP table.
Reorder code to verify OPP count before marking them shared.
Fixes: 2e02d8723edf ("cpufreq: dt: Add support for operating-points-v2
bindings")
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 0ed537b5fd18c38b526fd0e6837a00f96aee30c4
Merge: 72e624d 50a3cb0
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Thu Sep 3 02:46:01 2015 +0200
Merge branch 'pm-opp' into pm-cpufreq
commit 21dd33b09c61597df603c654589adffd7955491a
Author: Lina Iyer <lina.iyer@xxxxxxxxxx>
Date: Wed Sep 2 16:18:57 2015 -0600
kernel/cpu_pm: fix cpu_cluster_pm_exit comment
cpu_cluster_pm_exit() must be sent after cpu_cluster_pm_enter() has been
sent for the cluster and before any cpu_pm_exit() notifications are sent
for any CPU.
Cc: Nicolas Pitre <nicolas.pitre@xxxxxxxxxx>
Acked-by: Kevin Hilman <khilman@xxxxxxxxxx>
Signed-off-by: Lina Iyer <lina.iyer@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit ac0e137ab0da80e8fc0db2027598e2f7f82a5a02
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Aug 31 20:27:32 2015 -0700
clk: h8s2678: Fix compile error
Recent cleanup removed some include files without checking if the cleaned
up code still compiles. This results in the following compile error.
drivers/clk/h8300/clk-h8s2678.c: In function â??h8s2678_pll_clk_setupâ??:
drivers/clk/h8300/clk-h8s2678.c:99:14: error:
implicit declaration of function â??kzallocâ??
drivers/clk/h8300/clk-h8s2678.c:138:2: error:
implicit declaration of function â??kfreeâ??
Cc: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 1e1a4e8f439113b7820bc7150569f685e1cc2b43
Merge: d975f30 cc7da0b
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 16:35:26 2015 -0700
Merge tag 'dm-4.3-changes' of
git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
Pull device mapper update from Mike Snitzer:
- a couple small cleanups in dm-cache, dm-verity, persistent-data's
dm-btree, and DM core.
- a 4.1-stable fix for dm-cache that fixes the leaking of deferred bio
prison cells
- a 4.2-stable fix that adds feature reporting for the dm-stats
features added in 4.2
- improve DM-snapshot to not invalidate the on-disk snapshot if
snapshot device write overflow occurs; but a write overflow triggered
through the origin device will still invalidate the snapshot.
- optimize DM-thinp's async discard submission a bit now that late bio
splitting has been included in block core.
- switch DM-cache's SMQ policy lock from using a mutex to a spinlock;
improves performance on very low latency devices (eg. NVMe SSD).
- document DM RAID 4/5/6's discard support
[ I did not pull the slab changes, which weren't appropriate for this
tree, and weren't obviously the right thing to do anyway. At the very
least they need some discussion and explanation before getting merged.
Because not pulling the actual tagged commit but doing a partial pull
instead, this merge commit thus also obviously is missing the git
signature from the original tag ]
* tag 'dm-4.3-changes' of
git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
dm cache: fix use after freeing migrations
dm cache: small cleanups related to deferred prison cell cleanup
dm cache: fix leaking of deferred bio prison cells
dm raid: document RAID 4/5/6 discard support
dm stats: report precise_timestamps and histogram in @stats_list output
dm thin: optimize async discard submission
dm snapshot: don't invalidate on-disk image on snapshot write overflow
dm: remove unlikely() before IS_ERR()
dm: do not override error code returned from dm_get_device()
dm: test return value for DM_MAPIO_SUBMITTED
dm verity: remove unused mempool
dm cache: move wake_waker() from free_migrations() to where it is needed
dm btree remove: remove unused function get_nr_entries()
dm btree: remove unused "dm_block_t root" parameter in
btree_split_sibling()
dm cache policy smq: change the mutex to a spinlock
commit 2ff46e6fea6254ac8fa97aeb9c14e51436ab95f6
Author: Brian Norris <computersforpeace@xxxxxxxxx>
Date: Wed Sep 2 16:34:35 2015 -0700
mtd: spi-nor: fix NULL dereference when no match found in spi_nor_ids[]
Commit 06bb6f5a69df ("mtd: spi-nor: stop (ab)using struct
spi_device_id") converted an array into a pointer, which means that
we should be checking if the pointer goes anywhere, not whether the C
string is empty. To do the latter means we dereference a NULL pointer
when we reach the terminating entry, for which 'name' is now NULL
instead of an array { 0, 0, ... }.
Sample crash:
[ 1.101371] Unable to handle kernel NULL pointer dereference at
virtual address 00000000
[ 1.109457] pgd = c0004000
[ 1.112157] [00000000] *pgd=00000000
[ 1.115736] Internal error: Oops: 5 [#1] SMP ARM
[ 1.120345] Modules linked in:
[ 1.123405] CPU: 3 PID: 1 Comm: swapper/0 Not tainted
4.2.0-next-20150902+ #61
[ 1.130611] Hardware name: Rockchip (Device Tree)
[ 1.135306] task: ee0b8d40 ti: ee0ba000 task.ti: ee0ba000
[ 1.140697] PC is at spi_nor_scan+0x90/0x8c4
[ 1.144958] LR is at spi_nor_scan+0xa4/0x8c4
...
[ 1.504112] [<c03cc2e0>] (spi_nor_scan) from [<c03cb188>]
(m25p_probe+0xc8/0x11c)
[ 1.511583] [<c03cb188>] (m25p_probe) from [<c03cd9d8>]
(spi_drv_probe+0x60/0x7c)
[ 1.519055] [<c03cd9d8>] (spi_drv_probe) from [<c037faa0>]
(driver_probe_device+0x1a0/0x444)
[ 1.527478] [<c037faa0>] (driver_probe_device) from [<c037fec8>]
(__device_attach_driver+0x94/0xa0)
[ 1.536507] [<c037fec8>] (__device_attach_driver) from [<c037db3c>]
(bus_for_each_drv+0x94/0xa4)
[ 1.545277] [<c037db3c>] (bus_for_each_drv) from [<c037f7e4>]
(__device_attach+0xa4/0x144)
[ 1.553526] [<c037f7e4>] (__device_attach) from [<c0380058>]
(device_initial_probe+0x1c/0x20)
[ 1.562035] [<c0380058>] (device_initial_probe) from [<c037ec88>]
(bus_probe_device+0x38/0x94)
[ 1.570631] [<c037ec88>] (bus_probe_device) from [<c037ccf4>]
(device_add+0x430/0x558)
[ 1.578534] [<c037ccf4>] (device_add) from [<c03d0240>]
(spi_add_device+0xe4/0x174)
[ 1.586178] [<c03d0240>] (spi_add_device) from [<c03d0a24>]
(spi_register_master+0x698/0x7d4)
[ 1.594688] [<c03d0a24>] (spi_register_master) from [<c03d0ba0>]
(devm_spi_register_master+0x40/0x7c)
[ 1.603892] [<c03d0ba0>] (devm_spi_register_master) from [<c03d2fb4>]
(rockchip_spi_probe+0x360/0x3f4)
[ 1.613182] [<c03d2fb4>] (rockchip_spi_probe) from [<c0381e34>]
(platform_drv_probe+0x58/0xa8)
[ 1.621779] [<c0381e34>] (platform_drv_probe) from [<c037faa0>]
(driver_probe_device+0x1a0/0x444)
[ 1.630635] [<c037faa0>] (driver_probe_device) from [<c037fdc4>]
(__driver_attach+0x80/0xa4)
[ 1.639058] [<c037fdc4>] (__driver_attach) from [<c037e850>]
(bus_for_each_dev+0x98/0xac)
[ 1.647221] [<c037e850>] (bus_for_each_dev) from [<c037f448>]
(driver_attach+0x28/0x30)
[ 1.655210] [<c037f448>] (driver_attach) from [<c037ef74>]
(bus_add_driver+0x128/0x250)
[ 1.663200] [<c037ef74>] (bus_add_driver) from [<c0380c40>]
(driver_register+0xac/0xf0)
[ 1.671191] [<c0380c40>] (driver_register) from [<c0381d50>]
(__platform_driver_register+0x58/0x6c)
[ 1.680221] [<c0381d50>] (__platform_driver_register) from
[<c0a467c8>] (rockchip_spi_driver_init+0x18/0x20)
[ 1.690033] [<c0a467c8>] (rockchip_spi_driver_init) from [<c00098a4>]
(do_one_initcall+0x124/0x1dc)
[ 1.699063] [<c00098a4>] (do_one_initcall) from [<c0a19f84>]
(kernel_init_freeable+0x218/0x2ec)
[ 1.707748] [<c0a19f84>] (kernel_init_freeable) from [<c0719ed8>]
(kernel_init+0x1c/0xf4)
[ 1.715912] [<c0719ed8>] (kernel_init) from [<c000fe50>]
(ret_from_fork+0x14/0x24)
[ 1.723460] Code: e3510000 159f67c0 0a00000c e5961000 (e5d13000)
[ 1.729564] ---[ end trace 95baa6b3b861ce25 ]---
Fixes: 06bb6f5a69df ("mtd: spi-nor: stop (ab)using struct spi_device_id")
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
Cc: RafaÅ? MiÅ?ecki <zajec5@xxxxxxxxx>
commit 62da98656b62a5ca57f22263705175af8ded5aa1
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Thu Sep 3 01:26:07 2015 +0200
netfilter: nf_conntrack: make nf_ct_zone_dflt built-in
Fengguang reported, that some randconfig generated the following linker
issue with nf_ct_zone_dflt object involved:
[...]
CC init/version.o
LD init/built-in.o
net/built-in.o: In function `ipv4_conntrack_defrag':
nf_defrag_ipv4.c:(.text+0x93e95): undefined reference to
`nf_ct_zone_dflt'
net/built-in.o: In function `ipv6_defrag':
nf_defrag_ipv6_hooks.c:(.text+0xe3ffe): undefined reference to
`nf_ct_zone_dflt'
make: *** [vmlinux] Error 1
Given that configurations exist where we have a built-in part, which is
accessing nf_ct_zone_dflt such as the two handlers nf_ct_defrag_user()
and nf_ct6_defrag_user(), and a part that configures nf_conntrack as a
module, we must move nf_ct_zone_dflt into a fixed, guaranteed built-in
area when netfilter is configured in general.
Therefore, split the more generic parts into a common header under
include/linux/netfilter/ and move nf_ct_zone_dflt into the built-in
section that already holds parts related to CONFIG_NF_CONNTRACK in the
netfilter core. This fixes the issue on my side.
Fixes: 308ac9143ee2 ("netfilter: nf_conntrack: push zone object into
functions")
Reported-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a82b0e63917f597c546cd479acc938e08ac54f2d
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Wed Sep 2 20:54:02 2015 +0200
netfilter: nf_dup{4, 6}: fix build error when nf_conntrack disabled
While testing various Kconfig options on another issue, I found that
the following one triggers as well on allmodconfig and nf_conntrack
disabled:
net/ipv4/netfilter/nf_dup_ipv4.c: In function â??nf_dup_ipv4â??:
net/ipv4/netfilter/nf_dup_ipv4.c:72:20: error: â??nf_skb_duplicatedâ??
undeclared (first use in this function)
if (this_cpu_read(nf_skb_duplicated))
[...]
net/ipv6/netfilter/nf_dup_ipv6.c: In function â??nf_dup_ipv6â??:
net/ipv6/netfilter/nf_dup_ipv6.c:66:20: error: â??nf_skb_duplicatedâ??
undeclared (first use in this function)
if (this_cpu_read(nf_skb_duplicated))
Fix it by including directly the header where it is defined.
Fixes: bbde9fc1824a ("netfilter: factor out packet duplication for
IPv4/IPv6")
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ed63f1dcd5788d36f942fbcce350742385e3e18c
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Wed Sep 2 17:24:14 2015 +0800
net: fec: clear receive interrupts before processing a packet
The patch just to re-submit the patch "db3421c114cfa6326" because the
patch "4d494cdc92b3b9a0" remove the change.
Clear any pending receive interrupt before we process a pending packet.
This helps to avoid any spurious interrupts being raised after we have
fully cleaned the receive ring, while still allowing an interrupt to be
raised if we receive another packet.
The position of this is critical: we must do this prior to reading the
next packet status to avoid potentially dropping an interrupt when a
packet is still pending.
Acked-by: Fugang Duan <B38611@xxxxxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5fdb7e1b976dc9d18aff8c711e51d17c4c324a0e
Author: Matias Bjørling <m@xxxxxxxxxxx>
Date: Mon Aug 31 14:17:31 2015 +0200
null_blk: fix wrong capacity when bs is not 512 bytes
set_capacity() sets device's capacity using 512 bytes sectors.
null_blk calculates the number of sectors by size / bs, which
set_capacity is called with. This led to null_blk exposing the
wrong number of sectors when bs is not 512 bytes.
Signed-off-by: Matias Bjørling <m@xxxxxxxxxxx>
Reviewed-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit de65d2d26f81f7f84c7258b3a137f20e8fa5bb6a
Author: Matias Bjørling <mb@xxxxxxxxxxx>
Date: Mon Aug 31 14:17:18 2015 +0200
null_blk: fix memory leak on cleanup
Driver was not freeing the memory allocated for internal nullb queues.
This patch frees the memory during driver unload.
Signed-off-by: Matias Bjørling <mb@xxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 5014c311baa2b21384321fa4a9f617a92e3e56f0
Author: Jens Axboe <axboe@xxxxxx>
Date: Wed Sep 2 16:46:02 2015 -0600
block: fix bogus compiler warnings in blk-merge.c
The compiler can't figure out that bvprv is initialized whenever 'prev'
is set to 1 as well. Use a pointer to bvprv instead, setting it to NULL
initially, and get rid of the 'prev' tracking. This dumbs it down
enough that gcc is happy.
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit e41b0bedba0293b9e1e8d1e8ed553104b9693656
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Thu Sep 3 00:29:07 2015 +0200
ipv6: fix exthdrs offload registration in out_rt path
We previously register IPPROTO_ROUTING offload under inet6_add_offload(),
but in error path, we try to unregister it with inet_del_offload(). This
doesn't seem correct, it should actually be inet6_del_offload(), also
ipv6_exthdrs_offload_exit() from that commit seems rather incorrect (it
also uses rthdr_offload twice), but it got removed entirely later on.
Fixes: 3336288a9fea ("ipv6: Switch to using new offload infrastructure.")
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7cc8c5cde0a5872f5d013f82978b73c011d8f8f1
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Wed Sep 2 15:22:48 2015 -0700
NFSv4.1/flexfiles: Clean up
ff_layout_write_done_cb/ff_layout_commit_done_cb
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit f95c03b2d5fb6d56c0d7ec21970329b49b657fed
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Wed Sep 2 15:15:11 2015 -0700
NFSv4.1/flexfiles: Mark the layout for return in
ff_layout_io_track_ds_error()
When I/O cannot complete due to a fatal error on the DS, ensure that we
invalidate the corresponding layout segment and return it.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 0f12a27b47284e86eaa4a5ad3877ec3018463178
Author: Joachim Eastwood <manabian@xxxxxxxxx>
Date: Fri Aug 14 18:42:32 2015 +0200
mtd: spi-nor: s25sl064p supports both dual and quad I/O
This chip can be found on Hitex LPC4350 Evaluation Board.
Signed-off-by: Joachim Eastwood <manabian@xxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit c1752086796bafaf0c933240642ed1cf21ddab4f
Author: Jonas Gorski <jogo@xxxxxxxxxxx>
Date: Wed Aug 26 14:56:53 2015 +0200
mtd: spi-nor: allow dual/quad reads on S25FL129P
According to the datasheet[1], both S25FL129P0 (256kB sectors) and
S25FL129P1 (64kB sectors) support dual read, quad read, dual i/o read
and quad i/o read.
I have verified dual read to be working for S25FL129P1 on a dual
capable spi controller. Quad as well as S25FL129P0 is untested, lacking
hardware to verify.
[1] http://www.spansion.com/Support/Datasheets/S25FL129P_00.pdf
Signed-off-by: Jonas Gorski <jogo@xxxxxxxxxxx>
Reviewed-by: Marek Vasut <marex@xxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 092f05c3eccbd616a0cfa21945412a3e82a9fb6c
Author: Roger Quadros <rogerq@xxxxxx>
Date: Fri Aug 21 13:45:35 2015 +0300
mtd: nand: omap2: Rename shippable module to omap2_nand
As both omap2 onenand and omap2 nand driver modules are
named the same i.e. "omap2.ko", only one of them gets shipped
during MODPOST if both are configured as loadable modules.
To avoid this ambiguity let's ship the omap2 nand
driver as "omap2_nand.ko"
Reported by Pierre Neyron via github
https://github.com/beagleboard/linux/issues/40
Cc: Robert Nelson <robertcnelson@xxxxxxxxx>
Signed-off-by: Roger Quadros <rogerq@xxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit a1d97ef96e3899ad9d4ec0024f9b4927e0490689
Author: Alexis Ballier <aballier@xxxxxxxxxx>
Date: Fri Aug 14 19:35:39 2015 +0200
mtd: spi-nor: Add support for sst25wf020a
It is a 256KiB flash with 4 KiB erase sectors
and 64KiB overlay blocks.
This is the one available on Hardkernel's Odroid U3 shield.
Signed-off-by: Alexis Ballier <aballier@xxxxxxxxxx>
[Brian: seems like this does NOT require the usual SST_WRITE hacks]
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 2a06c7b1fd2389aed2a308db8de803603d592444
Author: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Date: Thu Aug 27 12:52:19 2015 +0300
mtd: spi-nor: Add support for Micron n25q064a serial flash
Add Micron (n25q064a) 8MB flash to the list of supported chips.
Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Reviewed-by: Jagan Teki <jteki@xxxxxxxxxxxx>
[Brian: fixup context]
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 53ff6bc37be449f546158a39c528d7814dfb15a1
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Aug 18 12:07:05 2015 +0300
perf tools: Fix use of wrong event when processing exit events
In a couple of cases the 'comm' member of 'union event' has been used
instead of the correct member ('fork') when processing exit events.
In the cases where it has been used incorrectly, only the 'pid' and
'tid' are affected. The 'pid' value would be correct anyway because it
is in the same position in 'comm' and 'fork' events, but the 'tid' would
have been incorrectly assigned from 'ppid'.
However, for exit events, the kernel puts the current task in the 'ppid'
and 'ttid' which is the same as the exiting task. That is 'ppid' ==
'pid' and if the task is not multi-threaded, 'pid' == 'tid' i.e. the
data goes wrong only when tracing multi-threaded programs.
It is hard to find an example of how this would produce an error in
practice. There are 3 occurences of the fix:
1. perf script is only affected if !sample_id_all which only happens on
old kernels.
2. intel_pt is only affected when decoding without timestamps
and would probably still decode correctly - the exit event is
only used to flush out data which anyway gets flushed at the
end of the session
3. intel_bts also uses the exit event to flush data which
would probably not cause errors as it would get flushed at
the end of the session instead
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439888825-27708-1-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit d975f309a8b250e67b66eabeb56be6989c783629
Merge: 52b084d f8bcbe6
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 13:22:38 2015 -0700
Merge branch 'for-4.3/sg' of git://git.kernel.dk/linux-block
Pull SG updates from Jens Axboe:
"This contains a set of scatter-gather related changes/fixes for 4.3:
- Add support for limited chaining of sg tables even for
architectures that do not set ARCH_HAS_SG_CHAIN. From Christoph.
- Add sg chain support to target_rd. From Christoph.
- Fixup open coded sg->page_link in crypto/omap-sham. From
Christoph.
- Fixup open coded crypto ->page_link manipulation. From Dan.
- Also from Dan, automated fixup of manual sg_unmark_end()
manipulations.
- Also from Dan, automated fixup of open coded sg_phys()
implementations.
- From Robert Jarzmik, addition of an sg table splitting helper that
drivers can use"
* 'for-4.3/sg' of git://git.kernel.dk/linux-block:
lib: scatterlist: add sg splitting function
scatterlist: use sg_phys()
crypto/omap-sham: remove an open coded access to ->page_link
scatterlist: remove open coded sg_unmark_end instances
crypto: replace scatterwalk_sg_chain with sg_chain
target/rd: always chain S/G list
scatterlist: allow limited chaining without ARCH_HAS_SG_CHAIN
commit 52b084d31cbc8e90cb6fc1ac4061d9a24375c89d
Merge: 1081230 e19b127
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 13:14:58 2015 -0700
Merge branch 'for-4.3/drivers' of git://git.kernel.dk/linux-block
Pull block driver updates from Jens Axboe:
"On top of the 4.3 core block IO changes, here are the driver related
changes for 4.3. Basically just NVMe and nbd this time around:
- NVMe:
- PRACT PI improvement from Alok Pandey.
- Cleanups and improvements on submission queue doorbell and
writing, using CMB if available. From Jon Derrick.
- From Keith, support for setting queue maximum segments, and
reset support.
- Also from Jon, fixup of u64 division issue on 32-bit archs and
wiring up of the reset support through and ioctl.
- Two small cleanups from Matias and Sunad
- Various code cleanups and fixes from Markus Pargmann"
* 'for-4.3/drivers' of git://git.kernel.dk/linux-block:
NVMe: Using PRACT bit to generate and verify PI by controller
NVMe:Remove unreachable code in nvme_abort_req
NVMe: Add nvme subsystem reset IOCTL
NVMe: Add nvme subsystem reset support
NVMe: removed unused nn var from nvme_dev_add
NVMe: Set queue max segments
nbd: flags is a u32 variable
nbd: Rename functions for clearness of recv/send path
nbd: Change 'disconnect' to be boolean
nbd: Add debugfs entries
nbd: Remove variable 'pid'
nbd: Move clear queue debug message
nbd: Remove 'harderror' and propagate error properly
nbd: restructure sock_shutdown
nbd: sock_shutdown, remove conditional lock
nbd: Fix timeout detection
nvme: Fixes u64 division which breaks i386 builds
NVMe: Use CMB for the IO SQes if available
NVMe: Unify SQ entry writing and doorbell ringing
commit 1081230b748de8f03f37f80c53dfa89feda9b8de
Merge: df91039 2ca495a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 13:10:25 2015 -0700
Merge branch 'for-4.3/core' of git://git.kernel.dk/linux-block
Pull core block updates from Jens Axboe:
"This first core part of the block IO changes contains:
- Cleanup of the bio IO error signaling from Christoph. We used to
rely on the uptodate bit and passing around of an error, now we
store the error in the bio itself.
- Improvement of the above from myself, by shrinking the bio size
down again to fit in two cachelines on x86-64.
- Revert of the max_hw_sectors cap removal from a revision again,
from Jeff Moyer. This caused performance regressions in various
tests. Reinstate the limit, bump it to a more reasonable size
instead.
- Make /sys/block/<dev>/queue/discard_max_bytes writeable, by me.
Most devices have huge trim limits, which can cause nasty latencies
when deleting files. Enable the admin to configure the size down.
We will look into having a more sane default instead of UINT_MAX
sectors.
- Improvement of the SGP gaps logic from Keith Busch.
- Enable the block core to handle arbitrarily sized bios, which
enables a nice simplification of bio_add_page() (which is an IO hot
path). From Kent.
- Improvements to the partition io stats accounting, making it
faster. From Ming Lei.
- Also from Ming Lei, a basic fixup for overflow of the sysfs pending
file in blk-mq, as well as a fix for a blk-mq timeout race
condition.
- Ming Lin has been carrying Kents above mentioned patches forward
for a while, and testing them. Ming also did a few fixes around
that.
- Sasha Levin found and fixed a use-after-free problem introduced by
the bio->bi_error changes from Christoph.
- Small blk cgroup cleanup from Viresh Kumar"
* 'for-4.3/core' of git://git.kernel.dk/linux-block: (26 commits)
blk: Fix bio_io_vec index when checking bvec gaps
block: Replace SG_GAPS with new queue limits mask
block: bump BLK_DEF_MAX_SECTORS to 2560
Revert "block: remove artifical max_hw_sectors cap"
blk-mq: fix race between timeout and freeing request
blk-mq: fix buffer overflow when reading sysfs file of 'pending'
Documentation: update notes in biovecs about arbitrarily sized bios
block: remove bio_get_nr_vecs()
fs: use helper bio_add_page() instead of open coding on bi_io_vec
block: kill merge_bvec_fn() completely
md/raid5: get rid of bio_fits_rdev()
md/raid5: split bio for chunk_aligned_read
block: remove split code in blkdev_issue_{discard,write_same}
btrfs: remove bio splitting and merge_bvec_fn() calls
bcache: remove driver private bio splitting code
block: simplify bio_add_page()
block: make generic_make_request handle arbitrarily sized bios
blk-cgroup: Drop unlikely before IS_ERR(_OR_NULL)
block: don't access bio->bi_error after bio_put()
block: shrink struct bio down to 2 cache lines again
...
commit df910390e2db07a76c87f258475f6c96253cee6c
Merge: 91a247d 9f55bca
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 12:22:54 2015 -0700
Merge tag 'scsi-misc' of
git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull first round of SCSI updates from James Bottomley:
"This includes one new driver: cxlflash plus the usual grab bag of
updates for the major drivers: qla2xxx, ipr, storvsc, pm80xx, hptiop,
plus a few assorted fixes.
There's another tranch coming, but I want to incubate it another few
days in the checkers, plus it includes a mpt2sas separated lifetime
fix, which Avago won't get done testing until Friday"
* tag 'scsi-misc' of
git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (85 commits)
aic94xx: set an error code on failure
storvsc: Set the error code correctly in failure conditions
storvsc: Allow write_same when host is windows 10
storvsc: use storage protocol version to determine storage capabilities
storvsc: use correct defaults for values determined by protocol
negotiation
storvsc: Untangle the storage protocol negotiation from the vmbus
protocol negotiation.
storvsc: Use a single value to track protocol versions
storvsc: Rather than look for sets of specific protocol versions, make
decisions based on ranges.
cxlflash: Remove unused variable from queuecommand
cxlflash: shift wrapping bug in afu_link_reset()
cxlflash: off by one bug in cxlflash_show_port_status()
cxlflash: Virtual LUN support
cxlflash: Superpipe support
cxlflash: Base error recovery support
qla2xxx: Update driver version to 8.07.00.26-k
qla2xxx: Add pci device id 0x2261.
qla2xxx: Fix missing device login retries.
qla2xxx: do not clear slot in outstanding cmd array
qla2xxx: Remove decrement of sp reference count in abort handler.
qla2xxx: Add support to show MPI and PEP FW version for ISP27xx.
...
commit 91a247d7d3694a161092931ea4e0b13c11b8e9a0
Merge: 8bdc69b 718e38b
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 12:16:24 2015 -0700
Merge tag 'for-linus-20150901' of git://git.infradead.org/linux-mtd
Pull MTD updates from Brian Norris:
"SPI NOR:
- reduce virtual address space requirements for fsl-quadspi memory map
- new fsl-quadspi IP support: imx6ul-qspi and imx7d-qspi
- add new NOR flash device support
- add new driver for NXP SPI Flash Interface (SPIFI)
- stop abusing SPI API structs for non-SPI framework
- fixup DT table matching for new "jedec,spi-nor" string
NAND:
- brcmnand: fix big endian MIPS macro usage
- denali: refactor to use devres, dev_*() printing, etc.
- OMAP ELM: change the module alias to actually be usable
- pxa3xx_nand: fixup a few command sequencing issues -- both new and
old
- race conditions in the IRQ handler status clearing
- problems when a bootloader left interrupts pending
- config issues when overriding the bootloader configuration
- new flash device support
- sunxi_nand:
- optimize timing configuration by calculation, rather than fixed
fail-safe values
- use EDO setting from ONFI
- r852: fix compiler warnings
- davinci: add 4KB page support
Core:
- oobtest: correct debug print information"
* tag 'for-linus-20150901' of git://git.infradead.org/linux-mtd: (42
commits)
mtd: mtd_oobtest: Fix the address offset with vary_offset case
mtd: blkdevs: fix switch-bool compilation warning
mtd: spi-nor: stop (ab)using struct spi_device_id
mtd: nand: add Toshiba TC58NVG0S3E to nand_ids table
mtd: dataflash: Export OF module alias information
nand: pxa3xx: Increase READ_ID buffer and make the size static
mtd: nand: pxa3xx-nand: fix random command timeouts
mtd: nand: pxa3xx_nand: fix early spurious interrupt
mtd: pxa3xx_nand: add a default chunk size
mtd: omap_elm: Fix module alias
mtd: physmap_of: fix null pointer deference when kzalloc returns null
mtd: nettel: do not ignore mtd_device_register() failure in
nettel_init()
mtd: denali_pci: switch to dev_err()
mtd: denali_pci: refactor driver using devres API
mtd: denali_pci: use module_pci_driver() macro
mtd: denali: hide core part from user in Kconfig
mtd: spi-nor: add Spansion S25FL204K support
mtd: spi-nor: Improve Kconfig help text for SPI_FSL_QUADSPI
mtd: spi-nor: add driver for NXP SPI Flash Interface (SPIFI)
doc: dt: add documentation for nxp,lpc1773-spifi
...
commit 210c34dcd8d912dcc740f1f17625a7293af5cb56
Author: Paul Durrant <Paul.Durrant@xxxxxxxxxx>
Date: Wed Sep 2 17:58:36 2015 +0100
xen-netback: add support for multicast control
Xen's PV network protocol includes messages to add/remove ethernet
multicast addresses to/from a filter list in the backend. This allows
the frontend to request the backend only forward multicast packets
which are of interest thus preventing unnecessary noise on the shared
ring.
The canonical netif header in git://xenbits.xen.org/xen.git specifies
the message format (two more XEN_NETIF_EXTRA_TYPEs) so the minimal
necessary changes have been pulled into include/xen/interface/io/netif.h.
To prevent the frontend from extending the multicast filter list
arbitrarily a limit (XEN_NETBK_MCAST_MAX) has been set to 64 entries.
This limit is not specified by the protocol and so may change in future.
If the limit is reached then the next XEN_NETIF_EXTRA_TYPE_MCAST_ADD
sent by the frontend will be failed with NETIF_RSP_ERROR.
Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
Cc: Ian Campbell <ian.campbell@xxxxxxxxxx>
Cc: Wei Liu <wei.liu2@xxxxxxxxxx>
Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4db78d31deff77f227de56316ee865d65eaa7f01
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Wed Sep 2 13:25:59 2015 -0300
bgmac: Update fixed_phy_register()
Commit a5597008dbc2 ("phy: fixed_phy: Add gpio to determine link
up/down.")
added a new argument to fixed_phy_register(), but missed to update bgmac
driver, causing the following build failure:
drivers/net/ethernet/broadcom/bgmac.c:1450:2: error: too few arguments to
function 'fixed_phy_register'
Add the missing argument.
Reported-by: Mark Brown <broonie@xxxxxxxxxx>
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b382c08656000c12a146723a153b85b13a855b49
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Wed Sep 2 14:00:36 2015 +0200
sock, diag: fix panic in sock_diag_put_filterinfo
diag socket's sock_diag_put_filterinfo() dumps classic BPF programs
upon request to user space (ss -0 -b). However, native eBPF programs
attached to sockets (SO_ATTACH_BPF) cannot be dumped with this method:
Their orig_prog is always NULL. However, sock_diag_put_filterinfo()
unconditionally tries to access its filter length resp. wants to copy
the filter insns from there. Internal cBPF to eBPF transformations
attached to sockets don't have this issue, as orig_prog state is kept.
It's currently only used by packet sockets. If we would want to add
native eBPF support in the future, this needs to be done through
a different attribute than PACKET_DIAG_FILTER to not confuse possible
user space disassemblers that work on diag data.
Fixes: 89aa075832b0 ("net: sock: allow eBPF programs to be attached to
sockets")
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Acked-by: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ba13b5f8f86efa78bc0aaea297b0001b6cbf6c21
Author: Kaike Wan <kaike.wan@xxxxxxxxx>
Date: Thu Aug 20 14:20:42 2015 -0400
IB/sa: Fix rdma netlink message flags
The flags to ibnl_put_msg should be NLM_F_REQUEST instead of GFP_KERNEL.
Signed-off-by: Kaike Wan <kaike.wan@xxxxxxxxx>
Signed-off-by: John Fleck <john.fleck@xxxxxxxxx>
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit bddf8026386927985ef6d0d11c3ba78f70b76bad
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Tue Sep 1 16:44:11 2015 +0800
drm/amdgpu: set MEC doorbell range for Fiji
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit ac01db3dd5a0c7916e804a52752b780c5c18b98d
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Tue Sep 1 13:13:54 2015 +0800
drm/amdgpu: implement burst NOP for SDMA
Customize the insert_nop func for SDMA rings, and use burst NOP for
ring/IB submissions in other places as well
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit edff0e2826412be38f0c7977cbf89262141aad87
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Tue Sep 1 13:04:08 2015 +0800
drm/amdgpu: add insert_nop ring func and default implementation
The insert_nop function is added to amdgpu_ring_funcs structure as
well as the default implementation
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 4b2f7e2ca94d58ea16e411a1f717392b91f7730a
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Tue Sep 1 12:56:17 2015 +0800
drm/amdgpu: add amdgpu_get_sdma_instance helper function
This function is added to map the ring to sdma instance
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 36f523a7c095192662286057a7eb70d583203fe5
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Tue Sep 1 12:54:27 2015 +0800
drm/amdgpu: add AMDGPU_MAX_SDMA_INSTANCES
Remove the hardcoded usage
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 18111de0dfc38c582c4348af3bda5d3331d35012
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Mon Aug 31 14:06:39 2015 +0800
drm/amdgpu: add burst_nop flag for sdma
The burst NOP is supported for SDMA when feature_version is >= 20.
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 4207a734c32cafd8ea603eb440d6a8e100e7d1d2
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Mon Aug 31 14:01:05 2015 +0800
drm/amdgpu: add count field for the SDMA NOP packet v2
This is added to support the burst NOP
v2: squash the typo fix
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit a60c42320b375e80e52e7861acd6b81c61f05166
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Sep 1 15:33:25 2015 +0200
drm/amdgpu: use PT for VM sync on unmap
Instead of the array which is used for ID management.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit c9f0fe5e19ec485476c3b22e9265016b96c813ef
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 31 15:46:12 2015 +0800
drm/amdgpu: make wait_event uninterruptible in push_job
with interruptible, the push_job maybe return -ERESTARTSYS,
then result in push_job error.
E.g. bug trace:
[ 181.618860] *****amdgpu_copy_buffer:fence->seq:0x0000000048d8758b,
contxt:1207959552, ref:683967304, r:-512
[ 181.618929] BUG: unable to handle kernel paging request at
ffffffff811aa266
[ 181.625887] IP: [<ffffffff81548ffc>]
reservation_object_add_excl_fence+0x3c/0x120
...
[ 181.859767] [<ffffffff811aa266>] ? unmap_mapping_range+0x66/0x110
[ 181.865928] [<ffffffffc0608ac1>] ttm_bo_move_accel_cleanup+0x41/0x3c0
[ttm]
[ 181.872971] [<ffffffffc062d382>] amdgpu_move_blit.isra.18+0x122/0x150
[amdgpu]
[ 181.880254] [<ffffffff811aa266>] ? unmap_mapping_range+0x66/0x110
[ 181.886420] [<ffffffffc062d709>] amdgpu_bo_move+0xa9/0x200 [amdgpu]
[ 181.892753] [<ffffffffc0606e8d>] ttm_bo_handle_move_mem+0x26d/0x5c0
[ttm]
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 4c28fb0b27ad58d772cb972564369b9ebdad0d6b
Author: Christian König <christian.koenig@xxxxxxx>
Date: Fri Aug 28 17:27:54 2015 +0200
drm/amdgpu: fix amdgpu_bo_unreserve order in GEM_OP IOCTL v2
No copy_(to|from)_user while BO is reserved.
v2: handle default path as well
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 8221d706f4f39337e28644f333aefbca41ac0d18
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Sep 2 12:14:57 2015 -0400
drm/amdgpu: partially revert "modify amdgpu_fence_wait_any() to
amdgpu_fence_wait_multiple()" v2
That isn't used any more.
v2: rebase
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 09bfda10e6efd7b65bcc29237bee1765ed779657
Author: Jeffery Miller <jmiller@xxxxxxxxxxxxx>
Date: Tue Sep 1 11:23:02 2015 -0400
Add radeon suspend/resume quirk for HP Compaq dc5750.
With the radeon driver loaded the HP Compaq dc5750
Small Form Factor machine fails to resume from suspend.
Adding a quirk similar to other devices avoids
the problem and the system resumes properly.
Signed-off-by: Jeffery Miller <jmiller@xxxxxxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 423a9480add9d9afba035d3c2617034d5f766065
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 24 16:59:54 2015 +0800
drm/amdgpu: re-work sync_resv
sync_resv is to handle both amdgpu_fence and sched_fence.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit e39daf2c63518a8ce92e3ad5caa04097524b3585
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Mon Aug 31 11:08:44 2015 -0400
drm/amdgpu/atom: Send out the full AUX address
AUX addresses are 20 bits long. Send out the entire address instead of
just the low 16 bits.
Port of:
drm/radeon/atom: Send out the full AUX address
to amdgpu
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 8bdc69b764013a9b5ebeef7df8f314f1066c5d79
Merge: 76ec51e 20f1f4b
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 08:04:23 2015 -0700
Merge branch 'for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
Pull cgroup updates from Tejun Heo:
- a new PIDs controller is added. It turns out that PIDs are actually
an independent resource from kmem due to the limited PID space.
- more core preparations for the v2 interface. Once cpu side interface
is settled, it should be ready for lifting the devel mask.
for-4.3-unified-base was temporarily branched so that other trees
(block) can pull cgroup core changes that blkcg changes depend on.
- a non-critical idr_preload usage bug fix.
* 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
cgroup: pids: fix invalid get/put usage
cgroup: introduce cgroup_subsys->legacy_name
cgroup: don't print subsystems for the default hierarchy
cgroup: make cftype->private a unsigned long
cgroup: export cgrp_dfl_root
cgroup: define controller file conventions
cgroup: fix idr_preload usage
cgroup: add documentation for the PIDs controller
cgroup: implement the PIDs subsystem
cgroup: allow a cgroup subsystem to reject a fork
commit 76ec51ef5edfe540bbc3c61b860f88deb8e6a37b
Merge: 7d3e2eb 292c24a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 08:03:25 2015 -0700
Merge branch 'for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu
Pull percpu updates from Tejun Heo:
"Minor cleanups"
* 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
percpu: clean up of schunk->map[] assignment in pcpu_setup_first_chunk
percpu: update incorrect comment for this_cpu_*() operations
commit 7d3e2eb1786fafa186eb8bc276edef75ba69e023
Merge: 2dc7e55 355c066
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 08:02:20 2015 -0700
Merge branch 'for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
Pull workqueue updates from Tejun Heo:
"Only three trivial changes for workqueue this time - doc, MAINTAINERS
and EXPORT_SYMBOL updates"
* 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
workqueue: fix some docbook warnings
workqueue: Make flush_workqueue() available again to non GPL modules
workqueue: add myself as a dedicated reviwer
commit 2dc7e555e33e645df70a8aa89c529de1902f0064
Merge: ae98207 d6e9b70
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Sep 2 08:00:54 2015 -0700
Merge branch 'for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
Pull libata updates from Tejun Heo:
"Nothing interesting. A couple device specific minor updates and a
kernel doc change"
* 'for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
ata: pata_arasam_cf: Use devm_clk_get
libata: fix libata-core.c kernel-doc warning
ata: sata_rcar: Remove obsolete sata-r8a779* platform_device_id entries
commit c3058579a2882bb4bb6bf1ab0fe65f5ed070e530
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Sep 1 16:22:55 2015 +0900
drm/exynos: remove buf_cnt from struct exynos_drm_fb
Looking other drm drivers, there is no the restriction that framebuffer
has only one buffer in .create_handle() callback. They use just first
buffer.
If this limitation is removed, there is no reason keeping buffer count
for framebuffer, so we can remove buf_cnt from struct exynos_drm_fb.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Reviewed-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit faec262b14f3d92601c06b5c73b45ea71d0d164b
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Sep 1 16:22:54 2015 +0900
drm/exynos: remove exynos_drm_fb_get_buf_cnt()
We can get buffer count of framebuffer using drm_format_num_planes(), so
keeping exynos_drm_fb_get_buf_cnt() is unnecessary.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Reviewed-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 8d31758ecfe156fa4775017858613a5087eb57bf
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Sep 1 16:22:53 2015 +0900
drm/exynos: cleanup exynos_user_fb_create()
Using exynos_drm_framebuffer_init(), redundant codes can be removed.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Reviewed-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit d56125afcbdfde09bcb05d3e07e1d063989b5f74
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Sep 1 16:22:52 2015 +0900
drm/exynos: update exynos_drm_framebuffer_init() for multiple buffers
This modifies exynos_drm_framebuffer_init() to be possible to support
multiple buffers. Then it can be used by exynos_user_fb_create().
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit dcbb85a1641771547d83ee3a43230ea76703ed68
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Sep 1 16:22:51 2015 +0900
drm/exynos: cleanup to get gem object for fb
Current codes get first gem object and then again get remain gem
objects. They can be unified to one routine.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Reviewed-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit ee885ca5c0a34d5212eae9293ee8359e65c73715
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Sep 1 16:22:50 2015 +0900
drm/exynos: update fb_info via only one function
This patch moves codes to update fb_info into exynos_drm_fbdev_update(),
so fb_info is updated via only one function.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Reviewed-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit d76199609823ef0c5ab20ccdc8785df283241fd1
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Sep 1 16:22:49 2015 +0900
drm/exynos: cleanup exynos_drm_fbdev_update()
It can get exynos_gem object via function argument, so no need to call
exynos_drm_fb_gem_obj() in exynos_drm_fbdev_update.
It also can get struct drm_framebuffer *fb via helper->fb, so can remove
a function argument for it.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Reviewed-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 39a839f2e65185bcde80f99b5ee5ccd649ba07a2
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Sep 1 16:22:48 2015 +0900
drm/exynos: s/exynos_gem_obj/obj in exynos_drm_fbdev.c
The variable name "exynos_gem_obj" is too long, so some lines exceed 80
characters. It's simple to use "obj" instead of "exynos_gem_obj".
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Reviewed-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 94e30d93f9360051b76e8e2a4b61753cde5e16c8
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Sep 1 16:22:47 2015 +0900
drm/exynos: remove exynos_drm_fb_set_buf_cnt()
The exynos_drm_fb_set_buf_cnt() is used to set buffer count only in
exynos_drm_fbdev_update(). This patch sets directly buffer count in
exynos_drm_framebuffer_init() without using exynos_drm_fb_set_buf_cnt(),
so there is no any reason to keep exynos_drm_fb_set_buf_cnt().
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Reviewed-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 7de5c36c2aa9fc7ae1443d144f895ffd044c6b36
Author: Tobias Jakobi <tjakobi@xxxxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 00:51:23 2015 +0200
drm/exynos: remove superfluous checks in g2d_check_reg_offset()
The cases of the switch statement ensure that reg_type
can never be REG_TYPE_NONE here.
Signed-off-by: Tobias Jakobi <tjakobi@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 179239a7ae805f7695167c62a97eac3efe52d7af
Author: Tobias Jakobi <tjakobi@xxxxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 00:51:24 2015 +0200
drm/exynos: fix size check in g2d_check_buf_desc_is_valid()
The size check was incomplete. It only computed the
size of area of the drawing rectangle and checked if
the size still fit inside the buffer.
The correct check is to compute the position of the
last byte that the G2D engine is going to access and
then check if that position is still contained in the
buffer. In particular we need the stride information
to determine this.
Signed-off-by: Tobias Jakobi <tjakobi@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit a457974f1b9524a6e7d0a0be10df760e7802d32f
Author: Andrew Elble <aweits@xxxxxxx>
Date: Mon Aug 31 12:06:41 2015 -0400
nfsd: deal with DELEGRETURN racing with CB_RECALL
We have observed the server sending recalls for delegation stateids
that have already been successfully returned. Change
nfsd4_cb_recall_done() to return success if the client has returned
the delegation. While this does not completely eliminate the sending
of recalls for delegations that have already been returned, this
does prevent unnecessarily declaring the callback path to be down.
Reported-by: Eric Meddaugh <etmsys@xxxxxxx>
Signed-off-by: Andrew Elble <aweits@xxxxxxx>
Acked-by: Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 4e3d1e26c2b2c40ebff69f2825fa862bfcf082d1
Author: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Date: Thu Aug 27 23:56:12 2015 +0300
drm/i915: Pass hpd_status_i915[] to intel_get_hpd_pins() in pre-g4x
Pass the correct hpd[] array to intel_get_hpd_pins() on pre-g4x
platforms.
This got broken in the following commit:
commit fd63e2a972c670887e5e8a08440111d3812c0996
Author: Imre Deak <imre.deak@xxxxxxxxx>
Date: Tue Jul 21 15:32:44 2015 -0700
drm/i915: combine i9xx_get_hpd_pins and pch_get_hpd_pins
Cc: Imre Deak <imre.deak@xxxxxxxxx>
Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx>
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Reviewed-by: Egbert Eich <eich@xxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 16f7249ddf831f5ec0e1358222ce5db300446b84
Author: Artem Savkov <asavkov@xxxxxxxxxx>
Date: Wed Sep 2 13:41:18 2015 +0200
uapi/drm/i915_drm.h: fix userspace compilation.
commit 346add7834557b5b9628b9bf2387106d42e631d4
Author: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Tue Jul 14 18:07:30 2015 +0200
drm/i915: Use expcitly fixed type in compat32 structs
changed the type of param field in drm_i915_getparam from int to
s32. This header is exported to userspace and needs to use userspace
type __s32 instead.
This fixes userspace compilation errors like the following:
include/drm/i915_drm.h:361:2: error: unknown type name 's32'
s32 param;
Signed-off-by: Artem Savkov <asavkov@xxxxxxxxxx>
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 51bc140431e233284660b1d22c47dec9ecdb521e
Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 15:10:39 2015 +0100
drm/i915: Always mark the object as dirty when used by the GPU
There have been many hard to track down bugs whereby userspace forgot to
flag a write buffer and then cause graphics corruption or a hung GPU
when that buffer was later purged under memory pressure (as the buffer
appeared clean, its pages would have been evicted rather than preserved
and any changes more recent than in the backing storage would be lost).
In retrospect this is a rare optimisation against memory pressure,
already the slow path. If we always mark the buffer as dirty when
accessed by the GPU, anything not used can still be evicted cheaply
(ideal behaviour for mark-and-sweep eviction) but we do not run the risk
of corruption. For correct read serialisation, userspace still has to
notify when the GPU writes to an object. However, there are certain
situations under which userspace may wish to tell white lies to the
kernel...
Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Kristian Høgsberg <krh@xxxxxxxxxxxxx>
Cc: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>
Cc: "Goel, Akash" <akash.goel@xxxxxxxx>
Cc: MichaÅ? Winiarski <michal.winiarski@xxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit f36203be608a38a5b5523a7aa52cc72f757b9679
Author: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Date: Wed Aug 26 22:55:07 2015 +0300
drm/dp: Add dp_aux_i2c_speed_khz module param to set the assume i2c bus
speed
To help with debugging i2c-over-aux issues, add a module parameter than
can be used to tweak the assumed i2c bus speed, and thus the maximum
number of retries we will do for each aux message.
Cc: Simon Farnsworth <simon.farnsworth@xxxxxxxxxx>
Cc: moosotc@xxxxxxxxx
Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Reviewed-by: Simon Farnsworth <simon.farnsworth@xxxxxxxxxx>
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 4efa83c8c786ab7ec7982e3dd348cb7e7ecbeb04
Author: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 20:12:54 2015 +0300
drm/dp: Adjust i2c-over-aux retry count based on message size and i2c bus
speed
Calculate the number of retries we should do for each i2c-over-aux
message based on the time it takes to perform the i2c transfer vs. the
aux transfer. We assume the shortest possible length for the aux
transfer, and the longest possible (exluding clock stretching) for the
i2c transfer.
The DP spec has some examples on how to calculate this, but we don't
calculate things quite the same way. The spec doesn't account for the
retry interval (assumes immediate retry on defer), and doesn't assume
the best/worst case behaviour as we do.
Note that currently we assume 10 kHz speed for the i2c bus. Some real
world devices (eg. some Apple DP->VGA dongle) fails with less than 16
retries. and that would correspond to something close to 15 kHz (with
our method of calculating things) But let's just go for 10 kHz to be
on the safe side. Ideally we should query/set the i2c bus speed via
DPCD but for now this should at leaast remove the regression from the
1->16 byte trasnfer size change. And of course if the sink completes
the transfer quicker this shouldn't slow things down since we don't
change the interval between retries.
I did a few experiments with a DP->DVI dongle I have that allows you
to change the i2c bus speed. Here are the results of me changing the
actual bus speed and the assumed bus speed and seeing when we start
to fail the operation:
actual i2c khz assumed i2c khz max retries
1 1 ok -> 2 fail 211 ok -> 106 fail
5 8 ok -> 9 fail 27 ok -> 24 fail
10 17 ok -> 18 fail 13 ok -> 12 fail
100 210 ok -> 211 fail 2 ok -> 1 fail
So based on that we have a fairly decent safety margin baked into
the formula to calculate the max number of retries.
Fixes a regression with some DP dongles from:
commit 1d002fa720738bcd0bddb9178e9ea0773288e1dd
Author: Simon Farnsworth <simon.farnsworth@xxxxxxxxxxxx>
Date: Tue Feb 10 18:38:08 2015 +0000
drm/dp: Use large transactions for I2C over AUX
v2: Use best case for AUX and worst case for i2c (Simon Farnsworth)
Add a define our AUX retry interval and account for it
v3: Make everything usecs to avoid confusion about units (Daniel)
Add a comment reminding people about the AUX bitrate (Daniel)
Use DIV_ROUND_UP() since we're after the "worst" case for i2c
Cc: Simon Farnsworth <simon.farnsworth@xxxxxxxxxx>
Cc: moosotc@xxxxxxxxx
Tested-by: moosotc@xxxxxxxxx
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91451
Reviewed-by: Simon Farnsworth <simon.farnsworth@xxxxxxxxxx>
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 5ad4da4302712fba10624d28cb6c269fee592b69
Author: Jiri Olsa <jolsa@xxxxxxxxxx>
Date: Wed Sep 2 09:56:31 2015 +0200
perf tools: Fix parse_events_add_pmu caller
Following commit changed parse_events_add_pmu interface:
36adec85a86f perf tools: Change parse_events_add_pmu interface
but forgot to change one caller. Because of lessen compilation rules for
the bison parser, the compiler did not warn on that.
Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Raphael Beamonte <raphael.beamonte@xxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Matt Fleming <matt@xxxxxxxxxxxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Fixes: 36adec85a86f ("perf tools: Change parse_events_add_pmu interface")
Link:
http://lkml.kernel.org/r/1441180605-24737-2-git-send-email-jolsa@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 79a2b161c12a1b751f53a7698494cb722530bca5
Author: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Date: Wed Aug 26 22:55:05 2015 +0300
drm/dp: Define AUX_RETRY_INTERVAL as 500 us
Currently we react to native and i2c defers by waiting either 400-500 us
or 500-600 us, depending on which code path we take. Consolidate them
all to one define AUX_RETRY_INTERVAL which defines the minimum interval.
Since we've been using two different intervals pick the longer of them
and define AUX_RETRY_INTERVAL as 500 us. For the maximum just use
AUX_RETRY_INTERVAL+100 us.
I want to have a define for this so that I can use it when calculating
the estimated duration of i2c-over-aux transfers. Without a define it
would be very easy to change the sleep duration and neglect to update
the i2c-over-aux estimates.
Cc: Simon Farnsworth <simon.farnsworth@xxxxxxxxxx>
Cc: moosotc@xxxxxxxxx
Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Reviewed-by: Simon Farnsworth <simon.farnsworth@xxxxxxxxxx>
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 9f8df6adf6c53abfa10e243cb289c34eb18ec581
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Wed Sep 2 16:14:06 2015 +0530
regulator: core: fix possible NULL dereference
We were checking rdev->supply for NULL after dereferencing it. Lets
check for rdev->supply along with _regulator_is_enabled() and call
regulator_enable() only if rdev->supply is not NULL.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 57817e619a215588739f3f644986c78b586b541b
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 16:31:54 2015 +0200
video: fbdev: atmel_lcdfb: remove useless include
Definitions from linux/platform_data/atmel.h are not used, remove the
include.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
commit 6869de380e8c11c31b608bb2502dcacd634eda13
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Wed Sep 2 12:24:55 2015 +0200
ALSA: hda - Fix missing inline for dummy snd_hdac_set_codec_wakeup()
This seems overlooked.
Fixes: 98d8fc6c5d36 ('ALSA: hda - Move hda_i915.c from sound/pci/hda to
sound/hda')
Cc: <stable@xxxxxxxxxxxxxxx> # v4.2+
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 25adc137c546ce297b4d76820913dda11cad3891
Author: David Henningsson <david.henningsson@xxxxxxxxxxxxx>
Date: Wed Aug 19 10:48:58 2015 +0200
ALSA: hda - Wake the codec up on pin/ELD notify events
Whenever there is an event from the i915 driver, wake the codec
and recheck plug/unplug + ELD status.
This fixes the issue with lost unsol events in power save mode,
the codec and controller can now sleep in D3 and still know when
the HDMI monitor has been connected.
Signed-off-by: David Henningsson <david.henningsson@xxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 45c053df5bdc4843cf19b920db6ab819ddc27ff7
Author: David Henningsson <david.henningsson@xxxxxxxxxxxxx>
Date: Wed Aug 19 10:48:57 2015 +0200
ALSA: hda - allow codecs to access the i915 pin/ELD callback
This lets the interested codec be notified when an i915 pin/ELD
event happens.
[tiwai: Fixed a trivial build error for CONFIG_SND_HDA_I915=n]
Signed-off-by: David Henningsson <david.henningsson@xxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 51e1d83cab9988716ae68801a721f4df0aaa374b
Author: David Henningsson <david.henningsson@xxxxxxxxxxxxx>
Date: Wed Aug 19 10:48:56 2015 +0200
drm/i915: Call audio pin/ELD notify function
When the audio codec is enabled or disabled, notify the audio driver.
This will enable the audio driver to get the notification at all times
(even when audio is in different powersave states).
Signed-off-by: David Henningsson <david.henningsson@xxxxxxxxxxxxx>
Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx>
Acked-by: Daniel Vetter <daniel@xxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 2a8ceedf787167e6b1670b89d44e8dffca14d19c
Author: David Henningsson <david.henningsson@xxxxxxxxxxxxx>
Date: Wed Aug 19 10:48:55 2015 +0200
drm/i915: Add audio pin sense / ELD callback
This callback will be called by the i915 driver to notify the hda
driver that its HDMI information needs to be refreshed, i e,
that audio output is now available (or unavailable) - usually as a
result of a monitor being plugged in (or unplugged).
Signed-off-by: David Henningsson <david.henningsson@xxxxxxxxxxxxx>
Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx>
Acked-by: Daniel Vetter <daniel@xxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 02bc933ebb59208f42c2e6305b2c17fd306f695d
Author: Tan, Jui Nee <jui.nee.tan@xxxxxxxxx>
Date: Tue Sep 1 10:22:51 2015 +0800
spi: spi-pxa2xx: Check status register to determine if SSSR_TINT is
disabled
On Intel Baytrail, there is case when interrupt handler get called, no SPI
message is captured. The RX FIFO is indeed empty when RX timeout pending
interrupt (SSSR_TINT) happens.
Use the BIOS version where both HSUART and SPI are on the same IRQ. Both
drivers are using IRQF_SHARED when calling the request_irq function. When
running two separate and independent SPI and HSUART application that
generate data traffic on both components, user will see messages like
below on the console:
pxa2xx-spi pxa2xx-spi.0: bad message state in interrupt handler
This commit will fix this by first checking Receiver Time-out Interrupt,
if it is disabled, ignore the request and return without servicing.
Signed-off-by: Tan, Jui Nee <jui.nee.tan@xxxxxxxxx>
Acked-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 7c8bb6cb95061b3143759459ed6c6b0c73bcfecb
Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Date: Tue Sep 1 16:51:00 2015 +0200
nohz: Assert existing housekeepers when nohz full enabled
The code ensures that when nohz full is running, at least the
boot CPU serves as a housekeeper and it can't be later offlined.
Let's assert this assumption to make sure that we have CPUs to
handle unbound jobs like workqueues and timers while nohz full
CPUs run undisturbed.
Also improve the comments on housekeeper offlining prevention.
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Preeti U Murthy <preeti@xxxxxxxxxxxxxxxxxx>
Cc: Vatika Harlalka <vatikaharlalka@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441119060-2230-3-git-send-email-fweisbec@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 9642d18eee2cd169b60c6ac0f20bda745b5a3d1e
Author: Vatika Harlalka <vatikaharlalka@xxxxxxxxx>
Date: Tue Sep 1 16:50:59 2015 +0200
nohz: Affine unpinned timers to housekeepers
The problem addressed in this patch is about affining unpinned
timers. Adaptive or Full Dynticks CPUs are currently disturbed
by unnecessary jitter due to firing of such timers on them.
This patch will affine timers to online CPUs which are not full
dynticks in NOHZ_FULL configured systems. It should not
introduce overhead in nohz full off case due to static keys.
Signed-off-by: Vatika Harlalka <vatikaharlalka@xxxxxxxxx>
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Reviewed-by: Preeti U Murthy <preeti@xxxxxxxxxxxxxxxxxx>
Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Cc: Christoph Lameter <cl@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441119060-2230-2-git-send-email-fweisbec@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 31e09b18c863718939e3e9c30eee55f9011d85ee
Author: Linda Knippers <linda.knippers@xxxxxx>
Date: Tue Sep 1 15:41:55 2015 -0400
x86/mm/srat: Print non-volatile flag in SRAT
With the addition of NVDIMM support, a question came up as to
whether NVDIMM ranges should be in the SRAT with this bit set.
I think the consensus was no because the ranges are in the NFIT
with proximity domain information there.
ACPI is not clear on the meaning of this bit in the SRAT.
If someone is setting it, we might want to ask them what they
expect to happen with it.
Right now this bit is only printed if all the ACPI debug
information is turned on.
Signed-off-by: Linda Knippers <linda.knippers@xxxxxx>
Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/20150901194154.GA4939@ljkz400
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 5b923564ccf43f92969c9e0fd199c8c5db657039
Merge: 5320266 af4aead
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Wed Sep 2 09:22:53 2015 +0200
Merge tag 'perf-urgent-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
- Fix link time error with sample_reg_masks on non-x86. (Stephane
Eranian)
- Fix potential array out of bounds access. (Wang Nan)
- Fix Intel PT instruction decoder dependency problem. (Wang Nan)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 20a17bf6c04e3eca8824c930ecc55ab832558e3b
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Sep 1 21:19:17 2015 -0700
flow_dissector: Use 'const' where possible.
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit de4c1f8ba302ccf4f2b3b17dc614b0a0b14d351a
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 18:11:04 2015 -0700
flow_dissector: Fix function argument ordering dependency
Commit c6cc1ca7f4d70c ("flowi: Abstract out functions to get flow hash
based on flowi") introduced a bug in __skb_set_sw_hash where we
require a dependency on evaluating arguments in a function in order.
There is no such ordering enforced in C, so this incorrect. This
patch fixes that by splitting out the arguments. This bug was
found via a compiler warning that keys may be uninitialized.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1bd40543534578f20889d5e999a0f184fd7ea88f
Merge: a17ace9 990a2d6
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Sep 1 20:17:17 2015 -0700
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue
Jeff Kirsher says:
====================
Intel Wired LAN Driver Updates 2015-09-01
This series contains updates to i40e, ixgbe and ixgbevf.
Anjali fixes a bug in i40e where the port is not receiving multicast or
VLAN
tagged packets in promiscuous mode. Which can occur when a software
bridge
is created on top of the device.
Don adds support in ixgbe that indicates the presence of management
firmware.
Added support for entering low power link up state on devices that support
it when the device is closing or suspending. Updated the driver to report
unknown bus speed and width since IOSF does not report a PCIe bus speed or
width for X550 devices. Also added the new bus type for integrated I/O
interface (IOSF). Cleaned up of redundant code in ixgbe.
Mark adds support for UDP-encapsulation transmit checksum and for VXLAN
receive offloads. Introduces a helper function to do the register access
and processing to avoid needless PHY access on copper PHYs. Added support
for reporting 2.5G link speed. Fixed warnings resulting from redundant
initializations of the get_bus_info field.
Maninder Singh updates the ixgbe driver to use kzalloc instead of kcalloc
for allocation of one thing.
Tom Barbette adds support for ethtool to change the rxfh indirection table
and/or key using ethtool interface.
Emil resolves an issue where users were not able to dynamically set number
of queues for 82598 via ethtool -L.
Alex Williamson removes bimodal SR-IOV disabling behavior since it is
confusing to users and results in a state where the PF is broken for other
uses unless the user sets sriov_numvfs to zero prior to unbinding the
device.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ae982073095a44f004d7ffb9f271077abef9dbcf
Merge: f1a3c0b e625ccec
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 19:45:46 2015 -0700
Merge tag 'pm+acpi-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management and ACPI updates from Rafael Wysocki:
"From the number of commits perspective, the biggest items are ACPICA
and cpufreq changes with the latter taking the lead (over 50 commits).
On the cpufreq front, there are many cleanups and minor fixes in the
core and governors, driver updates etc. We also have a new cpufreq
driver for Mediatek MT8173 chips.
ACPICA mostly updates its debug infrastructure and adds a number of
fixes and cleanups for a good measure.
The Operating Performance Points (OPP) framework is updated with new
DT bindings and support for them among other things.
We have a few updates of the generic power domains framework and a
reorganization of the ACPI device enumeration code and bus type
operations.
And a lot of fixes and cleanups all over.
Included is one branch from the MFD tree as it contains some
PM-related driver core and ACPI PM changes a few other commits are
based on.
Specifics:
- ACPICA update to upstream revision 20150818 including method
tracing extensions to allow more in-depth AML debugging in the
kernel and a number of assorted fixes and cleanups (Bob Moore, Lv
Zheng, Markus Elfring).
- ACPI sysfs code updates and a documentation update related to AML
method tracing (Lv Zheng).
- ACPI EC driver fix related to serialized evaluations of _Qxx
methods and ACPI tools updates allowing the EC userspace tool to be
built from the kernel source (Lv Zheng).
- ACPI processor driver updates preparing it for future introduction
of CPPC support and ACPI PCC mailbox driver updates (Ashwin
Chaugule).
- ACPI interrupts enumeration fix for a regression related to the
handling of IRQ attribute conflicts between MADT and the ACPI
namespace (Jiang Liu).
- Fixes related to ACPI device PM (Mika Westerberg, Srinidhi
Kasagar).
- ACPI device registration code reorganization to separate the
sysfs-related code and bus type operations from the rest (Rafael J
Wysocki).
- Assorted cleanups in the ACPI core (Jarkko Nikula, Mathias Krause,
Andy Shevchenko, Rafael J Wysocki, Nicolas Iooss).
- ACPI cpufreq driver and ia64 cpufreq driver fixes and cleanups (Pan
Xinhui, Rafael J Wysocki).
- cpufreq core cleanups on top of the previous changes allowing it to
preseve its sysfs directories over system suspend/resume (Viresh
Kumar, Rafael J Wysocki, Sebastian Andrzej Siewior).
- cpufreq fixes and cleanups related to governors (Viresh Kumar).
- cpufreq updates (core and the cpufreq-dt driver) related to the
turbo/boost mode support (Viresh Kumar, Bartlomiej Zolnierkiewicz).
- New DT bindings for Operating Performance Points (OPP), support for
them in the OPP framework and in the cpufreq-dt driver plus related
OPP framework fixes and cleanups (Viresh Kumar).
- cpufreq powernv driver updates (Shilpasri G Bhat).
- New cpufreq driver for Mediatek MT8173 (Pi-Cheng Chen).
- Assorted cpufreq driver (speedstep-lib, sfi, integrator) cleanups
and fixes (Abhilash Jindal, Andrzej Hajda, Cristian Ardelean).
- intel_pstate driver updates including Skylake-S support, support
for enabling HW P-states per CPU and an additional vendor bypass
list entry (Kristen Carlson Accardi, Chen Yu, Ethan Zhao).
- cpuidle core fixes related to the handling of coupled idle states
(Xunlei Pang).
- intel_idle driver updates including Skylake Client support and
support for freeze-mode-specific idle states (Len Brown).
- Driver core updates related to power management (Andy Shevchenko,
Rafael J Wysocki).
- Generic power domains framework fixes and cleanups (Jon Hunter,
Geert Uytterhoeven, Rajendra Nayak, Ulf Hansson).
- Device PM QoS framework update to allow the latency tolerance
setting to be exposed to user space via sysfs (Mika Westerberg).
- devfreq support for PPMUv2 in Exynos5433 and a fix for an incorrect
exynos-ppmu DT binding (Chanwoo Choi, Javier Martinez Canillas).
- System sleep support updates (Alan Stern, Len Brown, SungEun Kim).
- rockchip-io AVS support updates (Heiko Stuebner).
- PM core clocks support fixup (Colin Ian King).
- Power capping RAPL driver update including support for Skylake H/S
and Broadwell-H (Radivoje Jovanovic, Seiichi Ikarashi).
- Generic device properties framework fixes related to the handling
of static (driver-provided) property sets (Andy Shevchenko).
- turbostat and cpupower updates (Len Brown, Shilpasri G Bhat,
Shreyas B Prabhu)"
* tag 'pm+acpi-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (180 commits)
cpufreq: speedstep-lib: Use monotonic clock
cpufreq: powernv: Increase the verbosity of OCC console messages
cpufreq: sfi: use kmemdup rather than duplicating its implementation
cpufreq: drop !cpufreq_driver check from cpufreq_parse_governor()
cpufreq: rename cpufreq_real_policy as cpufreq_user_policy
cpufreq: remove redundant 'policy' field from user_policy
cpufreq: remove redundant 'governor' field from user_policy
cpufreq: update user_policy.* on success
cpufreq: use memcpy() to copy policy
cpufreq: remove redundant CPUFREQ_INCOMPATIBLE notifier event
cpufreq: mediatek: Add MT8173 cpufreq driver
dt-bindings: mediatek: Add MT8173 CPU DVFS clock bindings
PM / Domains: Fix typo in description of genpd_dev_pm_detach()
PM / Domains: Remove unusable governor dummies
PM / Domains: Make pm_genpd_init() available to modules
PM / domains: Align column headers and data in pm_genpd_summary output
powercap / RAPL: disable the 2nd power limit properly
tools: cpupower: Fix error when running cpupower monitor
PM / OPP: Drop unlikely before IS_ERR(_OR_NULL)
PM / OPP: Fix static checker warning (broken 64bit big endian systems)
...
commit f1a3c0b933e7ff856223d6fcd7456d403e54e4e5
Merge: 089b669 c8fb70a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 19:37:56 2015 -0700
Merge tag 'devicetree-for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull devicetree updates from Rob Herring:
- added Frank Rowand as DT maintainer in preparation for Grant's
retirement.
- generic MSI binding documentation and a few other minor doc updates
- fix long standing issue with DT platorm device unregistration
- fix loop forever bug in of_find_matching_node_by_address()
* tag 'devicetree-for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
MAINTAINERS: Add Frank Rowand as DT maintainer
mtd: nand: pxa3xx: add optional dma for pxa architecture
Documentation: DT: cpsw: document missing compatible
Docs: dt: add generic MSI bindings
drivercore: Fix unregistration path of platform devices
of/address: Don't loop forever in of_find_matching_node_by_address().
of: Add vendor prefix for JEDEC Solid State Technology Association
of/platform: add function to populate default bus
of: Add vendor prefix for Sharp Corporation
commit 5a924a07f882e866f2337bf65048be357956691a
Merge: 64291f7 934c93b d0a1262
Author: Zhang Rui <rui.zhang@xxxxxxxxx>
Date: Wed Sep 2 10:08:02 2015 +0800
Merge branches 'thermal-core' and 'thermal-intel' of .git into next
commit 089b669506ef28fae2c24a0ec21e06c02a38556b
Merge: 45c680b e5f6450
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 18:46:42 2015 -0700
Merge branch 'for-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
Pull trivial tree updates from Jiri Kosina:
"The usual stuff from trivial tree for 4.3 (kerneldoc updates, printk()
fixes, Documentation and MAINTAINERS updates)"
* 'for-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits)
MAINTAINERS: update my e-mail address
mod_devicetable: add space before */
scsi: a100u2w: trivial typo in printk
i2c: Fix typo in i2c-bfin-twi.c
treewide: fix typos in comment blocks
Doc: fix trivial typo in SubmittingPatches
proportions: Spelling s/consitent/consistent/
dm: Spelling s/consitent/consistent/
aic7xxx: Fix typo in error message
pcmcia: Fix typo in locking documentation
scsi/arcmsr: Fix typos in error log
drm/nouveau/gr: Fix typo in nv10.c
[SCSI] Fix printk typos in drivers/scsi
staging: comedi: Grammar s/Enable support a/Enable support for a/
Btrfs: Spelling s/consitent/consistent/
README: GTK+ is a acronym
ASoC: omap: Fix typo in config option description
mm: tlb.c: Fix error message
ntfs: super.c: Fix error log
fix typo in Documentation/SubmittingPatches
...
commit 45c680b9949ecdb829a331100ae49926bf82899c
Merge: 851328f 225f58f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 18:44:28 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching
Pull livepatching fix from Jiri Kosina:
"Livepatching error handling fix"
* 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching:
livepatch: Improve error handling in klp_disable_func()
commit 851328feb8c1d4130d3a0acb004e474168702d6d
Merge: 2d678b6 f212bd9
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 18:39:09 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
Pull HID updates from Jiri Kosina:
"to receive patches queued for 4.3 merge window in HID tree. Highlights:
- a lot of improvements (regarding supported features and devices) to
Wacom driver, from Aaron Skomra and Jason Gerecke
- a lot of functional fixes and support for large I2C transfer to
cp2112 driver, from Ellen Wang
- HW support improvements to RMI driver, from Andrew Duggan
- quite some small fixes and device ID additions all over the place"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
(44 commits)
HID: wacom: wacom_setup_numbered_buttons is local to wacom_wac
HID: wacom: Add support for Express Key Remote.
HID: wacom: Set button bits based on a new numbered_buttons
HID: quirks: add QUIRK_NOGET for an other TPV touchscreen
HID: usbhid: Fix the check for HID_RESET_PENDING in hid_io_error
HID: i2c-hid: Only disable irq wake if it was successfully enabled
during suspend
HID: wacom: Use tablet-provided touch height/width values for INTUOSHT
HID: gembird: add new driver to fix Gembird JPD-DualForce 2
HID: lenovo: Hide middle-button press until release
HID: lenovo: Add missing return-value check
HID: lenovo: Use constants for axes names
HID: wacom: Simplify 'wacom_pl_irq'
HID: wacom: Do not repeatedly attempt to set device mode on error
HID: wacom: Do not repeatedly attempt to set device mode on error
HID: wacom: Remove WACOM_QUIRK_NO_INPUT
HID: wacom: Replace WACOM_QUIRK_MONITOR with WACOM_DEVICETYPE_WL_MONITOR
HID: wacom: Use calculated pkglen for wireless touch interface
HID: sony: Fix DS4 controller reporting rate issues
HID: chicony: Add support for Acer Aspire Switch 12
HID: hid-lg: Add USBID for Logitech G29 Wheel
...
commit 2d678b68e842e5b6fc46fc6914f7b7144bb2c23d
Merge: 73b6fa8 99e1dfb
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 18:34:22 2015 -0700
Merge tag 'edac_for_4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp
Pull EDAC fixes from Borislav Petkov:
"Two minor fixlets this time: AMD MCE decoding correction and
xgene_edac cleanup"
* tag 'edac_for_4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
EDAC, mce_amd: Don't emit 'CE' for Deferred error
EDAC, xgene: Drop owner assignment from platform_driver
commit 990a2d6ed543bd18b864b8a11f7be3368c67ccea
Author: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Date: Wed Jul 29 16:00:38 2015 -0700
ixgbe: Resolve "initialized field overwritten" warnings
Resolve warnings resulting from redundant initialization of the
get_bus_info field in the mac_ops_X550* structures.
Signed-off-by: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Tested-by: Phil Schmitt <phillip.j.schmitt@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 7837e2867f56ec4435e75af54236732885303694
Author: Alex Williamson <alex.williamson@xxxxxxxxxx>
Date: Fri Jul 10 15:31:34 2015 -0600
ixgbe: Remove bimodal SR-IOV disabling
When unbinding an SR-IOV device with VFs configured from ixgbe, the
driver behaves in one of two ways. If max_vfs was specified, the
SR-IOV state is disabled, removing the VFs. The occurs regardless of
whether the VF count was later modified through sysfs. If however
max_vfs is zero, such as by not specifying the module parameter, the
VFs persist after the PF is unbound from ixgbe. If the PF is then
bound to vfio-pci to be assigned to a VM, the PF is non-functional.
>From the comment, commit da36b64736cf ("ixgbe: Implement PCI SR-IOV
sysfs callback operation") clearly intended this alternate behavior,
but probably didn't realize the PF doesn't work in this mode.
This bimodal behavior is confusing to users and results in a state
where the PF is broken for other uses unless the user sets
sriov_numvfs to zero prior to unbinding the device. Remove this
behavior so that VFs are removed and the PF is functional for other
uses after unbind, regardless of the way VFs are enabled.
Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx>
Acked-by: Greg Rose <gregory.v.rose@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 454adb008d78e4ecdfec3f2e5e9eb08ee5a60f1a
Author: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Date: Fri Jul 10 14:19:22 2015 -0700
ixgbe: Add support for reporting 2.5G link speed
Now that we can do 2.5G link speed, we need to be able to report it.
Also change the nested triadic involved in creating the log message
to instead use a simpler switch statement to set a string pointer.
Signed-off-by: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 7e3f5c8881ba45eba1c74344b00558920008e6e6
Author: Emil Tantilov <emil.s.tantilov@xxxxxxxxx>
Date: Thu Jul 9 12:28:59 2015 -0700
ixgbe: fix bounds checking in ixgbe_setup_tc for 82598
This patch resolves an issue where users were not able to dynamically
set number of queues for 82598 via ethtool -L
Reported-by: Tal Abudi <talabudi@xxxxxxxxx>
Signed-off-by: Emil Tantilov <emil.s.tantilov@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 1c7cf0784e4d448ed8a07c5fc1e3aac1528272f1
Author: Tom Barbette <tom.barbette@xxxxxxxxx>
Date: Fri Jun 26 15:40:18 2015 +0200
ixgbe: support for ethtool set_rxfh
Allows to change the rxfh indirection table and/or key using
ethtool interface.
Signed-off-by: Tom Barbette <tom.barbette@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit ae8140aa6bf5c7aafc0d9c2f612c5b59bea1ce9f
Author: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Date: Thu Jun 25 17:49:57 2015 -0700
ixgbe: Avoid needless PHY access on copper phys
Avoid a needless PHY access on copper phys to save the 10ms wait
time for each PHY access. A helper function is introduced to
actually do the register access and process the contents.
Signed-off-by: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 897b9349f056d1c1cf5141ded4ec26766d845f8b
Author: Don Skidmore <donald.c.skidmore@xxxxxxxxx>
Date: Fri Jun 19 19:14:57 2015 -0400
ixgbe: cleanup to use cached mask value
We already cache this FW/SW semaphore mask so might as well use it
for consistency.
Signed-off-by: Don Skidmore <donald.c.skidmore@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit d5702dea43fc517c389f2d9825213dabbfdaed5e
Author: Don Skidmore <donald.c.skidmore@xxxxxxxxx>
Date: Fri Jun 19 12:23:36 2015 -0400
ixgbe: Remove second instance of lan_id variable
This patch removes the redundant lan_id in the phy struct and uses
the bus version. Both variables exist and intend to represent the
STATUS register LAN_ID field. However, phy.lan_id is not bit shifted
so the phy.lan_id = 0x0 for LAN Id 0 and phy.lan_id = 0x4 for LAN Id 1.
Where bus.lan_id is bit shifted so bus.lan_id = 0x0 for LAN Id 0 and
bus.lan_id = 0x1 for LAN Id 1. There seems no need for the additional
lan_id variable and this should make the code less confusing.
Signed-off-by: Donald C Skidmore <donald.c.skidmore@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit bc52f951e344b2ec64388c71890d88c5fc154a41
Author: Maninder Singh <maninder1.s@xxxxxxxxxxx>
Date: Fri Jun 19 09:37:55 2015 +0530
ixgbe: use kzalloc for allocating one thing
Use kzalloc rather than kcalloc(1..
The semantic patch that makes this change is as follows:
// <smpl>
@@
@@
- kcalloc(1,
+ kzalloc(
...)
// </smpl>
and removing checkpatch below CHECK:
CHECK: Prefer kzalloc(sizeof(*fwd_adapter)...) over
kzalloc(sizeof(struct ixgbe_fwd_adapter)...)
Signed-off-by: Maninder Singh <maninder1.s@xxxxxxxxxxx>
Reviewed-by: Vaneet Narang <v.narang@xxxxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit a17ace95b0f08ccbcf24946db5673c4b5ee8fcae
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Sep 1 17:00:24 2015 -0700
flow: Move __get_hash_from_flowi{4,6} into flow_dissector.c
These cannot live in net/core/flow.c which only builds when XFRM is
enabled.
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit fa888b891384ccbf18e70af2e02f5173e55e5e7f
Author: Don Skidmore <donald.c.skidmore@xxxxxxxxx>
Date: Thu Jun 18 16:31:42 2015 -0400
ixgbe: Remove unused PCI bus types
The ixgbe never has as very doubtfully ever will support either
PCI or PCI-X devices. So remove the unused types from the
ixgbe_bus_type. Thanks to Alex Duyck for suggesting this.
Signed-off-by: Donald C Skidmore <donald.c.skidmore@xxxxxxxxx>
Tested-by: Phil Schmitt <phillip.j.schmitt@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit f9328bc6a7edc0fbaea836007b4261ca6233d96f
Author: Don Skidmore <donald.c.skidmore@xxxxxxxxx>
Date: Thu Jun 18 13:24:06 2015 -0400
ixgbe: add new bus type for intergrated I/O interface (IOSF)
With this patch we add support for a new bus type ixgbe_bus_type_internal.
X550em devices use IOSF and not PCIe bus so this new type is to
accommodate
them.
Signed-off-by: Donald C Skidmore <donald.c.skidmore@xxxxxxxxx>
Tested-by: Phil Schmitt <phillip.j.schmitt@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 454c65dd1a1e7fdaa5bbd3a34e14ab5560fbfad7
Author: Don Skidmore <donald.c.skidmore@xxxxxxxxx>
Date: Wed Jun 17 20:59:59 2015 -0400
ixgbe: add get_bus_info method for X550
Added ixgbe_get_bus_info_X550em to X550 code. ixgbe_get_bus_info_X550em
sets bus.width to ixgbe_bus_width_unknown and bus.speed to
ixgbe_bus_speed_unknown, because IOSF does not report a PCIe bus
width or speed.
Signed-off-by: Don Skidmore <donald.c.skidmore@xxxxxxxxx>
Tested-by: Phil Schmitt <phillip.j.schmitt@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 6ac7439459606a57265800e60b14d58365ab19eb
Author: Don Skidmore <donald.c.skidmore@xxxxxxxxx>
Date: Wed Jun 17 17:34:31 2015 -0400
ixgbe: Add support for entering low power link up state
When the device is closing or suspending, call ixgbe_enter_lplu to
enter low power link up state on devices that support it. When this
is done, prevent the phy from being reset in the ixgbe_down path
so that link is present when calling ixgbe_enter_lplu.
Signed-off-by: Don Skidmore <donald.c.skidmore@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 67359c3c9fc8e9fbed991bbe0cfeda55c7e0a64c
Author: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Date: Mon Jun 15 11:33:25 2015 -0700
ixgbe: Add support for VXLAN RX offloads
Add support for VXLAN RX offloads for the X55x devices that support
them.
Signed-off-by: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Tested-by: Phil Schmitt <phillip.j.schmitt@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit f467bc06022d4d37de459f9498ff4fbc7e9b0fca
Author: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Date: Mon Jun 15 11:33:20 2015 -0700
ixgbe: Add support for UDP-encapsulated tx checksum offload
By using GSO for UDP-encapsulated packets, all ixgbe devices can
be directed to generate checksums for the inner headers because
the outer UDP checksum can be zero. So point the machinery at the
inner headers and have the hardware generate the checksum.
Signed-off-by: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Tested-by: Phil Schmitt <phillip.j.schmitt@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 4b36993d3df0834eff3b4172962de0343a4d9123
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Sep 1 16:46:08 2015 -0700
flow_dissector: Don't use bit fields.
Just have a flags member instead.
In file included from include/linux/linkage.h:4:0,
from include/linux/kernel.h:6,
from net/core/flow_dissector.c:1:
In function 'flow_keys_hash_start',
inlined from 'flow_hash_from_keys' at
net/core/flow_dissector.c:553:34:
>> include/linux/compiler.h:447:38: error: call to
'__compiletime_assert_459' declared with attribute error: BUILD_BUG_ON failed:
FLOW_KEYS_HASH_OFFSET % sizeof(u32)
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d490d15877b2e6fc2d800ea232a0eca54cf4592c
Author: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Date: Thu Jun 11 11:02:20 2015 -0700
ixgbe: Check whether FDIRCMD writes actually complete
Wait up to about 100 us for FDIRCMD writes to complete and return
failure indications.
Signed-off-by: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Tested-by: Phil Schmitt <phillip.j.schmitt@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit b5529ef5be1f0a0089988ec51541aa9573e94476
Author: Don Skidmore <donald.c.skidmore@xxxxxxxxx>
Date: Wed Jun 10 20:42:30 2015 -0400
ixgbe: Assign set_phy_power dynamically where needed
There are various reasons why this method may or may not need to be
defined and some of these we don't know until runtime. So we will
set the value in get_invariants.
Signed-off-by: Donald C Skidmore <donald.c.skidmore@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit bd8069ace513dd2741bc7177eeebc9a392451db1
Author: Don Skidmore <donald.c.skidmore@xxxxxxxxx>
Date: Wed Jun 10 20:05:02 2015 -0400
ixgbe: add new function to check for management presence
This patch adds a support function that will indicate for the
existence of management FW.
Signed-off-by: Donald C Skidmore <donald.c.skidmore@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 92faef85613d6d56803ad6130f6daf4a803deddc
Author: Anjali Singhai Jain <anjali.singhai@xxxxxxxxx>
Date: Tue Jul 28 13:02:00 2015 -0400
i40e: Set defport behavior for the Main VSI when in promiscuous mode
This fixes bugs where the port is not receiving multicast or VLAN tagged
packets when in promiscuous mode. This can occur when a SW bridge is
created on top of the device.
This also fixes issues where the promiscuous behavior setting was not
being preserved across a reset caused by features being enabled or
disabled.
We are using defport instead of doing a true promiscuous mode because we
do
not need to receive the SRIOV or VMDq VSI directed traffic which would
suck
up bandwidth and is really not intended for the SW bridge.
In addition, with defport we get VLAN promiscuous behavior which is not
possible from the VSI level promiscuous setting.
Change-ID: Ie21985eac32d5af1c02e9d71c6430a90d5bab40f
Signed-off-by: Anjali Singhai Jain <anjali.singhai@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 73b6fa8e49c2d13e04d20186261e5f7855c6d0bf
Merge: e713c80 4b75de86
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 16:13:25 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
Pull user namespace updates from Eric Biederman:
"This finishes up the changes to ensure proc and sysfs do not start
implementing executable files, as the there are application today that
are only secure because such files do not exist.
It akso fixes a long standing misfeature of /proc/<pid>/mountinfo that
did not show the proper source for files bind mounted from
/proc/<pid>/ns/*.
It also straightens out the handling of clone flags related to user
namespaces, fixing an unnecessary failure of unshare(CLONE_NEWUSER)
when files such as /proc/<pid>/environ are read while <pid> is calling
unshare. This winds up fixing a minor bug in unshare flag handling
that dates back to the first version of unshare in the kernel.
Finally, this fixes a minor regression caused by the introduction of
sysfs_create_mount_point, which broke someone's in house application,
by restoring the size of /sys/fs/cgroup to 0 bytes. Apparently that
application uses the directory size to determine if a tmpfs is mounted
on /sys/fs/cgroup.
The bind mount escape fixes are present in Al Viros for-next branch.
and I expect them to come from there. The bind mount escape is the
last of the user namespace related security bugs that I am aware of"
* 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
fs: Set the size of empty dirs to 0.
userns,pidns: Force thread group sharing, not signal handler sharing.
unshare: Unsharing a thread does not require unsharing a vm
nsfs: Add a show_path method to fix mountinfo
mnt: fs_fully_visible enforce noexec and nosuid if !SB_I_NOEXEC
vfs: Commit to never having exectuables on proc and sysfs.
commit e713c80a4e49d4bed5324d24755e42bf01c87556
Merge: 43af987 c8b5db7
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 15:42:28 2015 -0700
Merge branch 'x86-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 clockevent update from Thomas Gleixner:
"A single commit, which converts HPET clockevents driver to the new
callbacks"
* 'x86-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/hpet: Migrate to new set_state interface
commit 43af9872f52abfed5523b8346d98a5e283b38163
Merge: 17e6b00 a47d457
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 15:20:51 2015 -0700
Merge branch 'x86-apic-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 apic updates from Thomas Gleixner:
"This udpate contains:
- rework the irq vector array to store a pointer to the irq
descriptor instead of the irq number to avoid a lookup of the irq
descriptor in the irq entry path
- lguest interrupt handling cleanups
- conversion of the local apic timer to the new clockevent callbacks
- preparatory changes for the irq argument removal of interrupt flow
handlers"
* 'x86-apic-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/irq: Do not dereference irq descriptor before checking it
tools/lguest: Clean up include dir
tools/lguest: Fix redefinition of struct virtio_pci_cfg_cap
x86/irq: Store irq descriptor in vector array
genirq: Provide irq_desc_has_action
x86/irq: Get rid of an indentation level
x86/irq: Rename VECTOR_UNDEFINED to VECTOR_UNUSED
x86/irq: Replace numeric constant
x86/irq: Protect smp_cleanup_move
x86/lguest: Do not setup unused irq vectors
x86/lguest: Clean up lguest_setup_irq
x86/apic: Drop local_irq_save/restore in timer callbacks
x86/apic: Migrate apic timer to new set_state interface
x86/irq: Use access helper irq_data_get_affinity_mask()
x86/irq: Use accessor irq_data_get_irq_handler_data()
x86/irq: Use accessor irq_data_get_node()
commit 4a3e5779cf6c6d557682b499c2190ad04c80c6fd
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Mon Aug 31 10:53:43 2015 +0800
nfs: Remove unneeded checking of the return value from scnprintf
The return value from scnprintf always less than the buffer length.
So, result >= len always false. This patch removes those checking.
int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
{
int i;
i = vsnprintf(buf, size, fmt, args);
if (likely(i < size))
return i;
if (size != 0)
return size - 1;
return 0;
}
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 4a70316caef7d158445e672e146eb9f1b8c1aeee
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Mon Aug 31 10:53:33 2015 +0800
nfs: Fix truncated client owner id without proto type
The length of "Linux NFSv4.0 " is 14, not 10.
Without this patch, I get a truncated client owner id as,
"Linux NFSv4.0 ::1/::1"
With this patch,
"Linux NFSv4.0 ::1/::1 tcp"
Fixes: a319268891 ("nfs: make nfs4_init_nonuniform_client_string use a
dynamically allocated buffer")
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 889d94d49a3cbcbc8c8d07208549fa614d33da76
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 00:58:24 2015 -0700
NFSv4.1/flexfiles: Mark layout for return if the mirrors are invalid
If a read-write layout has an invalid mirror, then we should
mark it as invalid, and return it.
If a read-only layout has an invalid mirror, then mark it as invalid
and check if there is still at least one valid mirror before we return
it.
Note: Also fix incorrect use of pnfs_generic_mark_devid_invalid().
We really want nfs4_mark_deviceid_unavailable().
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 81d6dc8b3431d298abaef11d8bc64646fc691618
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 02:49:44 2015 -0700
NFSv4.1/flexfiles: RW layouts are valid only if all mirrors are valid
Unlike read layouts, the writeable layout cannot fall back to using only
one of the mirrors. It need to write to all of them.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 388ef16640cefd202daa723fba02e7c0266f8454
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 03:31:33 2015 -0700
NFSv4.1/flexfiles: Fix incorrect usage of
pnfs_generic_mark_devid_invalid()
Unlike the files layout, flexfiles does not test for the
NFS_DEVICEID_INVALID
flag. Instead it relies on NFS_DEVICEID_UNAVAILABLE.
Fix is to replace with nfs4_mark_deviceid_unavailable().
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 41ecc3d390266acc1aa911d2ec477928a5248f75
Merge: d3d11fe 6db61d7
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Sep 1 15:06:24 2015 -0700
Merge branch 'flow-dissector-features'
Tom Herbert says:
====================
flow_dissector: Paramterize dissection and other features
This patch set adds some new capabilities to flow_dissector:
- Add flags to flow dissector functions to control dissection
- Flag to stop dissection when L3 header is seen (don't
dissect L4)
- Flag to stop dissection when encapsulation is detected
- Flag to parse first fragment of fragmented packet. This
may provide L4 ports
- Added new reporting in key_control
- Packet is a fragment
- Packet is a first fragment
- Packet has encapsulation
Also:
- Make __skb_set_sw_hash a general function
- Create functions to get a flow hash based on flowi4 or flowi6
structures without an reference to an skbuff
- Ignore flow dissector return value from ___skb_get_hash. Just
use whatever key fields are found to make a hash
Tested:
Ran 200 netperf TCP_RR instances for IPv6 and IPv4. Did not see any
regression. Ran UDP_RR with 10000 byte request and response size
for IPv4 and IPv6, no regression observed however I did see better
performance with IPv6 flow labels due to use of flow labels for L4
hash.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6db61d79c1e1b2346e2142d6c950a8d2e8380b82
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:24:33 2015 -0700
flow_dissector: Ignore flow dissector return value from ___skb_get_hash
In ___skb_get_hash ignore return value from skb_flow_dissect_flow_keys.
A failure in that function likely means that there was a parse error,
so we may as well use whatever fields were found before the error was
hit. This is also good because it means we won't keep trying to derive
the hash on subsequent calls to skb_get_hash for the same packet.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 823b96939578eae67b9d6c0e33a39d6a7b6401e7
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:24:32 2015 -0700
flow_dissector: Add control/reporting of encapsulation
Add an input flag to flow dissector on rather dissection should stop
when encapsulation is detected (IP/IP or GRE). Also, add a key_control
flag that indicates encapsulation was encountered during the
dissection.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 872b1abb1ed47a691f465fb3d285f6cf6bcd8663
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:24:31 2015 -0700
flow_dissector: Add flag to stop parsing when an IPv6 flow label is seen
Add an input flag to flow dissector on rather dissection should be
stopped when a flow label is encountered. Presumably, the flow label
is derived from a sufficient hash of an inner transport packet so
further dissection is not needed (that is ports are not included in
the flow hash). Using the flow label instead of ports has the additional
benefit that packet fragments should hash to same value as non-fragments
for a flow (assuming that the same flow label is used).
We set this flag by default in for skb_get_hash.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8306b688f1a6621b9efe3b0d827e26750528b12a
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:24:30 2015 -0700
flow_dissector: Add flag to stop parsing at L3
Add an input flag to flow dissector on rather dissection should be
stopped when an L3 packet is encountered. This would be useful if a
caller just wanted to get IP addresses of the outermost header (e.g.
to do an L3 hash).
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b840f28b908da0239c8c5d9c8cae362ad21cda97
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:24:29 2015 -0700
flow_dissector: Support IPv6 fragment header
Parse NEXTHDR_FRAGMENT. When seen account for it in the fragment bits of
key_control. Also, check if first fragment should be parsed.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 807e165dc44fd93f9d378f861f0540a158d7343a
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:24:28 2015 -0700
flow_dissector: Add control/reporting of fragmentation
Add an input flag to flow dissector on rather dissection should be
attempted on a first fragment. Also add key_control flags to indicate
that a packet is a fragment or first fragment.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit cd79a2382aa5dcefa6e21a7c59bb1bb19e53b74d
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:24:27 2015 -0700
flow_dissector: Add flags argument to skb_flow_dissector functions
The flags argument will allow control of the dissection process (for
instance whether to parse beyond L3).
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a6e544b0a88b53114bfa5a57e21b7be7a8dfc9d0
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:24:26 2015 -0700
flow_dissector: Jump to exit code in __skb_flow_dissect
Instead of returning immediately (on a parsing failure for instance) we
jump to cleanup code. This always sets protocol values in key_control
(even on a failure there is still valid information in the key_tags that
was set before the problem was hit).
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c6cc1ca7f4d70cbb3ea3a5ca163c5dabaf155cdb
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:24:25 2015 -0700
flowi: Abstract out functions to get flow hash based on flowi
Create __get_hash_from_flowi6 and __get_hash_from_flowi4 to get the
flow keys and hash based on flowi structures. These are called by
__skb_get_hash_flowi6 and __skb_get_hash_flowi4. Also, created
get_hash_from_flowi6 and get_hash_from_flowi4 which can be called
when just the hash value for a flowi is needed.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit bcc83839ffdb063dd2b0370cd85c4f825761fc59
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:24:24 2015 -0700
skbuff: Make __skb_set_sw_hash a general function
Move __skb_set_sw_hash to skbuff.h and add __skb_set_hash which is
a common method (between __skb_set_sw_hash and skb_set_hash) to set
the hash in an skbuff.
Also, move skb_clear_hash to be closer to __skb_set_hash.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e5276937ae6e654a811345f0716266f12e77bede
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:24:23 2015 -0700
flow_dissector: Move skb related functions to skbuff.h
Move the flow dissector functions that are specific to skbuffs into
skbuff.h out of flow_dissector.h. This makes flow_dissector.h have
no dependencies on skbuff.h.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d3d11fe08ccc9bff174fc958722b5661f0932486
Author: Jean Delvare <jdelvare@xxxxxxx>
Date: Tue Sep 1 18:07:41 2015 +0200
tg3: Fix temperature reporting
The temperature registers appear to report values in degrees Celsius
while the hwmon API mandates values to be exposed in millidegrees
Celsius. Do the conversion so that the values reported by "sensors"
are correct.
Fixes: aed93e0bf493 ("tg3: Add hwmon support for temperature")
Signed-off-by: Jean Delvare <jdelvare@xxxxxxx>
Cc: Prashant Sreedharan <prashant@xxxxxxxxxxxx>
Cc: Michael Chan <mchan@xxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx [v3.6+]
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b6c6aedcbcbacd7b0cb4b64ed5ac835bc1c60a03
Author: Mark Salter <msalter@xxxxxxxxxx>
Date: Tue Sep 1 09:36:05 2015 -0400
phylib: fix device deletion order in mdiobus_unregister()
commit 8b63ec1837fa ("phylib: Make PHYs children of their MDIO bus, not
the bus' parent.") uncovered a problem in mdiobus_unregister() which
leads to this warning when I reboot an APM Mustang (arm64) platform:
WARNING: CPU: 7 PID: 4239 at fs/sysfs/group.c:224
sysfs_remove_group+0xa0/0xa4()
sysfs group fffffe0000e07a10 not found for kobject 'xgene-mii-eth0:03'
...
CPU: 7 PID: 4239 Comm: reboot Tainted: G E
4.2.0-0.18.el7.test15.aarch64 #1
Hardware name: AppliedMicro Mustang/Mustang, BIOS 1.1.0 Aug 26 2015
Call Trace:
[<fffffe000009739c>] dump_backtrace+0x0/0x170
[<fffffe000009752c>] show_stack+0x20/0x2c
[<fffffe00007436f0>] dump_stack+0x78/0x9c
[<fffffe00000c2cb4>] warn_slowpath_common+0xa0/0xd8
[<fffffe00000c2d60>] warn_slowpath_fmt+0x74/0x88
[<fffffe0000293d3c>] sysfs_remove_group+0x9c/0xa4
[<fffffe00004a8bac>] dpm_sysfs_remove+0x5c/0x70
[<fffffe000049b388>] device_del+0x44/0x208
[<fffffe000049b578>] device_unregister+0x2c/0x7c
[<fffffe000050dc68>] mdiobus_unregister+0x48/0x94
[<fffffe000052afd0>] xgene_enet_mdio_remove+0x28/0x44
[<fffffe000052d3f0>] xgene_enet_remove+0xd0/0xd8
[<fffffe000052d424>] xgene_enet_shutdown+0x2c/0x3c
[<fffffe00004a204c>] platform_drv_shutdown+0x24/0x40
[<fffffe000049d4f4>] device_shutdown+0xf0/0x1b4
[<fffffe00000e31ec>] kernel_restart_prepare+0x40/0x4c
[<fffffe00000e32f8>] kernel_restart+0x1c/0x80
[<fffffe00000e3670>] SyS_reboot+0x17c/0x250
The problem is that mdiobus_unregister() deletes the bus device before
unregistering the phy devices on the bus. This wasn't a problem before
because the phys were not children of the bus:
/sys/devices/platform/APMC0D05:00/net/eth0/xgene-mii-eth0:03
/sys/devices/platform/APMC0D05:00/net/eth0/xgene-mii-eth0
But now that they are:
/sys/devices/platform/APMC0D05:00/net/eth0/xgene-mii-eth0/xgene-mii-eth0:03
when mdiobus_unregister deletes the bus device, the phy subdirs are
removed from sysfs also. So when the phys are unregistered afterward,
we get the warning. This patch changes the order so that phys are
unregistered before the bus device is deleted.
Fixes: 8b63ec1837fa ("phylib: Make PHYs children of their MDIO bus, not
the bus' parent.")
Signed-off-by: Mark Salter <msalter@xxxxxxxxxx>
Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Tested-by: Mark Langsdorf <mlangsdo@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 01a5ad827a36e36f45e1fdb96903ea115f759865
Author: Yunlei He <heyunlei@xxxxxxxxxx>
Date: Mon Aug 31 17:15:10 2015 +0800
f2fs: upset segment_info repair
upset segment_info like this:
276000|161 0|0 4|70 3|0 3|0 0|0 0|91 4|0 4|232 4|39
276104|0 4|0 4|1 4|0 4|0 4|280 4|0 4|42 4|262 4|38
276204|179 4|89 4|39 4|24 4|0 4|96 4|3 4|428 4|0 4|118
276304|112 4|97 4|0 4|0 4|0 4|68 4|0 4|0 4|86 4|138
276404|0 4|0 0|166 5|39 4|101 0|111
Signed-off-by: Yunlei He <heyunlei@xxxxxxxxxx>
Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 17e6b00ac422b49d44a0b8d98402a211f726282d
Merge: 5e359bf e324c4d
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 14:33:35 2015 -0700
Merge branch 'irq-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq updates from Thomas Gleixner:
"This updated pull request does not contain the last few GIC related
patches which were reported to cause a regression. There is a fix
available, but I let it breed for a couple of days first.
The irq departement provides:
- new infrastructure to support non PCI based MSI interrupts
- a couple of new irq chip drivers
- the usual pile of fixlets and updates to irq chip drivers
- preparatory changes for removal of the irq argument from interrupt
flow handlers
- preparatory changes to remove IRQF_VALID"
* 'irq-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (129 commits)
irqchip/imx-gpcv2: IMX GPCv2 driver for wakeup sources
irqchip: Add bcm2836 interrupt controller for Raspberry Pi 2
irqchip: Add documentation for the bcm2836 interrupt controller
irqchip/bcm2835: Add support for being used as a second level controller
irqchip/bcm2835: Refactor handle_IRQ() calls out of MAKE_HWIRQ
PCI: xilinx: Fix typo in function name
irqchip/gic: Ensure gic_cpu_if_up/down() programs correct GIC instance
irqchip/gic: Only allow the primary GIC to set the CPU map
PCI/MSI: pci-xgene-msi: Consolidate chained IRQ handler install/remove
unicore32/irq: Prepare puv3_gpio_handler for irq argument removal
tile/pci_gx: Prepare trio_handle_level_irq for irq argument removal
m68k/irq: Prepare irq handlers for irq argument removal
C6X/megamode-pic: Prepare megamod_irq_cascade for irq argument removal
blackfin: Prepare irq handlers for irq argument removal
arc/irq: Prepare idu_cascade_isr for irq argument removal
sparc/irq: Use access helper irq_data_get_affinity_mask()
sparc/irq: Use helper irq_data_get_irq_handler_data()
parisc/irq: Use access helper irq_data_get_affinity_mask()
mn10300/irq: Use access helper irq_data_get_affinity_mask()
irqchip/i8259: Prepare i8259_irq_dispatch for irq argument removal
...
commit 9b8ff51822893e743eee09350c1928daa3ef503f
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 14:26:35 2015 -0600
net: Make table id type u32
A number of VRF patches used 'int' for table id. It should be u32 to be
consistent with the rest of the stack.
Fixes:
4e3c89920cd3a ("net: Introduce VRF related flags and helpers")
15be405eb2ea9 ("net: Add inet_addr lookup by table")
30bbaa1950055 ("net: Fix up inet_addr_type checks")
021dd3b8a142d ("net: Add routes to the table associated with the device")
dc028da54ed35 ("inet: Move VRF table lookup to inlined function")
f6d3c19274c74 ("net: FIB tracepoints")
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5e359bf2219d8622eb0931701e45af55db323228
Merge: 8d01b66 85e1cd6
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 14:04:50 2015 -0700
Merge branch 'timers-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer updates from Thomas Gleixner:
"Rather large, but nothing exiting:
- new range check for settimeofday() to prevent that boot time
becomes negative.
- fix for file time rounding
- a few simplifications of the hrtimer code
- fix for the proc/timerlist code so the output of clock realtime
timers is accurate
- more y2038 work
- tree wide conversion of clockevent drivers to the new callbacks"
* 'timers-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (88 commits)
hrtimer: Handle failure of tick_init_highres() gracefully
hrtimer: Unconfuse switch_hrtimer_base() a bit
hrtimer: Simplify get_target_base() by returning current base
hrtimer: Drop return code of hrtimer_switch_to_hres()
time: Introduce timespec64_to_jiffies()/jiffies_to_timespec64()
time: Introduce current_kernel_time64()
time: Introduce struct itimerspec64
time: Add the common weak version of update_persistent_clock()
time: Always make sure wall_to_monotonic isn't positive
time: Fix nanosecond file time rounding in timespec_trunc()
timer_list: Add the base offset so remaining nsecs are accurate for non
monotonic timers
cris/time: Migrate to new 'set-state' interface
kernel: broadcast-hrtimer: Migrate to new 'set-state' interface
xtensa/time: Migrate to new 'set-state' interface
unicore/time: Migrate to new 'set-state' interface
um/time: Migrate to new 'set-state' interface
sparc/time: Migrate to new 'set-state' interface
sh/localtimer: Migrate to new 'set-state' interface
score/time: Migrate to new 'set-state' interface
s390/time: Migrate to new 'set-state' interface
...
commit 21b430d23d233c67e6589ea5054d18392e15a28e
Author: Tony Lindgren <tony@xxxxxxxxxxx>
Date: Tue Sep 1 13:59:25 2015 -0700
ARM: omap2plus_defconfig: Enable MUSB DMA support
With recent MUSB changes we can now build in support for multiple
DMA implementations. So let's enable DMA by default to make life
easier for distro use.
Acked-by: Felipe Balbi <balbi@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 81032e34e184a8d63598d215a6d4a3352018ffea
Author: Vishal Mahaveer <vishalm@xxxxxx>
Date: Tue Sep 1 13:59:25 2015 -0700
ARM: DRA752: Add ID detect for ES2.0
ES2.0 is a minor variant of ES1.1. ES2.0 is an incremental revision
with various fixes including the following:
- reset logic fixes
- few assymetric aging logic fixes
- MMC clock rate fixes
- Ethernet speed fixes
- edma fixes for mcasp
NOTE: even though we use a compatible of dra742 and dra752, the usage in
the Linux kernel is more or less interchangable - we use dra752 more
often in the linux kernel compared to dra742 and 4.2-rc6
Signed-off-by: Vishal Mahaveer <vishalm@xxxxxx>
Signed-off-by: Nishanth Menon <nm@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 05f4f1abc274ac7e8e83424d0cef2d842db91815
Author: Frans Klaver <fransklaver@xxxxxxxxx>
Date: Tue Sep 1 13:59:25 2015 -0700
ARM: OMAP3: vc: fix 'or' always true warning
Fix the warning:
arch/arm/mach-omap2/vc.c:302:47: warning: logical â??orâ?? of
collectively exhaustive tests is always true [-Wlogical-op]
As we're toggling both CLKREQ and OFFMODE, we should also be checking
OFFMODE.
Signed-off-by: Frans Klaver <fransklaver@xxxxxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 874b300a6a0bfe97225ed1f8648fa92238e4d9e9
Author: Tony Lindgren <tony@xxxxxxxxxxx>
Date: Tue Sep 1 13:59:25 2015 -0700
ARM: OMAP2+: Fix booting if no timer parent clock is available
When bringing up a new SoC we needlessly prevent booting at timer
init if timer clock_set_parent fails. This can fail if the system
is booting on bootloader configured PLL values until the clock
framework driver for the PLL is implemented.
Let's just WARN instead, this will provide helpful information
for anybody bringing up a new SoC what needs to be fixed.
This allows to boot dm814x that's still missing the PLL driver.
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit fe8291e82b5d0b79b743683e5c0fb7e273f7a99a
Author: Grygorii Strashko <grygorii.strashko@xxxxxx>
Date: Tue Sep 1 13:59:24 2015 -0700
ARM: OMAP2+: omap-device: fix race deferred probe of omap_hsmmc vs
omap_device_late_init
Kernel fails to boot 50% of times (form build to build) with
RT-patchset applied due to the following race - on late boot
stages deferred_probe_work_func->omap_hsmmc_probe races with
omap_device_late_ini.
The same issue has been reported now on linux-next (4.3) by Keerthy [1]
late_initcall
- deferred_probe_initcal() tries to re-probe all pending driver's probe.
- later on, some driver is probing in this case It's cpsw.c
(but could be any other drivers)
cpsw_init
- platform_driver_register
- really_probe
- driver_bound
- driver_deferred_probe_trigger
and boot proceed.
So, at this moment we have deferred_probe_work_func scheduled.
late_initcall_sync
- omap_device_late_init
- omap_device_idle
CPU1 CPU2
- deferred_probe_work_func
- really_probe
- omap_hsmmc_probe
- pm_runtime_get_sync
late_initcall_sync
- omap_device_late_init
if (od->_driver_status !=
BUS_NOTIFY_BOUND_DRIVER) {
if (od->_state ==
OMAP_DEVICE_STATE_ENABLED) {
-
omap_device_idle [ops - IP is disabled]
- [fail]
- pm_runtime_put_sync
- omap_hsmmc_runtime_suspend [ooops!]
== log ==
omap_hsmmc 480b4000.mmc: unable to get vmmc regulator -517
davinci_mdio 48485000.mdio: davinci mdio revision 1.6
davinci_mdio 48485000.mdio: detected phy mask fffffff3
libphy: 48485000.mdio: probed
davinci_mdio 48485000.mdio: phy[2]: device 48485000.mdio:02, driver
unknown
davinci_mdio 48485000.mdio: phy[3]: device 48485000.mdio:03, driver
unknown
omap_hsmmc 480b4000.mmc: unable to get vmmc regulator -517
cpsw 48484000.ethernet: Detected MACID = b4:99:4c:c7:d2:48
cpsw 48484000.ethernet: cpsw: Detected MACID = b4:99:4c:c7:d2:49
hctosys: unable to open rtc device (rtc0)
omap_hsmmc 480b4000.mmc: omap_device_late_idle: enabled but no driver.
Idling
ldousb: disabling
Unhandled fault: imprecise external abort (0x1406) at 0x00000000
[00000000] *pgd=00000000
Internal error: : 1406 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 1 PID: 58 Comm: kworker/u4:1 Not tainted
4.1.2-rt1-00467-g6da3c0a-dirty #5
Hardware name: Generic DRA74X (Flattened Device Tree)
Workqueue: deferwq deferred_probe_work_func
task: ee6ddb00 ti: edd3c000 task.ti: edd3c000
PC is at omap_hsmmc_runtime_suspend+0x1c/0x12c
LR is at _od_runtime_suspend+0xc/0x24
pc : [<c0471998>] lr : [<c0029590>] psr: a0000013
sp : edd3dda0 ip : ee6ddb00 fp : c07be540
r10: 00000000 r9 : c07be540 r8 : 00000008
r7 : 00000000 r6 : ee646c10 r5 : ee646c10 r4 : edd79380
r3 : fa0b4100 r2 : 00000000 r1 : 00000000 r0 : ee646c10
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c5387d Table: 8000406a DAC: 00000015
Process kworker/u4:1 (pid: 58, stack limit = 0xedd3c218)
Stack: (0xedd3dda0 to 0xedd3e000)
dda0: ee646c70 ee646c10 c0029584 00000000 00000008 c0029590 ee646c70
ee646c10
ddc0: c0029584 c03adfb8 ee646c10 00000004 0000000c c03adff0 ee646c10
00000004
dde0: 0000000c c03ae4ec 00000000 edd3c000 ee646c10 00000004 ee646c70
00000004
de00: fa0b4000 c03aec20 ee6ddb00 ee646c10 00000004 ee646c70 ee646c10
fffffdfb
de20: edd79380 00000000 fa0b4000 c03aee90 fffffdfb edd79000 ee646c00
c0474290
de40: 00000000 edda24c0 edd79380 edc81f00 00000000 00000200 00000001
c06dd488
de60: edda3960 ee646c10 ee646c10 c0824cc4 fffffdfb c0880c94 00000002
edc92600
de80: c0836378 c03a7f84 ee646c10 c0824cc4 00000000 c0880c80 c0880c94
c03a6568
dea0: 00000000 ee646c10 c03a66ac ee4f8000 00000000 00000001 edc92600
c03a4b40
dec0: ee404c94 edc83c4c ee646c10 ee646c10 ee646c44 c03a63c4 ee646c10
ee646c10
dee0: c0814448 c03a5aa8 ee646c10 c0814220 edd3c000 c03a5ec0 c0814250
ee6be400
df00: edd3c000 c004e5bc ee6ddb01 00000078 ee6ddb00 ee4f8000 ee6be418
edd3c000
df20: ee4f8028 00000088 c0836045 ee4f8000 ee6be400 c004e928 ee4f8028
00000000
df40: c004e8ec 00000000 ee6bf1c0 ee6be400 c004e8ec 00000000 00000000
00000000
df60: 00000000 c0053450 2e56fa97 00000000 afdffbd7 ee6be400 00000000
00000000
df80: edd3df80 edd3df80 00000000 00000000 edd3df90 edd3df90 edd3dfac
ee6bf1c0
dfa0: c0053384 00000000 00000000 c000f668 00000000 00000000 00000000
00000000
dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 f1fc9d7e
febfbdff
[<c0471998>] (omap_hsmmc_runtime_suspend) from [<c0029590>]
(_od_runtime_suspend+0xc/0x24)
[<c0029590>] (_od_runtime_suspend) from [<c03adfb8>]
(__rpm_callback+0x24/0x3c)
[<c03adfb8>] (__rpm_callback) from [<c03adff0>] (rpm_callback+0x20/0x80)
[<c03adff0>] (rpm_callback) from [<c03ae4ec>] (rpm_suspend+0xe4/0x618)
[<c03ae4ec>] (rpm_suspend) from [<c03aee90>]
(__pm_runtime_idle+0x60/0x80)
[<c03aee90>] (__pm_runtime_idle) from [<c0474290>]
(omap_hsmmc_probe+0x6bc/0xa7c)
[<c0474290>] (omap_hsmmc_probe) from [<c03a7f84>]
(platform_drv_probe+0x44/0xa4)
[<c03a7f84>] (platform_drv_probe) from [<c03a6568>]
(driver_probe_device+0x170/0x2b4)
[<c03a6568>] (driver_probe_device) from [<c03a4b40>]
(bus_for_each_drv+0x64/0x98)
[<c03a4b40>] (bus_for_each_drv) from [<c03a63c4>]
(device_attach+0x70/0x88)
[<c03a63c4>] (device_attach) from [<c03a5aa8>]
(bus_probe_device+0x84/0xac)
[<c03a5aa8>] (bus_probe_device) from [<c03a5ec0>]
(deferred_probe_work_func+0x58/0x88)
[<c03a5ec0>] (deferred_probe_work_func) from [<c004e5bc>]
(process_one_work+0x134/0x464)
[<c004e5bc>] (process_one_work) from [<c004e928>]
(worker_thread+0x3c/0x4fc)
[<c004e928>] (worker_thread) from [<c0053450>] (kthread+0xcc/0xe4)
[<c0053450>] (kthread) from [<c000f668>] (ret_from_fork+0x14/0x2c)
Code: e594302c e593202c e584205c e594302c (e5932128)
---[ end trace 0000000000000002 ]---
The issue happens because omap_device_late_init() do not take into
account that some drivers are present, but their probes were not
finished successfully and where deferred instead. This is the valid
case, and omap_device_late_init() should not idle such devices.
To fix this issue, the value of omap_device->_driver_status field
should be checked not only for BUS_NOTIFY_BOUND_DRIVER (driver is
present and has been bound to device successfully), but also checked
for BUS_NOTIFY_BIND_DRIVER (driver about to be bound) - which means
driver is present and there was try to bind it to device.
[1] http://www.spinics.net/lists/arm-kernel/msg441880.html
Cc: Tero Kristo <t-kristo@xxxxxx>
Cc: Keerthy <j-keerthy@xxxxxx>
Tested-by: Keerthy <j-keerthy@xxxxxx>
Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 8d01b66b4f23a9fcf5c6787b27f0be5f8cbae98c
Merge: 2faf962 341a670
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 13:29:48 2015 -0700
Merge tag 'armsoc-arm64' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC 64-bit changes from Olof Johansson:
"Here's our branch of ARM64 contents for this merge window.
Most of this is DT contents for new SoCs (or those who have seen new
device support added). Maybe we should stop separating out the arm64
contents here to avoid the kind of internal conflicts as we got this
time around, where 32- and 64-bit contents conflicted.
Anyhow, on the actual contents:
New SoCs:
- Broadcom North Star 2 (ns2)
- Marvell Berlin4CT
- Mediatek MT6795
- Rockchip RK3368
In addition, there are enhancements for the following platforms:
- Mediatek MT8173: cpuidle-dt updates, misc other additions
- ZyncMP: A bunch of devices added to the existing DTSI
- Qualcomm MSM8916 and APQ8016 updates for USB, etc.
+ a handful of other updates for various platforms"
* tag 'armsoc-arm64' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (47 commits)
ARM64: dts: vexpress: Use assigned-clock-parents for sp810
ARM64: dts: mt6795: enable basic SMP bringup for MT6795
arm64: Enable Marvell Berlin SoC family in defconfig
arm64: Enable Marvell Berlin SoC family in Kconfig
arm64: dts: Add dts files for Marvell Berlin4CT SoC
ARM64: zynqmp: Move SPI nodes to the right location
ARM64: zynqmp: Move uart and ttcs to the right location
ARM64: zynqmp: Enable spi flashes on ep108
ARM64: zynqmp: Add eeprom memories on i2c bus
ARM64: zynqmp: Enable sdhci on ep108
ARM64: zynqmp: Enable watchdog on ep108
ARM64: zynqmp: Add DWC3 usb support
ARM64: zynqmp: Add SMMU support
ARM64: zynqmp: Add CANs node for platform
ARM64: zynqmp: Use zynqmp specific compatible string for gpio
devicetree: xilinx: zynqmp: add sata node
PCI: iproc: Fix BCMA dependency in Kconfig
arm64: dts: Add Broadcom North Star 2 support
arm64: Add Broadcom iProc family support
PCI: iproc: Fix ARM64 dependency in Kconfig
...
commit 2faf962d90ca4c5ee7ba026b7351b1f74500bcdf
Merge: b3a5af4 ba5d183
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 13:17:43 2015 -0700
Merge tag 'armsoc-defconfig' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC defconfig updates from Olof Johansson:
"We mostly keep defconfigs updates on a separate branch due to their
tendency to conflict between platforms and this encourages more
careful separation of code changes and config changes.
Most updates here are minor tweaks, enabling new drivers for various
platforms, and so on. Renesas also removed one defconfig
(marzen_defconfig)"
* tag 'armsoc-defconfig' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (44 commits)
ARM: add TC2 PM support to multi_v7_defconfig
ARM: tegra: Update multi_v7_defconfig
ARM: tegra: Update default configuration
ARM: at91/defconfig: at91_dt: remove ARM_AT91_ETHER
ARM: at91/defconfig: at91_dt: enable DRM hlcdc support
ARM: at91: at91_dt_defconfig: enable ISI and ov2640 support
ARM: multi_v7_defconfig: Enable Allwinner P2WI, PWM, DMA_SUN6I,
cryptodev
ARM: sunxi_defconfig: Enable DMA_SUN6I, P2WI, PWM, cryptodev, EXTCON,
FHANDLE
ARM: shmobile: Enable fixed voltage regulator in shmobile_defconfig
ARM: multi_v7_defconfig: Select MX6UL and MX7D
ARM: prima2_defconfig: enable build for hwspinlock
ARM: prima2_defconfig: enable build for RTC
ARM: prima2_defconfig: enable build for misc input
ARM: prima2_defconfig: enable build for SiRFSoC SDHC host
ARM: prima2_defconfig: fix the outdated defconfig
ARM: imx_v6_v7_defconfig: Select CONFIG_IKCONFIG_PROC
ARM: defconfig: orion5x: add DT support
ARM: qcom_defconfig: Enable options for KS8851 ethernet
ARM: multi_v7_defconfig: Enable support for PWM Regulators
ARM: multi_v7_defconfig: Enable ST's PWM driver
...
commit b3a5af435ab4b860714b2f56c65fd506aa677e71
Merge: 1021781 4c80a00
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 13:09:20 2015 -0700
Merge tag 'armsoc-dt' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM DT updates from Olof Johansson:
"Ladies and gentlemen, we proudly announce to you the latest branch of
ARM device tree contents for the mainline kernel. Come and see, come
and see!
No less than twentythree thousand lines of additions! Just imagine the
joy you will have of using your mainline kernel on newly supported
hardware such as Rockchip Chromebooks, Freescale i.MX6UL boards or
UniPhier hardware!
For those of you feeling less adventurous, added hardware support on
platforms such as TI DM814x and Gumstix Overo platforms might be more
of your liking.
We've got something for everyone here!
Ahem. Cough. So, anyway...
This is the usual large batch of DT updates. Lots and lots of smaller
changes, some of the larger ones to point out are:
- Rockchip veyron (Chromebook) support, as well as several other new
boards
- DRM support on Atmel AT91SAM9N12EK
- USB additions on some Allwinner platforms
- Mediatek MT6580 support
- Freescale i.MX6UL support
- cleanups for Renesas shmobile platforms
- lots of added devices on LPC18xx
- lots of added devices and boards on UniPhier
There's also some dependent code added here, in particular some
branches that are primarily merged through the clock tree"
* tag 'armsoc-dt' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (389 commits)
ARM: tegra: Add gpio-ranges property
ARM: tegra: Fix AHB base address on Tegra20, Tegra30 and Tegra114
ARM: tegra: Add Tegra124 PMU support
ARM: tegra: jetson-tk1: Add GK20A GPU DT node
ARM: tegra: venice2: Add GK20A GPU DT node
ARM: tegra: Add IOMMU node to GK20A
ARM: tegra: Add CPU regulator to the Jetson TK1 device tree
ARM: tegra: Add entries for cpufreq on Tegra124
ARM: tegra: Enable the DFLL on the Jetson TK1
ARM: tegra: Add the DFLL to Tegra124 device tree
ARM: dts: zynq: Add devicetree entry for Xilinx Zynq reset controller.
ARM: dts: UniPhier: fix PPI interrupt CPU mask of timer nodes
ARM: dts: rockchip: correct regulator power states for suspend
ARM: dts: rockchip: correct regulator PM properties
ARM: dts: vexpress: Use assigned-clock-parents for sp810
pinctrl: tegra: Only set the gpio range if needed
arm: boot: dts: am4372: add ARM timers and SCU nodes
ARM: dts: AM4372: Add the am4372-rtc compatible string
ARM: shmobile: r8a7794 dtsi: Add CPG/MSTP Clock Domain
ARM: shmobile: r8a7793 dtsi: Add CPG/MSTP Clock Domain
...
commit 102178108e2246cb4b329d3fb7872cd3d7120205
Merge: 50686e8 21815b9
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 13:00:04 2015 -0700
Merge tag 'armsoc-drivers' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC driver updates from Olof Johansson:
"Some releases this branch is nearly empty, others we have more stuff.
It tends to gather drivers that need SoC modification or dependencies
such that they have to (also) go in through our tree.
For this release, we have merged in part of the reset controller tree
(with handshake that the parts we have merged in will remain stable),
as well as dependencies on a few clock branches.
In general, new items here are:
- Qualcomm driver for SMM/SMD, which is how they communicate with the
coprocessors on (some) of their platforms
- memory controller work for ARM's PL172 memory controller
- reset drivers for various platforms
- PMU power domain support for Marvell platforms
- Tegra support for T132/T210 SoCs: PMC, fuse, memory controller
per-SoC support"
* tag 'armsoc-drivers' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (49 commits)
ARM: tegra: cpuidle: implement cpuidle_state.enter_freeze()
ARM: tegra: Disable cpuidle if PSCI is available
soc/tegra: pmc: Use existing pclk reference
soc/tegra: pmc: Remove unnecessary return statement
soc: tegra: Remove redundant $(CONFIG_ARCH_TEGRA) in Makefile
memory: tegra: Add Tegra210 support
memory: tegra: Add support for a variable-size client ID bitfield
clk: shmobile: rz: Add CPG/MSTP Clock Domain support
clk: shmobile: rcar-gen2: Add CPG/MSTP Clock Domain support
clk: shmobile: r8a7779: Add CPG/MSTP Clock Domain support
clk: shmobile: r8a7778: Add CPG/MSTP Clock Domain support
clk: shmobile: Add CPG/MSTP Clock Domain support
ARM: dove: create a proper PMU driver for power domains, PMU IRQs and
resets
reset: reset-zynq: Adding support for Xilinx Zynq reset controller.
docs: dts: Added documentation for Xilinx Zynq Reset Controller
bindings.
MIPS: ath79: Add the reset controller to the AR9132 dtsi
reset: Add a driver for the reset controller on the AR71XX/AR9XXX
devicetree: Add bindings for the ATH79 reset controller
reset: socfpga: Update reset-socfpga to read the altr,modrst-offset
property
doc: dt: add documentation for lpc1850-rgu reset driver
...
commit 972398fa0a5f47c6ee0bde4d6d24b29f90ec888d
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Sep 1 12:03:56 2015 -0700
NFSv4.1/flexfiles: Fix freeing of mirrors
Mirrors are now shared objects, so we should not be freeing them directly
inside ff_layout_free_lseg(). We should already be doing the right thing
in _ff_layout_free_lseg(), so just let it handle things.
Also ensure that ff_layout_free_mirror() frees the RPC credential if it
is set.
Fixes: 28a0d72c6867 ("Add refcounting to struct nfs4_ff_layout_mirror")
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 50686e8a3aed2f5d295e9d2e79ff43df461c7b76
Merge: c5fc249 1ec6f70
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 12:18:40 2015 -0700
Merge tag 'armsoc-soc' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC platform updates from Olof Johansson:
"New or improved SoC support:
- add support for Atmel's SAMA5D2 SoC
- add support for Freescale i.MX6UL
- improved support for TI's DM814x platform
- misc fixes and improvements for RockChip platforms
- Marvell MVEBU suspend/resume support
A few driver changes that ideally would belong in the drivers branch
are also here (acked by appropriate maintainers):
- power key input driver for Freescale platforms (svns)
- RTC driver updates for Freescale platforms (svns/mxc)
- clk fixes for TI DM814/816X
+ a bunch of other changes for various platforms"
* tag 'armsoc-soc' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (83 commits)
ARM: rockchip: pm: Fix PTR_ERR() argument
ARM: imx: mach-imx6ul: Fix allmodconfig build
clk: ti: fix for definition movement
ARM: uniphier: drop v7_invalidate_l1 call at secondary entry
memory: kill off set_irq_flags usage
rtc: snvs: select option REGMAP_MMIO
ARM: brcmstb: select ARCH_DMA_ADDR_T_64BIT for LPAE
ARM: BCM: Enable ARM erratum 798181 for BRCMSTB
ARM: OMAP2+: Fix power domain operations regression caused by 81xx
ARM: rockchip: enable PMU_GPIOINT_WAKEUP_EN when entering shallow
suspend
ARM: rockchip: set correct stabilization thresholds in suspend
ARM: rockchip: rename osc_switch_to_32k variable
ARM: imx6ul: add fec MAC refrence clock and phy fixup init
ARM: imx6ul: add fec bits to GPR syscon definition
rtc: mxc: add support of device tree
dt-binding: document the binding for mxc rtc
rtc: mxc: use a second rtc clock
ARM: davinci: cp_intc: use IRQCHIP_SKIP_SET_WAKE instead of
irq_set_wake callback
soc: mediatek: Fix SCPSYS compilation
ARM: at91/soc: add basic support for new sama5d2 SoC
...
commit c5fc249862af862df027030188cc083e072ecd19
Merge: 00e3fcc 97a2482
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 12:10:20 2015 -0700
Merge tag 'armsoc-cleanup' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC cleanups from Olof Johansson:
"A large cleanup branch this release, with a healthy 10k negative line
delta.
Most of this is removal of legacy (non-DT) support of shmobile
platforms. There is also removal of two non-DT platforms on OMAP, and
the plat-samsung directory is cleaned out by moving most of the
previously shared-location-but-not-actually-shared files from there to
the appropriate mach directories instead.
There are other sets of changes in here as well:
- Rob Herring removed use of set_irq_flags under all platforms and
moved to genirq alternatives
- a series of timer API conversions to set-state interface
- ep93xx, nomadik and ux500 cleanups from Linus Walleij
- __init annotation fixes from Nicolas Pitre
+ a bunch of other changes that all add up to a nice set of cleanups"
* tag 'armsoc-cleanup' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (108 commits)
ARM/fb: ep93xx: switch framebuffer to use modedb only
ARM: gemini: Setup timer3 as free running timer
ARM: gemini: Use timer1 for clockevent
ARM: gemini: Add missing register definitions for gemini timer
ARM: ep93xx/timer: Migrate to new 'set-state' interface
ARM: nomadik: push accelerometer down to boards
ARM: nomadik: move l2x0 setup to device tree
ARM: nomadik: selectively enable UART0 on boards
ARM: nomadik: move hog code to use DT hogs
ARM: shmobile: Fix mismerges
ARM: ux500: simplify secondary CPU boot
ARM: SAMSUNG: remove keypad-core header in plat-samsung
ARM: SAMSUNG: local watchdog-reset header in mach-s3c64xx
ARM: SAMSUNG: local onenand-core header in mach-s3c64xx
ARM: SAMSUNG: local irq-uart header in mach-s3c64xx
ARM: SAMSUNG: local backlight header in mach-s3c64xx
ARM: SAMSUNG: local ata-core header in mach-s3c64xx
ARM: SAMSUNG: local regs-usb-hsotg-phy header in mach-s3c64xx
ARM: SAMSUNG: local spi-core header in mach-s3c24xx
ARM: SAMSUNG: local nand-core header in mach-s3c24xx
...
commit 00e3fcc221f6fe6a890bf3e0e71c6b9944e58233
Merge: 28dce7c 330349f
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 12:01:40 2015 -0700
Merge tag 'armsoc-fixes-nc' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC non-urgent fixes from Olof Johansson:
"We normally collect non-urgent fixes during the release cycle and
queue them for the merge window.
This time around the list is short (in part because some have gone in
other branches).
- Maintainers addition for bcm2835
- IRQ number fix for orion5x (been present since 3.18)
- DT fix for display on exynos3250
- Exynos fix to use of IOMEM_ERR_PTR properly"
* tag 'armsoc-fixes-nc' of
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
ARM: orion5x: fix legacy orion5x IRQ numbers
MAINTAINERS: Explicitly add linux-arm-kernel for bcm2835
MAINTAINERS: Add myself as a bcm2835 co-maintainer.
ARM: EXYNOS: Use IOMEM_ERR_PTR when function returns iomem
ARM: dts: fix clock-frequency of display timing0 for exynos3250-rinato
commit 28dce7c7703fd6ec922fa63b1187cf9f43d1d1c4
Merge: 361f7d1 3d59265
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 11:55:57 2015 -0700
Merge tag 'arc-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc
Pull ARC architecture updates from Vineet Gupta:
"ARC updates for 4.3:
- perf support for ARCv2 based cores (sampling interrupt, SMP)
- leftovers for ARCv2 support
- futex fixes"
* tag 'arc-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
ARCv2: entry: Fix reserved handler
ARCv2: perf: Finally introduce HS perf unit
ARCv2: perf: SMP support
ARCv2: perf: implement exclusion of event counting in user or kernel
mode
ARCv2: perf: Support sampling events using overflow interrupts
ARCv2: perf: implement "event_set_period"
ARC: perf: cap the number of counters to hardware max of 32
ARC: Eliminate some ARCv2 specific code for ARCompact build
ARC: add/fix some comments in code - no functional change
ARC: change some branchs to jumps to resolve linkage errors
ARC: ensure futex ops are atomic in !LLSC config
ARC: Enable HAVE_FUTEX_CMPXCHG
ARC: make futex_atomic_cmpxchg_inatomic() return bimodal
ARC: futex cosmetics
ARC: add barriers to futex code
ARCv2: IOC: Allow boot time disable
ARCv2: SLC: Allow boot time disable
ARCv2: Support IO Coherency and permutations involving L1 and L2 caches
ARC: Enable optimistic spinning for LLSC config
MAINTAINERS: add git tree for the arc architecture
commit f984a7ce58ea9a12eca7f960bdf68124c8589b60
Author: J. Bruce Fields <bfields@xxxxxxxxxx>
Date: Tue Sep 1 13:40:53 2015 -0400
nfsd: return CLID_INUSE for unexpected SETCLIENTID_CONFIRM case
Somebody with a Solaris client was hitting this case. We haven't
figured out why yet, and don't have a reproducer. Meanwhile Frank
noticed that RFC 7530 actually recommends CLID_INUSE for this case.
Unlikely to help the original reporter, but may as well fix it.
Reported-by: Frank Filz <ffilzlnx@xxxxxxxxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 361f7d175734a8e21bcd0585eca9be195c12c5c5
Merge: 25525be e971aa2
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 10:33:31 2015 -0700
Merge branch 'x86-platform-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 core platform updates from Ingo Molnar:
"The main changes are:
- Intel Atom platform updates. (Andy Shevchenko)
- modularity fixlets. (Paul Gortmaker)
- x86 platform clockevents driver updates for lguest, uv and Xen.
(Viresh Kumar)
- Microsoft Hyper-V TSC fixlet. (Vitaly Kuznetsov)"
* 'x86-platform-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/platform: Make atom/pmc_atom.c explicitly non-modular
x86/hyperv: Mark the Hyper-V TSC as unstable
x86/xen/time: Migrate to new set-state interface
x86/uv/time: Migrate to new set-state interface
x86/lguest/timer: Migrate to new set-state interface
x86/pci/intel_mid_pci: Use proper constants for irq polarity
x86/pci/intel_mid_pci: Make intel_mid_pci_ops static
x86/pci/intel_mid_pci: Propagate actual return code
x86/pci/intel_mid_pci: Work around for IRQ0 assignment
x86/platform/iosf_mbi: Add Intel Tangier PCI id
x86/platform/iosf_mbi: Source cleanup
x86/platform/iosf_mbi: Remove NULL pointer checks for pci_dev_put()
x86/platform/iosf_mbi: Check return value of debugfs_create properly
x86/platform/iosf_mbi: Move to dedicated folder
x86/platform/intel/pmc_atom: Move the PMC-Atom code to
arch/x86/platform/atom
x86/platform/intel/pmc_atom: Add Cherrytrail PMC interface
x86/platform/intel/pmc_atom: Supply register mappings via PMC object
x86/platform/intel/pmc_atom: Print index of device in loop
x86/platform/intel/pmc_atom: Export accessors to PMC registers
commit 25525bea46e7d5bc1f82cbc12de2f27b9c346a92
Merge: 2962156 2baa891
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 10:07:40 2015 -0700
Merge branch 'x86-mm-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 mm updates from Ingo Molnar:
"The dominant change in this cycle was the continued work to isolate
kernel drivers from MTRR legacies: this tree gets rid of all kernel
internal driver interfaces to MTRRs (mostly by rewriting it to proper
PAT interfaces), the only access left is the /proc/mtrr ABI.
This work was done by Luis R Rodriguez.
There's also some related PCI interface additions for which I've
Cc:-ed Bjorn"
* 'x86-mm-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
x86/mm/mtrr: Remove kernel internal MTRR interfaces: unexport
mtrr_add() and mtrr_del()
s390/io: Add pci_iomap_wc() and pci_iomap_wc_range()
drivers/dma/iop-adma: Use dma_alloc_writecombine() kernel-style
drivers/video/fbdev/vt8623fb: Use arch_phys_wc_add() and pci_iomap_wc()
drivers/video/fbdev/s3fb: Use arch_phys_wc_add() and pci_iomap_wc()
drivers/video/fbdev/arkfb.c: Use arch_phys_wc_add() and pci_iomap_wc()
PCI: Add pci_iomap_wc() variants
drivers/video/fbdev/gxt4500: Use pci_ioremap_wc_bar() to map framebuffer
drivers/video/fbdev/kyrofb: Use arch_phys_wc_add() and
pci_ioremap_wc_bar()
drivers/video/fbdev/i740fb: Use arch_phys_wc_add() and
pci_ioremap_wc_bar()
PCI: Add pci_ioremap_wc_bar()
x86/mm: Make kernel/check.c explicitly non-modular
x86/mm/pat: Make mm/pageattr[-test].c explicitly non-modular
x86/mm/pat: Add comments to cachemode translation tables
arch/*/io.h: Add ioremap_uc() to all architectures
drivers/video/fbdev/atyfb: Use arch_phys_wc_add() and ioremap_wc()
drivers/video/fbdev/atyfb: Replace MTRR UC hole with strong UC
drivers/video/fbdev/atyfb: Clarify ioremap() base and length used
drivers/video/fbdev/atyfb: Carve out framebuffer length fudging into a
helper
x86/mm, asm-generic: Add IOMMU ioremap_uc() variant default
...
commit 2962156d5cc0e7f959353d3f5275da7cc3765f06
Merge: 6b2282a 9d87cd6
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 10:05:44 2015 -0700
Merge branch 'x86-irq-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 irq fixlet from Ingo Molnar:
"A single change that hides the 'HYP:' line in /proc/interrupts when
it's unused"
* 'x86-irq-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/irq: Hide 'HYP:' line in /proc/interrupts when not on Xen/Hyper-V
commit 2ca495ac27d245513c11fed70591b1838250e240
Author: Keith Busch <keith.busch@xxxxxxxxx>
Date: Tue Sep 1 10:46:44 2015 -0600
blk: Fix bio_io_vec index when checking bvec gaps
Corrects a coding error from earlier patch.
Reported by: Sagi Grimberg <sagig@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Keith Busch <keith.busch@xxxxxxxxx>
Fixes: 03100aada96f ("block: Replace SG_GAPS with new queue limits mask")
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 4a6ac3044f1504fe4521efa7334095c9c9ceecfd
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Tue Sep 1 10:08:53 2015 +0100
irqchip/GIC: Fix EOImode setting for non-DT/ACPI systems
Non-DT/ACPI systems call directly into the GIC driver at init time.
Turns out 0b996fd35957 ("irqchip/GIC: Convert to EOImode == 1")
breaks old non firmware-driven platforms, as the driver only
works out the capability of the platform on the DT/ACPI paths.
Fix this thinko by forcing EOImode==0 on non-DT platforms,
which are not capable of supporting a hypervisor anyway.
Reported-and-tested-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441098533-31523-1-git-send-email-marc.zyngier@xxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 7eba7d90d48217a97afc171a311b386bde965f39
Author: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>
Date: Mon Aug 31 17:11:56 2015 +0530
selftests/zram: Makefile fix
Do not override run_tests, The default rule will just run TEST_PROGS
Signed-off-by: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>
Acked-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
commit 2dfb28e3410d775a687d429f5cadf88e795e7eb6
Author: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>
Date: Mon Aug 31 17:11:55 2015 +0530
selftests/zram: must be run as root
Adding new functionality check_prereqs() to check test must be run as root
Signed-off-by: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>
Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
commit 6b2282aa372665c14ea1100b63ac0703051407e9
Merge: 0c0fee0 b1c599b
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:41:03 2015 -0700
Merge branch 'x86-cpu-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 cpu updates from Ingo Molnar:
"Two changes: a suspend/resume quirk and a new CPUID bit definition"
* 'x86-cpu-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/cpufeature: Add feature bit for Intel's Silicon Debug CPUID bit
x86/cpu: Restore MSR_IA32_ENERGY_PERF_BIAS after resume
commit 0c0fee018d14b585461b146bdeda8bab9a61c211
Merge: a0c0d985 4daa832
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:33:26 2015 -0700
Merge branch 'x86-cleanups-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 init code fixlet from Ingo Molnar:
"A single change: fix obsolete init code annotations"
* 'x86-cleanups-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86: Drop bogus __ref / __refdata annotations
commit a0c0d985ded583e52399b5158791bedc2815eefa
Merge: 11e612d 16eefbd
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:32:37 2015 -0700
Merge branch 'x86-build-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 build fixlet from Ingo Molnar:
"A single change propagating CONFIG_JUMP_LABEL into the x86 defconfigs"
* 'x86-build-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/kconfig: Enable CONFIG_JUMP_LABEL in the defconfigs
commit af4aeadd8c04303c0aa2d112145c3627e2ebd026
Author: Stephane Eranian <eranian@xxxxxxxxxx>
Date: Tue Sep 1 11:30:14 2015 +0200
perf tools: Fix link time error with sample_reg_masks on non x86
This patch makes perf compile on non x86 platforms by defining a weak
symbol for sample_reg_masks[] in util/perf_regs.c.
The patch also moves the REG() and REG_END() macros into the
util/per_regs.h header file. The macros are renamed to
SMPL_REG/SMPL_REG_END to avoid clashes with other header files.
Signed-off-by: Stephane Eranian <eranian@xxxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441099814-26783-1-git-send-email-eranian@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 11e612ddb4bc667d0b830bfaab3acdf8b86da845
Merge: 5778077 656bba3
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 09:04:31 2015 -0700
Merge branch 'x86-boot-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 boot updates from Ingo Molnar:
"The main x86 bootup related changes in this cycle were:
- more boot time optimizations. (Len Brown)
- implement hex output to allow the debugging of early bootup
parameters. (Kees Cook)
- remove obsolete MCA leftovers. (Paolo Pisati)"
* 'x86-boot-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/smpboot: Remove APIC.wait_for_init_deassert and atomic
init_deasserted
x86/smpboot: Remove SIPI delays from cpu_up()
x86/smpboot: Remove udelay(100) when polling cpu_callin_map
x86/smpboot: Remove udelay(100) when polling cpu_initialized_map
x86/boot: Obsolete the MCA sys_desc_table
x86/boot: Add hex output for debugging
commit 04aa90b529ee45c5ee88997bc214202e07b26979
Author: Wang Nan <wangnan0@xxxxxxxxxx>
Date: Tue Sep 1 05:56:45 2015 +0000
perf build: Fix Intel PT instruction decoder dependency problem
I hit following building error randomly:
...
/bin/sh: /path/to/kernel/buildperf/util/intel-pt-decoder/inat-tables.c:
No such file or directory
...
LINK /path/to/kernel/buildperf/plugin_mac80211.so
LINK /path/to/kernel/buildperf/plugin_kmem.so
LINK /path/to/kernel/buildperf/plugin_xen.so
LINK /path/to/kernel/buildperf/plugin_hrtimer.so
In file included from
util/intel-pt-decoder/intel-pt-insn-decoder.c:25:0:
util/intel-pt-decoder/inat.c:24:25: fatal error: inat-tables.c: No such
file or directory
#include "inat-tables.c"
^
compilation terminated.
make[4]: ***
[/path/to/kernel/buildperf/util/intel-pt-decoder/intel-pt-insn-decoder.o] Error
1
make[4]: *** Waiting for unfinished jobs....
LINK /path/to/kernel/buildperf/plugin_function.so
This is caused by tools/perf/util/intel-pt-decoder/Build that, it tries
to generate $(OUTPUT)util/intel-pt-decoder/inat-tables.c atomatically
but forget to ensure the existance of $(OUTPUT)util/intel-pt-decoder
directory.
This patch fixes it by adding $(call rule_mkdir) like other similar rules.
Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
Acked-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Zefan Li <lizefan@xxxxxxxxxx>
Cc: pi3orama@xxxxxxx
Link:
http://lkml.kernel.org/r/1441087005-107540-1-git-send-email-wangnan0@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 5778077d03cb25aac9b6a428e18970642fc019e3
Merge: 65a9959 7e01ebf
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Sep 1 08:40:25 2015 -0700
Merge branch 'x86-asm-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 asm changes from Ingo Molnar:
"The biggest changes in this cycle were:
- Revamp, simplify (and in some cases fix) Time Stamp Counter (TSC)
primitives. (Andy Lutomirski)
- Add new, comprehensible entry and exit handlers written in C.
(Andy Lutomirski)
- vm86 mode cleanups and fixes. (Brian Gerst)
- 32-bit compat code cleanups. (Brian Gerst)
The amount of simplification in low level assembly code is already
palpable:
arch/x86/entry/entry_32.S | 130 +----
arch/x86/entry/entry_64.S | 197 ++-----
but more simplifications are planned.
There's also the usual laudry mix of low level changes - see the
changelog for details"
* 'x86-asm-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (83 commits)
x86/asm: Drop repeated macro of X86_EFLAGS_AC definition
x86/asm/msr: Make wrmsrl() a function
x86/asm/delay: Introduce an MWAITX-based delay with a configurable timer
x86/asm: Add MONITORX/MWAITX instruction support
x86/traps: Weaken context tracking entry assertions
x86/asm/tsc: Add rdtscll() merge helper
selftests/x86: Add syscall_nt selftest
selftests/x86: Disable sigreturn_64
x86/vdso: Emit a GNU hash
x86/entry: Remove do_notify_resume(), syscall_trace_leave(), and their
TIF masks
x86/entry/32: Migrate to C exit path
x86/entry/32: Remove 32-bit syscall audit optimizations
x86/vm86: Rename vm86->v86flags and v86mask
x86/vm86: Rename vm86->vm86_info to user_vm86
x86/vm86: Clean up vm86.h includes
x86/vm86: Move the vm86 IRQ definitions to vm86.h
x86/vm86: Use the normal pt_regs area for vm86
x86/vm86: Eliminate 'struct kernel_vm86_struct'
x86/vm86: Move fields from 'struct kernel_vm86_struct' to 'struct vm86'
x86/vm86: Move vm86 fields out of 'thread_struct'
...
commit 3b27d13940c3710a1128527c43719cb0bb05d73b
Author: Wang Nan <wangnan0@xxxxxxxxxx>
Date: Tue Sep 1 03:29:44 2015 +0000
perf dwarf: Fix potential array out of bounds access
There is a problem in the dwarf-regs.c files for sh, sparc and x86 where
it is possible to make an out-of-bounds array access when searching for
register names.
This patch fixes it by replacing '<=' to '<', so when register (number
== XXX_MAX_REGS), get_arch_regstr() will return NULL.
Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
Reviewed-by: Matt Fleming <matt@xxxxxxxxxxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: David S. Miller <davem@xxxxxxxxxxxxx>
Cc: Zefan Li <lizefan@xxxxxxxxxx>
Cc: pi3orama@xxxxxxxxxx
Link:
http://lkml.kernel.org/r/1441078184-105038-1-git-send-email-wangnan0@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit e625ccec1fa6c24620f38fd72d5b2fd62230ad2b
Merge: 56963d9 404c2db 5021282
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 1 15:54:30 2015 +0200
Merge branches 'pm-tools' and 'powercap'
* pm-tools:
tools: cpupower: Fix error when running cpupower monitor
tools/power turbostat: fix typo on DRAM column in Joules-mode
cpupower: Do not change the frequency of offline cpu
tools/power turbostat: fix parameter passing for forked command
tools/power turbostat: dump CONFIG_TDP
tools/power turbostat: cpu0 is no longer hard-coded, so update output
tools/power turbostat: update turbostat(8)
* powercap:
powercap / RAPL: disable the 2nd power limit properly
powercap / RAPL: Add support for Broadwell-H
powercap / RAPL: Add support for Skylake H/S
commit 56963d99b72ac52bb3185be7fe9832c1715c655a
Merge: 5cf896b 2fd77ff 8bb6944 3fc147e
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 1 15:54:20 2015 +0200
Merge branches 'pm-sleep', 'pm-domains' and 'pm-avs'
* pm-sleep:
PM / suspend: make sync() on suspend-to-RAM build-time optional
PM / sleep: Allow devices without runtime PM to do direct-complete
PM / autosleep: Use workqueue for user space wakeup sources garbage
collector
* pm-domains:
PM / Domains: Fix typo in description of genpd_dev_pm_detach()
PM / Domains: Remove unusable governor dummies
PM / Domains: Make pm_genpd_init() available to modules
PM / domains: Align column headers and data in pm_genpd_summary output
PM / Domains: Return -EPROBE_DEFER if we fail to init or turn-on domain
PM / Domains: Correct unit address in power-controller example
PM / Domains: Remove intermediate states from the power off sequence
* pm-avs:
PM / AVS: rockchip-io: add io selectors and supplies for rk3368
PM / AVS: rockchip-io: depend on CONFIG_POWER_AVS
commit 5cf896b3c7842036ba37cc7057d74d5a2af159a7
Merge: ac2a29c 4c1ed5a 00dabd5 f4745a9
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 1 15:53:37 2015 +0200
Merge branches 'pm-cpuidle', 'pm-devfreq' and 'pm-clk'
* pm-cpuidle:
cpuidle/coupled: Remove redundant 'dev' argument of
cpuidle_state_is_coupled()
cpuidle/coupled: Remove cpuidle_device::safe_state_index
intel_idle: Skylake Client Support
intel_idle: allow idle states to be freeze-mode specific
* pm-devfreq:
PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2
PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433
PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding
* pm-clk:
PM / clk: don't return int on __pm_clk_enable()
commit ac2a29c8a4a641574febccd10169b26138a5d656
Merge: 4ffe18c 50a3cb0
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 1 15:52:41 2015 +0200
Merge branch 'pm-opp'
* pm-opp:
PM / OPP: Drop unlikely before IS_ERR(_OR_NULL)
PM / OPP: Fix static checker warning (broken 64bit big endian systems)
PM / OPP: Free resources and properly return error on failure
cpufreq-dt: make scaling_boost_freqs sysfs attr available when boost is
enabled
cpufreq: dt: Add support for turbo/boost mode
cpufreq: dt: Add support for operating-points-v2 bindings
cpufreq: Allow drivers to enable boost support after registering driver
cpufreq: Update boost flag while initializing freq table from OPPs
PM / OPP: add dev_pm_opp_is_turbo() helper
PM / OPP: Add helpers for initializing CPU OPPs
PM / OPP: Add support for opp-suspend
PM / OPP: Add OPP sharing information to OPP library
PM / OPP: Add clock-latency-ns support
PM / OPP: Add support to parse "operating-points-v2" bindings
PM / OPP: Break _opp_add_dynamic() into smaller functions
PM / OPP: Allocate dev_opp from _add_device_opp()
PM / OPP: Create _remove_device_opp() for freeing dev_opp
PM / OPP: Relocate few routines
PM / OPP: Create a directory for opp bindings
PM / OPP: Update bindings to make opp-hz a 64 bit value
commit 4ffe18c2556f2848c4e57457915b08a63dc00fd5
Merge: 4980125 72e624d
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 1 15:52:35 2015 +0200
Merge branch 'pm-cpufreq'
* pm-cpufreq: (53 commits)
cpufreq: speedstep-lib: Use monotonic clock
cpufreq: powernv: Increase the verbosity of OCC console messages
cpufreq: sfi: use kmemdup rather than duplicating its implementation
cpufreq: drop !cpufreq_driver check from cpufreq_parse_governor()
cpufreq: rename cpufreq_real_policy as cpufreq_user_policy
cpufreq: remove redundant 'policy' field from user_policy
cpufreq: remove redundant 'governor' field from user_policy
cpufreq: update user_policy.* on success
cpufreq: use memcpy() to copy policy
cpufreq: remove redundant CPUFREQ_INCOMPATIBLE notifier event
cpufreq: mediatek: Add MT8173 cpufreq driver
dt-bindings: mediatek: Add MT8173 CPU DVFS clock bindings
intel_pstate: append more Oracle OEM table id to vendor bypass list
intel_pstate: Add SKY-S support
intel_pstate: Fix possible overflow complained by Coverity
cpufreq: Correct a freq check in cpufreq_set_policy()
cpufreq: Lock CPU online/offline in cpufreq_register_driver()
cpufreq: Replace recover_policy with new_policy in cpufreq_online()
cpufreq: Separate CPU device registration from CPU online
cpufreq: powernv: Restore cpu frequency to policy->cur on unthrottling
...
commit 72e624de6e6f0d5a638fbc23842aa76ae048e9e7
Author: Abhilash Jindal <klock.android@xxxxxxxxx>
Date: Tue Aug 11 12:01:22 2015 -0400
cpufreq: speedstep-lib: Use monotonic clock
Wall time obtained from do_gettimeofday is susceptible to sudden jumps
due to
user setting the time or due to NTP.
Monotonic time is constantly increasing time better suited for comparing
two
timestamps.
Signed-off-by: Abhilash Jindal <klock.android@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 309d0631cc329ca1051c631c89e0acc9b752cb4d
Author: Shilpasri G Bhat <shilpa.bhat@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 14:41:44 2015 +0530
cpufreq: powernv: Increase the verbosity of OCC console messages
Modify the OCC reset/load/active event message to make it clearer for
the user to understand the event and effect of the event.
Suggested-by: Stewart Smith <stewart@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Shilpasri G Bhat <shilpa.bhat@xxxxxxxxxxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit a482e5562e48d89ea50f41f9fc6ed3a9768de2ff
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Fri Aug 7 09:59:17 2015 +0200
cpufreq: sfi: use kmemdup rather than duplicating its implementation
The patch was generated using fixed coccinelle semantic patch
scripts/coccinelle/api/memdup.cocci [1].
[1]: http://permalink.gmane.org/gmane.linux.kernel/2014320
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 36dfef23cd26a6d3b71dd86509e34d311f1cd906
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Aug 3 08:36:20 2015 +0530
cpufreq: drop !cpufreq_driver check from cpufreq_parse_governor()
Driver is guaranteed to be present on a call to cpufreq_parse_governor()
and there is no need to check for !cpufreq_driver. Drop it.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit c7a7b418dd1991079dd7ef03fec7d1863ef96154
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Aug 3 08:36:19 2015 +0530
cpufreq: rename cpufreq_real_policy as cpufreq_user_policy
Its all about caching min/max freq requested by userspace, and
the name 'cpufreq_real_policy' doesn't fit that well. Rename it to
cpufreq_user_policy.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 88dc4384958759510db248bf9158434ac783d407
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Aug 3 08:36:18 2015 +0530
cpufreq: remove redundant 'policy' field from user_policy
Its always same as policy->policy, and there is no need to keep another
copy of it. Remove it.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit e27f8bd248756310a6df8b67f96d41d5a693642c
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Aug 3 08:36:17 2015 +0530
cpufreq: remove redundant 'governor' field from user_policy
Its always same as policy->governor, and there is no need to keep
another copy of it. Remove it.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 14ca0bdfdd6b422027b9b733abb0bf151811eaa7
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Aug 3 08:36:16 2015 +0530
cpufreq: update user_policy.* on success
'user_policy' caches properties of a policy that are set by userspace.
And these must be updated only if cpufreq core was successful in
updating them based on request from user space.
In store_scaling_governor(), we are updating user_policy.policy and
user_policy.governor even if cpufreq_set_policy() failed. That's
incorrect.
Fix this by updating user_policy.* only if we were successful in
updating the properties.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 8fa5b631f32238a16ae3db0db5b354f7b9eb20cb
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Aug 3 08:36:15 2015 +0530
cpufreq: use memcpy() to copy policy
cpufreq_get_policy() is useful if the pointer to policy isn't available
in advance. But if it is available, then there is no need to call
cpufreq_get_policy(). Directly use memcpy() to copy the policy.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 6bfb7c7434f75d29241413dc7e784295ba56de98
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Aug 3 08:36:14 2015 +0530
cpufreq: remove redundant CPUFREQ_INCOMPATIBLE notifier event
What's being done from CPUFREQ_INCOMPATIBLE, can also be done with
CPUFREQ_ADJUST. There is nothing special with CPUFREQ_INCOMPATIBLE
notifier.
Kill CPUFREQ_INCOMPATIBLE and fix its usage sites.
This also updates the numbering of notifier events to remove holes.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 1453863fb02a18900c9079fa2e4f02710bf46507
Author: Pi-Cheng Chen <pi-cheng.chen@xxxxxxxxxx>
Date: Wed Aug 19 10:05:06 2015 +0800
cpufreq: mediatek: Add MT8173 cpufreq driver
Mediatek MT8173 is an ARMv8 based quad-core (2*Cortex-A53 and
2*Cortex-A72) SoC with duall clusters. For each cluster, two voltage
inputs, Vproc and Vsram are supplied by two regulators. For the big
cluster, two regulators come from different PMICs. In this case, when
scaling voltage inputs of the cluster, the voltages of two regulator
inputs need to be controlled by software explicitly under the SoC
specific limitation:
100mV < Vsram - Vproc < 200mV
which is called 'voltage tracking' mechanism. And when scaling the
frequency of cluster clock input, the input MUX need to be parented to
another "intermediate" stable PLL first and reparented to the original
PLL once the original PLL is stable at the target frequency. This patch
implements those mechanisms to enable CPU DVFS support for Mediatek
MT8173 SoC.
Signed-off-by: Pi-Cheng Chen <pi-cheng.chen@xxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit c9c96ae2c57d91ea2b73ef447fdd44c760a96d97
Author: Pi-Cheng Chen <pi-cheng.chen@xxxxxxxxxx>
Date: Mon Aug 17 17:24:23 2015 +0800
dt-bindings: mediatek: Add MT8173 CPU DVFS clock bindings
This patch adds the clock and regulator consumer properties part of
document for CPU DVFS clocks on Mediatek MT8173 SoC.
Signed-off-by: Pi-Cheng Chen <pi-cheng.chen@xxxxxxxxxx>
Acked-by: Michael Turquette <mturquette@xxxxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit f212bd95a9f62b7929c59b16e1d3bbde2fb4081d
Merge: 8c4de9b 0439de7
Author: Jiri Kosina <jkosina@xxxxxxx>
Date: Tue Sep 1 15:38:33 2015 +0200
Merge branch 'for-4.3/microsoft' into for-linus
Conflicts:
drivers/hid/usbhid/hid-quirks.c
commit 8c4de9bc2041229fb778e0c47e32585b6f6b1d09
Merge: 067e260 9a1d78a 29e2d6d d1c4803 3cb5ff0 c873d9a 070f63b 4b8a826
9a98b33 21589eb 824deff 5397df1
Author: Jiri Kosina <jkosina@xxxxxxx>
Date: Tue Sep 1 15:37:30 2015 +0200
Merge branches 'for-4.3/chicony', 'for-4.3/cp2112', 'for-4.3/i2c-hid',
'for-4.3/lenovo', 'for-4.3/logitech', 'for-4.3/multitouch', 'for-4.3/picolcd',
'for-4.3/rmi', 'for-4.3/sensor-hub', 'for-4.3/sony' and 'for-4.3/wacom' into
for-linus
commit 067e2601d3c076abbf45db91261f9065eaa879b2
Merge: 3e097d1 931830a
Author: Jiri Kosina <jkosina@xxxxxxx>
Date: Tue Sep 1 15:35:24 2015 +0200
Merge branch 'for-4.3/gembird' into for-linus
commit 3e097d1271ecdff2f251a54ddfc5eaa1f9821e96
Merge: 0be0171 c9b5772
Author: Jiri Kosina <jkosina@xxxxxxx>
Date: Tue Sep 1 15:23:13 2015 +0200
Merge branches 'for-4.2/upstream-fixes-devm-fixed' and 'for-4.3/upstream'
into for-linus
commit c8fb70a3e8dd60e31c4422bae85783cf1733f038
Author: Grant Likely <grant.likely@xxxxxxxxxx>
Date: Sun Aug 23 13:34:08 2015 -0700
MAINTAINERS: Add Frank Rowand as DT maintainer
Frank has agreed to step up and help with DT core code maintainership.
At the same time, Grant is taking a step back from active maintainership
responsibilities. Add Frank to the device tree core code entry and
shuffle Grant to the end of the list. In a few releases time Grant will
be removed entirely.
Signed-off-by: Grant Likely <grant.likely@xxxxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit 9d6f85d9fe422aa42f3f337872050fb2a30cd430
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Sun Aug 30 21:44:12 2015 +0200
mtd: nand: pxa3xx: add optional dma for pxa architecture
The PXA architecture provides a DMA to pump data from the nand
controller to memory and the other way around. Add it to the binding
description.
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit 472204fe37083aa8f31aaf183b4072d432e7c5ea
Author: Mugunthan V N <mugunthanvnm@xxxxxx>
Date: Mon Aug 31 11:51:29 2015 +0530
Documentation: DT: cpsw: document missing compatible
CPSW driver has multiple compatibles for errata implementations but not
documented, add necessary documentation.
Signed-off-by: Mugunthan V N <mugunthanvnm@xxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit 51d2eeef1d958ef6834b24f548194f5acea0f499
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Tue Sep 1 11:14:05 2015 +0530
ASoC: wm0010: fix memory leak
We were aborting if the kzalloc of img_swap fails but without freeing the
already allocated out. Similarly we were aborting if spi_sync fails
without releasing out and img_swap.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Acked-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit cc7da0ba9c96699592d0a69d7d146ac6adcc18e7
Author: Joe Thornber <ejt@xxxxxxxxxx>
Date: Tue Sep 1 11:38:19 2015 +0100
dm cache: fix use after freeing migrations
Both free_io_migration() and issue_discard() dereference a migration
that was just freed. Fix those by saving off the migrations's cache
object before freeing the migration. Also cleanup needless mg->cache
dereferences now that the cache object is available directly.
Fixes: e44b6a5a3c ("dm cache: move wake_waker() from free_migrations() to
where it is needed")
Signed-off-by: Joe Thornber <ejt@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
commit f319cb8491e1b4cc44e7baeeb3ae7817dedf57fc
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Tue Sep 1 20:15:10 2015 +0800
reset: ath79: Fix missing spin_lock_init
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Alban Bedel <albeu@xxxxxxx>
Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
commit 092b6dbe8a4a24c17f2ebfe86995dc994e61f420
Author: Christoph Hellwig <hch@xxxxxx>
Date: Mon Aug 17 10:09:26 2015 +0200
mmc: android-goldfish: remove incorrect __iomem annotation
Make sparse happy:
drivers/mmc/host/android-goldfish.c:535:56: sparse: incorrect type in
argument 3 (different address spaces)
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 7b554088d56e9df3ee5dff8989b44903965bad95
Author: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Date: Tue Aug 18 08:58:40 2015 +0530
video: fbdev: pxa168fb: Use devm_clk_get
This patch introduces the use of managed resource function
devm_clk_get instead of clk_get and removes corresponding calls
to clk_put in the probe and remove functions.
To be compatible with the change various gotos are replaced with
direct returns, and unneeded label failed_put_clk is dropped.
Signed-off-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
commit c4e6774de19f4638bb887a47a58ee21d6809360b
Author: Julia Lawall <Julia.Lawall@xxxxxxx>
Date: Sun Aug 23 02:11:15 2015 +0200
fbdev: ssd1307fb: fix error return code
Propagate error code on failure. Also changed %ld to %d in dev_err to use
ret variable rather than putting two calls to PTR_ERR.
A simplified version of the semantic match that finds the first problem
is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
identifier ret; expression e1,e2;
@@
(
if (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret = 0
)
... when != ret = e1
when != &ret
*if(...)
{
... when != ret = e2
when forall
return ret;
}
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
commit b4df20474ff76b4dbab7d991de271820383995b8
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Mon Aug 24 22:54:21 2015 +0300
fbdev: fix snprintf() limit in show_bl_curve()
The limit should be "PAGE_SIZE - len" instead of PAGE_SIZE. Also let's
use scnprintf() because snprintf() returns the number of bytes which
would have been printed if there were space and scnprintf() returns the
number of bytes actually printed.
I don't think we are ever going to actually hit this limit in real life.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
commit 9cf94eab8b309e8bcc78b41dd1561c75b537dd0b
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Mon Aug 31 19:11:02 2015 +0200
netfilter: conntrack: use nf_ct_tmpl_free in CT/synproxy error paths
Commit 0838aa7fcfcd ("netfilter: fix netns dependencies with conntrack
templates") migrated templates to the new allocator api, but forgot to
update error paths for them in CT and synproxy to use nf_ct_tmpl_free()
instead of nf_conntrack_free().
Due to that, memory is being freed into the wrong kmemcache, but also
we drop the per net reference count of ct objects causing an imbalance.
In Brad's case, this leads to a wrap-around of net->ct.count and thus
lets __nf_conntrack_alloc() refuse to create a new ct object:
[ 10.340913] xt_addrtype: ipv6 does not support BROADCAST matching
[ 10.810168] nf_conntrack: table full, dropping packet
[ 11.917416] r8169 0000:07:00.0 eth0: link up
[ 11.917438] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 12.815902] nf_conntrack: table full, dropping packet
[ 15.688561] nf_conntrack: table full, dropping packet
[ 15.689365] nf_conntrack: table full, dropping packet
[ 15.690169] nf_conntrack: table full, dropping packet
[ 15.690967] nf_conntrack: table full, dropping packet
[...]
With slab debugging, it also reports the wrong kmemcache (kmalloc-512 vs.
nf_conntrack_ffffffff81ce75c0) and reports poison overwrites, etc. Thus,
to fix the problem, export and use nf_ct_tmpl_free() instead.
Fixes: 0838aa7fcfcd ("netfilter: fix netns dependencies with conntrack
templates")
Reported-by: Brad Jackson <bjackson0971@xxxxxxxxx>
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit 6fa2d197936ba0b8936e813d0adecefac160062b
Author: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@xxxxxxxxx>
Date: Mon Aug 31 11:23:28 2015 +0300
i915: Set ddi_pll_sel in DP MST path
The DP MST encoder config function never sets ddi_pll_sel, even though
its value is programmed in its ->pre_enable() hook. That used to work
because a new pipe_config was kzalloc'ed at every modeset, and the value
of zero selects the highest clock for the PLL. Starting with the commit
below, the value of ddi_pll_sel is preserved through modesets, and since
the correct value wasn't properly setup by the MST code, it could lead
to warnings and blank screens.
commit 8504c74c7ae48b4b8ed1f1c0acf67482a7f45c93
Author: Ander Conselvan de Oliveira
<ander.conselvan.de.oliveira@xxxxxxxxx>
Date: Fri May 15 11:51:50 2015 +0300
drm/i915: Preserve ddi_pll_sel when allocating new pipe_config
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91628
Cc: stable@xxxxxxxxxxxxxxx # 7e6313a2516d drm/i915: Don't use link_bw for
PLL setup
Cc: stable@xxxxxxxxxxxxxxx
Cc: Timo Aaltonen <tjaalton@xxxxxxxxxx>
Cc: Luciano Coelho <luciano.coelho@xxxxxxxxx>
Signed-off-by: Ander Conselvan de Oliveira
<ander.conselvan.de.oliveira@xxxxxxxxx>
Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 7e6313a2516dbcd168f4ae36f0abe1a9227106b5
Author: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Date: Tue Aug 11 20:21:46 2015 +0300
drm/i915: Don't use link_bw for PLL setup
Use port_clock instead of link_bw when picking the PLL parameters for
DP. link_bw may be zero with an eDP 1.4 sink that supports
DP_LINK_RATE_SET so we shouldn't use it for anything other than feed it
to the sink appropriately.
v2: Fix typo in commit message (Sivakumar)
Reviewed-by: Sivakumar Thulasimani <sivakumar.thulasimani@xxxxxxxxx>
Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
[Jani: cherry-picked from future.]
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit aa3469ce7afd86a670d22375a64f1b5a06707725
Author: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Date: Thu Aug 27 10:06:24 2015 -0700
drm/vmwgfx: Allow dropped masters render-node like access on legacy nodes
v2
Applications like gnome-shell may try to render after dropping master
privileges. Since the driver should now be safe against this scenario,
allow those applications to use their legacy node like a render node.
v2: Add missing return statement.
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
commit c4749c9a4a9ddc16200ce46a19078357727bf4b1
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Mon Aug 31 12:25:04 2015 +0200
drm/atomic: Fix bookkeeping with TEST_ONLY, v3.
Commit ec9f932ed41622d120de52a5b525e4d77b9ef17e
"drm/atomic: Cleanup on error properly in the atomic ioctl."
cleaned up some error paths, but didn't fix the TEST_ONLY path.
In the check only case plane->fb shouldn't be updated, and
the vblank events should be cleared as on failure.
Changes since v1:
- Fix -EDEADLK handling of vblank events too.
- Free state last with CHECK_ONLY.
Changes since v2:
- Add comment about freeing crtc_state->event with TEST_ONLY.
(Daniel Stone)
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Reviewed-by: Daniel Stone <daniels@xxxxxxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 532026612455a4a6fd27c1b2e7111263f63218a2
Merge: 65a9959 bcc84ec
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Tue Sep 1 10:24:54 2015 +0200
Merge tag 'perf-core-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
User visible changes:
- Add ability to specify to select which registers to record,
to reduce the size of perf.data files, and also allow printing
the registers in 'perf script': (Stephane Eranian)
# perf record --intr-regs=AX,SP usleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.016 MB perf.data (8 samples) ]
# perf script -F ip,sym,iregs | tail -5
ffffffff8105f42a native_write_msr_safe AX:0xf
SP:0xffff8802629c3c00
ffffffff8105f42a native_write_msr_safe AX:0xf
SP:0xffff8802629c3c00
ffffffff81761ac0 _raw_spin_lock AX:0xffff8801bfcf8020
SP:0xffff8802629c3ce8
ffffffff81202bf8 __vma_adjust_trans_huge AX:0x7ffc75200000
SP:0xffff8802629c3b30
ffffffff8122b089 dput AX:0x101 SP:0xffff8802629c3c78
#
Infrastructure changes:
- Open event on evsel cpus and threads. (Kan Liang)
- Add new bpf API to get name from a BPF object. (Wang Nan)
Build fixes:
- Fix build on powerpc broken by pt/bts. (Adrian Hunter)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 5bcd0b7f3c56c616abffd89e11c841834dd1528c
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Tue Sep 1 07:56:38 2015 +0800
reset: Add (devm_)reset_control_get stub functions
So the drivers can be compiled with CONFIG_RESET_CONTROLLER disabled.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
commit 69f92f67b68ab7028ffe15f0eea76b59f8859383
Author: Lukas Wunner <lukas@xxxxxxxxx>
Date: Wed Jul 15 13:57:35 2015 +0200
drm/i915: Preserve SSC earlier
Commit 92122789b2d6 ("drm/i915: preserve SSC if previously set v3")
added code to intel_modeset_gem_init to override the SSC status read
from VBT with the SSC status set by BIOS.
However, intel_modeset_gem_init is invoked *after* intel_modeset_init,
which calls intel_setup_outputs, which *modifies* SSC status by way of
intel_init_pch_refclk. So unlike advertised, intel_modeset_gem_init
doesn't preserve the SSC status set by BIOS but whatever
intel_init_pch_refclk decided on.
This is a problem on dual gpu laptops such as the MacBook Pro which
require either a handler to switch DDC lines, or the discrete gpu
to proxy DDC/AUX communication: Both the handler and the discrete
gpu may initialize after the i915 driver, and consequently, an LVDS
connector may initially seem disconnected and the SSC therefore
is disabled by intel_init_pch_refclk, but on reprobe the connector
may turn out to be connected and the SSC must then be enabled.
Due to 92122789b2d6 however, the SSC is not enabled on reprobe since
it is assumed BIOS disabled it while in fact it was disabled by
intel_init_pch_refclk.
Also, because the SSC status is preserved so late, the preserved value
only ever gets used on resume but not on panel initialization:
intel_modeset_init calls intel_init_display which indirectly calls
intel_panel_use_ssc via multiple subroutines, *before* the BIOS value
overrides the VBT value in intel_modeset_gem_init (intel_panel_use_ssc
is the sole user of dev_priv->vbt.lvds_use_ssc).
Fix this by moving the code introduced by 92122789b2d6 from
intel_modeset_gem_init to intel_modeset_init before the invocation
of intel_setup_outputs and intel_init_display.
Add a DRM_DEBUG_KMS as suggested way back by Jani:
http://lists.freedesktop.org/archives/intel-gfx/2014-June/046666.html
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=88861
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61115
Tested-by: Paul Hordiienko <pvt.gord@xxxxxxxxx>
[MBP 6,2 2010 intel ILK + nvidia GT216 pre-retina]
Tested-by: William Brown <william@xxxxxxxxxxxxxxxx>
[MBP 8,2 2011 intel SNB + amd turks pre-retina]
Tested-by: Lukas Wunner <lukas@xxxxxxxxx>
[MBP 9,1 2012 intel IVB + nvidia GK107 pre-retina]
Tested-by: Bruno Bierbaumer <bruno@xxxxxxxxxxxxxx>
[MBP 11,3 2013 intel HSW + nvidia GK107 retina -- work in progress]
Fixes: 92122789b2d6 ("drm/i915: preserve SSC if previously set v3")
Signed-off-by: Lukas Wunner <lukas@xxxxxxxxx>
Reviewed-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 63b6c13dbb7d3e36f031629f7e4e86dacfcab8cf
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Mon Aug 31 20:05:57 2015 -0700
tun_dst: Remove opts_size
opts_size is only written and never read. Following patch
removes this unused variable.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2053aeb69a53224717296db31b13d5b45b4f1a0e
Author: Marius Tomaschewski <mt@xxxxxxx>
Date: Tue Sep 1 01:57:30 2015 +0200
ipv6: send only one NEWLINK when RA causes changes
Signed-off-by: Marius Tomaschewski <mt@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 65a99597f044c083983f4274ab049c9ec3b9d764
Merge: 418c2e1 555ee95
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 21:04:24 2015 -0700
Merge branch 'timers-nohz-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull NOHZ updates from Ingo Molnar:
"The main changes, mostly written by Frederic Weisbecker, include:
- Fix some jiffies based cputime assumptions. (No real harm because
the concerned code isn't used by full dynticks.)
- Simplify jiffies <-> usecs conversions. Remove dead code.
- Remove early hacks on nohz full code that avoided messing up idle
nohz internals. Now nohz integrates well full and idle and such
hack have become needless.
- Restart nohz full tick from irq exit. (A simplification and a
preparation for future optimization on scheduler kick to nohz
full)
- Code cleanups.
- Tile driver isolation enhancement on top of nohz. (Chris Metcalf)"
* 'timers-nohz-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
nohz: Remove useless argument on tick_nohz_task_switch()
nohz: Move tick_nohz_restart_sched_tick() above its users
nohz: Restart nohz full tick from irq exit
nohz: Remove idle task special case
nohz: Prevent tilegx network driver interrupts
alpha: Fix jiffies based cputime assumption
apm32: Fix cputime == jiffies assumption
jiffies: Remove HZ > USEC_PER_SEC special case
commit 418c2e1f67658460533e4aaa7a0bcc64290ec951
Merge: a1d8561 dd9d384
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 20:55:23 2015 -0700
Merge branch 'sched-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler fix from Ingo Molnar:
"This is a leftover scheduler fix from the v4.2 cycle"
* 'sched-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched: Fix cpu_active_mask/cpu_online_mask race
commit a1d8561172f369ba56d636df49a6b4d6d77e2123
Merge: 3959df1d ff277d4
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 20:26:22 2015 -0700
Merge branch 'sched-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler updates from Ingo Molnar:
"The biggest change in this cycle is the rewrite of the main SMP load
balancing metric: the CPU load/utilization. The main goal was to make
the metric more precise and more representative - see the changelog of
this commit for the gory details:
9d89c257dfb9 ("sched/fair: Rewrite runnable load and utilization
average tracking")
It is done in a way that significantly reduces complexity of the code:
5 files changed, 249 insertions(+), 494 deletions(-)
and the performance testing results are encouraging. Nevertheless we
need to keep an eye on potential regressions, since this potentially
affects every SMP workload in existence.
This work comes from Yuyang Du.
Other changes:
- SCHED_DL updates. (Andrea Parri)
- Simplify architecture callbacks by removing finish_arch_switch().
(Peter Zijlstra et al)
- cputime accounting: guarantee stime + utime == rtime. (Peter
Zijlstra)
- optimize idle CPU wakeups some more - inspired by Facebook server
loads. (Mike Galbraith)
- stop_machine fixes and updates. (Oleg Nesterov)
- Introduce the 'trace_sched_waking' tracepoint. (Peter Zijlstra)
- sched/numa tweaks. (Srikar Dronamraju)
- misc fixes and small cleanups"
* 'sched-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (44 commits)
sched/deadline: Fix comment in enqueue_task_dl()
sched/deadline: Fix comment in push_dl_tasks()
sched: Change the sched_class::set_cpus_allowed() calling context
sched: Make sched_class::set_cpus_allowed() unconditional
sched: Fix a race between __kthread_bind() and sched_setaffinity()
sched: Ensure a task has a non-normalized vruntime when returning back
to CFS
sched/numa: Fix NUMA_DIRECT topology identification
tile: Reorganize _switch_to()
sched, sparc32: Update scheduler comments in copy_thread()
sched: Remove finish_arch_switch()
sched, tile: Remove finish_arch_switch
sched, sh: Fold finish_arch_switch() into switch_to()
sched, score: Remove finish_arch_switch()
sched, avr32: Remove finish_arch_switch()
sched, MIPS: Get rid of finish_arch_switch()
sched, arm: Remove finish_arch_switch()
sched/fair: Clean up load average references
sched/fair: Provide runnable_load_avg back to cfs_rq
sched/fair: Remove task and group entity load when they are dead
sched/fair: Init cfs_rq's sched_entity load average
...
commit 3959df1dfb9538498ec3372a2d390bc7fbdbfac2
Merge: 41d859a 6c36dfe
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 20:20:30 2015 -0700
Merge branch 'ras-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull RAS updates from Ingo Molnar:
"MCE handling updates, but also some generic drivers/edac/ changes to
better organize the Kconfig space"
* 'ras-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/ras: Move AMD MCE injector to arch/x86/ras/
x86/mce: Add a wrapper around mce_log() for injection
x86/mce: Rename rcu_dereference_check_mce() to mce_log_get_idx_check()
RAS: Add a menuconfig option with descriptive text
x86/mce: Reenable CMCI banks when swiching back to interrupt mode
x86/mce: Clear Local MCE opt-in before kexec
x86/mce: Remove unused function declarations
x86/mce: Kill drain_mcelog_buffer()
x86/mce: Avoid potential deadlock due to printk() in MCE context
x86/mce: Remove the MCE ring for Action Optional errors
x86/mce: Don't use percpu workqueues
x86/mce: Provide a lockless memory pool to save error records
x86/mce: Reuse one of the u16 padding fields in 'struct mce'
commit 41d859a83c567a9c9f50a34082cc64aab0abb0cd
Merge: 4658000 bac2e4a
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 19:49:05 2015 -0700
Merge branch 'perf-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf updates from Ingo Molnar:
"Main perf kernel side changes:
- uprobes updates/fixes. (Oleg Nesterov)
- Add PERF_RECORD_SWITCH to indicate context switches and use it in
tooling. (Adrian Hunter)
- Support BPF programs attached to uprobes and first steps for BPF
tooling support. (Wang Nan)
- x86 generic x86 MSR-to-perf PMU driver. (Andy Lutomirski)
- x86 Intel PT, LBR and BTS updates. (Alexander Shishkin)
- x86 Intel Skylake support. (Andi Kleen)
- x86 Intel Knights Landing (KNL) RAPL support. (Dasaratharaman
Chandramouli)
- x86 Intel Broadwell-DE uncore support. (Kan Liang)
- x86 hw breakpoints robustization (Andy Lutomirski)
Main perf tooling side changes:
- Support Intel PT in several tools, enabling the use of the
processor trace feature introduced in Intel Broadwell processors:
(Adrian Hunter)
# dmesg | grep Performance
# [0.188477] Performance Events: PEBS fmt2+, 16-deep LBR,
Broadwell events, full-width counters, Intel PMU driver.
# perf record -e intel_pt//u -a sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.216 MB perf.data ]
# perf script # then navigate in the tool output to some area,
like this one:
184 1030 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba661440 dl_main
(/usr/lib64/ld-2.17.so)
185 1457 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba669f10
_dl_new_object (/usr/lib64/ld-2.17.so)
186 9f37 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba677b90
strlen (/usr/lib64/ld-2.17.so)
187 7ba3 strlen (/usr/lib64/ld-2.17.so) => 7f21ba677c75 strlen
(/usr/lib64/ld-2.17.so)
188 7c78 strlen (/usr/lib64/ld-2.17.so) => 7f21ba669f3c
_dl_new_object (/usr/lib64/ld-2.17.so)
189 9f8a _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba65fab0
calloc@plt (/usr/lib64/ld-2.17.so)
190 fab0 calloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e70 calloc
(/usr/lib64/ld-2.17.so)
191 5e87 calloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa90 malloc@plt
(/usr/lib64/ld-2.17.so)
192 fa90 malloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e60 malloc
(/usr/lib64/ld-2.17.so)
193 5e68 malloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa80
__libc_memalign@plt (/usr/lib64/ld-2.17.so)
194 fa80 __libc_memalign@plt (/usr/lib64/ld-2.17.so) =>
7f21ba675d50 __libc_memalign (/usr/lib64/ld-2.17.so)
195 5d63 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e20
__libc_memalign (/usr/lib64/ld-2.17.so)
196 5e40 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675d73
__libc_memalign (/usr/lib64/ld-2.17.so)
197 5d97 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e18
__libc_memalign (/usr/lib64/ld-2.17.so)
198 5e1e __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675df9
__libc_memalign (/usr/lib64/ld-2.17.so)
199 5e10 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba669f8f
_dl_new_object (/usr/lib64/ld-2.17.so)
200 9fc2 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba678e70
memcpy (/usr/lib64/ld-2.17.so)
201 8e8c memcpy (/usr/lib64/ld-2.17.so) => 7f21ba678ea0 memcpy
(/usr/lib64/ld-2.17.so)
- Add support for using several Intel PT features (CYC, MTC packets),
the relevant documentation was updated in:
tools/perf/Documentation/intel-pt.txt
briefly describing those packets, its purposes, how to configure
them in the event config terms and relevant external documentation
for further reading. (Adrian Hunter)
- Introduce support for probing at an absolute address, for user and
kernel 'perf probe's, useful when one have the symbol maps on a
developer machine but not on an embedded system. (Wang Nan)
- Add Intel BTS support, with a call-graph script to show it and PT
in use in a GUI using 'perf script' python scripting with
postgresql and Qt. (Adrian Hunter)
- Allow selecting the type of callchains per event, including
disabling callchains in all but one entry in an event list, to save
space, and also to ask for the callchains collected in one event to
be used in other events. (Kan Liang)
- Beautify more syscall arguments in 'perf trace': (Arnaldo Carvalho
de Melo)
* A bunch more translate file/pathnames from pointers to strings.
* Convert numbers to strings for the 'keyctl' syscall 'option'
arg.
* Add missing 'clockid' entries.
- Introduce 'srcfile' sort key: (Andi Kleen)
# perf record -F 10000 usleep 1
# perf report --stdio --dsos '[kernel.vmlinux]' -s srcfile
<SNIP>
# Overhead Source File
26.49% copy_page_64.S
5.49% signal.c
0.51% msr.h
#
It can be combined with other fields, for instance, experiment with
'-s srcfile,symbol'.
There are some oddities in some distros and with some specific
DSOs, being investigated, so your mileage may vary.
- Support per-event 'freq' term: (Namhyung Kim)
$ perf record -e 'cpu/instructions,freq=1234/',cycles -c 1000
sleep 1
$ perf evlist -F
cpu/instructions,freq=1234/: sample_freq=1234
cycles: sample_period=1000
$
- Deref sys_enter pointer args with contents from probe:vfs_getname,
showing pathnames instead of pointers in many syscalls in 'perf
trace'. (Arnaldo Carvalho de Melo)
- Stop collecting /proc/kallsyms in perf.data files, saving about
4.5MB on a typical x86-64 system, use the the symbol resolution
routines used in all the other tools (report, top, etc) now that we
can ask libtraceevent to use perf's symbol resolution code.
(Arnaldo Carvalho de Melo)
- Allow filtering out of perf's PID via 'perf record --exclude-perf'.
(Wang Nan)
- 'perf trace' now supports syscall groups, like strace, i.e:
$ trace -e file touch file
Will expand 'file' into multiple, file related, syscalls. More
work needed to add extra groups for other syscall groups, and also
to complement what was added for the 'file' group, included as a
proof of concept. (Arnaldo Carvalho de Melo)
- Add lock_pi stresser to 'perf bench futex', to test the kernel code
related to FUTEX_(UN)LOCK_PI. (Davidlohr Bueso)
- Let user have timestamps with per-thread recording in 'perf record'
(Adrian Hunter)
- ... and tons of other changes, see the shortlog and the Git log for
details"
* 'perf-core-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (240 commits)
perf evlist: Add backpointer for perf_env to evlist
perf tools: Rename perf_session_env to perf_env
perf tools: Do not change lib/api/fs/debugfs directly
perf tools: Add tracing_path and remove unneeded functions
perf buildid: Introduce sysfs/filename__sprintf_build_id
perf evsel: Add a backpointer to the evlist a evsel is in
perf trace: Add header with copyright and background info
perf scripts python: Add new compaction-times script
perf stat: Get correct cpu id for print_aggr
tools lib traceeveent: Allow for negative numbers in print format
perf script: Add --[no-]-demangle/--[no-]-demangle-kernel
tracing/uprobes: Do not print '0x (null)' when offset is 0
perf probe: Support probing at absolute address
perf probe: Fix error reported when offset without function
perf probe: Fix list result when address is zero
perf probe: Fix list result when symbol can't be found
tools build: Allow duplicate objects in the object list
perf tools: Remove export.h from MANIFEST
perf probe: Prevent segfault when reading probe point with absolute
address
perf tools: Update Intel PT documentation
...
commit 4658000955d1864b54890214434e171949c7f1c5
Merge: e10994f 69786cdb
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 19:16:36 2015 -0700
Merge branch 'mm-kasan-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86/kasan changes from Ingo Molnar:
"These are two KASAN changes that factor out (and generalize) x86
specific KASAN code from x86 to mm"
* 'mm-kasan-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/kasan, mm: Introduce generic kasan_populate_zero_shadow()
x86/kasan: Define KASAN_SHADOW_OFFSET per architecture
commit e10994ff38ded64e4cd2267a6e404a4c8632bcf5
Merge: 5757bd6 33fef66
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 19:11:50 2015 -0700
Merge branch 'locking-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull liblockdep fixes from Ingo Molnar:
"Three liblockdep fixes left over from the v4.2 cycle"
* 'locking-urgent-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
tools/liblockdep: Use the rbtree header provided by common tools headers
tools/liblockdep: Correct macro for WARN
tools: Restore export.h
commit 498012511a060575a56551d28a10bb392aa361b5
Merge: 5d2a1a9 4bf0118
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 1 03:45:05 2015 +0200
Merge branch 'device-properties'
* device-properties:
device property: check fwnode type in to_of_node()
device property: attach 'else if' to the proper 'if'
device property: fallback to pset when gettng one string
device property: fix potential NULL pointer dereference
commit 5d2a1a927d487d6bb60c87b837d82702d8ebcaad
Merge: ef5f5de 5d0ddfe b00855a 02b771b 3277b4e
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 1 03:41:19 2015 +0200
Merge branches 'acpi-pci', 'acpi-soc', 'acpi-ec' and 'acpi-osl'
* acpi-pci:
ACPI, PCI: Penalize legacy IRQ used by ACPI SCI
* acpi-soc:
ACPI / LPSS: Ignore 10ms delay for Braswell
* acpi-ec:
ACPI / EC: Fix an issue caused by the serialized _Qxx evaluations
* acpi-osl:
ACPI / osl: replace custom implementation of readq / writeq
commit ef5f5de069bd9081a7ddf6998269b58fc65e27ef
Merge: 73990fc e91a398
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 1 03:38:43 2015 +0200
Merge branch 'acpi-pm'
* acpi-pm:
ACPI / bus: Move duplicate code to a separate new function
mfd: Add support for Intel Sunrisepoint LPSS devices
dmaengine: add a driver for Intel integrated DMA 64-bit
mfd: make mfd_remove_devices() iterate in reverse order
driver core: implement device_for_each_child_reverse()
klist: implement klist_prev()
Driver core: wakeup the parent device before trying probe
ACPI / PM: Attach ACPI power domain only once
PM / QoS: Make it possible to expose device latency tolerance to
userspace
ACPI / PM: Update the copyright notice and description of power.c
commit 73990fc810bf84c5338d9596f8af8d70fe90ac72
Merge: 94f2bb9 1dcc3d3 b6fc607 1074261
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 1 03:38:22 2015 +0200
Merge branches 'acpi-scan', 'acpi-processor' and 'acpi-assorted'
* acpi-scan:
ACPI / bus: Move ACPI bus type registration
ACPI / scan: Move bus operations and notification routines to bus.c
ACPI / scan: Move device matching code to bus.c
ACPI / scan: Move sysfs-related device code to a separate file
* acpi-processor:
PCC: Disable compilation by default
ACPI: Decouple ACPI idle and ACPI processor drivers
ACPI: Split out ACPI PSS from ACPI Processor driver
PCC: Initialize PCC Mailbox earlier at boot
ACPI / processor: remove leftover __refdata annotations
* acpi-assorted:
ACPI: fix acpi_debugfs_init prototype
ACPI: Remove FSF mailing addresses
commit 94f2bb9b599f8d6a3a1309d39b3b219da314470c
Merge: 20a2000 cb4ff76
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 1 03:37:59 2015 +0200
Merge branch 'acpi-trace'
* acpi-trace:
ACPI / Documentation: Update method tracing documentation.
ACPI / sysfs: Add support to allow leading "\" missing in
trace_method_name.
ACPI / sysfs: Update method tracing facility.
ACPI / sysfs: Add ACPI_LV_REPAIR debug level.
commit 20a200085f64cce4f33ab33ae262ff291dc5d6d0
Merge: c91c5b2 4305cd0
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 1 03:37:51 2015 +0200
Merge branch 'acpi-tools'
* acpi-tools:
tools/power/acpi: Enable build for EC userspace tool
tools/power/acpi: Add descend support in ACPI tools Makefile
commit 5757bd6157f523ff0d448a4ec93938523ca441a9
Merge: 7073bc6 accd0b9
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 18:37:33 2015 -0700
Merge branch 'core-types-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull inlining tuning from Ingo Molnar:
"A handful of inlining optimizations inspired by x86 work but
applicable in general"
* 'core-types-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
jiffies: Force inlining of {m,u}msecs_to_jiffies()
x86/hweight: Force inlining of __arch_hweight{32,64}()
linux/bitmap: Force inlining of bitmap weight functions
commit c91c5b276bc1e60c0d65ff69e29b6edc5948430d
Merge: 64291f7 b7a4f7f
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Tue Sep 1 03:37:30 2015 +0200
Merge branch 'acpica'
* acpica: (42 commits)
ACPICA: Update version to 20150818
ACPICA: Debugger: Cleanup debugging outputs to dump name path without
trailing underscores
ACPICA: Disassembler: Cleanup acpi_gbl_db_opt_verbose acpiexec usage
ACPICA: Disassembler: Cleanup acpi_gbl_db_opt_disasm
ACPICA: Debugger: Split debugger initialization/termination APIs
ACPICA: Header support to improve compatibility with MSVC
ACPICA: Make the max-number-of-loops runtime configurable
ACPICA: Debugger: Add option to display namespace summary/counts
ACPICA: Add additional debug info/statements
ACPICA: Table handling: Cleanup and update debug output for tools
ACPICA: acpiexec/acpinames: Support very large number of ACPI tables
ACPICA: acpinames: Add new options and wildcard support
ACPICA: Headers: Fix some comments, no functional change
ACPICA: Tables: Cleanup to reduce FACS globals
ACPICA: Tables: Fix global table list issues by removing fixed table
indexes
ACPICA: Update info messages during ACPICA init
ACPICA: Disassembler: Update for new listing mode
ACPICA: Update parameter validation for data_table_region and load_table
ACPICA: Disassembler: Remove duplicate code in _PLD processing.
ACPICA: Correctly cleanup after a ACPI table load failure
...
commit 7073bc66126e3ab742cce9416ad6b4be8b03c4f7
Merge: d4c9039 f612a7b
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 18:12:07 2015 -0700
Merge branch 'core-rcu-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull RCU updates from Ingo Molnar:
"The main RCU changes in this cycle are:
- the combination of tree geometry-initialization simplifications and
OS-jitter-reduction changes to expedited grace periods. These two
are stacked due to the large number of conflicts that would
otherwise result.
- privatize smp_mb__after_unlock_lock().
This commit moves the definition of smp_mb__after_unlock_lock() to
kernel/rcu/tree.h, in recognition of the fact that RCU is the only
thing using this, that nothing else is likely to use it, and that
it is likely to go away completely.
- documentation updates.
- torture-test updates.
- misc fixes"
* 'core-rcu-for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits)
rcu,locking: Privatize smp_mb__after_unlock_lock()
rcu: Silence lockdep false positive for expedited grace periods
rcu: Don't disable CPU hotplug during OOM notifiers
scripts: Make checkpatch.pl warn on expedited RCU grace periods
rcu: Update MAINTAINERS entry
rcu: Clarify CONFIG_RCU_EQS_DEBUG help text
rcu: Fix backwards RCU_LOCKDEP_WARN() in synchronize_rcu_tasks()
rcu: Rename rcu_lockdep_assert() to RCU_LOCKDEP_WARN()
rcu: Make rcu_is_watching() really notrace
cpu: Wait for RCU grace periods concurrently
rcu: Create a synchronize_rcu_mult()
rcu: Fix obsolete priority-boosting comment
rcu: Use WRITE_ONCE in RCU_INIT_POINTER
rcu: Hide RCU_NOCB_CPU behind RCU_EXPERT
rcu: Add RCU-sched flavors of get-state and cond-sync
rcu: Add fastpath bypassing funnel locking
rcu: Rename RCU_GP_DONE_FQS to RCU_GP_DOING_FQS
rcu: Pull out wait_event*() condition into helper function
documentation: Describe new expedited stall warnings
rcu: Add stall warnings to synchronize_sched_expedited()
...
commit d4c90396ed7ef9b4e4d221e008e54be8bea8307f
Merge: f36fc04 bf43341
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 17:38:39 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto updates from Herbert Xu:
"Here is the crypto update for 4.3:
API:
- the AEAD interface transition is now complete.
- add top-level skcipher interface.
Drivers:
- x86-64 acceleration for chacha20/poly1305.
- add sunxi-ss Allwinner Security System crypto accelerator.
- add RSA algorithm to qat driver.
- add SRIOV support to qat driver.
- add LS1021A support to caam.
- add i.MX6 support to caam"
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (163
commits)
crypto: algif_aead - fix for multiple operations on AF_ALG sockets
crypto: qat - enable legacy VFs
MPI: Fix mpi_read_buffer
crypto: qat - silence a static checker warning
crypto: vmx - Fixing opcode issue
crypto: caam - Use the preferred style for memory allocations
crypto: caam - Propagate the real error code in caam_probe
crypto: caam - Fix the error handling in caam_probe
crypto: caam - fix writing to JQCR_MS when using service interface
crypto: hash - Add AHASH_REQUEST_ON_STACK
crypto: testmgr - Use new skcipher interface
crypto: skcipher - Add top-level skcipher interface
crypto: cmac - allow usage in FIPS mode
crypto: sahara - Use dmam_alloc_coherent
crypto: caam - Add support for LS1021A
crypto: qat - Don't move data inside output buffer
crypto: vmx - Fixing GHASH Key issue on little endian
crypto: vmx - Fixing AES-CTR counter bug
crypto: null - Add missing Kconfig tristate for NULL2
crypto: nx - Add forward declaration for struct crypto_aead
...
commit 5d54b8cdeaf4679c51a510dea3f8921992d0b064
Merge: 70b33a7 1a7ccad
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Tue Sep 1 10:30:11 2015 +1000
Merge branch 'xfs-misc-fixes-for-4.3-4' into for-next
commit f36fc04e4cdda9e4c72ee504e7dc638f9a168863
Merge: 26f8b7e ba30011
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 17:26:48 2015 -0700
Merge tag 'clk-for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
Pull clk updates from Michael Turquette:
"The clk framework changes for 4.3 are mostly updates to existing
drivers and the addition of new clock drivers. Stephen Boyd has also
done a lot of subsystem-wide driver clean-ups (thanks!). There are
also fixes to the framework core and changes to better split clock
provider drivers from clock consumer drivers"
* tag 'clk-for-linus-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (227 commits)
clk: s5pv210: add missing call to samsung_clk_of_add_provider()
clk: pistachio: correct critical clock list
clk: pistachio: Fix PLL rate calculation in integer mode
clk: pistachio: Fix override of clk-pll settings from boot loader
clk: pistachio: Fix 32bit integer overflows
clk: tegra: Fix some static checker problems
clk: qcom: Fix MSM8916 prng clock enable bit
clk: Add missing header for 'bool' definition to clk-conf.h
drivers/clk: appropriate __init annotation for const data
clk: rockchip: register pll mux before pll itself
clk: add bindings for the Ux500 clocks
clk/ARM: move Ux500 PRCC bases to the device tree
clk: remove duplicated code with __clk_set_parent_after
clk: Convert __clk_get_name(hw->clk) to clk_hw_get_name(hw)
clk: Constify clk_hw argument to provider APIs
clk: Hi6220: add stub clock driver
dt-bindings: clk: Hi6220: Document stub clock driver
dt-bindings: arm: Hi6220: add doc for SRAM controller
clk: atlas7: fix pll missed divide NR in fraction mode
clk: atlas7: fix bit field and its root clk for coresight_tpiu
...
commit 26f8b7edc9eab56638274f5db90848a6df602081
Merge: edc837d 9ca678d
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 17:14:39 2015 -0700
Merge tag 'pci-v4.3-changes' of
git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI updates from Bjorn Helgaas:
"PCI changes for the v4.3 merge window:
Enumeration:
- Allocate ATS struct during enumeration (Bjorn Helgaas)
- Embed ATS info directly into struct pci_dev (Bjorn Helgaas)
- Reduce size of ATS structure elements (Bjorn Helgaas)
- Stop caching ATS Invalidate Queue Depth (Bjorn Helgaas)
- iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth (Bjorn
Helgaas)
- Move MPS configuration check to pci_configure_device() (Bjorn
Helgaas)
- Set MPS to match upstream bridge (Keith Busch)
- ARM/PCI: Set MPS before pci_bus_add_devices() (Murali Karicheri)
- Add pci_scan_root_bus_msi() (Lorenzo Pieralisi)
- ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi() (Lorenzo
Pieralisi)
Resource management:
- Call pci_read_bridge_bases() from core instead of arch code (Lorenzo
Pieralisi)
PCI device hotplug:
- pciehp: Remove unused interrupt events (Bjorn Helgaas)
- pciehp: Remove ignored MRL sensor interrupt events (Bjorn Helgaas)
- pciehp: Handle invalid data when reading from non-existent devices
(Jarod Wilson)
- pciehp: Simplify pcie_poll_cmd() (Yijing Wang)
- Use "slot" and "pci_slot" for struct hotplug_slot and struct
pci_slot (Yijing Wang)
- Protect pci_bus->slots with pci_slot_mutex, not pci_bus_sem (Yijing
Wang)
- Hold pci_slot_mutex while searching bus->slots list (Yijing Wang)
Power management:
- Disable async suspend/resume for JMicron multi-function SATA/AHCI
(Zhang Rui)
Virtualization:
- Add ACS quirks for Intel I219-LM/V (Alex Williamson)
- Restore ACS configuration as part of pci_restore_state() (Alexander
Duyck)
MSI:
- Add pcibios_alloc_irq() and pcibios_free_irq() (Jiang Liu)
- x86: Implement pcibios_alloc_irq() and pcibios_free_irq() (Jiang Liu)
- Add helpers to manage pci_dev->irq and pci_dev->irq_managed (Jiang
Liu)
- Free legacy IRQ when enabling MSI/MSI-X (Jiang Liu)
- ARM/PCI: Remove msi_controller from struct pci_sys_data (Lorenzo
Pieralisi)
- Remove unused pcibios_msi_controller() hook (Lorenzo Pieralisi)
Generic host bridge driver:
- Remove dependency on ARM-specific struct hw_pci (Jayachandran C)
- Build setup-irq.o for arm64 (Jayachandran C)
- Add arm64 support (Jayachandran C)
APM X-Gene host bridge driver:
- Add APM X-Gene PCIe 64-bit prefetchable window (Duc Dang)
- Add support for a 64-bit prefetchable memory window (Duc Dang)
- Drop owner assignment from platform_driver (Krzysztof Kozlowski)
Broadcom iProc host bridge driver:
- Allow BCMA bus driver to be built as module (Hauke Mehrtens)
- Delete unnecessary checks before phy calls (Markus Elfring)
- Add arm64 support (Ray Jui)
Synopsys DesignWare host bridge driver:
- Don't complain missing *config* reg space if va_cfg0 is set (Murali
Karicheri)
TI DRA7xx host bridge driver:
- Disable pm_runtime on get_sync failure (Kishon Vijay Abraham I)
- Add PM support (Kishon Vijay Abraham I)
- Clear MSE bit during suspend so clocks will idle (Kishon Vijay
Abraham I)
- Add support to make GPIO drive PERST# line (Kishon Vijay Abraham I)
Xilinx AXI host bridge driver:
- Check for MSI interrupt flag before handling as INTx (Russell Joyce)
Miscellaneous:
- Fix Intersil/Techwell TW686[4589] AV capture class code (Krzysztof
HaÅ?asa)
- Use PCI_CLASS_SERIAL_USB instead of bare number (Bjorn Helgaas)
- Fix generic NCR 53c810 class code quirk (Bjorn Helgaas)
- Fix TI816X class code quirk (Bjorn Helgaas)
- Remove unused "pci_probe" flags (Bjorn Helgaas)
- Host bridge driver code simplifications (Fabio Estevam)
- Add dev_flags bit to access VPD through function 0 (Mark Rustad)
- Add VPD function 0 quirk for Intel Ethernet devices (Mark Rustad)
- Kill off set_irq_flags() usage (Rob Herring)
- Remove Intel Cherrytrail D3 delays (Srinidhi Kasagar)
- Clean up pci_find_capability() (Wei Yang)"
* tag 'pci-v4.3-changes' of
git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (72 commits)
PCI: Disable async suspend/resume for JMicron multi-function SATA/AHCI
PCI: Set MPS to match upstream bridge
PCI: Move MPS configuration check to pci_configure_device()
PCI: Drop references acquired by of_parse_phandle()
PCI/MSI: Remove unused pcibios_msi_controller() hook
ARM/PCI: Remove msi_controller from struct pci_sys_data
ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi()
PCI: Add pci_scan_root_bus_msi()
ARM/PCI: Replace panic with WARN messages on failures
PCI: generic: Add arm64 support
PCI: Build setup-irq.o for arm64
PCI: generic: Remove dependency on ARM-specific struct hw_pci
PCI: imx6: Simplify a trivial if-return sequence
PCI: spear: Use BUG_ON() instead of condition followed by BUG()
PCI: dra7xx: Remove unneeded use of IS_ERR_VALUE()
PCI: Remove pci_ats_enabled()
PCI: Stop caching ATS Invalidate Queue Depth
PCI: Move ATS declarations to linux/pci.h so they're all together
PCI: Clean up ATS error handling
PCI: Use pci_physfn() rather than looking up physfn by hand
...
commit edc837da4b54a01ba6fa3c29b411e35d1a8430ca
Merge: e5aeced 4d59ed8
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 17:08:05 2015 -0700
Merge tag 'leds_for_4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
Pull LED updates from Jacek Anaszewski:
"In this merge window we'd like to announce a change on the list of LED
subsystem maintainers - Bryan Wu decided to step back and handed over
the maintainership to me (Jacek Anaszewski), which entailed an update
of LED subsystem git tree URL.
Besides the changes in MAINTAINERS we have:
- optimizations and improvements to existing LED class drivers
- improvements to the common LEDs DT documentation
- modifications of kirkwood-* dts files, to be in sync with patches
for leds-ns2 driver, that move LEDs mode mapping outside of the
driver"
* tag 'leds_for_4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
leds: Export OF module alias information in missing drivers
leds:lp55xx: use the private data instead of updating I2C device
platform data
leds: syscon: Correct check for syscon_node_to_regmap() errors
leds: leds-fsg: Use devm_led_classdev_register
MAINTAINERS: Change LED subsystem git tree URL
leds/led-class: Add missing put_device()
ARM: Kirkwood: add modes-map property to ns2-leds nodes
leds: tlc591xx: Remove redundant I2C_FUNC_SMBUS_BYTE_DATA functionality
check
leds: leds-ns2: depends on MACH_ARMADA_370
leds: leds-ns2: handle can_sleep GPIOs
leds: leds-ns2: move LED modes mapping outside of the driver
leds: lp8860: Constify reg_default tables
leds: Drop owner assignment from i2c_driver
leds: Allow compile test of LEDS_AAT1290 and LEDS_KTD2692 if !GPIOLIB
leds: Allow compile test of GPIO consumers if !GPIOLIB
DT: leds: Improve description of flash LEDs related properties
commit 07f081fb5057b2ea98baeca3a47bf0eb33e94aa1
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Sun Aug 30 16:59:57 2015 +0100
PKCS#7: Add OIDs for sha224, sha284 and sha512 hash algos and use them
Add OIDs for sha224, sha284 and sha512 hash algos and use them to select
the hashing algorithm. Without this, something like the following error
might get written to dmesg:
[ 31.829322] PKCS7: Unknown OID: [32] 2.16.840.1.101.3.4.2.3
[ 31.829328] PKCS7: Unknown OID: [180] 2.16.840.1.101.3.4.2.3
[ 31.829330] Unsupported digest algo: 55
Where the 55 on the third line is OID__NR indicating an unknown OID.
Reported-by: Valdis Kletnieks <Valdis.Kletnieks@xxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Tested-By: Valdis Kletnieks <valdis.kletnieks@xxxxxx>
Signed-off-by: James Morris <james.l.morris@xxxxxxxxxx>
commit e5aeced6bcec5a110e6dfcb78acc203dbe895b59
Merge: cf9d615 c5992f6
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 15:55:49 2015 -0700
Merge tag 'spi-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi updates from Mark Brown:
"A few core tweaks this time together with the usual collection of
driver specific updates and fixes plus a larger than average selection
of new device support:
- fix DMA mapping of unaligned vmalloc() buffers
- statistics tracking transfer volumes exposed via sysfs
- new drivers for Freescale MPC5125, Intel Sunrise Point, Mediatek
SoCs, and Netlogic XLP SoCs"
* tag 'spi-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (66 commits)
spi: sh-msiof: Fix FIFO size to 64 word from 256 word
spi: fsl-(e)spi: Fix checking return value of devm_ioremap_resource
spi: Add DT bindings documentation for Netlogic XLP SPI controller
spi/xlp: SPI controller driver for Netlogic XLP SoCs
spi: fsl-espi: add runtime PM
spi: fsl-(e)spi: simplify cleanup code
spi: fsl-(e)spi: migrate to using devm_ functions to simplify cleanup
spi: mediatek: fix SPI_CMD_PAUSE_IE macro error
spi: check bits_per_word in spi_setup
spi: mediatek: replace *_time name
spi: mediatek: add PM clk_prepare_enable fail flow
spi: mediatek: replace int with u32, delete TAB and define
MTK_SPI_PAUSE_INT_STATUS marco
spi: mediatek: add linux/io.h include file
spi/bcm63xx-hsspi: add support for dual spi read/write
spi: dw: Allow interface drivers to limit data I/O to word sizes
dt: snps,dw-apb-ssi: Document new I/O data register width property
spi: Fall back to master maximum speed if no slave speed specified
spi: mediatek: use BIT() to instead of SPI_CMD_*_OFFSET
spi: medaitek: revise quirks compatibility style
spi: mediatek: fix spi incorrect endian usage
...
commit cf9d615f7f5842ca1ef0f28ed9f67a97d20cf6fc
Merge: e270160 f5164b8
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 15:49:19 2015 -0700
Merge tag 'regulator-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator updates from Mark Brown:
"The biggest changes in the core this time around have been some
refactorings that move us towards being able to drop the list of
regulators maintained by the core and instead just use the driver
model list maintained for the class devices for regulators which will
make the code smaller and avoid some potential bugs.
Otherwise another fairly quiet release for the regulator API,
highlights include:
- a new API for setting voltages based on a minimum, target, maximum
triplet
- support for continuous voltage ranges rather than tables of
explicit steps in the PWM regulator, requiring less explicit
configuration
- new driver support for Dialog DA9215, Maxim 77843, Mediatek MT6311
and Qualcomm RPM"
* tag 'regulator-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (70 commits)
regulator: mt6311: fix platform_no_drv_owner.cocci warnings
regulator: ltc3589: Remove unnecessary MODULE_ALIAS()
regulator: ad5398: Remove unnecessary MODULE_ALIAS()
regulator: pfuze100: Remove unnecessary MODULE_ALIAS()
regulator: core: use debug level print in regulator_check_drms
regulator: lp872x: handle error case
regulator: lp872x: use the private data instead of updating I2C device
platform data
regulator: isl9305: Export OF module alias information
regulators: max77693: register driver earlier to avoid deferred probe
regulator: qcom_smd: Set n_voltages for pm8941_lnldo
regulator: core: Use IS_ERR_OR_NULL()
regulator: core: Define regulator_set_voltage_triplet()
regulator: Regulator driver for the Qualcomm RPM
regulator: pbias: Fix broken pbias disable functionality
regulator: core: Spelling fix
regulator: core: Use class device list for regulator_list in late init
regulator: core: Move more deallocation into class unregister
regulator: core: Reduce rdev locking region when releasing regulator
Input: Remove the max77843 haptic driver
Input: max77693: Add support for Maxim 77843
...
commit e2701603f72cd38e99c6b1da13c8e99bc27b2f34
Merge: 22629b6 ce14c58
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 15:40:05 2015 -0700
Merge tag 'docs-for-linus' of git://git.lwn.net/linux-2.6
Pull documentation updates from Jonathan Corbet:
"There's been a fair amount going on in the docs tree this time around,
including:
- Support for reproducible document builds, from Ben Hutchings and
company.
- The ability to automatically generate cross-reference links within
a single DocBook book and embedded descriptions for large
structures. From Danilo Cesar Lemes de Paula.
- A new document on how to add a system call from David Drysdale.
- Chameleon bus documentation from Johannes Thumshirn.
...plus the usual collection of improvements, typo fixes, and more"
* tag 'docs-for-linus' of git://git.lwn.net/linux-2.6: (39 commits)
Documentation, add kernel-parameters.txt entry for dis_ucode_ldr
Documentation/x86: Rename IRQSTACKSIZE to IRQ_STACK_SIZE
Documentation/Intel-IOMMU.txt: Modify definition of DRHD
docs: update HOWTO for 3.x -> 4.x versioning
kernel-doc: ignore unneeded attribute information
scripts/kernel-doc: Adding cross-reference links to html documentation.
DocBook: Fix non-determinstic installation of duplicate man pages
Documentation: minor typo fix in mailbox.txt
Documentation: describe how to add a system call
doc: Add more workqueue functions to the documentation
ARM: keystone: add documentation for SoCs and EVMs
scripts/kernel-doc Allow struct arguments documentation in struct body
SubmittingPatches: remove stray quote character
Revert "DocBook: Avoid building man pages repeatedly and inconsistently"
Documentation: Minor changes to men-chameleon-bus.txt
Doc: fix trivial typo in SubmittingPatches
MAINTAINERS: Direct Documentation/DocBook/media properly
Documentation: installed man pages don't need to be executable
fix Evolution submenu name in email-clients.txt
Documentation: Add MCB documentation
...
commit 22629b6d9072c4e86e900306d7020ad722ae6536
Merge: c8192ba 1ed3216
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 15:31:12 2015 -0700
Merge tag 'hwmon-for-linus-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
Pull hwmon updates from Guenter Roeck:
"Notable changes:
- added support for LTM4675, LTC3886, LTC2980, LTM2987, LTC2975,
LTC3887, LTC3882, MAX20751, ADM1293, and ADM1294 to PMBus drivers
- added support for IT8732F to it87 driver
- added support for AMD Carrizo to fam15h_power driver
- added support for various new attributes to nct7802 driver
- added support for F81866 and F71868 to f71882fg driver"
* tag 'hwmon-for-linus-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (45 commits)
hwmon: (fam15h_power) Add ratio of Tsample to the PTSC period
hwmon: (fam15h_power) Add documentation for new processors support
hwmon: (fam15h_power) Update running_avg_capture bit field to 28
hwmon: (fam15h_power) Rename fam15h_power_is_internal_node0 function
hwmon: (fam15h_power) Add support for AMD Carrizo
hwmon: (ltc2978) Add support for LTM4675
hwmon: (ltc2978) Add polling for chips requiring it
hwmon: (pmbus) Enable PEC if the controller supports it
hwmon: (pmbus) Use BIT macro
hwmon: (ltc2978) Add support for LTC3886
hwmon: (ltc2978) Add support for LTC2980 and LTM2987
hwmon: (ltc2978) Add missing chip IDs for LTC2978 and LTC3882
hwmon: (ltc2978) Use correct ID mask to detect all chips
hwmon: (ltc2978) Introduce helper functions for min and max values
hwmon: (ltc2978) Introduce feature flags
hwmon: (pmbus) Convert command register definitions to enum
hwmon: (ltc2978) Add support for LTC2975
hwmon: (ltc2978) Add support for LTC3887
hwmon: (ltc2978) Add additional chip IDs for LTM4676 and LTM4676A
hwmon: (ltc2978) Add support for LTC3882
...
commit c8192ba416397ad6ce493f186da40767ce086c3b
Merge: 9c6a019 b68c316
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 15:25:16 2015 -0700
Merge tag 'for-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply
Pull power supply and reset changes from Sebastian Reichel:
- new reset driver for ZTE SoCs
- add support for sama5d3 reset handling
- overhaul of twl4030 charger driver
- misc fixes and cleanups
* tag 'for-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (35
commits)
bq2415x_charger: Allow to load and use driver even if notify device is
not registered yet
twl4030_charger: fix compile error when TWL4030_MADC not available.
power: bq24190_charger: Fix charge type sysfs property
power: Allow compile test of GPIO consumers if !GPIOLIB
power: Export I2C module alias information in missing drivers
twl4030_charger: Increase current carefully while watching voltage.
twl4030_charger: add ac/mode to match usb/mode
twl4030_charger: add software controlled linear charging mode.
twl4030_charger: enable manual enable/disable of usb charging.
twl4030_charger: allow max_current to be managed via sysfs.
twl4030_charger: distinguish between USB current and 'AC' current
twl4030_charger: allow fine control of charger current.
twl4030_charger: split uA calculation into a function.
twl4030_charger: trust phy to determine when USB power is available.
twl4030_charger: correctly handle -EPROBE_DEFER from
devm_usb_get_phy_by_node
twl4030_charger: convert to module_platform_driver instead of ..._probe.
twl4030_charger: use runtime_pm to keep usb phy active while charging.
rx51-battery: Set name to rx51-battery
MAINTAINERS: AVS is not maintained via power supply tree
power: olpc_battery: clean up eeprom read function
...
commit c42858eaf4926eb2f44f3e26731b276ab966ac28
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Mon Aug 31 13:57:34 2015 -0700
gro_cells: remove spinlock protecting receive queues
As David pointed out, spinlock are no longer needed
to protect the per cpu queues used in gro cells infrastructure.
Also use new napi_complete_done() API so that gro_flush_timeout
tweaks have an effect.
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e704059272aae2aaa5e5ce7a76e4c27c492e947e
Author: David Ward <david.ward@xxxxxxxxxx>
Date: Mon Aug 31 14:15:14 2015 -0400
net: qmi_wwan: Sierra Wireless MC73xx -> Sierra Wireless MC7304/MC7354
Other Sierra Wireless MC73xx devices exist, with different USB IDs.
Cc: Bjørn Mork <bjorn@xxxxxxx>
Signed-off-by: David Ward <david.ward@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a394eef562d781f37a50d99cf1dfe596dc1ed96d
Author: Marius Tomaschewski <mt@xxxxxxx>
Date: Mon Aug 31 15:59:22 2015 +0200
ipv6: send NEWLINK on RA managed/otherconf changes
The kernel is applying the RA managed/otherconf flags silently and
forgets to send ifinfo notify to inform about their change when the
router provides a zero reachable_time and retrans_timer as dnsmasq
and many routers send it, which just means unspecified by this router
and the host should continue using whatever value it is already using.
Userspace may monitor the ifinfo notifications to activate dhcpv6.
Signed-off-by: Marius Tomaschewski <mt@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9c6a019c6edf8591e34ae9da51bac7684131d905
Merge: 7c01919 e4ec735
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 15:11:53 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 updates from Martin Schwidefsky:
"The big one is support for fake NUMA, splitting a really large machine
in more manageable piece improves performance in some cases, e.g. for
a KVM host.
The FICON Link Incident handling has been improved, this helps the
operator to identify degraded or non-operational FICON connections.
The save and restore of floating point and vector registers has been
overhauled to allow the future use of vector registers in the kernel.
A few small enhancement, magic sys-requests for the vt220 console via
SCLP, some more assembler code has been converted to C, the PCI error
handling is improved.
And the usual cleanup and bug fixing"
* 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (59 commits)
s390/jump_label: Use %*ph to print small buffers
s390/sclp_vt220: support magic sysrequests
s390/ctrlchar: improve handling of magic sysrequests
s390/numa: remove superfluous ARCH_WANT defines
s390/3270: redraw screen on unsolicited device end
s390/dcssblk: correct out of bounds array indexes
s390/mm: simplify page table alloc/free code
s390/pci: move debug messages to debugfs
s390/nmi: initialize control register 0 earlier
s390/zcrypt: use msleep() instead of mdelay()
s390/hmcdrv: fix interrupt registration
s390/setup: fix novx parameter
s390/uaccess: remove uaccess_primary kernel parameter
s390: remove unneeded sizeof(void *) comparisons
s390/facilities: remove transactional-execution bits
s390/numa: re-add DIE sched_domain_topology_level
s390/dasd: enhance CUIR scope detection
s390/dasd: fix failing path verification
s390/vdso: emit a GNU hash
s390/numa: make core to node mapping data dynamic
...
commit 7c01919130ef8b27306ed1faf1f2cc079621923c
Merge: 7b8067d 650c919
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 15:06:28 2015 -0700
Merge tag 'xtensa-20150830' of git://github.com/czankel/xtensa-linux
Pull xtensa updates from Chris Zankel:
"Xtensa fixes and improvements for 4.3:
- reimplement DMA API using common helpers
- implement counting and sampling perf events using hardware perf
counters
- add fake NMI support for hardware perf counters
- fix THREADPTR register reloading on return to userspace
- keep exception/interrupt stack continuous for debugger
- improve vmlinux.lds.S post-processing"
* tag 'xtensa-20150830' of git://github.com/czankel/xtensa-linux:
xtensa: improve vmlinux.lds.S sed post-processing
xtensa: drop unused irq_err_count
xtensa: implement fake NMI
xtensa: don't touch EXC_TABLE_FIXUP in _switch_to
xtensa: fix kernel register spilling
xtensa: reorganize irq flags tracing
perf tools: xtensa: add DWARF register names
xtensa: implement counting and sampling perf events
xtensa: count software page fault perf events
xtensa: add profiling IRQ type to xtensa_irq_map
xtensa: select PERF_USE_VMALLOC for cache-aliasing configurations
xtensa: move oprofile stack tracing to stacktrace.c
xtensa: keep exception/interrupt stack continuous
xtensa: clean up Kconfig dependencies for custom cores
xtensa: reimplement DMA API using common helpers
xtensa: fix threadptr reload on return to userspace
xtensa: ISS: add missing va_end into split_if_spec
commit 7b8067d37058ec01889513e16033fb6de72a98ce
Merge: 9551bf2 8f8dcb3
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 15:01:08 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha
Pull alpha update from Matt Turner:
"A single patch for alpha, one that enables ARCH_USE_CMPXCHG_LOCKREF
and offers around an 8% performance improvement on a little benchmark
that you wrote"
* 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
alpha: select CONFIG_ARCH_USE_CMPXCHG_LOCKREF.
commit 9551bf292d67e9070409b59685cdb8fc5437ec3a
Merge: 4ff1204 1ecb406
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 14:52:45 2015 -0700
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k
Pull m68k updates from Geert Uytterhoeven.
* 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
m68k/bootinfo: Use kmemdup rather than duplicating its implementation
m68k/defconfig: Update defconfigs for v4.2-rc1
m68k/defconfig: Disable experimental CONFIG_DM_CACHE
commit 684511ac2eeb015b7a9a46c575543566e1b1fb7c
Merge: 6ea3c9d5 bc0f4a8
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 31 14:48:03 2015 -0700
Merge branch 'dsa-port-config'
Andrew Lunn says:
====================
DSA port configuration and status
This patchset allows various switch port settings to be configured and
port status to be sampled. Some of these patches have been posted
before.
The first three patches provide infrastructure for configuring a
switch ports link speed and duplex from a fixed_link phy.
Patch four then uses this infrastructure to allow the CPU and DSA
ports of a switch to be configured using a fixed-link property in the
device tree.
Patches five and six allow a phy-mode property to be specified in the
device tree, and allow this to be used for configuring RGMII delays.
Patches seven through nine allow link status, for example that of an
SFP module, to be read from a gpio.
Changes since v1:
Rewrite 9/9 so that it hopefully does not regression on
868a4215be9a6d80 ("net: phy: fixed_phy: handle link-down case")
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit bc0f4a87fc7e45642455682f281de2131cde9695
Author: Andrew Lunn <andrew@xxxxxxx>
Date: Mon Aug 31 15:56:54 2015 +0200
net: phy: fixed_phy: Set phy capabilities even when link down.
What features a phy supports is masked in genphy_config_init() by
looking at the PHYs BMSR register.
If the link is down, fixed_phy_update_regs() will only set the auto-
negotiation capable bit in BMSR. Thus genphy_config_init() comes to
the conclusion the PHY can only perform 10/Half, and masks out the
higher speed features. If however the link it up, BMSR is set to
indicate the speed the PHY is capable of auto-negotiating, and
genphy_config_init() does not mask out the high speed features.
To fix this, when the link is down, have fixed_phy_update_regs() leave
the link status, auto-negotiation complete, and link partner
capabilities unset, but set all the local capabilities depending on
the fixed phy speed.
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a5597008dbc230876db2d344561d634f4d52ea4a
Author: Andrew Lunn <andrew@xxxxxxx>
Date: Mon Aug 31 15:56:53 2015 +0200
phy: fixed_phy: Add gpio to determine link up/down.
An SFP module may have a link up/down status pin which can be
connection to a GPIO line of the host. Add support for reading such an
GPIO in the fixed_phy driver.
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8b59d19e749b8cb454b7912396c2a6a1b91b9d30
Author: Andrew Lunn <andrew@xxxxxxx>
Date: Mon Aug 31 15:56:52 2015 +0200
dsa: mv88e6xxx: Don't poll forced interfaces for state changes
When polling for link status, don't consider ports which have a forced
link. Such ports don't monitor their phy or may not even have a phy.
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Acked-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e7e72ac05acc357065a9448314dd14fff7c40d39
Author: Andrew Lunn <andrew@xxxxxxx>
Date: Mon Aug 31 15:56:51 2015 +0200
dsa: mv88e6xxx: Set the RGMII delay based on phy interface
Some Marvell switches allow the RGMII Rx and Tx clock to be delayed
when the port is using RGMII. Have the adjust_link function look at
the phy interface type and enable this delay as requested.
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e44853466844c20d8b5b16de187f63ddc50710dd
Author: Andrew Lunn <andrew@xxxxxxx>
Date: Mon Aug 31 15:56:50 2015 +0200
net: dsa: Allow DSA and CPU ports to have a phy-mode property
It can be useful for DSA and CPU ports to have a phy-mode property, in
particular to specify RGMII delays. Parse the property and set it in
the fixed-link phydev.
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Acked-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 39b0c705195e9409dc8a40cc82b11d81405a4a4b
Author: Andrew Lunn <andrew@xxxxxxx>
Date: Mon Aug 31 15:56:49 2015 +0200
net: dsa: Allow configuration of CPU & DSA port speeds/duplex
By default, DSA and CPU ports are configured to the maximum speed the
switch supports. However there can be use cases where the peer devices
port is slower. Allow a fixed-link property to be used with the DSA
and CPU port in the device tree, and use this information to configure
the port.
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 34b31da486a5e4eda9ff548ebf6dc3adc167bd0c
Author: Andrew Lunn <andrew@xxxxxxx>
Date: Mon Aug 31 15:56:48 2015 +0200
phy: fixed_phy: Set supported speed in phydev
Set the supported field of the phydev to indicate the speed features
of the phy. If the phy is never attached to a netdev, but used in an
adjust_link() function, the speed will be incorrectly evaluated to
10/half rather than the correct speed/duplex.
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Acked-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit dea870242a9c4ea74b3ca0f2da3f864c47484cff
Author: Andrew Lunn <andrew@xxxxxxx>
Date: Mon Aug 31 15:56:47 2015 +0200
dsa: mv88e6xxx: Allow speed/duplex of port to be configured
The current code sets user ports to perform auto negotiation using the
phy. CPU and DSA ports are configured to full duplex and maximum speed
the switch supports.
There are however use cases where the CPU has a slower port, and when
user ports have SFP modules with fixed speed. In these cases, port
settings to be read from a fixed_phy devices. The switch driver then
needs to implement the adjust_link op, so the port settings can be
set.
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5a11dd7d9649149f336ca72069d56ce52b21567f
Author: Florian Fainelli <f.fainelli@xxxxxxxxx>
Date: Mon Aug 31 15:56:46 2015 +0200
net: phy: Allow PHY devices to identify themselves as Ethernet switches,
etc.
Some Ethernet MAC drivers using the PHY library require the hardcoding
of link parameters when interfaced to a switch device, SFP module,
switch to switch port, etc. This has typically lead to various ad-hoc
implementations looking like this:
- using a "fixed PHY" emulated device, which will provide link
indication towards the Ethernet MAC driver and hardware
- pretend there is no PHY and hardcode link parameters, ala mv643x_eth
Based on that, it is desireable to have the PHY drivers advertise the
correct link parameters, just like regular Ethernet PHYs towards their
CPU Ethernet MAC drivers, however, Ethernet MAC drivers should be able
to tell whether this link should be monitored or not. In the context
of an Ethernet switch, SFP module, switch to switch link, we do not
need to monitor this link since it should be always up.
Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4ff12049d6b6cc79ad8ee092ae226434687062ec
Merge: c207840 44840de
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 14:38:07 2015 -0700
Merge tag 'usb-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB updates from Greg KH:
"Here's the big USB and PHY patchset for 4.3-rc1.
As usual, the majority of the changes are in the USB gadget portion of
the tree, lots of little changes all over the place for bugs and new
hardware. Other than that, the normal mix of new hardware support and
bugfixes.
All have been in linux-next with no reported issues"
* tag 'usb-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (261 commits)
USB: qcserial: add HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module
USB: ftdi_sio: Added custom PID for CustomWare products
USB: usb_wwan: silence read errors on disconnect
USB: option: silence interrupt errors
USB: symbolserial: Correct transferred data size
USB: symbolserial: Use usb_get_serial_port_data
usb: misc: usbtest: format max packet size for iso transfer
usb: host: ehci-sys: delete useless bus_to_hcd conversion
Revert "usb: interface authorization: Declare authorized attribute"
Revert "usb: interface authorization: Introduces the default interface
authorization"
Revert "usb: interface authorization: Control interface probing and
claiming"
Revert "usb: interface authorization: Introduces the USB interface
authorization"
Revert "usb: interface authorization: SysFS part of USB interface
authorization"
Revert "usb: interface authorization: Documentation part"
Revert "usb: interface authorization: Use a flag for the default device
authorization"
usb: core: hub: Removed some warnings generated by checkpatch.pl
USB: host: ohci-at91: merge loops in ohci_hcd_at91_drv_probe
USB: host: ohci-at91: merge ohci_at91_of_init in ohci_hcd_at91_drv_probe
USB: host: ohci-at91: depend on OF
USB: host: ohci-at91: move at91_usbh_data definition in c file
...
commit c2078402e479f963168bfcf7a8de78ab63748a98
Merge: 2f37d65 c868cbb
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 14:28:07 2015 -0700
Merge tag 'tty-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull tty/serial driver updates from Greg KH:
"Here is the big tty/serial driver update for 4.3-rc1.
Not many major things, a number of driver updates and changes, and the
8250 driver got split up a bit to make it easier to work with by
moving some functions to a new file. Full details are in the
shortlog.
All have been in linux-next with no reported issues"
* tag 'tty-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (90 commits)
serial: imx: save and restore context in the suspend path
serial: imx: allow waking up on RTSD
serial: imx: introduce serial_imx_enable_wakeup()
serial: imx: remove unbalanced clk_prepare
serial: 8250: move rx_running out of the bitfield
tty: serial: 8250_omap: do not use RX DMA if pause is not supported
serial:8250_dw: do not alter CTS and DCTS since AFE is enabled
tty: serial: men_z135_uart.c: Don't initialize port->lock
tty: serial: men_z135_uart.c: Fix race between IRQ and set_termios()
serial: 8250: bind to ALi Fast Infrared Controller (ALI5123)
serial: 8250: don't bind to SMSC IrCC IR port
serial: mxs-auart: fix baud rate range
serial: mxs-auart: keep the AUART unit in reset state when not in use
serial: mxs-auart: use a function name to reflect what it really does
serial: 8250_pci: fix mode after S3/S4 resume for F81504/508/512
sc16is7xx: constify devtype
sc16is7xx: support multiple devices
sc16is7xx: save and use per-chip line number
uart: pl011: Add support to ZTE ZX296702 uart
uart: pl011: Improve LCRH register access decision
...
commit bcc84ec65ad1bd9f777a1fade6f8e5e0c5808fa5
Author: Stephane Eranian <eranian@xxxxxxxxxx>
Date: Mon Aug 31 18:41:12 2015 +0200
perf record: Add ability to name registers to record
This patch modifies the -I/--int-regs option to enablepassing the name
of the registers to sample on interrupt. Registers can be specified by
their symbolic names. For instance on x86, --intr-regs=ax,si.
The motivation is to reduce the size of the perf.data file and the
overhead of sampling by only collecting the registers useful to a
specific analysis. For instance, for value profiling, sampling only the
registers used to passed arguements to functions.
With no parameter, the --intr-regs still records all possible registers
based on the architecture.
To name registers, it is necessary to use the long form of the option,
i.e., --intr-regs:
$ perf record --intr-regs=si,di,r8,r9 .....
To record any possible registers:
$ perf record -I .....
$ perf report --intr-regs ...
To display the register, one can use perf report -D
To list the available registers:
$ perf record --intr-regs=\?
available registers: AX BX CX DX SI DI BP SP IP FLAGS CS SS R8 R9 R10
R11 R12 R13 R14 R15
Signed-off-by: Stephane Eranian <eranian@xxxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441039273-16260-4-git-send-email-eranian@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit c5e991ee9dff0f8136168ed2d0d1a8cc3620dac4
Author: Stephane Eranian <eranian@xxxxxxxxxx>
Date: Mon Aug 31 18:41:11 2015 +0200
perf/x86: Add list of register names
This patch adds a way to locate a register identifier (PERF_X86_REG_*)
based on its name, e.g., AX.
This will be used by a subsequent patch to improved flexibility of perf
record.
Signed-off-by: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441039273-16260-3-git-send-email-eranian@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit fc36f9485aee3a62b22be1f561543a31bce6d48e
Author: Stephane Eranian <eranian@xxxxxxxxxx>
Date: Mon Aug 31 18:41:10 2015 +0200
perf script: Enable printing of interrupted machine state
This patch adds the output of the interrupted machine state (iregs) to
perf script. It presents them as NAME:VALUE so this is easy to parse
during post processing.
To capture the interrupted machine state:
$ perf record -I ....
to display iregs, use the -F option:
$ perf script -F ip,iregs
40afc2 AX:0x6c5770 BX:0x1e CX:0x5f4d80a
DX:0x101010101010101 SI:0x1
Signed-off-by: Stephane Eranian <eranian@xxxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1441039273-16260-2-git-send-email-eranian@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit bdbf4a29ee5bbe5b6743ba47bc7b10ec2cba8b21
Author: Vladimir Zapolskiy <vz@xxxxxxxxx>
Date: Wed Aug 26 23:59:33 2015 +0300
i2c: muxes: fix leaked i2c adapter device node references
Every call of of_parse_phandle() increments user count of found device
node, if OF_DYNAMIC is enabled.
The change fixes all similar addressed cases in drivers/i2c.
Signed-off-by: Vladimir Zapolskiy <vz@xxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit 3fcbbd244ed1d20dc0eb7d48d729503992fa9b7d
Author: Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 12:41:48 2015 -0400
nfsd: ensure that delegation stateid hash references are only put once
It's possible that a DELEGRETURN could race with (e.g.) client expiry,
in which case we could end up putting the delegation hash reference more
than once.
Have unhash_delegation_locked return a bool that indicates whether it
was already unhashed. In the case of destroy_delegation we only
conditionally put the hash reference if that returns true.
The other callers of unhash_delegation_locked call it while walking
list_heads that shouldn't yet be detached. If we find that it doesn't
return true in those cases, then throw a WARN_ON as that indicates that
we have a partially hashed delegation, and that something is likely very
wrong.
Tested-by: Andrew W Elble <aweits@xxxxxxx>
Tested-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Jeff Layton <jeff.layton@xxxxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit e85687393f3ee0a77ccca016f903d1558bb69258
Author: Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 12:41:47 2015 -0400
nfsd: ensure that the ol stateid hash reference is only put once
When an open or lock stateid is hashed, we take an extra reference to
it. When we unhash it, we drop that reference. The code however does
not properly account for the case where we have two callers concurrently
trying to unhash the stateid. This can lead to list corruption and the
hash reference being put more than once.
Fix this by having unhash_ol_stateid use list_del_init on the st_perfile
list_head, and then testing to see if that list_head is empty before
releasing the hash reference. This means that some of the unhashing
wrappers now become bool return functions so we can test to see whether
the stateid was unhashed before we put the reference.
Reported-by: Andrew W Elble <aweits@xxxxxxx>
Tested-by: Andrew W Elble <aweits@xxxxxxx>
Reported-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Tested-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Jeff Layton <jeff.layton@xxxxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 051ac3848a94f21cfdec899cc9c65ce7f9f116fa
Author: Pratyush Anand <panand@xxxxxxxxxx>
Date: Thu Aug 27 10:01:33 2015 +0530
net: sunrpc: fix tracepoint Warning: unknown op '->'
`perf stat -e sunrpc:svc_xprt_do_enqueue true` results in
Warning: unknown op '->'
Warning: [sunrpc:svc_xprt_do_enqueue] unknown op '->'
Similar warning for svc_handle_xprt as well.
Actually TP_printk() should never dereference an address saved in the ring
buffer that points somewhere in the kernel. There's no guarantee that that
object still exists (with the exception of static strings).
Therefore change all the arguments for TP_printk(), so that it references
values existing in the ring buffer only.
While doing that, also fix another possible bug when argument xprt could
be
NULL and TP_fast_assign() tries to access it's elements.
Signed-off-by: Pratyush Anand <panand@xxxxxxxxxx>
Reviewed-by: Jeff Layton <jeff.layton@xxxxxxxxxxxxxxx>
Acked-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Fixes: 83a712e0afef "sunrpc: add some tracepoints around ..."
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 51a545685905c934237e640083bc3aa40b36dc14
Author: Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 07:17:01 2015 -0400
nfsd: allow more than one laundry job to run at a time
We can potentially have several nfs4_laundromat jobs running if there
are multiple namespaces running nfsd on the box. Those are effectively
separated from one another though, so I don't see any reason to
serialize them.
Also, create_singlethread_workqueue automatically adds the
WQ_MEM_RECLAIM flag. Since we run this job on a timer, it's not really
involved in any reclaim paths. I see no need for a rescuer thread.
Signed-off-by: Jeff Layton <jeff.layton@xxxxxxxxxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 46cc8ba30445025f0ed3ed9f429aea573b301122
Author: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Date: Tue Aug 25 16:59:16 2015 -0400
nfsd: don't WARN/backtrace for invalid container deployment.
These messages, combined with the backtrace they trigger, makes it seem
like a serious problem, though a quick search shows distros marking
it as a "won't fix" non-issue when the problem is reported by users.
The backtrace is overkill, and only really manages to show that if
you follow the code path, you can't really avoid it with bootargs
or configuration settings in the container.
Given that, lets tone it down a bit and get rid of the WARN severity,
and the associated backtrace, so people aren't needlessly alarmed.
Also, lets drop the split printk line, since they are grep unfriendly.
Signed-off-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit d988d5ee647861706bc7a391ddbc29429b50f00e
Author: Kan Liang <kan.liang@xxxxxxxxx>
Date: Fri Aug 21 02:23:14 2015 -0400
perf evlist: Open event on evsel cpus and threads
An evsel may have different cpus and threads than the evlist it is in.
Use it's own cpus and threads, when opening the evsel in 'perf record'.
Signed-off-by: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440138194-17001-1-git-send-email-kan.liang@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 7fadc59cc89f207ff6ca3d0951e11265fb4f806e
Author: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Date: Sun Aug 9 18:43:17 2015 -0700
fs: fix fs/locks.c kernel-doc warning
Fix kernel-doc warnings in fs/locks.c:
Warning(..//fs/locks.c:1577): No description found for parameter 'flags'
Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Signed-off-by: Jeff Layton <jeff.layton@xxxxxxxxxxxxxxx>
commit 1f65c17e15992193f1c3f735696872cb75191517
Author: J. Bruce Fields <bfields@xxxxxxxxxx>
Date: Tue Aug 18 15:34:44 2015 -0400
nfsd: Add Jeff Layton as co-maintainer
Jeff has been doing a lot of development (including much of the
state-locking rewrite just as one example) plus lots of review and other
miscellaneous nfsd work, so let's acknowledge the status quo.
I'll continue to be the one to send regular pull requests but Jeff will
should be available to cover there occasionally too.
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 75976de6556f593f6c2a18bbbcfb1e594cc7598a
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Thu Jul 30 21:55:30 2015 +0800
NFSD: Return word2 bitmask if setting security label in OPEN/CREATE
Security label can be set in OPEN/CREATE request, nfsd should set
the bitmask in word2 if setting success.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit ead8fb8c24411722b92198b3dccd102a76cdd050
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Thu Jul 30 21:55:02 2015 +0800
NFSD: Set the attributes used to store the verifier for EXCLUSIVE4_1
According to rfc5661 18.16.4,
"If EXCLUSIVE4_1 was used, the client determines the attributes
used for the verifier by comparing attrset with cva_attrs.attrmask;"
So, EXCLUSIVE4_1 also needs those bitmask used to store the verifier.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 7d580722c9f353d19e255f929d341caa821060d6
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Thu Jul 30 21:54:26 2015 +0800
nfsd: SUPPATTR_EXCLCREAT must be encoded before SECURITY_LABEL.
The encode order should be as the bitmask defined order.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 6896f15aabde505b35888039af93d1d182a0108a
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Thu Jul 30 21:52:44 2015 +0800
nfsd: Fix an FS_LAYOUT_TYPES/LAYOUT_TYPES encode bug
Currently we'll respond correctly to a request for either
FS_LAYOUT_TYPES or LAYOUT_TYPES, but not to a request for both
attributes simultaneously.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit acf860ae7c53cc8b0c5d372c218332aac3eeba4f
Author: Wang Nan <wangnan0@xxxxxxxxxx>
Date: Thu Aug 27 02:30:55 2015 +0000
bpf tools: New API to get name from a BPF object
Before this patch there's no way to connect a loaded bpf object
to its source file. However, during applying perf's '--filter' to BPF
object, without this connection makes things harder, because perf loads
all programs together, but '--filter' setting is for each object.
The API of bpf_object__open_buffer() is changed to allow passing a name.
Fortunately, at this time there's only one user of it (perf test LLVM),
so we change it together.
Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
Cc: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Cc: Brendan Gregg <brendan.d.gregg@xxxxxxxxx>
Cc: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: He Kuang <hekuang@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kaixu Xia <xiakaixu@xxxxxxxxxx>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Zefan Li <lizefan@xxxxxxxxxx>
Cc: pi3orama@xxxxxxx
Link:
http://lkml.kernel.org/r/1440742821-44548-2-git-send-email-wangnan0@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit dc9cee5db50afaf38506bc12eb479fb8ea536dba
Author: Mike Snitzer <snitzer@xxxxxxxxxx>
Date: Mon Aug 31 15:41:34 2015 -0400
dm cache: small cleanups related to deferred prison cell cleanup
Eliminate __cell_release() since it only had one caller that always
released the cell holder.
Switch cell_error_with_code() to using free_prison_cell() for the sake
of consistency.
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
commit 6ea3c9d5b042edf14eac1e21af21c41f81f3491e
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 10:44:19 2015 -0700
mpls: fix mpls_net_init memory leak
Fix a memory leak in the mpls netns init function in case of failure. If
register_net_sysctl fails then we need to free the ctl_table.
Fixes: 7720c01f3f59 ("mpls: Add a sysctl to control the size of the mpls
label table")
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f0fa6e529efbca3b97ab6286dbeb5910e33f6c53
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 09:57:12 2015 -0600
net: Add tos to validate source tracepoint
TOS is another key aspect of the lookup passed to fib_validate_source.
Add it to the tracepoint.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit dbb7ee0e474cc8221de55583f516275693c5b552
Author: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Date: Mon Aug 31 08:57:10 2015 -0700
lib: move strncpy_from_unsafe() into mm/maccess.c
To fix build errors:
kernel/built-in.o: In function `bpf_trace_printk':
bpf_trace.c:(.text+0x11a254): undefined reference to `strncpy_from_unsafe'
kernel/built-in.o: In function `fetch_memory_string':
trace_kprobe.c:(.text+0x11acf8): undefined reference to
`strncpy_from_unsafe'
move strncpy_from_unsafe() next to probe_kernel_read/write()
which use the same memory access style.
Reported-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Fixes: 1a6877b9c0c2 ("lib: introduce strncpy_from_unsafe()")
Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9dc30648f0708cf063e29470d83f63f8dc8fc430
Merge: 87583eb c3a8d94
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 31 12:34:00 2015 -0700
Merge branch 'per-route-dctcp-receive-side'
Daniel Borkmann says:
====================
tcp: receive-side per route dctcp handling
Original cover letter:
Currently, the following case doesn't use DCTCP, even if it should:
- responder has f.e. cubic as system wide default
- 'ip route congctl dctcp $src' was set
Then, DCTCP is NOT used if a DCTCP sender attempts to connect from a
host in the $src range: ECT(0) is set, but listen_sk is not dctcp, so
we fail the INET_ECN_is_not_ect sanity check.
We also have to examine the dst used for the SYN/ACK reply to make
this case work.
In order to minimize additional cost, store the 'ecn is must have'
information is the dst_features field.
The set targets -next instead of -net since this doesn't seem to be a
serious bug and to give the change more soak time until it hits linus
tree.
v1 -> v2:
- Addressed Dave's feedback, not exposing any bits to user space
- Added patch 3 to reject incorrect configurations
- Rest as is, rebased and retested
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c3a8d9474684d391b0afc3970d9b249add15ec07
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Mon Aug 31 15:58:47 2015 +0200
tcp: use dctcp if enabled on the route to the initiator
Currently, the following case doesn't use DCTCP, even if it should:
A responder has f.e. Cubic as system wide default, but for a specific
route to the initiating host, DCTCP is being set in RTAX_CC_ALGO. The
initiating host then uses DCTCP as congestion control, but since the
initiator sets ECT(0), tcp_ecn_create_request() doesn't set ecn_ok,
and we have to fall back to Reno after 3WHS completes.
We were thinking on how to solve this in a minimal, non-intrusive
way without bloating tcp_ecn_create_request() needlessly: lets cache
the CA ecn option flag in RTAX_FEATURES. In other words, when ECT(0)
is set on the SYN packet, set ecn_ok=1 iff route RTAX_FEATURES
contains the unexposed (internal-only) DST_FEATURE_ECN_CA. This allows
to only do a single metric feature lookup inside tcp_ecn_create_request().
Joint work with Florian Westphal.
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b8d3e4163a3562d7cba486687904383e78e7dd6a
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Mon Aug 31 15:58:46 2015 +0200
fib, fib6: reject invalid feature bits
Feature bits that are invalid should not be accepted by the kernel,
only the lower 4 bits may be configured, but not the remaining ones.
Even from these 4, 2 of them are unused.
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1bb14807bc761a88bb9d319e7bf519eebf4c82ec
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Mon Aug 31 15:58:45 2015 +0200
net: fib6: reduce identation in ip6_convert_metrics
Reduce the identation a bit, there's no need to artificically have
it increased.
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6cf9dfd3bd62edfff69f11c0f111bc261166e4c7
Author: Florian Westphal <fw@xxxxxxxxx>
Date: Mon Aug 31 15:58:44 2015 +0200
net: fib: move metrics parsing to a helper
fib_create_info() is already quite large, so before adding more
code to the metrics section move that to a helper, similar to
ip6_convert_metrics.
Suggested-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 87583ebb9f6ea6dc7f8ef167b815656787e429fc
Author: Philip Downey <pdowney@xxxxxxxxxxx>
Date: Mon Aug 31 11:30:38 2015 +0100
IGMP: Document igmp_link_local_mcast_reports
Document the addition of a new sysctl variable which controls the
generation of IGMP reports for link local multicast groups in the
224.0.0.X range.
IGMP reports for local multicast groups can now be optionally
inhibited by setting the value to zero e.g.:
echo 0 > /proc/sys/net/ipv4/igmp_link_local_mcast_reports
To retain backwards compatibility the previous behaviour is retained
by default on system boot or reverted by setting the value back to
non-zero.
Signed-off-by: Philip Downey <pdowney@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4c22279848c531fc7f555d463daf3d0df963bd41
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Sun Aug 30 18:09:38 2015 -0700
ip-tunnel: Use API to access tunnel metadata options.
Currently tun-info options pointer is used in few cases to
pass options around. But tunnel options can be accessed using
ip_tunnel_info_opts() API without using the pointer. Following
patch removes the redundant pointer and consistently make use
of API.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Reviewed-by: Jesse Gross <jesse@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0a2050d744037158de773be5c6f1fc468a551bae
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Thu Jul 30 21:51:54 2015 +0800
NFSD: Store parent's stat in a separate value
After commit ae7095a7c4 (nfsd4: helper function for getting mounted_on
ino) we ignore the return value from get_parent_attributes().
Also, the following FATTR4_WORD2_LAYOUT_BLKSIZE uses stat.blksize, so to
avoid overwriting that, use an independent value for the parent's
attributes.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 9153df7405ae04c1b0466de720e0a685cfea1a3a
Author: Joe Thornber <ejt@xxxxxxxxxx>
Date: Mon Aug 31 18:20:08 2015 +0100
dm cache: fix leaking of deferred bio prison cells
There were two cases where dm_cell_visit_release() was being called,
which removes the cell from the prison's rbtree, but the callers didn't
also return the cell to the mempool. Fix this by having them call
free_prison_cell().
This leak manifested as the 'kmalloc-96' slab growing until OOM.
Fixes: 651f5fa2a3 ("dm cache: defer whole cells")
Signed-off-by: Joe Thornber <ejt@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # 4.1+
commit f15f4d720088c140cdf1fee6aeab3549dbdddc41
Author: Heinz Mauelshagen <heinzm@xxxxxxxxxx>
Date: Tue Aug 25 17:15:41 2015 +0200
dm raid: document RAID 4/5/6 discard support
For RAID 4/5/6 data integrity reasons 'discard_zeroes_data' must work
properly.
Signed-off-by: Heinz Mauelshagen <heinzm@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
commit 97db62062ac76e314c8bda4dc5b63f0ea906d15f
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Mon Aug 31 21:39:44 2015 +0300
perf tools: Fix build on powerpc broken by pt/bts
It is theoretically possible to process perf.data files created on x86
and that contain Intel PT or Intel BTS data, on any other architecture,
which is why it is possible for there to be build errors on powerpc
caused by pt/bts.
The errors were:
util/intel-pt-decoder/intel-pt-insn-decoder.c: In function
â??intel_pt_insn_decoderâ??:
util/intel-pt-decoder/intel-pt-insn-decoder.c:138:3: error: switch
missing default case [-Werror=switch-default]
switch (insn->immediate.nbytes) {
^
cc1: all warnings being treated as errors
linux-acme.git/tools/perf/perf-obj/libperf.a(libperf-in.o): In function
`intel_pt_synth_branch_sample':
sources/linux-acme.git/tools/perf/util/intel-pt.c:871: undefined
reference to `tsc_to_perf_time'
linux-acme.git/tools/perf/perf-obj/libperf.a(libperf-in.o): In function
`intel_pt_sample':
sources/linux-acme.git/tools/perf/util/intel-pt.c:915: undefined
reference to `tsc_to_perf_time'
sources/linux-acme.git/tools/perf/util/intel-pt.c:962: undefined
reference to `tsc_to_perf_time'
linux-acme.git/tools/perf/perf-obj/libperf.a(libperf-in.o): In function
`intel_pt_process_event':
sources/linux-acme.git/tools/perf/util/intel-pt.c:1454: undefined
reference to `perf_time_to_tsc'
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Sukadev Bhattiprolu <sukadev@xxxxxxxxxxxxxxxxxx>
Cc: Wang Nan <wangnan0@xxxxxxxxxx>
Cc: Zefan Li <lizefan@xxxxxxxxxx>
Cc: pi3orama@xxxxxxx
Link:
http://lkml.kernel.org/r/1441046384-28663-1-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 527afb4493c2892ce89fb74648e72a30b68ba120
Author: Tsutomu Itoh <t-itoh@xxxxxxxxxxxxxx>
Date: Wed Aug 19 14:55:00 2015 +0900
Btrfs: cleanup: remove unnecessary check before btrfs_free_path is called
We need not check path before btrfs_free_path() is called because
path is checked in btrfs_free_path().
Signed-off-by: Tsutomu Itoh <t-itoh@xxxxxxxxxxxxxx>
Reviewed-by: Qu Wenruo <quwenruo@xxxxxxxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit c6dd6ea55758cf403bdc07a51a06c2a1d474f906
Author: Qu Wenruo <quwenruo@xxxxxxxxxxxxxx>
Date: Thu Aug 20 09:30:39 2015 +0800
btrfs: async_thread: Fix workqueue 'max_active' value when initializing
At initializing time, for threshold-able workqueue, it's max_active
of kernel workqueue should be 1 and grow if it hits threshold.
But due to the bad naming, there is both 'max_active' for kernel
workqueue and btrfs workqueue.
So wrong value is given at workqueue initialization.
This patch fixes it, and to avoid further misunderstanding, change the
member name of btrfs_workqueue to 'current_active' and 'limit_active'.
Also corresponding comment is added for readability.
Reported-by: Alex Lyakas <alex.btrfs@xxxxxxxxxxxxxxxxx>
Signed-off-by: Qu Wenruo <quwenruo@xxxxxxxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit 943c6e9925d90dc80207322b5799d95fb90ffec0
Author: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
Date: Wed Aug 19 15:54:15 2015 +0800
btrfs: Add raid56 support for updating
num_tolerated_disk_barrier_failures in btrfs_balance
Code for updating fs_info->num_tolerated_disk_barrier_failures in
btrfs_balance() lacks raid56 support.
Reason:
Above code was wroten in 2012-08-01, together with
btrfs_calc_num_tolerated_disk_barrier_failures()'s first version.
Then, btrfs_calc_num_tolerated_disk_barrier_failures() got updated
later to support raid56, but code in btrfs_balance() was not
updated together.
Fix:
Merge above similar code to a common function:
btrfs_get_num_tolerated_disk_barrier_failures()
and make it support both case.
It can fix this bug with a bonus of cleanup, and make these code
never in above no-sync state from now on.
Suggested-by: Anand Jain <anand.jain@xxxxxxxxxx>
Signed-off-by: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit 2c4580454fffbf184fdb9292aa19ab1ffc224add
Author: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
Date: Thu Jul 16 15:00:46 2015 +0800
btrfs: Cleanup for btrfs_calc_num_tolerated_disk_barrier_failures
1: Use ARRAY_SIZE(types) to replace a static-value variant:
int num_types = 4;
2: Use 'continue' on condition to reduce one level tab
if (!XXX) {
code;
...
}
->
if (XXX)
continue;
code;
...
3: Put setting 'num_tolerated_disk_barrier_failures = 2' to
(num_tolerated_disk_barrier_failures > 2) condition to make
make logic neat.
if (num_tolerated_disk_barrier_failures > 0 && XXX)
num_tolerated_disk_barrier_failures = 0;
else if (num_tolerated_disk_barrier_failures > 1) {
if (XXX)
num_tolerated_disk_barrier_failures = 1;
else if (XXX)
num_tolerated_disk_barrier_failures = 2;
->
if (num_tolerated_disk_barrier_failures > 0 && XXX)
num_tolerated_disk_barrier_failures = 0;
if (num_tolerated_disk_barrier_failures > 1 && XXX)
num_tolerated_disk_barrier_failures = ;
if (num_tolerated_disk_barrier_failures > 2 && XXX)
num_tolerated_disk_barrier_failures = 2;
4: Remove comment of:
num_mirrors - 1: if RAID1 or RAID10 is configured and more
than 2 mirrors are used.
which is not fit with code.
Signed-off-by: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit 8c204c9657c32ec5a259ebf852a767afe7efdafa
Author: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
Date: Wed Aug 19 15:02:40 2015 +0800
btrfs: Remove noused chunk_tree and chunk_objectid from
scrub_enumerate_chunks and scrub_chunk
These variables are not used from introduced version, remove them.
Signed-off-by: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit 7955323bdcab307bd8b1d5ef7a031e4a3d059da3
Author: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
Date: Tue Aug 18 17:54:30 2015 +0800
btrfs: Update out-of-date "skip parity stripe" comment
Because btrfs support scrub raid56 parity stripe now.
Signed-off-by: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit d1bfc62591a0a5144dc380976e737fbbb4f40f4f
Author: Madalin Bucur <madalin.bucur@xxxxxxxxxxxxx>
Date: Mon Aug 31 15:46:07 2015 +0300
ipv4: fix 32b build
Address remaining issue after 80ec192.
Signed-off-by: Madalin Bucur <madalin.bucur@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0050ae57cd02dbd4f171622d0269e2fb7029a23e
Merge: a57e456 488ca7d
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Mon Aug 31 19:47:03 2015 +0200
Merge branch 'x86/cpufeature' into x86/urgent, because it's ready
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit c3cce6cda162eb2b2960a85d9c8992f4f3be85d0
Author: NeilBrown <neilb@xxxxxxxx>
Date: Fri Aug 14 12:47:33 2015 +1000
md/raid5: ensure device failure recorded before write request returns.
When a write to one of the devices of a RAID5/6 fails, the failure is
recorded in the metadata of the other devices so that after a restart
the data on the failed drive wont be trusted even if that drive seems
to be working again (maybe a cable was unplugged).
Similarly when we record a bad-block in response to a write failure,
we must not let the write complete until the bad-block update is safe.
Currently there is no interlock between the write request completing
and the metadata update. So it is possible that the write will
complete, the app will confirm success in some way, and then the
machine will crash before the metadata update completes.
This is an extremely small hole for a racy to fit in, but it is
theoretically possible and so should be closed.
So:
- set MD_CHANGE_PENDING when requesting a metadata update for a
failed device, so we can know with certainty when it completes
- queue requests that completed when MD_CHANGE_PENDING is set to
only be processed after the metadata update completes
- call raid_end_bio_io() on bios in that queue when the time comes.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 34a6f80e1639b124f24b5fadc1d45d69417cbace
Author: NeilBrown <neilb@xxxxxxxx>
Date: Fri Aug 14 12:07:57 2015 +1000
md/raid5: use bio_list for the list of bios to return.
This will make it easier to splice two lists together which will
be needed in future patch.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 95af587e95aacb9cfda4a9641069a5244a540dc8
Author: NeilBrown <neilb@xxxxxxxx>
Date: Fri Aug 14 11:26:17 2015 +1000
md/raid10: ensure device failure recorded before write request returns.
When a write to one of the legs of a RAID10 fails, the failure is
recorded in the metadata of the other legs so that after a restart
the data on the failed drive wont be trusted even if that drive seems
to be working again (maybe a cable was unplugged).
Currently there is no interlock between the write request completing
and the metadata update. So it is possible that the write will
complete, the app will confirm success in some way, and then the
machine will crash before the metadata update completes.
This is an extremely small hole for a racy to fit in, but it is
theoretically possible and so should be closed.
So:
- set MD_CHANGE_PENDING when requesting a metadata update for a
failed device, so we can know with certainty when it completes
- queue requests that experienced an error on a new queue which
is only processed after the metadata update completes
- call raid_end_bio_io() on bios in that queue when the time comes.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 55ce74d4bfe1b9444436264c637f39a152d1e5ac
Author: NeilBrown <neilb@xxxxxxxx>
Date: Fri Aug 14 11:11:10 2015 +1000
md/raid1: ensure device failure recorded before write request returns.
When a write to one of the legs of a RAID1 fails, the failure is
recorded in the metadata of the other leg(s) so that after a restart
the data on the failed drive wont be trusted even if that drive seems
to be working again (maybe a cable was unplugged).
Similarly when we record a bad-block in response to a write failure,
we must not let the write complete until the bad-block update is safe.
Currently there is no interlock between the write request completing
and the metadata update. So it is possible that the write will
complete, the app will confirm success in some way, and then the
machine will crash before the metadata update completes.
This is an extremely small hole for a racy to fit in, but it is
theoretically possible and so should be closed.
So:
- set MD_CHANGE_PENDING when requesting a metadata update for a
failed device, so we can know with certainty when it completes
- queue requests that experienced an error on a new queue which
is only processed after the metadata update completes
- call raid_end_bio_io() on bios in that queue when the time comes.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 18b9f67962eb890da0c053e04c3cf0e91871d4fa
Author: NeilBrown <neilb@xxxxxxxx>
Date: Fri Aug 14 10:22:00 2015 +1000
md-cluster: remove inappropriate try_module_get from join()
md_setup_cluster already calls try_module_get(), so this
try_module_get isn't needed.
Also, there is no matching module_put (except in error patch),
so this leaves an unbalanced module count.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 6022e75bf0686799a6ecca3c33a669e6c70e9d26
Author: NeilBrown <neilb@xxxxxxxx>
Date: Thu Aug 13 12:32:55 2015 +1000
md: extend spinlock protection in register_md_cluster_operations
This code looks racy.
The only possible race is if two modules try to register at the same
time and that won't happen. But make the code look safe anyway.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit abb9b22ac948000ae156cd2d115c8632ec30a2ce
Author: Guoqing Jiang <gqjiang@xxxxxxxx>
Date: Fri Jul 10 17:01:22 2015 +0800
md-cluster: Read the disk bitmap sb and check if it needs recovery
In gather_all_resync_info, we need to read the disk bitmap sb and
check if it needs recovery.
Reviewed-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
Signed-off-by: Guoqing Jiang <gqjiang@xxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit eece075cda38f55fc5829b5f9ec5fb919c561d81
Author: Guoqing Jiang <gqjiang@xxxxxxxx>
Date: Fri Jul 10 17:01:21 2015 +0800
md-cluster: only call complete(&cinfo->completion) when node join cluster
Introduce MD_CLUSTER_BEGIN_JOIN_CLUSTER flag to make sure
complete(&cinfo->completion) is only be invoked when node
join cluster. Otherwise node failure could also call the
complete, and it doesn't make sense to do it.
Reviewed-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
Signed-off-by: Guoqing Jiang <gqjiang@xxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 6e6d9f2cda47745a3abcb6609b1dee0e831161d8
Author: Guoqing Jiang <gqjiang@xxxxxxxx>
Date: Fri Jul 10 17:01:20 2015 +0800
md-cluster: add missed lockres_free
We also need to free the lock resource before goto out.
Reviewed-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
Signed-off-by: Guoqing Jiang <gqjiang@xxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit b2b9bfff0aa721a04a3924ed451c417d2bd9ed15
Author: Guoqing Jiang <gqjiang@xxxxxxxx>
Date: Fri Jul 10 17:01:19 2015 +0800
md-cluster: remove the unused sb_lock
The sb_lock is not used anywhere, so let's remove it.
Reviewed-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
Signed-off-by: Guoqing Jiang <gqjiang@xxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 9e3072e373320b331512e24f6650efa0a09720af
Author: Guoqing Jiang <gqjiang@xxxxxxxx>
Date: Fri Jul 10 17:01:18 2015 +0800
md-cluster: init suspend_list and suspend_lock early in join
If the node just join the cluster, and receive the msg from other nodes
before init suspend_list, it will cause kernel crash due to NULL pointer
dereference, so move the initializations early to fix the bug.
md-cluster: Joined cluster 3578507b-e0cb-6d4f-6322-696cd7b1b10c slot 3
BUG: unable to handle kernel NULL pointer dereference at (null)
... ... ...
Call Trace:
[<ffffffffa0444924>] process_recvd_msg+0x2e4/0x330 [md_cluster]
[<ffffffffa0444a06>] recv_daemon+0x96/0x170 [md_cluster]
[<ffffffffa045189d>] md_thread+0x11d/0x170 [md_mod]
[<ffffffff810768c4>] kthread+0xb4/0xc0
[<ffffffff8151927c>] ret_from_fork+0x7c/0xb0
... ... ...
RIP [<ffffffffa0443581>] __remove_suspend_info+0x11/0xa0 [md_cluster]
Reviewed-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
Signed-off-by: Guoqing Jiang <gqjiang@xxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit b5ef56789b808a57fcd07271ff509911662fd877
Author: Guoqing Jiang <gqjiang@xxxxxxxx>
Date: Fri Jul 10 17:01:17 2015 +0800
md-cluster: add the error check if failed to get dlm lock
In complicated cluster environment, it is possible that the
dlm lock couldn't be get/convert on purpose, the related err
info is added for better debug potential issue.
For lockres_free, if the lock is blocking by a lock request or
conversion request, then dlm_unlock just put it back to grant
queue, so need to ensure the lock is free finally.
Signed-off-by: Guoqing Jiang <gqjiang@xxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit b83d51c0785c34d552111f38fbecbe00cd58b913
Author: Guoqing Jiang <gqjiang@xxxxxxxx>
Date: Fri Jul 10 17:01:16 2015 +0800
md-cluster: init completion within lockres_init
We should init completion within lockres_init, otherwise
completion could be initialized more than one time during
it's life cycle.
Reviewed-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
Signed-off-by: Guoqing Jiang <gqjiang@xxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 66099bb0ee6c20f91ace3fa5f82202fbceb67d8e
Author: Guoqing Jiang <gqjiang@xxxxxxxx>
Date: Fri Jul 10 17:01:15 2015 +0800
md-cluster: fix deadlock issue on message lock
There is problem with previous communication mechanism, and we got below
deadlock scenario with cluster which has 3 nodes.
Sender Receiver Receiver
token(EX)
message(EX)
writes message
downconverts message(CR)
requests ack(EX)
get message(CR) gets message(CR)
reads message reads message
requests EX on message requests EX on message
To fix this problem, we do the following changes:
1. the sender downconverts MESSAGE to CW rather than CR.
2. and the receiver request PR lock not EX lock on message.
And in case we failed to down-convert EX to CW on message, it is better to
unlock message otherthan still hold the lock.
Reviewed-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
Signed-off-by: Lidong Zhong <ldzhong@xxxxxxxx>
Signed-off-by: Guoqing Jiang <gqjiang@xxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit dc737d7c3d62d2cd2b62c7739aaa7604330c3dd8
Author: Guoqing Jiang <gqjiang@xxxxxxxx>
Date: Fri Jul 10 16:54:04 2015 +0800
md-cluster: transfer the resync ownership to another node
When node A stops an array while the array is doing a resync, we need
to let another node B take over the resync task.
To achieve the goal, we need the A send an explicit BITMAP_NEEDS_SYNC
message to the cluster. And the node B which received that message will
invoke __recover_slot to do resync.
Reviewed-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
Signed-off-by: Guoqing Jiang <gqjiang@xxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 05cd0e51769a51f53c68e83976c83653f6ab1595
Author: Guoqing Jiang <gqjiang@xxxxxxxx>
Date: Fri Jul 10 16:54:03 2015 +0800
md-cluster: split recover_slot for future code reuse
Make recover_slot as a wraper to __recover_slot, since the
logic of __recover_slot can be reused for the condition
when other nodes need to take over the resync job.
Signed-off-by: Guoqing Jiang <gqjiang@xxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit b89f704a8ddf7be1a66af9aad350226ae283292f
Author: Guoqing Jiang <gqjiang@xxxxxxxx>
Date: Fri Jul 10 16:54:02 2015 +0800
md-cluster: use %pU to print UUIDs
Reviewed-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx>
Signed-off-by: Guoqing Jiang <gqjiang@xxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 25b2edfa3b6940b73180d2735cd19fdf58d0cf91
Author: Sasha Levin <sasha.levin@xxxxxxxxxx>
Date: Fri Jul 24 18:19:58 2015 -0400
md: setup safemode_timer before it's being used
We used to set up the safemode_timer timer in md_run. If md_run
would fail before the timer was set up we'd end up trying to modify
a timer that doesn't have a callback function when we access
safe_delay_store,
which would trigger a BUG.
neilb: delete init_timer() call as setup_timer() does that.
Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 6cbd81487f7cfa30e22537bf7cd07f48c4e7164d
Author: NeilBrown <neilb@xxxxxxxx>
Date: Fri Jul 24 13:30:32 2015 +1000
md/raid5: handle possible race as reshape completes.
It is possible (though unlikely) for a reshape to be
interrupted between the time that end_reshape is called
and the time when raid5_finish_reshape is called.
This can leave conf->reshape_progress set to MaxSector,
but mddev->reshape_position not.
This combination confused reshape_request() when ->reshape_backwards.
As conf->reshape_progress is so high, it seems the reshape hasn't
really begun. But assuming MaxSector is a valid address only
leads to sorrow.
So ensure reshape_position and reshape_progress both agree,
and add an extra check in reshape_request() just in case they don't.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 5ed1df2eacc0ba92c8c7e2499c97594b5ef928a8
Author: NeilBrown <neilb@xxxxxxxx>
Date: Fri Jul 24 13:27:08 2015 +1000
md: sync sync_completed has correct value as recovery finishes.
There can be a small window between the moment that recovery
actually writes the last block and the time when various sysfs
and /proc/mdstat attributes report that it has finished.
During this time, 'sync_completed' can have the wrong value.
This can confuse monitoring software.
So:
- don't set curr_resync_completed beyond the end of the devices,
- set it correctly when resync/recovery has completed.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit c5e19d906a658f27fa858b09a95d9551b1a69bd0
Author: NeilBrown <neilb@xxxxxxxx>
Date: Fri Jul 17 12:06:02 2015 +1000
md: be careful when testing resync_max against curr_resync_completed.
While it generally shouldn't happen, it is not impossible for
curr_resync_completed to exceed resync_max.
This can particularly happen when reshaping RAID5 - the current
status isn't copied to curr_resync_completed promptly, so when it
is, it can exceed resync_max.
This happens when the reshape is 'frozen', resync_max is set low,
and reshape is re-enabled.
Taking a difference between two unsigned numbers is always dangerous
anyway, so add a test to behave correctly if
curr_resync_completed > resync_max
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit a4a3d26d8757a30ae21724d8b0d79e00e113c38d
Author: NeilBrown <neilb@xxxxxxxx>
Date: Fri Jul 17 11:57:30 2015 +1000
md: set MD_RECOVERY_RECOVER when starting a degraded array.
This ensures that 'sync_action' will show 'recover' immediately the
array is started. If there is no spare the status will change to
'idle' once that is detected.
Clear MD_RECOVERY_RECOVER for a read-only array to ensure this change
happens.
This allows scripts which monitor status not to get confused -
particularly my test scripts.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit c74c0d760e30f56f9699dc180036ca37993d1c58
Author: NeilBrown <neilb@xxxxxxxx>
Date: Wed Jul 15 17:54:15 2015 +1000
md/raid5: remove incorrect "min_t()" when calculating writepos.
This code is calculating:
writepos, which is the furthest along address (device-space) that we
*will* be writing to
readpos, which is the earliest address that we *could* possible read
from, and
safepos, which is the earliest address in the 'old' section that we
might read from after a crash when the reshape position is
recovered from metadata.
The first is a precise calculation, so clipping at zero doesn't
make sense. As the reshape position is now guaranteed to always be
a multiple of reshape_sectors and as we already BUG_ON when
reshape_progress is zero, there is no point in this min_t() call.
The readpos and safepos are worst case - actual value depends on
precise geometry. That worst case could be negative, which is only
a problem because we are storing the value in an unsigned.
So leave the min_t() for those.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 05256d9884d3276f61537d3d7f5605dc21bd3477
Author: NeilBrown <neilb@xxxxxxxx>
Date: Wed Jul 15 17:36:21 2015 +1000
md/raid5: strengthen check on reshape_position at run.
When reshaping, we work in units of the largest chunk size.
If changing from a larger to a smaller chunk size, that means we
reshape more than one stripe at a time. So the required alignment
of reshape_position needs to take into account both the old
and new chunk size.
This means that both 'here_new' and 'here_old' are calculated with
respect to the same (maximum) chunk size, so testing if they are the
same when delta_disks is zero becomes pointless.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 3cb5edf45457948347b5ae8cc9650c000cef4391
Author: NeilBrown <neilb@xxxxxxxx>
Date: Wed Jul 15 17:24:17 2015 +1000
md/raid5: switch to use conf->chunk_sectors in place of
mddev->chunk_sectors where possible
The chunk_sectors and new_chunk_sectors fields of mddev can be changed
any time (via sysfs) that the reconfig mutex can be taken. So raid5
keeps internal copies in 'conf' which are stable except for a short
locked moment when reshape stops/starts.
So any access that does not hold reconfig_mutex should use the 'conf'
values, not the 'mddev' values.
Several don't.
This could result in corruption if new values were written at awkward
times.
Also use min() or max() rather than open-coding.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 5cac6bcb9312a18a5091976fc374b4c7b9c4ae2e
Author: NeilBrown <neilb@xxxxxxxx>
Date: Fri Jul 17 12:17:50 2015 +1000
md/raid5: always set conf->prev_chunk_sectors and ->prev_algo
These aren't really needed when no reshape is happening,
but it is safer to have them always set to a meaningful value.
The next patch will use ->prev_chunk_sectors without checking
if a reshape is happening (because that makes the code simpler),
and this patch makes that safe.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 02ec50265b16493e4a62228727e9f774068123d2
Author: NeilBrown <neilb@xxxxxxxx>
Date: Mon Jul 6 16:33:47 2015 +1000
md/raid10: fix a few typos in comments
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 92140480ed59a006b245efd33a195fde62d1845f
Author: NeilBrown <neilb@xxxxxxxx>
Date: Mon Jul 6 12:28:45 2015 +1000
md/raid5: consider updating reshape_position at start of reshape.
md/raid5 only updates ->reshape_position (which is stored in
metadata and is authoritative) occasionally, but particularly
when getting closed to ->resync_max as it must be correct
when ->resync_max is reached.
When mdadm tries to stop an array which is reshaping it will:
- freeze the reshape,
- set resync_max to where the reshape has reached.
- unfreeze the reshape.
When this happens, the reshape is aborted and then restarted.
The restart doesn't check that resync_max is close, and so doesn't
update ->reshape_position like it should.
This results in the reshape stopping, but ->reshape_position being
incorrect.
So on that first call to reshape_request, make sure ->reshape_position
is updated if needed.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 985ca973b68cac0adfa83497db231da7f99c6ed9
Author: NeilBrown <neilb@xxxxxxxx>
Date: Mon Jul 6 12:26:57 2015 +1000
md: close some races between setting and checking sync_action.
When checking sync_action in a script, we want to be sure it is
as accurate as possible.
As resync/reshape etc doesn't always start immediately (a separate
thread is scheduled to do it), it is best if 'action_show'
checks if MD_RECOVER_NEEDED is set (which it does) and in that
case reports what is likely to start soon (which it only sometimes
does).
So:
- report 'reshape' if reshape_position suggests one might start.
- set MD_RECOVERY_RECOVER in raid1_reshape(), because that is very
likely to happen next.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit f7851be736d58e7270f05a4ca84b16ce72734a18
Author: NeilBrown <neilb@xxxxxxxx>
Date: Thu Jul 2 17:12:58 2015 +1000
md: Keep /proc/mdstat reporting recovery until fully DONE.
Currently when a recovery completes, mdstat shows that it has finished
before the new device is marked as a full member. Because of this it
can appear to a script that the recovery finished but the array isn't
in sync.
So while MD_RECOVERY_DONE is still set, keep mdstat reporting "recovery".
Once md_reap_sync_thread() completes, the spare will be active and then
MD_RECOVERY_DONE will be cleared.
To ensure this is race-free, set MD_RECOVERY_DONE before clearning
curr_resync.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 0e833e697bcf4c2f3f7fb9fce39d08cd4439e5d7
Author: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Date: Wed Jul 1 12:19:56 2015 +1000
md/raid6: delta syndrome for ARM NEON
This implements XOR syndrome calculation using NEON intrinsics.
As before, the module can be built for ARM and arm64 from the
same source.
Relative performance on a Cortex-A57 based system:
raid6: int64x1 gen() 905 MB/s
raid6: int64x1 xor() 881 MB/s
raid6: int64x2 gen() 1343 MB/s
raid6: int64x2 xor() 1286 MB/s
raid6: int64x4 gen() 1896 MB/s
raid6: int64x4 xor() 1321 MB/s
raid6: int64x8 gen() 1773 MB/s
raid6: int64x8 xor() 1165 MB/s
raid6: neonx1 gen() 1834 MB/s
raid6: neonx1 xor() 1278 MB/s
raid6: neonx2 gen() 2528 MB/s
raid6: neonx2 xor() 1942 MB/s
raid6: neonx4 gen() 2888 MB/s
raid6: neonx4 xor() 2334 MB/s
raid6: neonx8 gen() 2957 MB/s
raid6: neonx8 xor() 2232 MB/s
raid6: using algorithm neonx8 gen() 2957 MB/s
raid6: .... xor() 2232 MB/s, rmw enabled
Cc: Markus Stockhausen <stockhausen@xxxxxxxxxxx>
Cc: Neil Brown <neilb@xxxxxxx>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
commit 2f37d65a6a5c360ba0c386a6aa0d2afcbda7060d
Merge: 1af115d 415bcb5
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 09:24:06 2015 -0700
Merge tag 'staging-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
Pull staging driver updates from Greg KH:
"Here is the big staging driver updates for 4.3-rc1.
Lots of things all over the place, almost all of them trivial fixups
and changes. The usual IIO updates and new drivers and we have added
the MOST driver subsystem which is getting cleaned up in the tree.
The ozwpan driver is finally being deleted as it is obviously
abandoned and no one cares about it.
Full details are in the shortlog, and all of these have been in
linux-next with no reported issues"
* tag 'staging-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (912 commits)
staging/lustre/o2iblnd: remove references to ib_reg_phsy_mr()
staging: wilc1000: fix build warning with setup_timer()
staging: wilc1000: remove DECLARE_WILC_BUFFER()
staging: wilc1000: remove void function return statements that are not
useful
staging: wilc1000: coreconfigurator.c: fix kmalloc error check
staging: wilc1000: coreconfigurator.c: use kmalloc instead of
WILC_MALLOC
staging: wilc1000: remove unused codes of gps8ConfigPacket
staging: wilc1000: remove unnecessary void pointer cast
staging: wilc1000: remove WILC_NEW and WILC_NEW_EX
staging: wilc1000: use kmalloc instead of WILC_NEW
staging: wilc1000: Process WARN, INFO options of debug levels from user
staging: wilc1000: remove unneeded tstrWILC_MsgQueueAttrs typedef
staging: wilc1000: delete wilc_osconfig.h
staging: wilc1000: delete wilc_log.h
staging: wilc1000: delete wilc_timer.h
staging: wilc1000: remove WILC_TimerStart()
staging: wilc1000: remove WILC_TimerCreate()
staging: wilc1000: remove WILC_TimerDestroy()
staging: wilc1000: remove WILC_TimerStop()
staging: wilc1000: remove tstrWILC_TimerAttrs typedef
...
commit 1af115d675f323afee1e64650277a9b170845b81
Merge: 1c00038 71db87b
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 08:47:40 2015 -0700
Merge tag 'driver-core-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core updates from Greg KH:
"Here is the new patches for the driver core / sysfs for 4.3-rc1.
Very small number of changes here, all the details are in the
shortlog, nothing major happening at all this kernel release, which is
nice to see"
* tag 'driver-core-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
bus: subsys: update return type of ->remove_dev() to void
driver core: correct device's shutdown order
driver core: fix docbook for device_private.device
selftests: firmware: skip timeout checks for kernels without user mode
helper
kernel, cpu: Remove bogus __ref annotations
cpu: Remove bogus __ref annotation of cpu_subsys_online()
firmware: fix wrong memory deallocation in fw_add_devm_name()
sysfs.txt: update show method notes about sprintf/snprintf/scnprintf
usage
devres: fix devres_get()
commit d8e19f99d3483adb01c6269dd5775ba8ecf1870a
Author: Xiong Zhang <xiong.y.zhang@xxxxxxxxx>
Date: Thu Aug 13 18:00:12 2015 +0800
drm/i915/skl: Adding DDI_E power well domain
From B spec, DDI_E port belong to PowerWell 2, but
DDI_E share the powerwell_req/staus register bit with
DDI_A which belong to DDI_A_E_POWER_WELL.
In order to communicate with the connector on DDI-E, both
DDI_A_E_POWER_WELL and POWER_WELL_2 must be enabled.
Currently intel_dp_power_get(DDI_E) only enable
DDI_A_E_POWER_WELL, this patch will not only enable
DDI_a_E_POWER_WELL but also enable POWER_WELL_2.
This patch also fix the DDI-E hotplug function.
Signed-off-by: Xiong Zhang <xiong.y.zhang@xxxxxxxxx>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit d76f41982f2fc88492efd96c7c3178044f32e125
Author: Anatol Pomozov <anatol.pomozov@xxxxxxxxx>
Date: Mon Aug 31 08:24:23 2015 -0700
ASoC: Document snd-soc-dummy-dai purpose
Signed-off-by: Anatol Pomozov <anatol.pomozov@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 7040c399aea2b0213a9aefd73e507369a6d641d6
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Mon Aug 31 11:15:05 2015 -0400
drm/radeon/native: Send out the full AUX address
AUX addresses are 20 bits long. Send out the entire address instead of
just the low 16 bits.
Port of:
drm/radeon/atom: Send out the full AUX address
to radeon non-atom aux path
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 3f8340cc72c9a1a4b49bce7802afd7f248400ef5
Author: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Date: Thu Aug 27 17:23:31 2015 +0300
drm/radeon/atom: Send out the full AUX address
AUX addresses are 20 bits long. Send out the entire address instead of
just the low 16 bits.
Cc: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: "Christian König" <christian.koenig@xxxxxxx>
Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 477ec3283c324d16e8da07a8d8a4a367e31b6eab
Author: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Date: Thu Aug 6 15:51:39 2015 +0800
drm/i915: eDP can be present on DDI-E
Enable eDP on DDI-E.
Also let's remove duplicated definitions to avoid later confusion.
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Reviewed-by: Xiong Zhang <xiong.y.zhang@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 1c00038c765561c08fd942d08579fa860e604f31
Merge: 44e98ed 672cfee
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 08:34:13 2015 -0700
Merge tag 'char-misc-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc driver patches from Greg KH:
"Here's the "big" char/misc driver update for 4.3-rc1.
Not much really interesting here, just a number of little changes all
over the place, and some nice consolidation of the nvmem drivers to a
common framework. As usual, the mei drivers stand out as the largest
"churn" to handle new devices and features in their hardware.
All have been in linux-next for a while with no issues"
* tag 'char-misc-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (136 commits)
auxdisplay: ks0108: initialize local parport variable
extcon: palmas: Fix build break due to devm_gpiod_get_optional API
change
extcon: palmas: Support GPIO based USB ID detection
extcon: Fix signedness bugs about break error handling
extcon: Drop owner assignment from i2c_driver
extcon: arizona: Simplify pdata symantics for micd_dbtime
extcon: arizona: Declare 3-pole jack if we detect open circuit on mic
extcon: Add exception handling to prevent the NULL pointer access
extcon: arizona: Ensure variables are set for headphone detection
extcon: arizona: Use gpiod inteface to handle micd_pol_gpio gpio
extcon: arizona: Add basic microphone detection DT/ACPI bindings
extcon: arizona: Update to use the new device properties API
extcon: palmas: Remove the mutually_exclusive array
extcon: Remove optional print_state() function pointer of struct
extcon_dev
extcon: Remove duplicate header file in extcon.h
extcon: max77843: Clear IRQ bits state before request IRQ
toshiba laptop: replace ioremap_cache with ioremap
misc: eeprom: max6875: clean up max6875_read()
misc: eeprom: clean up eeprom_read()
misc: eeprom: 93xx46: clean up eeprom_93xx46_bin_read/write
...
commit 2800e4c228b8961c4da1a4925cc20c16e623851b
Author: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Date: Fri Aug 7 17:35:21 2015 -0700
drm/i915/skl: Enable DDI-E
There are OEMs using DDI-E out there,
so let's enable it.
Unfortunately there is no detection bit for DDI-E
So we need to rely on VBT for that.
I also need to give credits to Xiong since before seing
his approach to check info->support_* I was creating an ugly
vbt->ddie_sfuse_strap in order to propagate the ddi presence info
v2: Rebased as last patch in the series. since all other patches
in this series are needed for anything working propperly on DDI-E.
Credits-to: "Zhang, Xiong Y" <xiong.y.zhang@xxxxxxxxx>
Cc: "Zhang, Xiong Y" <xiong.y.zhang@xxxxxxxxx>
Reviewed-by: Xiong Zhang <xiong.y.zhang@xxxxxxxxx>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 44e98edcd11a48619b342d8f442d447b094ab2fc
Merge: 64291f7 4d283ec
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 08:27:44 2015 -0700
Merge tag 'kvm-4.3-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull kvm updates from Paolo Bonzini:
"A very small release for x86 and s390 KVM.
- s390: timekeeping changes, cleanups and fixes
- x86: support for Hyper-V MSRs to report crashes, and a bunch of
cleanups.
One interesting feature that was planned for 4.3 (emulating the local
APIC in kernel while keeping the IOAPIC and 8254 in userspace) had to
be delayed because Intel complained about my reading of the manual"
* tag 'kvm-4.3-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (42
commits)
x86/kvm: Rename VMX's segment access rights defines
KVM: x86/vPMU: Fix unnecessary signed extension for AMD PERFCTRn
kvm: x86: Fix error handling in the function kvm_lapic_sync_from_vapic
KVM: s390: Fix assumption that kvm_set_irq_routing is always run
successfully
KVM: VMX: drop ept misconfig check
KVM: MMU: fully check zero bits for sptes
KVM: MMU: introduce is_shadow_zero_bits_set()
KVM: MMU: introduce the framework to check zero bits on sptes
KVM: MMU: split reset_rsvds_bits_mask_ept
KVM: MMU: split reset_rsvds_bits_mask
KVM: MMU: introduce rsvd_bits_validate
KVM: MMU: move FNAME(is_rsvd_bits_set) to mmu.c
KVM: MMU: fix validation of mmio page fault
KVM: MTRR: Use default type for non-MTRR-covered gfn before WARN_ON
KVM: s390: host STP toleration for VMs
KVM: x86: clean/fix memory barriers in irqchip_in_kernel
KVM: document memory barriers for kvm->vcpus/kvm->online_vcpus
KVM: x86: remove unnecessary memory barriers for shared MSRs
KVM: move code related to KVM_SET_BOOT_CPU_ID to x86
KVM: s390: log capability enablement and vm attribute changes
...
commit 11c1b657c42f65c43f866b611956ef0a10bedafc
Author: Xiong Zhang <xiong.y.zhang@xxxxxxxxx>
Date: Mon Aug 17 16:04:04 2015 +0800
drm/i915: Enable HDMI on DDI-E
DDI-E doesn't have the correspondent GMBUS pin.
We rely on VBT to tell us which one it being used instead.
The DVI/HDMI on shared port couldn't exist.
This patch isn't tested without hardware wchich has HDMI
on DDI-E.
v2: fix trailing whitespace
v3: MISSING_CASE take place of BUG()
Signed-off-by: Xiong Zhang <xiong.y.zhang@xxxxxxxxx>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 54875571bbfde00fc63741715c531cbb5246c3b2
Author: Imre Deak <imre.deak@xxxxxxxxx>
Date: Tue Jun 30 17:06:47 2015 +0300
drm/i915: apply the PCI_D0/D3 hibernation workaround everywhere on pre
GEN6
commit da2bc1b9db3351addd293e5b82757efe1f77ed1d
Author: Imre Deak <imre.deak@xxxxxxxxx>
Date: Thu Oct 23 19:23:26 2014 +0300
drm/i915: add poweroff_late handler
introduced a regression on old platforms during hibernation. A workaround
was
added in
commit ab3be73fa7b43f4c3648ce29b5fd649ea54d3adb
Author: Imre Deak <imre.deak@xxxxxxxxx>
Date: Mon Mar 2 13:04:41 2015 +0200
drm/i915: gen4: work around hang during hibernation
using an explicit blacklist for the GENs/BIOS vendors where the issue was
reported. Later there we had reports of the same failure on platforms not
on
this list.
To my best knowledge the correct thing to do is still to put the device
to PCI
D3 state during hibernation, see [1] and [2] for the reasons. This also
aligns
with our future plans to unify more the runtime and system suspend/resume
paths. Since an exact blacklist seems to be impractical (multiple GENs and
BIOS vendors are affected) apply the workaround on everything pre GEN6.
[1]
http://lists.freedesktop.org/archives/intel-gfx/2015-February/060710.html
[2] https://lkml.org/lkml/2015/6/22/274
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=95061
Reported-by: Ilya Tumaykin <itumaykin@xxxxxxxxx>
Reported-by: Dirk Griesbach <spamthis@xxxxxxxxxx>
Reported-by: Pavel Machek <pavel@xxxxxx>
Reported-by: Mikko Rapeli <mikko.rapeli@xxxxxx>
Tested-by: Mikko Rapeli <mikko.rapeli@xxxxxx>
Reported-by: Paul Bolle <pebolle@xxxxxxxxxx>
CC: stable@xxxxxxxxxxxxxxx
Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit d14e7b6d1d8747826cb900db852351c550e00fdd
Author: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 19:37:29 2015 +0300
drm/i915: Check DP link status on long hpd too
We are no longer checkling the DP link status on long hpd. We used to do
that from the .hot_plug() handler, but it was removed when MST got
introduced.
If there's no userspace we now fail to retrain the link if the sink
power is toggled (or cable yanked and replugged), meaning the user is
left staring at a blank screen. With the retraining put back that should
be fixed.
Also remove the leftover comment that referred to the old retraining
from .hot_plug().
Fixes a regression introduced in:
commit 0e32b39ceed665bfa4a77a4bc307b6652b991632
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri May 2 14:02:48 2014 +1000
drm/i915: add DP 1.2 MST support (v0.7)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89453
Tested-by: Palmer Dabbelt <palmer@xxxxxxxxxxx>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91407
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89461
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89594
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85641
Cc: Dave Airlie <airlied@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 6bd3c6f75e0f9baddbf1196a7e3fceabb50c7e3c
Author: Maciej S. Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 31 17:07:12 2015 +0200
ASoC: fsl-asoc-card: put ASRC OF node in case of unknown device
In case of unknown DT compatible device the ASRC OF node
possibly acquired earlier by of_parse_phandle() has
to be put before returning from probe method.
Signed-off-by: Maciej Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit f0a515780393dffbb363e6d1567da46af6f3c5f3
Author: Sasha Levin <sasha.levin@xxxxxxxxxx>
Date: Fri Aug 28 07:06:58 2015 -0400
tracing: Don't make assumptions about length of string on task rename
While the dest comm string size is assured to be at least TASK_COMM_LEN
long,
doing a memcpy() also adds the assumption that the source is at least that
long as well, which isn't assured, and isn't true in cases such as:
set_task_comm(worker->task, "kworker/dying");
This leads to accessing invalid memory.
Link:
http://lkml.kernel.org/r/1440760018-1557-1-git-send-email-sasha.levin@xxxxxxxxxx
Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
commit 3d4fe182003bcde778e29e84c14c0c4bb70a452e
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Mon Aug 31 21:18:58 2015 +0800
spi: Mediatek: Document devicetree bindings update for spi bus
This patch updates spi bindings, fixs clock usage description.
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit adcbcfea15d62fab5ba40ac28f9d2a590cc5e5e8
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Mon Aug 31 21:18:57 2015 +0800
spi: mediatek: fix spi clock usage error
spi clock manages flow:
CLK_TOP_SYSPLL3_D2 ---> CLK_TOP_SPI_SEL ---> CLK_PERI_SPI0
(source clock) (clock mux) (clock gate)
spi driver should choose source clock by clock mux, then enable
clock gate.
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit ca9f26a27949ba3b295e4f0841c0bec9ef440141
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Mon Aug 31 21:18:56 2015 +0800
spi: mediatek: remove clk_disable_unprepare()
This patch removes clk_disable_unprepare() in mtk_spi_remove().
clk_disable_prepare/unprepare must be balance, spi-clk is disabled
in mtk_spi_probe, so not needs to disable again.
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 08ceab9d875824f8b389530e830349d5d6c4e582
Merge: 22c103c 9193132
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Mon Aug 31 16:25:22 2015 +0200
Merge tag 'asoc-v4.2-rc8' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Updates for v4.3
Not many updates to the core here, but an awful lot of driver updates
this time round:
- Factoring out of AC'97 reset code into the core
- New drivers for Cirrus CS4349, GTM601, InvenSense ICS43432, Realtek
RT298 and ST STI controllers.
- Machine drivers for Rockchip systems with MAX98090 and RT5645 and
RT5650.
- Initial driver support for Intel Skylake devices.
- A large number of cleanups for Lars-Peter Clausen and Axel Lin.
commit c5992f610f78e6c9d0a78e8fef1066ad640e17e8
Merge: c92ec7c f682c4f 98c7863 bf96283
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Mon Aug 31 14:45:45 2015 +0100
Merge remote-tracking branches 'spi/topic/ti-qspi', 'spi/topic/xcomm' and
'spi/topic/xlp' into spi-next
commit c92ec7c7ae99a371bbc69f0258888a0328ba4838
Merge: 2ca0a9d ed425dc 65598c1 fe78d0b 89a6356 eca2ebc
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Mon Aug 31 14:45:41 2015 +0100
Merge remote-tracking branches 'spi/topic/s3c64xx', 'spi/topic/sg',
'spi/topic/sh-msiof', 'spi/topic/spidev' and 'spi/topic/stats' into spi-next
commit 2ca0a9d80c3a2cd3917b768080cce7f59b9bc490
Merge: 18c558e 1529332 757fe8d cb76b1c 99622f5 385a9c8
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Mon Aug 31 14:45:36 2015 +0100
Merge remote-tracking branches 'spi/topic/mtk', 'spi/topic/pxa2xx',
'spi/topic/qspi', 'spi/topic/rockchip' and 'spi/topic/s3c24xx' into spi-next
commit 18c558ec748b13048ae51681f7da8248ddcb7d1c
Merge: 9d05943 c4fe57f 37c5db7 93e3a9e 1f2112a
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Mon Aug 31 14:45:32 2015 +0100
Merge remote-tracking branches 'spi/topic/dw', 'spi/topic/fsl-espi',
'spi/topic/img-spfi' and 'spi/topic/mpc512x-psc' into spi-next
commit 9d05943e79cc54a9d8ef8196900d7cca9e5ca039
Merge: 8e42ac8 bdbbd38 ca861dd f4d8622 1b0838b
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Mon Aug 31 14:45:29 2015 +0100
Merge remote-tracking branches 'spi/topic/atmel', 'spi/topic/bcm2835',
'spi/topic/bcm63xx-hsspi' and 'spi/topic/davinci' into spi-next
commit 8e42ac814c63dd5c5e39bbbfbc9c6578e19c765f
Merge: bc64509 c37f45b
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Mon Aug 31 14:45:28 2015 +0100
Merge remote-tracking branch 'spi/topic/dma' into spi-next
commit bc6450994976f26bbde656b1994f95b955bdabfc
Merge: af21121 63ab645
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Mon Aug 31 14:45:27 2015 +0100
Merge remote-tracking branch 'spi/topic/core' into spi-next
commit af211211e39f59575854d5976a4e301c8c21d4bc
Merge: c13dcf9 43a0da2 26a67ec 9176c66 5f74db1 38d6211 7434684
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Mon Aug 31 14:45:23 2015 +0100
Merge remote-tracking branches 'spi/fix/bcm2835', 'spi/fix/bitbang',
'spi/fix/img-spfi', 'spi/fix/omap2-mcspi', 'spi/fix/orion' and 'spi/fix/xilinx'
into spi-linus
commit fe78d0b7691c02744004b15f6979b3f106464bc4
Author: Koji Matsuoka <koji.matsuoka.xm@xxxxxxxxxxx>
Date: Mon Jun 15 02:25:05 2015 +0900
spi: sh-msiof: Fix FIFO size to 64 word from 256 word
The upper limit of Tx/Rx FIFO size is 64 word by the
specification of H/W. This patch corrects to 64 word from 256 word.
Signed-off-by: Koji Matsuoka <koji.matsuoka.xm@xxxxxxxxxxx>
Signed-off-by: Yoshihiro Kaneko <ykaneko0929@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 17649c90ff4c5246bb4babf6260029968a6d119d
Author: Sergey SENOZHATSKY <sergey.senozhatsky.work@xxxxxxxxx>
Date: Mon Aug 31 18:54:58 2015 +0900
regmap: fix a NULL pointer dereference in __regmap_init
__regmap_init() may receive a NULL `struct regmap_bus *bus' pointer,
for example, from snd_hdac_regmap_init(), and it make sure that it
does not NULL deference `bus`, except around ->max_raw_read and
->max_raw_write initialisation. Add missing check.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit d5b98eb12420ce856caaf57dc5256eedc56a3747
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Fri Aug 28 20:04:53 2015 +0100
regmap: Support bulk reads for devices without raw formatting
When doing a bulk read from a device which lacks raw I/O support we fall
back to doing register at a time reads but we still use the raw
formatters in order to render the data into the word size used by the
device (since bulk reads still operate on the device word size rather
than unsigned ints). This means that devices without raw formatting
such as those that provide reg_read() are not supported. Provide
handling for them by copying the values read into native endian values
of the appropriate size.
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 2d89a1d3c9ff8ceb115f001e66cff9788338ca47
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 31 02:05:47 2015 -0700
NFSv4.1/pNFS: Don't request a minimal read layout beyond the end of file
If we have a read layout, then sanity check the minimal layout length
so that it does not extend beyond the end of file.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 21b874c873b5019db8bb4b4f6aa929c4bac0a398
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 31 01:19:22 2015 -0700
NFSv4.1/pnfs: Handle LAYOUTGET return values correctly
According to RFC5661 section 18.43.3, if the server cannot satisfy
the loga_minlength argument to LAYOUTGET, there are 2 cases:
1) If loga_minlength == 0, it returns NFS4ERR_LAYOUTTRYLATER
2) If loga_minlength != 0, it returns NFS4ERR_BADLAYOUT
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 4ae93560b11cb2b57ea5732d442458694ab0c168
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 31 01:25:11 2015 -0700
NFSv4.1/pnfs: Don't ask for a read layout for an empty file.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit bac2e4a96d1c0bcce5e9654dcc902f75576b9b03
Merge: 02b643b 2c07144
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Mon Aug 31 10:25:46 2015 +0200
Merge tag 'perf-core-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvement and fixes from Arnaldo Carvalho de Melo:
User visible changes:
- Add new compaction-times python script. (Tony Jones)
- Make the --[no-]-demangle/--[no-]-demangle-kernel command line
options available in 'perf script' too. (Mark Drayton)
- Allow for negative numbers in libtraceevent's print format,
fixing up misformatting in some tracepoints. (Steven Rostedt)
Infrastructure changes:
- perf_env/perf_evlist changes to allow accessing the data
structure with the environment where some perf data was
collected in functions not necessarily related to perf.data
file processing. (Kan Liang)
- Cleanups for the tracepoint definition location paths routines. (Jiri
Olsa)
- Introduce sysfs/filename__sprintf_build_id, removing code
duplication. (Masami Hiramatsu)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 02b643b643254ec79b5f9aaa143e10be68eabdab
Merge: d1ee8bc 4c09e0d
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Mon Aug 31 10:25:26 2015 +0200
Merge branch 'perf/urgent' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 4c09e0d6ba65507a0ee0ca9abc5335e4f7bd7404
Merge: 64291f7 601083c
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Mon Aug 31 10:24:24 2015 +0200
Merge tag 'perf-urgent-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/urgent fix from Arnaldo Carvalho de Melo:
- Use index, not CPU id, to find core/pkg id in 'perf stat' (Kan Liang)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 71f8a4b81d040b3d094424197ca2f1bf811b1245
Author: Jialing Fu <jlfu@xxxxxxxxxxx>
Date: Fri Aug 28 11:13:09 2015 +0800
mmc: core: fix race condition in mmc_wait_data_done
The following panic is captured in ker3.14, but the issue still exists
in latest kernel.
---------------------------------------------------------------------
[ 20.738217] c0 3136 (Compiler) Unable to handle kernel NULL pointer
dereference
at virtual address 00000578
......
[ 20.738499] c0 3136 (Compiler) PC is at
_raw_spin_lock_irqsave+0x24/0x60
[ 20.738527] c0 3136 (Compiler) LR is at
_raw_spin_lock_irqsave+0x20/0x60
[ 20.740134] c0 3136 (Compiler) Call trace:
[ 20.740165] c0 3136 (Compiler) [<ffffffc0008ee900>]
_raw_spin_lock_irqsave+0x24/0x60
[ 20.740200] c0 3136 (Compiler) [<ffffffc0000dd024>] __wake_up+0x1c/0x54
[ 20.740230] c0 3136 (Compiler) [<ffffffc000639414>]
mmc_wait_data_done+0x28/0x34
[ 20.740262] c0 3136 (Compiler) [<ffffffc0006391a0>]
mmc_request_done+0xa4/0x220
[ 20.740314] c0 3136 (Compiler) [<ffffffc000656894>]
sdhci_tasklet_finish+0xac/0x264
[ 20.740352] c0 3136 (Compiler) [<ffffffc0000a2b58>]
tasklet_action+0xa0/0x158
[ 20.740382] c0 3136 (Compiler) [<ffffffc0000a2078>]
__do_softirq+0x10c/0x2e4
[ 20.740411] c0 3136 (Compiler) [<ffffffc0000a24bc>] irq_exit+0x8c/0xc0
[ 20.740439] c0 3136 (Compiler) [<ffffffc00008489c>]
handle_IRQ+0x48/0xac
[ 20.740469] c0 3136 (Compiler) [<ffffffc000081428>]
gic_handle_irq+0x38/0x7c
----------------------------------------------------------------------
Because in SMP, "mrq" has race condition between below two paths:
path1: CPU0: <tasklet context>
static void mmc_wait_data_done(struct mmc_request *mrq)
{
mrq->host->context_info.is_done_rcv = true;
//
// If CPU0 has just finished "is_done_rcv = true" in path1, and at
// this moment, IRQ or ICache line missing happens in CPU0.
// What happens in CPU1 (path2)?
//
// If the mmcqd thread in CPU1(path2) hasn't entered to sleep mode:
// path2 would have chance to break from wait_event_interruptible
// in mmc_wait_for_data_req_done and continue to run for next
// mmc_request (mmc_blk_rw_rq_prep).
//
// Within mmc_blk_rq_prep, mrq is cleared to 0.
// If below line still gets host from "mrq" as the result of
// compiler, the panic happens as we traced.
wake_up_interruptible(&mrq->host->context_info.wait);
}
path2: CPU1: <The mmcqd thread runs mmc_queue_thread>
static int mmc_wait_for_data_req_done(...
{
...
while (1) {
wait_event_interruptible(context_info->wait,
(context_info->is_done_rcv ||
context_info->is_new_req));
static void mmc_blk_rw_rq_prep(...
{
...
memset(brq, 0, sizeof(struct mmc_blk_request));
This issue happens very coincidentally; however adding mdelay(1) in
mmc_wait_data_done as below could duplicate it easily.
static void mmc_wait_data_done(struct mmc_request *mrq)
{
mrq->host->context_info.is_done_rcv = true;
+ mdelay(1);
wake_up_interruptible(&mrq->host->context_info.wait);
}
At runtime, IRQ or ICache line missing may just happen at the same place
of the mdelay(1).
This patch gets the mmc_context_info at the beginning of function, it can
avoid this race condition.
Signed-off-by: Jialing Fu <jlfu@xxxxxxxxxxx>
Tested-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>
Fixes: 2220eedfd7ae ("mmc: fix async request mechanism ....")
Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 01e2dae991771adb1257eb5cd3cecfda1aa09ba9
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Mon Aug 31 08:56:04 2015 +0200
Revert "gpio: extraxfs: fix returnvar.cocci warnings"
This reverts commit 5e22ec019823b0204720e1ad9a5866c638332b3a.
commit 80ec1927b102480f89436e7d7f961a263e916a44
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sun Aug 30 22:40:44 2015 -0700
ipv4: Fix 32-bit build.
net/ipv4/af_inet.c: In function 'snmp_get_cpu_field64':
>> net/ipv4/af_inet.c:1486:26: error: 'offt' undeclared (first use in
this function)
v = *(((u64 *)bhptr) + offt);
^
net/ipv4/af_inet.c:1486:26: note: each undeclared identifier is
reported only once for each function it appears in
net/ipv4/af_inet.c: In function 'snmp_fold_field64':
>> net/ipv4/af_inet.c:1499:39: error: 'offct' undeclared (first use in
this function)
res += snmp_get_cpu_field(mib, cpu, offct, syncp_offset);
^
>> net/ipv4/af_inet.c:1499:10: error: too many arguments to function
'snmp_get_cpu_field'
res += snmp_get_cpu_field(mib, cpu, offct, syncp_offset);
^
net/ipv4/af_inet.c:1455:5: note: declared here
u64 snmp_get_cpu_field(void __percpu *mib, int cpu, int offt)
^
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0ef707700f1cef2357ce655fc86a4de5e41fa4b5
Author: Ken-ichirou MATSUZAWA <chamaken@xxxxxxxxx>
Date: Mon Aug 31 07:54:49 2015 +0900
netlink: rx mmap: fix POLLIN condition
Poll() returns immediately after setting the kernel current frame
(ring->head) to SKIP from user space even though there is no new
frame. And in a case of all frames is VALID, user space program
unintensionally sets (only) kernel current frame to UNUSED, then
calls poll(), it will not return immediately even though there are
VALID frames.
To avoid situations like above, I think we need to scan all frames
to find VALID frames at poll() like netlink_alloc_skb(),
netlink_forward_ring() finding an UNUSED frame at skb allocation.
Signed-off-by: Ken-ichirou MATSUZAWA <chamas@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 793768f55c218a260015fe2029ae3d84676cae03
Merge: ef34c0f d77a238
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sun Aug 30 21:54:13 2015 -0700
Merge branch 'thunderx-features-fixes'
Aleksey Makarov says:
====================
net: thunderx: New features and fixes
v2:
- The unused affinity_mask field of the structure cmp_queue
has been deleted. (thanks to David Miller)
- The unneeded initializers have been dropped. (thanks to Alexey Klimov)
- The commit message "net: thunderx: Rework interrupt handling"
has been fixed. (thanks to Alexey Klimov)
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d77a2384988fd397cf4f71417b9d971aa435758d
Author: Sunil Goutham <sgoutham@xxxxxxxxxx>
Date: Sun Aug 30 12:29:16 2015 +0300
net: thunderx: Support for internal loopback mode
Support for setting VF's corresponding BGX LMAC in internal
loopback mode. This mode can be used for verifying basic HW
functionality such as packet I/O, RX checksum validation,
CQ/RBDR interrupts, stats e.t.c. Useful when DUT has no external
network connectivity.
'loopback' mode can be enabled or disabled via ethtool.
Note: This feature is not supported when no of VFs enabled are
morethan no of physical interfaces i.e active BGX LMACs
Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxx>
Signed-off-by: Aleksey Makarov <aleksey.makarov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 92dc87697e6a71675a9e9eec04ebecd8cf4837a3
Author: Sunil Goutham <sgoutham@xxxxxxxxxx>
Date: Sun Aug 30 12:29:15 2015 +0300
net: thunderx: Support for upto 96 queues for a VF
This patch adds support for handling multiple qsets assigned to a
single VF. There by increasing no of queues from earlier 8 to max
no of CPUs in the system i.e 48 queues on a single node and 96 on
dual node system. User doesn't have option to assign which Qsets/VFs
to be merged. Upon request from VF, PF assigns next free Qsets as
secondary qsets. To maintain current behavior no of queues is kept
to 8 by default which can be increased via ethtool.
If user wants to unbind NICVF driver from a secondary Qset then it
should be done after tearing down primary VF's interface.
Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxx>
Signed-off-by: Aleksey Makarov <aleksey.makarov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Robert Richter <rrichter@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 39ad6eea6c1a01b69abb1102a767697fb9349830
Author: Sunil Goutham <sgoutham@xxxxxxxxxx>
Date: Sun Aug 30 12:29:14 2015 +0300
net: thunderx: Rework interrupt handling
Rework interrupt handler to avoid checking IRQ affinity of
CQ interrupts. Now separate handlers are registered for each IRQ
including RBDR. Register interrupt handlers for only those
which are being used. Add nicvf_dump_intr_status() and use it
in irq handlers.
Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxx>
Signed-off-by: Aleksey Makarov <aleksey.makarov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit aa2e259b474a4f52ecc9f6e0d444547de0aac4b2
Author: Sunil Goutham <sgoutham@xxxxxxxxxx>
Date: Sun Aug 30 12:29:13 2015 +0300
net: thunderx: Support for HW VLAN stripping
This patch configures HW to strip 802.1Q header if found in a
receiving packet. The stripped VLAN ID and TCI information is
passed on to software via CQE_RX. Also sets netdev's 'vlan_features'
so that other HW offload features can be used for tagged packets.
This offload feature can be enabled or disabled via ethtool.
Network stack normally ignores RPS for 802.1Q packets and hence low
throughput. With this offload enabled throughput for tagged packets
will be almost same as normal packets.
Note: This patch doesn't enable HW VLAN insertion for transmit packets.
Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxx>
Signed-off-by: Aleksey Makarov <aleksey.makarov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 38bb5d4f4f988c98035fca003138dd84471432f2
Author: Sunil Goutham <sgoutham@xxxxxxxxxx>
Date: Sun Aug 30 12:29:12 2015 +0300
net: thunderx: Receive hashing HW offload support
Adding support for receive hashing HW offload by using RSS_ALG
and RSS_TAG fields of CQE_RX descriptor. Also removed dependency
on minimum receive queue count to configure RSS so that hash is
always generated.
This hash is used by RPS logic to distribute flows across multiple
CPUs. Offload can be disabled via ethtool.
Signed-off-by: Robert Richter <rrichter@xxxxxxxxxx>
Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxx>
Signed-off-by: Aleksey Makarov <aleksey.makarov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6051cba77c1c768d954cf9e423c44bcb85b9adb8
Author: Sunil Goutham <sgoutham@xxxxxxxxxx>
Date: Sun Aug 30 12:29:11 2015 +0300
net: thunderx: mailboxes: remove code duplication
Use the nicvf_send_msg_to_pf() function in the mailbox code.
Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxx>
Signed-off-by: Robert Richter <rrichter@xxxxxxxxxx>
Signed-off-by: Aleksey Makarov <aleksey.makarov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a2dc5dedbbb32d082a9b6edf8793734dbfd59315
Author: Sunil Goutham <sgoutham@xxxxxxxxxx>
Date: Sun Aug 30 12:29:10 2015 +0300
net: thunderx: Add receive error stats reporting via ethtool
Added ethtool support to dump receive packet error statistics reported
in CQE. Also made some small fixes
Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxx>
Signed-off-by: Aleksey Makarov <aleksey.makarov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 322e5cc5c6c03584ff9362357fc1448b5e442e9e
Author: Aleksey Makarov <aleksey.makarov@xxxxxxxxxxxxxxxxxx>
Date: Sun Aug 30 12:29:09 2015 +0300
net: thunderx: fix MAINTAINERS
The liquidio and thunder drivers have different maintainers.
Signed-off-by: Aleksey Makarov <aleksey.makarov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ef34c0f6c18b463e644929e300473c80d4157896
Merge: 06fb4e7 a3a7737
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sun Aug 30 21:48:59 2015 -0700
Merge branch 'snmp-stat-aggregation'
Raghavendra K T says:
====================
Optimize the snmp stat aggregation for large cpus
While creating 1000 containers, perf is showing lot of time spent in
snmp_fold_field on a large cpu system.
The current patch tries to improve by reordering the statistics gathering.
Please note that similar overhead was also reported while creating
veth pairs https://lkml.org/lkml/2013/3/19/556
Changes in V4:
- remove 'item' variable and use IPSTATS_MIB_MAX to avoid sparse
warning (Eric) also remove 'item' parameter (Joe)
- add missing memset of padding.
Changes in V3:
- use memset to initialize temp buffer in leaf function. (David)
- use memcpy to copy the buffer data to stat instead of unalign_pu (Joe)
- Move buffer definition to leaf function __snmp6_fill_stats64() (Eric)
-
Changes in V2:
- Allocate the stat calculation buffer in stack. (Eric)
Setup:
160 cpu (20 core) baremetal powerpc system with 1TB memory
1000 docker containers was created with command
docker run -itd ubuntu:15.04 /bin/bash in loop
observation:
Docker container creation linearly increased from around 1.6 sec to 7.5
sec
(at 1000 containers) perf data showed, creating veth interfaces resulting
in
the below code path was taking more time.
rtnl_fill_ifinfo
-> inet6_fill_link_af
-> inet6_fill_ifla6_attrs
-> snmp_fold_field
proposed idea:
currently __snmp6_fill_stats64 calls snmp_fold_field that walks
through per cpu data to of an item (iteratively for around 36 items).
The patch tries to aggregate the statistics by going through
all the items of each cpu sequentially which is reducing cache
misses.
Performance of docker creation improved by around more than 2x
after the patch.
before the patch:
================
3f45ba571a42e925c4ec4aaee0e48d7610a9ed82a4c931f83324d41822cf6617
real 0m6.836s
user 0m0.095s
sys 0m0.011s
perf record -a docker run -itd ubuntu:15.04 /bin/bash
=======================================================
50.73% docker [kernel.kallsyms] [k] snmp_fold_field
9.07% swapper [kernel.kallsyms] [k] snooze_loop
3.49% docker [kernel.kallsyms] [k] veth_stats_one
2.85% swapper [kernel.kallsyms] [k] _raw_spin_lock
1.37% docker docker [.] backtrace_qsort
1.31% docker docker [.]
strings.FieldsFunc
cache-misses: 2.7%
after the patch:
=============
9178273e9df399c8290b6c196e4aef9273be2876225f63b14a60cf97eacfafb5
real 0m3.249s
user 0m0.088s
sys 0m0.020s
perf record -a docker run -itd ubuntu:15.04 /bin/bash
=======================================================
10.57% docker docker [.] scanblock
8.37% swapper [kernel.kallsyms] [k] snooze_loop
6.91% docker [kernel.kallsyms] [k] snmp_get_cpu_field
6.67% docker [kernel.kallsyms] [k] veth_stats_one
3.96% docker docker [.] runtime_MSpan_Sweep
2.47% docker docker [.] strings.FieldsFunc
cache-misses: 1.41 %
Please let me know if you have suggestions/comments.
Thanks Eric, Joe and David for the comments.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a3a773726c9f9ba2e87fd8ad8e36feff5f6ffd8e
Author: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Date: Sun Aug 30 11:29:42 2015 +0530
net: Optimize snmp stat aggregation by walking all the percpu data at once
Docker container creation linearly increased from around 1.6 sec to 7.5
sec
(at 1000 containers) and perf data showed 50% ovehead in snmp_fold_field.
reason: currently __snmp6_fill_stats64 calls snmp_fold_field that walks
through per cpu data of an item (iteratively for around 36 items).
idea: This patch tries to aggregate the statistics by going through
all the items of each cpu sequentially which is reducing cache
misses.
Docker creation got faster by more than 2x after the patch.
Result:
Before After
Docker creation time 6.836s 3.25s
cache miss 2.7% 1.41%
perf before:
50.73% docker [kernel.kallsyms] [k] snmp_fold_field
9.07% swapper [kernel.kallsyms] [k] snooze_loop
3.49% docker [kernel.kallsyms] [k] veth_stats_one
2.85% swapper [kernel.kallsyms] [k] _raw_spin_lock
perf after:
10.57% docker docker [.] scanblock
8.37% swapper [kernel.kallsyms] [k] snooze_loop
6.91% docker [kernel.kallsyms] [k] snmp_get_cpu_field
6.67% docker [kernel.kallsyms] [k] veth_stats_one
changes/ideas suggested:
Using buffer in stack (Eric), Usage of memset (David), Using memcpy in
place of unaligned_put (Joe).
Signed-off-by: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Acked-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c4c6bc314618f60ba69b0cbf93e506e4c38a11d2
Author: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Date: Sun Aug 30 11:29:41 2015 +0530
net: Introduce helper functions to get the per cpu data
Signed-off-by: Raghavendra K T <raghavendra.kt@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 06fb4e701b17e93366542e4cc57047e411136af7
Merge: 2573d78 f892a84
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sun Aug 30 21:45:01 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
commit 4a1e2feb9d246775dee0f78ed5b18826bae2b1c5
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Sun Aug 30 18:37:59 2015 -0700
NFSv4.1: Fix a protocol issue with CLOSE stateids
According to RFC5661 Section 18.2.4, CLOSE is supposed to return
the zero stateid. This means that nfs_clear_open_stateid_locked()
cannot assume that the result stateid will always match the 'other'
field of the existing open stateid when trying to determine a race
with a parallel OPEN.
Instead, we look at the argument, and check for matches.
Cc: stable@xxxxxxxxxxxxxxx # v4.0+
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 8f8dcb3f7fe4febbfa96e64d4ad47de958c5cc34
Author: Matt Turner <mattst88@xxxxxxxxx>
Date: Tue Aug 4 14:35:05 2015 -0700
alpha: select CONFIG_ARCH_USE_CMPXCHG_LOCKREF.
On Alpha we have spinlocks that are 32b in size and an efficient
cmpxchg64 implementation, so we qualify to make use of cmpxchg backed
lockrefs. Select the ARCH_USE_CMPXCHG_LOCKREF Kconfig symbol and provide
a trivial implementation of arch_spin_value_unlocked to satisfy the
lockref code.
Using Linus' simple testcase from
http://article.gmane.org/gmane.linux.file-systems/77466 on a dual CPU
ES47 system I see around an 8% gain:
N Min Max Median Avg Stddev
x 30 6194580 6295654 6272504 6272514 17694.232
+ 30 6731164 6786334 6767982 6764274 13738.863
Difference at 95.0% confidence
491760 +/- 8188.17
7.83992% +/- 0.130541%
(Student's t, pooled s = 15840.5)
Signed-off-by: Matt Turner <mattst88@xxxxxxxxx>
commit 879a37d00f1882b1e56a66e626af4194d592d257
Merge: 701078d 50002d4
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Aug 31 10:25:45 2015 +1000
Merge branch 'exynos-drm-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next
This is a second pull-request which adds last part of
atomic modeset/pageflip support, render node support,
clean-up, and fix-up.
* 'exynos-drm-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
drm/exynos: fix build warning to exynos_drm_gem.c
drm/exynos: Properly report supported formats for each device
drm/exynos: add render node support
drm/exynos: implement atomic_{begin/flush} of DECON
drm/exynos: remove legacy ->suspend()/resume()
drm/exynos: Enable atomic modesetting feature
drm/exynos: remove wait queue for pending page flip
drm/exynos: wait all planes updates to finish
drm/exynos: add atomic asynchronous commit
drm/exynos: fimd: only finish update if START == START_S
drm/exynos: add macro to get the address of START_S reg
drm/exynos: check for pending fb before finish update
drm/exynos: fimd: move window protect code to prepare/cleanup_plane
drm/exynos: add prepare and cleanup phases for planes
drm/exynos: fimd: unify call to exynos_drm_crtc_finish_pageflip()
drm/exynos: don't track enabled state at exynos_crtc
commit 701078d538e5b2bec95cbbc53cca71c120cd063f
Merge: d3e8ea5 26951ca
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Aug 31 10:06:22 2015 +1000
Merge tag 'drm-intel-next-fixes-2015-08-28' of
git://anongit.freedesktop.org/drm-intel into drm-next
Some i915 fixes headed for v4.3. SKL DDI-E is a wip, but here's the
first in a series.
* tag 'drm-intel-next-fixes-2015-08-28' of
git://anongit.freedesktop.org/drm-intel:
drm/i915/skl: enable DDI-E hotplug
drm/i915: Fix build warning on 32-bit
drm/i915/skl: Update DDI buffer translation programming.
drm/i915: Allow parsing of variable size child device entries from VBT
drm/i915: fix link rates reported for SKL
drm/i915: fix VBT parsing for SDVO child device mapping
commit d3e8ea50922d90aea473474bdcede34ce743e1a5
Merge: 92cffd5 2497ee7
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Aug 31 10:05:37 2015 +1000
Merge tag 'drm-amdkfd-next-fixes-2015-08-30' of
git://people.freedesktop.org/~gabbayo/linux into drm-next
Just one small fix before 4.3 merge window:
- Use linux/mman.h instead of uapi's mman-common.h inside the driver.
* tag 'drm-amdkfd-next-fixes-2015-08-30' of
git://people.freedesktop.org/~gabbayo/linux:
amdkfd: use <linux/mman.h> instead of <uapi/asm-generic/mman-common.h>
commit e1c30298ccab87151a0c4241fc5985c591598361
Author: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Date: Thu Aug 13 18:32:07 2015 +0300
IB/ucma: HW Device hot-removal support
Currently, IB/cma remove_one flow blocks until all user descriptor
managed by
IB/ucma are released. This prevents hot-removal of IB devices. This patch
allows IB/cma to remove devices regardless of user space activity. Upon
getting
the RDMA_CM_EVENT_DEVICE_REMOVAL event we close all the underlying HW
resources
for the given ucontext. The ucontext itself is still alive till its
explicit
destroying by its creator.
Running applications at that time will have some zombie device, further
operations may fail.
Signed-off-by: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Signed-off-by: Shachar Raindel <raindel@xxxxxxxxxxxx>
Reviewed-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit ae184ddeca5db6d60ba9067ba1c9e940fa01d400
Author: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Date: Thu Aug 13 18:32:06 2015 +0300
IB/mlx4_ib: Disassociate support
Implements the IB core disassociate_ucontext API. The driver detaches the
HW
resources for a given user context to prevent a dependency between
application
termination and device disconnecting. This is done by managing the VMAs
that
were mapped to the HW bars such as door bell and blueflame. When need to
detach
remap them to an arbitrary kernel page returned by the zap API.
Signed-off-by: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Signed-off-by: Jack Morgenstein <jackm@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 036b10635739ffd030246eedde3d67f724800177
Author: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Date: Thu Aug 13 18:32:05 2015 +0300
IB/uverbs: Enable device removal when there are active user space
applications
Enables the uverbs_remove_one to succeed despite the fact that there are
running IB applications working with the given ib device. This
functionality enables a HW device to be unbind/reset despite the fact that
there are running user space applications using it.
It exposes a new IB kernel API named 'disassociate_ucontext' which lets
a driver detaching its HW resources from a given user context without
crashing/terminating the application. In case a driver implemented the
above API and registered with ib_uverb there will be no dependency
between its
device to its uverbs_device. Upon calling remove_one of ib_uverbs the call
should return after disassociating the open HW resources without waiting
to
clients disconnecting. In case driver didn't implement this API there
will be no
change to current behaviour and uverbs_remove_one will return only when
last
client has disconnected and reference count on uverbs device became 0.
In case the lower driver device was removed any application will
continue working over some zombie HCA, further calls will ended with an
immediate error.
Signed-off-by: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Signed-off-by: Shachar Raindel <raindel@xxxxxxxxxxxx>
Reviewed-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 057aec0d23f750b27f0bb92d2606871f60417e0a
Author: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Date: Thu Aug 13 18:32:04 2015 +0300
IB/uverbs: Explicitly pass ib_dev to uverbs commands
Done in preparation for deploying RCU for the device removal
flow. Allows isolating the RCU handling to the uverb_main layer and
keeping the uverbs_cmd code as is.
Signed-off-by: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Signed-off-by: Shachar Raindel <raindel@xxxxxxxxxxxx>
Reviewed-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 35d4a0b63dc0c6d1177d4f532a9deae958f0662c
Author: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Date: Thu Aug 13 18:32:03 2015 +0300
IB/uverbs: Fix race between ib_uverbs_open and remove_one
Fixes: 2a72f212263701b927559f6850446421d5906c41 ("IB/uverbs: Remove
dev_table")
Before this commit there was a device look-up table that was protected
by a spin_lock used by ib_uverbs_open and by ib_uverbs_remove_one. When
it was dropped and container_of was used instead, it enabled the race
with remove_one as dev might be freed just after:
dev = container_of(inode->i_cdev, struct ib_uverbs_device, cdev) but
before the kref_get.
In addition, this buggy patch added some dead code as
container_of(x,y,z) can never be NULL and so dev can never be NULL.
As a result the comment above ib_uverbs_open saying "the open method
will either immediately run -ENXIO" is wrong as it can never happen.
The solution follows Jason Gunthorpe suggestion from below URL:
https://www.mail-archive.com/linux-rdma@xxxxxxxxxxxxxxx/msg25692.html
cdev will hold a kref on the parent (the containing structure,
ib_uverbs_device) and only when that kref is released it is
guaranteed that open will never be called again.
In addition, fixes the active count scheme to use an atomic
not a kref to prevent WARN_ON as pointed by above comment
from Jason.
Signed-off-by: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Signed-off-by: Shachar Raindel <raindel@xxxxxxxxxxxx>
Reviewed-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 03c40442a0e66fa52aec6733ea88804fe7d12c77
Author: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Date: Thu Aug 13 18:32:02 2015 +0300
IB/uverbs: Fix reference counting usage of event files
Fix the reference counting usage to be handled in the event file
creation/destruction function, instead of being done by the caller.
This is done for both async/non-async event files.
Based on Jason Gunthorpe report at https://www.mail-archive.com/
linux-rdma@xxxxxxxxxxxxxxx/msg24680.html:
"The existing code for this is broken, in ib_uverbs_get_context all
the error paths between ib_uverbs_alloc_event_file and the
kref_get(file->ref) are wrong - this will result in fput() which will
call ib_uverbs_event_close, which will try to do kref_put and
ib_unregister_event_handler - which are no longer paired."
Signed-off-by: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Signed-off-by: Shachar Raindel <raindel@xxxxxxxxxxxx>
Reviewed-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 7dd78647a2c2c224e376fc72797d411a3a0bb047
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 5 14:34:31 2015 -0600
IB/core: Make ib_dealloc_pd return void
The majority of callers never check the return value, and even if they
did, they can't do anything about a failure.
All possible failure cases represent a bug in the caller, so just
WARN_ON inside the function instead.
This fixes a few random errors:
net/rd/iw.c infinite loops while it fails. (racing with EBUSY?)
This also lays the ground work to get rid of error return from the
drivers. Most drivers do not error, the few that do are broken since
it cannot be handled.
Since uverbs can legitimately make use of EBUSY, open code the
check.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 03f6fb93fde24f01a940283bdf55024e576ee87d
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Mon Aug 10 17:09:36 2015 -0700
IB/srp: Create an insecure all physical rkey only if needed
The SRP initiator only needs this if the insecure register_always=N
performance optimization is enabled, or if FRWR/FMR is not supported
in the driver.
Do not create an all physical MR unless it is needed to support
either of those modes. Default register_always to true so the out of
the box configuration does not create an insecure all physical MR.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
[bvanassche: reworked and rebased this patch]
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 330179f2fa93c1c6c41a90c7deabc98e363018e5
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Mon Aug 10 17:09:05 2015 -0700
IB/srp: Register the indirect data buffer descriptor
Instead of always using the global rkey for the indirect data
buffer descriptor, register that descriptor with the HCA if
the kernel module parameter register_always has been set to Y.
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 002f15674c84fb4c38ed5237c1e7235e09c033f0
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Mon Aug 10 17:08:44 2015 -0700
IB/srp: Introduce srp_device.use_fmr
Introduce the variable srp_device.use_fmr. Leave out the dev->has_fr /
dev->has_fmr and ch->fr_pool / ch->fmr_pool checks since these are
redundant. This patch does not change any functionality but makes the
source code easier to read.
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 3ae95da8831e7bcf7b6da2b31cb4b50b3058f14e
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Mon Aug 10 17:08:18 2015 -0700
IB/srp: Remove use_mr argument from srp_map_sg_entry()
Move the srp_map_desc() call from inside srp_map_sg_entry() to
srp_map_sg() such that the use_mr argument can be removed from
srp_map_sg_entry().
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 0e0d3a480090d03f29e58dfd717960776f3416d9
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Mon Aug 10 17:07:46 2015 -0700
IB/srp: Remove the memory registration backtracking code
Mapping a discontiguous sg-list requires multiple memory regions
and hence can exhaust the memory region pool. The SRP initiator
already handles this by temporarily reducing the queue depth. This
means that it is safe to remove the memory registration backtracking
code. This patch has been tested with direct I/O sizes up to 256 MB.
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit f731ed62934ace0d3f5aa9ec557349171711be05
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Mon Aug 10 17:07:27 2015 -0700
IB/srp: Add memory descriptor array pointer range checking
Although most paths through which a request is submitted check
block layer parameters like the max_segments limit, these are
not checked when an SG_IO or direct I/O request is submitted.
Hence add a range check for the memory descriptor array pointer.
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 7e85c91970125cb16399c7d1cfedc943266eee49
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Mon Aug 10 17:06:57 2015 -0700
IB/srp: Use multiple registrations for large memory regions
Instead of using the global rkey for large memory regions, use
multiple registrations. See also the while (dma_len) loop further
down in srp_map_sg_entry().
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 186fbc6689a368364b7c9eb9d42d6f84b3079f65
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Mon Aug 10 17:06:29 2015 -0700
IB/srp: Re-enable FMR for non-page aligned buffers
During a discussion in 2011 nobody recalled why FMR was not used for
non-page aligned buffers (see also
http://thread.gmane.org/gmane.linux.drivers.rdma/7149). Re-enable FMR
for such buffers. For the reason why the srp_map_fmr() function needs
to be modified, see also patch "IB/srp: rework mapping engine to use
multiple FMR entries" (commit ID 8f26c9ff9cd0; January 2011).
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit e5580242aa8fab292579a1661463f7479275f7ff
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:22:26 2015 -0600
rds/ib: Remove ib_get_dma_mr calls
The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 2f31fa881fbe70808b945a6d23cae1ca8eadf1b3
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:22:25 2015 -0600
net/9p: Remove ib_get_dma_mr calls
The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Tested-by: Dominique Martinet <dominique.martinet@xxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 5a783956c2b90179b852dd58a2ee668f16dfe980
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:22:24 2015 -0600
ib_srpt: Remove ib_get_dma_mr calls
The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit e6bf5f48d2adc443689c5e627bcd559b00201e5c
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:22:22 2015 -0600
IB/srp: Use pd->local_dma_lkey
Replace all leys with pd->local_dma_lkey. This driver does not support
iWarp, so this is safe.
The insecure use of ib_get_dma_mr is thus isolated to an rkey, and will
have to be fixed separately.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Reviewed-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 34efc7dfbd88e4a232b1efa31c5e900606c84fca
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:22:21 2015 -0600
iser-target: Remove ib_get_dma_mr calls
The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 256b7ad27316525711dfa98b67e7c40cb28b1711
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:22:20 2015 -0600
IB/iser: Use pd->local_dma_lkey
Replace all leys with pd->local_dma_lkey. This driver does not support
iWarp, so this is safe.
The insecure use of ib_get_dma_mr is thus isolated to an rkey, and this
looks trivially fixed by forcing the use of registration in a future
patch.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit b37c788f595cd578524fb8f50d3bd2fff8b62bc3
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:22:19 2015 -0600
IB/mlx5: Remove ib_get_dma_mr calls
The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 7dd975762825e4c2b95df5e24759a9d6ad915c79
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:22:18 2015 -0600
IB/mlx4: Remove ib_get_dma_mr calls
The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 77b1f99660ed60694e1d0e3a63096c1f252debfd
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:22:17 2015 -0600
IB/ipoib: Remove ib_get_dma_mr calls
The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 4be90bc60df47f6268b594c4fb6c90f0ff2f519f
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:22:16 2015 -0600
IB/mad: Remove ib_get_dma_mr calls
The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 96249d70dd70496084c7ec1465ec449cd032955a
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 5 14:14:45 2015 -0600
IB/core: Guarantee that a local_dma_lkey is available
Every single ULP requires a local_dma_lkey to do anything with
a QP, so let us ensure one exists for every PD created.
If the driver can supply a global local_dma_lkey then use that, otherwise
ask the driver to create a local use all physical memory MR associated
with the new PD.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Sagi Grimberg <sagig@xxxxxxxxxxxxxxxxxx>
Acked-by: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Reviewed-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Tested-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 7332bed085c68fc76462583a1003c6dca2c31e11
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:33:06 2015 +0300
IB/iser: Chain all iser transaction send work requests
Chaning of send work requests benefits performance by
reducing the send queue lock contention (acquired in
ib_post_send) and saves us HW doorbells which is posted
only once.
Currently, in normal IO flows iser does not chain the CDB send
work request with the registration work request. Also in PI
flows, signature work requests are not chained as well.
Lets chain those and post only once.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 1b16c9894b63c8dfbc578ecf1186be4508b2c49e
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:33:05 2015 +0300
IB/iser: Add debug prints to the various memory registration methods
Easier to debug when we have the registration details.
This patch does not change any functionality.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Adir Lev <adirl@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit df749cdc45d9f97cb0a5e6ceab80e2e00ee9bf85
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:33:04 2015 +0300
IB/iser: Support up to 8MB data transfer in a single command
iser support up to 512KB data transfer in a single scsi command.
This means that larger IOs will split to different request. While
iser can easily saturate FDR/EDR wires, some arrays are fine tuned
for 1MB (or larger) IO sizes, hence add an option to support larger
transfers (up to 8MB) if the device allows it.
Given that a few target implementations don't support data transfers
of more than 512KB by default and the fact that larger IO sizes require
more resources, we introduce a module parameter to determine the
maximum number of 512B sectors in a single scsi command.
Users that are interested in larger transfers can change this value given
that the target supports larger transfers.
At the moment, iser works in 4K pages granularity, In a later stage
we will get it to work with system page size instead.
IO operations that consists of N pages will need a page vector
of size N+1 in case the first SG element contains an offset. Given
that some devices allocates memory regions in powers of 2, this
means that allocating a region with N+1 pages, will result in
region resources allocation of the next power of 2. Since we don't
want that to happen, in case we are in the limit of IO size supported
and the first SG element has an offset, we align the SG list using a
bounce buffer (which is OK given that this is not likely to happen a lot).
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit f8db651da29bcad213d43328ebf8ce8459f526a7
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:33:03 2015 +0300
IB/iser: Pass registration pool a size parameter
Hard coded for now. This will allow to allocate different
sized MRs depending on the IO size needed (and device
capabilities).
This patch does not change any functionality.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 32467c420bb68776ebaa53ddf6712e1dba7bb5da
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:33:02 2015 +0300
IB/iser: Unify fast memory registration flows
iser_reg_rdma_mem_[fastreg|fmr] share a lot of code, and
logically do the same thing other than the buffer registration
method itself (iser_fast_reg_mr vs. iser_fast_reg_fmr).
The DIF logic is not implemented in the FMR flow as there is no
existing device that supports FMRs and Signature feature.
This patch unifies the flow in a single routine iser_reg_rdma_mem
and just split to fmr/frwr for the buffer registration itself.
Also, for symmetry reasons, unify iser_unreg_rdma_mem (which will
call the relevant device specific unreg routine).
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Adir Lev <adirl@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 81722909c8f78ee2db62373a74ec2ecb709c112e
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:33:01 2015 +0300
IB/iser: Make reg_desc_get a per device routine
As for fmrs we will hold a single registration descriptor
as no need for multiple like in the frwr mode (descriptor
for each task). This change helps unifying the duplicate
registration code paths.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Adir Lev <adirl@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 7d0483c927f429c7aece47e730eaa91007577d99
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:33:00 2015 +0300
IB/iser: Rename iser_reg_page_vec to iser_fast_reg_fmr
Also, change a name of a local variable.
This patch does not change any functionality.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Adir Lev <adirl@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 2b3bf958103899a96d230c9f2e0d87606f08a7be
Author: Adir Lev <adirl@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:59 2015 +0300
IB/iser: Maintain connection fmr_pool under a single registration
descriptor
This will allow us to unify the memory registration code path between
the various methods which vary by the device capabilities. This change
will make it easier and less intrusive to remove fmr_pools from the
code when we'd want to.
The reason we use a single descriptor is to avoid taking a
redundant spinlock when working with FMRs.
We also change the signature of iser_reg_page_vec to make it match
iser_fast_reg_mr (and the future indirect registration method).
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Adir Lev <adirl@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 385ad87d4b637c1ebdb54bc93274fc2c267dfc16
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:58 2015 +0300
IB/iser: Introduce iser registration pool struct
Instead of having it a part of the connection structure,
have it be under a dedicated (embedded) structure in the
connection. A logical separation of the registration pool
and the connection structure.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Adir Lev <adirl@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit eb6ea8c36c90f022dd9603530286e0707a9c467b
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:57 2015 +0300
IB/iser: Move fastreg descriptor allocation to iser_create_fastreg_desc
Don't have the caller allocate the structure and worry about
freeing it in case the routine failed.
This patch does not change any functionality.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Adir Lev <adirl@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 48afbff673d3d2ff6c52342574392db504dae301
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:56 2015 +0300
IB/iser: Introduce iser_reg_ops
Move all the per-device function pointers to an easy
extensible iser_reg_ops structure that contains all
the iser registration operations.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 8c18ed03a95cb6c3543b0a9e0df5e9366baea5df
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:55 2015 +0300
IB/iser: Remove dead code in fmr_pool alloc/free
In the past the we always tried to allocate an fmr_pool
and if it failed on ENOSYS (not supported) then we continued
with dma mr. This is not the case anymore and if we tried to
allocate an fmr_pool then it is supported and we expect to succeed.
Also, the check if fmr_pool is allocated when free is called is
redundant as well as we are guaranteed it exists.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 5190cc2664972f2c51502e928fcb7a608dddab5f
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:54 2015 +0300
IB/iser: Rename struct fast_reg_descriptor -> iser_fr_desc
Avoid struct names without iser_ prefix.
This patch does not change any functionality.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit d711d81d6463ecf566b93810e16949f2d159aa50
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:53 2015 +0300
IB/iser: Introduce struct iser_reg_resources
Have fast_reg_descriptor hold struct iser_reg_resources
(mr, frpl, valid flag). This will be useful when the
actual buffer registration routines will be passed with
the needed registration resources (i.e. iser_reg_resources)
without being aware of their nature (i.e. data or protection).
In order to achieve this, we remove reg_indicators flags container
and place specific flags (mr_valid) within iser_reg_resources struct.
We also place the sig_mr_valid and sig_protcted flags in iser_pi_context.
This patch also modifies iser_fast_reg_mr to receive the
reg_resources instead of the fast_reg_descriptor and a data/protection
indicator.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Adir Lev <adirl@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit ea18f5d7777dc4fa9c18c4919281301cf4fd921a
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:52 2015 +0300
IB/iser: Remove an unneeded print for unaligned memory
We can do it in iser_aligned_data_len instead and
it will save us an argument that is passed to
fall_to_counce_buf just for the print.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit b9abd8d21d3a04903aefcb7742efe3390f2fac57
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:51 2015 +0300
IB/iser: Remove a redundant always-false condition
We always call iser_initialize_task_headers() and set
the header tx_sg.lkey to the device mr lkey, so no
point in checking it in iser_create_send_desc().
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 8d5944d80359e645feb2ebd069a6f4caf7825e40
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:50 2015 +0300
IB/iser: Fix possible bogus DMA unmapping
If iser_initialize_task_headers() routine failed before
dma mapping, we should not attempt to unmap in cleanup_task().
Fixes: 7414dde0a6c3a958e (IB/iser: Fix race between iser connection ...)
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 02816a8b8881f9dea68883c9b72672e87cb91d36
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:49 2015 +0300
IB/iser: Get rid of un-maintained counters
We don't update those anywhere in the code and they
seem pretty useless (no one seem to care about those).
qp_tx_queue_full: We never should get this
fmr_map_not_avail: We can never get to this
eh_abort_cnt: We don't monitor aborts
Go ahead and remove them.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit d16739055bd1f562ae4d83e69f7f7f1cefcfbe16
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:48 2015 +0300
IB/iser: Fix missing return status check in iser_send_data_out
Since commit "IB/iser: Fix race between iser connection teardown..."
iser_initialize_task_headers() might fail, so we need to check that.
Fixes: 7414dde0a6c3a958e (IB/iser: Fix race between iser connection ...)
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 1156cc80f8fc31f8c52740a9c8051afd8d70faf3
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:47 2015 +0300
IB/iser: Remove '.' from log message
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 74ce897b7c9be9f5913bbffafcac10f0871c503b
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:46 2015 +0300
IB/iser: Change minor assignments and logging prints
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit db0a6cbd21d6ece6587c157b3d183521bc8a2781
Author: Jenny Falkovich <jennyf@xxxxxxxxxxxx>
Date: Thu Aug 6 18:32:45 2015 +0300
IB/iser: Change some module parameters to be RO
While we're at it, use permission defines instead
of octal values and rearrange a little bit.
Signed-off-by: Jenny Derzhavetz <jennyf@xxxxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 2ca546b92a024d07adedd15b4c262b1c2c0786ec
Author: Kaike Wan <kaike.wan@xxxxxxxxx>
Date: Fri Aug 14 08:52:09 2015 -0400
IB/sa: Route SA pathrecord query through netlink
This patch routes a SA pathrecord query to netlink first and processes the
response appropriately. If a failure is returned, the request will be sent
through IB. The decision whether to route the request to netlink first is
determined by the presence of a listener for the local service netlink
multicast group. If the user-space local service netlink multicast group
listener is not present, the request will be sent through IB, just like
what is currently being done.
Signed-off-by: Kaike Wan <kaike.wan@xxxxxxxxx>
Signed-off-by: John Fleck <john.fleck@xxxxxxxxx>
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 5d2657708ec25b9fb3dd174443b1f647babcbe62
Author: Kaike Wan <kaike.wan@xxxxxxxxx>
Date: Fri Aug 14 08:52:08 2015 -0400
IB/sa: Allocate SA query with kzalloc
Replace kmalloc with kzalloc so that all uninitialized fields in SA query
will be zero-ed out to avoid unintentional consequence. This prepares the
SA query structure to accept new fields in the future.
Signed-off-by: Kaike Wan <kaike.wan@xxxxxxxxx>
Signed-off-by: John Fleck <john.fleck@xxxxxxxxx>
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit bc10ed7d3d19ff61427007b4d7bf98d3e57bb333
Author: Kaike Wan <kaike.wan@xxxxxxxxx>
Date: Fri Aug 14 08:52:07 2015 -0400
IB/core: Add rdma netlink helper functions
This patch adds a function to check if listeners for a netlink multicast
group are present. It also adds a function to receive netlink response
messages.
Signed-off-by: Kaike Wan <kaike.wan@xxxxxxxxx>
Signed-off-by: John Fleck <john.fleck@xxxxxxxxx>
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 6431eb87065ffd24dfc7c0b6954e80a4eb74e177
Author: Kaike Wan <kaike.wan@xxxxxxxxx>
Date: Fri Aug 14 08:52:06 2015 -0400
IB/netlink: Add defines for local service requests through netlink
This patch adds netlink defines for local service client, local service
group, local service operations, and related attributes.
Signed-off-by: Kaike Wan <kaike.wan@xxxxxxxxx>
Signed-off-by: John Fleck <john.fleck@xxxxxxxxx>
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit bc44bd1d864664f3658352c6aaaa02557d49165d
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Fri Aug 14 11:01:09 2015 -0700
IB/srp: Stop the scsi_eh_<n> and scsi_tmf_<n> threads if login fails
scsi_host_alloc() not only allocates memory for a SCSI host but also
creates the scsi_eh_<n> kernel thread and the scsi_tmf_<n> workqueue.
Stop these threads if login fails by calling scsi_host_put().
Reported-by: Konstantin Krotov <kkv@xxxxxxxx>
Fixes: fb49c8bbaae7 ("Remove an extraneous scsi_host_put() from an error
path")
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Cc: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Cc: Sebastian Parschauer <sebastian.riemer@xxxxxxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> #v3.19
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 713ef24e41757561c7f0bfc9bf4436f7e4a5b527
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Fri Jul 31 14:13:52 2015 -0700
IB/srp: Bump driver version and release date
Since version 1.0 e.g. scsi-mq has been added. Since this is
a significant change, bump the driver version and release date.
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Cc: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Cc: Sebastian Parschauer <sebastian.riemer@xxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit c257ea6f9f9aed0b173e0c2932bb8dac5612cdc6
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Fri Jul 31 14:13:22 2015 -0700
IB/srp: Handle partial connection success correctly
Avoid that the following kernel warning is reported if the SRP
target system accepts fewer channels per connection than what
was requested by the initiator system:
WARNING: at drivers/infiniband/ulp/srp/ib_srp.c:617
srp_destroy_qp+0xb1/0x120 [ib_srp]()
Call Trace:
[<ffffffff8105d67f>] warn_slowpath_common+0x7f/0xc0
[<ffffffff8105d6da>] warn_slowpath_null+0x1a/0x20
[<ffffffffa05419e1>] srp_destroy_qp+0xb1/0x120 [ib_srp]
[<ffffffffa05445fb>] srp_create_ch_ib+0x19b/0x420 [ib_srp]
[<ffffffffa0545257>] srp_create_target+0x7d7/0xa94 [ib_srp]
[<ffffffff8138dac0>] dev_attr_store+0x20/0x30
[<ffffffff812079ef>] sysfs_write_file+0xef/0x170
[<ffffffff81191fc4>] vfs_write+0xb4/0x130
[<ffffffff8119276f>] sys_write+0x5f/0xa0
[<ffffffff815a0a59>] system_call_fastpath+0x16/0x1b
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Cc: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Cc: Sebastian Parschauer <sebastian.riemer@xxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit e6300cbd9b09e7bf12f5f7b79e77b58d62b9d990
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Fri Jul 31 14:12:48 2015 -0700
IB/srp: Constify a function argument
This patch does not change any functionality.
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Cc: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Cc: Sebastian Parschauer <sebastian.riemer@xxxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 799cdaf8a98f13d4fba3162e21e1e63f21045010
Author: Ariel Nahum <arieln@xxxxxxxxxxxx>
Date: Sun Aug 9 11:16:27 2015 +0300
IB/mlx4: Fix incorrect cq flushing in error state
When handling a device internal error, the driver is responsible to
drain the completion queue with flush errors.
In case a completion queue was assigned to multiple send queues, the
driver iterates over the send queues and generates flush errors of
inflight wqes. The driver must correctly pass the wc array with an
offset as a result of the previous send queue iteration. Not doing so
will overwrite previously set completions and return a wrong number
of polled completions which includes ones which were not correctly set.
Fixes: 35f05dabf95a (IB/mlx4: Reset flow support for IB kernel ULPs)
Signed-off-by: Ariel Nahum <arieln@xxxxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Cc: Yishai Hadas <yishaih@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 5e99b139f1b68acd65e36515ca347b03856dfb5a
Author: Noa Osherovich <noaos@xxxxxxxxxxxx>
Date: Thu Jul 30 17:34:24 2015 +0300
IB/mlx4: Use correct SL on AH query under RoCE
The mlx4 IB driver implementation for ib_query_ah used a wrong offset
(28 instead of 29) when link type is Ethernet. Fixed to use the correct
one.
Fixes: fa417f7b520e ('IB/mlx4: Add support for IBoE')
Signed-off-by: Shani Michaeli <shanim@xxxxxxxxxxxx>
Signed-off-by: Noa Osherovich <noaos@xxxxxxxxxxxx>
Signed-off-by: Or Gerlitz <ogerlitz@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 2b135db3e81301d0452e6aa107349abe67b097d6
Author: Jack Morgenstein <jackm@xxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:34:23 2015 +0300
IB/mlx4: Forbid using sysfs to change RoCE pkeys
The pkey mapping for RoCE must remain the default mapping:
VFs:
virtual index 0 = mapped to real index 0 (0xFFFF)
All others indices: mapped to a real pkey index containing an
invalid pkey.
PF:
virtual index i = real index i.
Don't allow users to change these mappings using files found in
sysfs.
Fixes: c1e7e466120b ('IB/mlx4: Add iov directory in sysfs under the ib
device')
Signed-off-by: Jack Morgenstein <jackm@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Or Gerlitz <ogerlitz@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 2cb8e7f86e8cabd1e8aa608fc2a44e5bfa1d81ca
Author: Jack Morgenstein <jackm@xxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:34:22 2015 +0300
IB/mlx4: Demote mcg message from warning to debug
The mcg "too many pending requests" warning message fills the log
when OpenSM is downed. Demote the message from warning level to
debug level.
Signed-off-by: Jack Morgenstein <jackm@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Or Gerlitz <ogerlitz@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 90c1d8b6350cca9d8a234f03c77a317a7613bcee
Author: Jack Morgenstein <jackm@xxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 17:34:21 2015 +0300
IB/mlx4: Fix potential deadlock when sending mad to wire
send_mad_to_wire takes the same spinlock that is taken in
the interrupt context. Therefore, it needs irqsave/restore.
Fixes: b9c5d6a64358 ('IB/mlx4: Add multicast group (MCG)
paravirtualization for SR-IOV')
Signed-off-by: Jack Morgenstein <jackm@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Or Gerlitz <ogerlitz@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit b8071ad893841aba967b7c54e712179864cdf5c3
Author: Doug Ledford <dledford@xxxxxxxxxx>
Date: Sat Aug 15 10:16:14 2015 -0400
IB/core: Remove needless bracketization
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit cc36929e736a30a291ab543b633046eb57d67e68
Author: Somnath Kotur <somnath.kotur@xxxxxxxxxxxxx>
Date: Thu Jul 30 18:33:31 2015 +0300
RDMA/ocrdma: Incorporate the moving of GID Table mgmt to IB/Core
1.Change query_gid hook to return value from IB/Core GID
management APIs.
2.Get rid of all the netdev notifier chain subscription code as well
as maintenance of SGID Table in memory.
3.Implement get_netdev hook in driver.
Signed-off-by: Somnath Kotur <somnath.kotur@xxxxxxxxxxxxx>
Signed-off-by: Devesh Sharma <devesh.sharma@xxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 5070cd2239bd4b382c55c212f10b845ec2de31fc
Author: Moni Shoua <monis@xxxxxxxxxxxx>
Date: Thu Jul 30 18:33:30 2015 +0300
IB/mlx4: Replace mechanism for RoCE GID management
Manage RoCE gid table with logic in IB/core, which is common to all
vendors, and remove the mechanism from the mlx4 IB driver.
Since management of the GID cache may lead to index mismatch with the
hardware GID table, a translation between indexes is required when
modifying a QP or creating an address handle.
Signed-off-by: Moni Shoua <monis@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit e26be1bfef81a2314a075f54dd8930cf5e8656df
Author: Moni Shoua <monis@xxxxxxxxxxxx>
Date: Thu Jul 30 18:33:29 2015 +0300
IB/mlx4: Implement ib_device callbacks
get_netdev: get the net_device on the physical port of the IB transport
port. In
port aggregation mode it is required to return the netdev of the active
port.
modify_gid: note for a change in the RoCE gid cache. Handle this by
writing to
the harsware GID table. It is possible that indexes in cahce and hardware
tables
won't match so a translation is required when modifying a QP or creating
an
address handle.
Signed-off-by: Moni Shoua <monis@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 79857cd31fe70145ff007d4e968557af342c8ccd
Author: Moni Shoua <monis@xxxxxxxxxxxx>
Date: Thu Jul 30 18:33:28 2015 +0300
net/mlx4: Postpone the registration of net_device
The mlx4 network driver was registered in the context of the 'add'
function of the core driver (called when HW should be registered).
This makes the netdev event NETDEV_REGISTER to be sent in a context
where the answer to get_protocol_dev() callback returns NULL. This may
be confusing to listeners of netdev events.
This patch is a preparation to the patch that implements the
get_netdev() callback in the IB/mlx4 driver.
Signed-off-by: Moni Shoua <monis@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 238fdf48f2b54a01cedb5774c3a1e81c94e1a3a0
Author: Matan Barak <matanb@xxxxxxxxxxxx>
Date: Thu Jul 30 18:33:27 2015 +0300
IB/core: Add RoCE table bonding support
Handling bonding and other devices require us to all all GIDs of the
net-devices which are upper-devices of the RoCE port related
net-device.
Active-backup configurations imposes even more challenges as the
default GID should only be set on the active devices (this is
necessary as otherwise the same MAC could be used for several
slaves and thus several slaves will have identical GIDs).
Managing these configurations are done by listening to:
(a) NETDEV_CHANGEUPPER event
(1) if a related net-device is linked, delete all inactive
slaves default GIDs and add the upper device GIDs.
(2) if a related net-device is unlinked, delete all upper GIDs
and add the default GIDs.
(b) NETDEV_BONDING_FAILOVER:
(1) delete the bond GIDs from inactive slaves
(2) delete the inactive slave's default GIDs
(3) Add the bond GIDs to the active slave.
Signed-off-by: Matan Barak <matanb@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 98d25afa970d134024d8652360569e3bd74782b3
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Tue Aug 18 12:22:10 2015 +0300
IB/core: missing curly braces in ib_find_gid()
Smatch says that, based on the indenting, we should probably add curly
braces here.
Fixes: 03db3a2d81e6 ('IB/core: Add RoCE GID table management')
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Reviewed-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 03db3a2d81e6e84f3ed3cb9e087cae17d762642b
Author: Matan Barak <matanb@xxxxxxxxxxxx>
Date: Thu Jul 30 18:33:26 2015 +0300
IB/core: Add RoCE GID table management
RoCE GIDs are based on IP addresses configured on Ethernet net-devices
which relate to the RDMA (RoCE) device port.
Currently, each of the low-level drivers that support RoCE (ocrdma,
mlx4) manages its own RoCE port GID table. As there's nothing which is
essentially vendor specific, we generalize that, and enhance the RDMA
core GID cache to do this job.
In order to populate the GID table, we listen for events:
(a) netdev up/down/change_addr events - if a netdev is built onto
our RoCE device, we need to add/delete its IPs. This involves
adding all GIDs related to this ndev, add default GIDs, etc.
(b) inet events - add new GIDs (according to the IP addresses)
to the table.
For programming the port RoCE GID table, providers must implement
the add_gid and del_gid callbacks.
RoCE GID management requires us to state the associated net_device
alongside the GID. This information is necessary in order to manage
the GID table. For example, when a net_device is removed, its
associated GIDs need to be removed as well.
RoCE mandates generating a default GID for each port, based on the
related net-device's IPv6 link local. In contrast to the GID based on
the regular IPv6 link-local (as we generate GID per IP address),
the default GID is also available when the net device is down (in
order to support loopback).
Locking is done as follows:
The patch modify the GID table code both for new RoCE drivers
implementing the add_gid/del_gid callbacks and for current RoCE and
IB drivers that do not. The flows for updating the table are
different, so the locking requirements are too.
While updating RoCE GID table, protection against multiple writers is
achieved via mutex_lock(&table->lock). Since writing to a table
requires us to find an entry (possible a free entry) in the table and
then modify it, this mutex protects both the find_gid and write_gid
ensuring the atomicity of the action.
Each entry in the GID cache is protected by rwlock. In RoCE, writing
(usually results from netdev notifier) involves invoking the vendor's
add_gid and del_gid callbacks, which could sleep.
Therefore, an invalid flag is added for each entry. Updates for RoCE are
done via a workqueue, thus sleeping is permitted.
In IB, updates are done in write_lock_irq(&device->cache.lock), thus
write_gid isn't allowed to sleep and add_gid/del_gid are not called.
When passing net-device into/out-of the GID cache, the device
is always passed held (dev_hold).
The code uses a single work item for updating all RDMA devices,
following a netdev or inet notifier.
The patch moves the cache from being a client (which was incorrect,
as the cache is part of the IB infrastructure) to being explicitly
initialized/freed when a device is registered/removed.
Signed-off-by: Matan Barak <matanb@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 55aeed06544f675f25aef06a8c47b0b6b8850f4f
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 4 15:23:34 2015 -0600
IB/core: Make ib_alloc_device init the kobject
This gets rid of the weird in-between state where struct ib_device
was allocated but the kobject didn't work.
Consequently ib_device_release is now guaranteed to be called in
all situations and we needn't duplicate its kfrees on error paths.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit e999869548b9ab97b7dffa053ba2fee81c31d069
Author: Matan Barak <matanb@xxxxxxxxxxxx>
Date: Thu Jul 30 18:33:24 2015 +0300
net/bonding: Export bond_option_active_slave_get_rcu
Some consumers of the netdev events API would like to know who is the
active slave when a NETDEV_CHANGEUPPER or NETDEV_BONDING_FAILOVER
events occur. For example, when managing RoCE GIDs, GIDs based on the
bond's ips should only be set on the port which corresponds to active
slave netdevice.
Signed-off-by: Matan Barak <matanb@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 816dd19b3d191da88bc034fb85e21ed09a3ed320
Author: Matan Barak <matanb@xxxxxxxxxxxx>
Date: Thu Jul 30 18:33:23 2015 +0300
net: Add info for NETDEV_CHANGEUPPER event
Some consumers of NETDEV_CHANGEUPPER event would like to know which
upper device was linked/unlinked and what operation was carried.
Add information in the notifier info block for that purpose.
Signed-off-by: Matan Barak <matanb@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 399e6f95811bd36fb64b3d30cf8529d633884b4c
Author: Matan Barak <matanb@xxxxxxxxxxxx>
Date: Thu Jul 30 18:33:22 2015 +0300
net/ipv6: Export addrconf_ifid_eui48
For loopback purposes, RoCE devices should have a default GID in the
port GID table, even when the interface is down. In order to do so,
we use the IPv6 link local address which would have been genenrated
for the related Ethernet netdevice when it goes up as a default GID.
addrconf_ifid_eui48 is used to gernerate this address, export it.
Signed-off-by: Matan Barak <matanb@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit d9f272c523db47a56a64942eb6f25361c400de66
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:48 2015 +0300
IB/core: Drop ib_alloc_fast_reg_mr
Fully replaced by a more generic and suitable
ib_alloc_mr.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit d9fe6dd7afaff529124dd7f49c2da89ef789a56f
Author: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Date: Fri Aug 7 10:51:25 2015 -0400
IB/hfi1: Support ib_alloc_mr verb
Ported from upstream qib commit
68c02e232b8a ("qib: Support ib_alloc_mr verb")
Tested-by: Jubin John <jubin.john@xxxxxxxxx>
Reviewed-by: Jubin John <jubin.john@xxxxxxxxx>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 1302f8452bfbede92c5e984afd64d91eb5459ee7
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:47 2015 +0300
qib: Support ib_alloc_mr verb
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit e02e4d554d2b0c20b1f191c5d98bbf5da500a285
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:46 2015 +0300
nes: Support ib_alloc_mr verb
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit f683d3bdbb37baa49510e32789164e5d33d76ba1
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:45 2015 +0300
cxgb3: Support ib_alloc_mr verb
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit a21640347a01ba2f96dfc887b8e33cce462780fd
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:44 2015 +0300
iw_cxgb4: Support ib_alloc_mr verb
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit cacb7d59bed3fd9f65d6ba1a4ea948ce8baa9126
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:43 2015 +0300
ocrdma: Support ib_alloc_mr verb
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 679e34d1d050fc67f2ab157ebf8553dddc216c55
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:42 2015 +0300
mlx4: Support ib_alloc_mr verb
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit b3778ba8ded0aafbd820b68be0686ff0c6026eff
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:41 2015 +0300
mlx5: Drop mlx5_ib_alloc_fast_reg_mr
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit fc27995942960c894bc4725435dce8750e44cd64
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:40 2015 +0300
RDS: Convert to ib_alloc_mr
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 9ac07501e1918b8d1140adcc360e8d8c7f5a2f7c
Author: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:11:20 2015 -0500
svcrdma: limit FRMR page list lengths to device max
Svcrdma was incorrectly allocating fastreg MRs and page lists using
RPCSVC_MAXPAGES, which can exceed the device capabilities. So limit
the depth to the minimum of RPCSVC_MAXPAGES and xprt->sc_frmr_pg_list_len.
Signed-off-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 0410e38eca85e042f5d5a281dbcc792db701ed44
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:39 2015 +0300
xprtrdma, svcrdma: Convert to ib_alloc_mr
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 563b67c5f90abeae1038008e6c9c187fb36ad35c
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:38 2015 +0300
IB/srp: Convert to ib_alloc_mr
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit a89be2cc51f6602e803f2f9a9c8c4f59a0bd58b3
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:37 2015 +0300
iser-target: Convert to ib_alloc_mr
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 34780f012ceeb41ec6d44b3877396042e750862c
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:36 2015 +0300
IB/iser: Convert to ib_alloc_mr
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 9bee178b4f6b3e122ed8eda990450a638706e271
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:35 2015 +0300
IB: Modify ib_create_mr API
Use ib_alloc_mr with specific parameters.
Change the existing callers.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 8b91ffc1cf67d3f0834197c80c5182890c8d508d
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Thu Jul 30 10:32:34 2015 +0300
IB/core: Get rid of redundant verb ib_destroy_mr
This was added in a thought of uniting all mr allocation
and deallocation routines but the fact is we have a single
deallocation routine already, ib_dereg_mr.
And, move mlx5_ib_destroy_mr specific logic into mlx5_ib_dereg_mr
(includes only signature stuff for now).
And, fixup the only callers (iser/isert) accordingly.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit be688195bd08b1c045f89d72c07c7e3ef6516f38
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Aug 27 15:55:15 2015 +0300
IB/cma: Fix net_dev reference leak with failed requests
When no matching listening ID is found for a given request, the net_dev
that was used to find the request isn't released.
Fixes: 0b3ca768fcb0 ("IB/cma: Use found net_dev for passive connections")
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 90816d1ddacfb5a8b783f67e2c1a1bc77dc50ff4
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Sun Aug 30 09:53:06 2015 -0700
NFSv4.1/flexfiles: Don't mark the entire deviceid as bad for file errors
If the file was fenced and/or has been deleted on the DS, then we want
to retry pNFS after a layoutreturn with error report. If the server
cannot fix the problem, then we rely on it to tell us so in the
response to the LAYOUTGET.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 1ab36387ea4face01aac3560b396b1e2ce07c4ff
Author: David Dueck <davidcdueck@xxxxxxxxxxxxxx>
Date: Tue Jul 28 09:48:16 2015 +0200
pinctrl: at91: fix null pointer dereference
Not all gpio banks are necessarily enabled, in the current code this can
lead to null pointer dereferences.
[ 51.130000] Unable to handle kernel NULL pointer dereference at
virtual address 00000058
[ 51.130000] pgd = dee04000
[ 51.130000] [00000058] *pgd=3f66d831, *pte=00000000, *ppte=00000000
[ 51.140000] Internal error: Oops: 17 [#1] ARM
[ 51.140000] Modules linked in:
[ 51.140000] CPU: 0 PID: 1664 Comm: cat Not tainted 4.1.1+ #6
[ 51.140000] Hardware name: Atmel SAMA5
[ 51.140000] task: df6dd880 ti: dec60000 task.ti: dec60000
[ 51.140000] PC is at at91_pinconf_get+0xb4/0x200
[ 51.140000] LR is at at91_pinconf_get+0xb4/0x200
[ 51.140000] pc : [<c01e71a0>] lr : [<c01e71a0>] psr: 600f0013
sp : dec61e48 ip : 600f0013 fp : df522538
[ 51.140000] r10: df52250c r9 : 00000058 r8 : 00000068
[ 51.140000] r7 : 00000000 r6 : df53c910 r5 : 00000000 r4 : dec61e7c
[ 51.140000] r3 : 00000000 r2 : c06746d4 r1 : 00000000 r0 : 00000003
[ 51.140000] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM
Segment user
[ 51.140000] Control: 10c53c7d Table: 3ee04059 DAC: 00000015
[ 51.140000] Process cat (pid: 1664, stack limit = 0xdec60208)
[ 51.140000] Stack: (0xdec61e48 to 0xdec62000)
[ 51.140000] 1e40: 00000358 00000000 df522500
ded15f80 c05a9d08 ded15f80
[ 51.140000] 1e60: 0000048c 00000061 df522500 ded15f80 c05a9d08
c01e7304 ded15f80 00000000
[ 51.140000] 1e80: c01e6008 00000060 0000048c c01e6034 c01e5f6c
ded15f80 dec61ec0 00000000
[ 51.140000] 1ea0: 00020000 ded6f280 dec61f80 00000001 00000001
c00ae0b8 b6e80000 ded15fb0
[ 51.140000] 1ec0: 00000000 00000000 df4bc974 00000055 00000800
ded6f280 b6e80000 ded6f280
[ 51.140000] 1ee0: ded6f280 00020000 b6e80000 00000000 00020000
c0090dec c0671e1c dec61fb0
[ 51.140000] 1f00: b6f8b510 00000001 00004201 c000924c 00000000
00000003 00000003 00000000
[ 51.140000] 1f20: df4bc940 00022000 00000022 c066e188 b6e7f000
c00836f4 000b6e7f ded6f280
[ 51.140000] 1f40: ded6f280 b6e80000 dec61f80 ded6f280 00020000
c0091508 00000000 00000003
[ 51.140000] 1f60: 00022000 00000000 00000000 ded6f280 ded6f280
00020000 b6e80000 c0091d9c
[ 51.140000] 1f80: 00000000 00000000 ffffffff 00020000 00020000
b6e80000 00000003 c000f124
[ 51.140000] 1fa0: dec60000 c000efa0 00020000 00020000 00000003
b6e80000 00020000 000271c4
[ 51.140000] 1fc0: 00020000 00020000 b6e80000 00000003 7fffe000
00000000 00000000 00020000
[ 51.140000] 1fe0: 00000000 bef50b64 00013835 b6f29c76 400f0030
00000003 00000000 00000000
[ 51.140000] [<c01e71a0>] (at91_pinconf_get) from [<c01e7304>]
(at91_pinconf_dbg_show+0x18/0x2c0)
[ 51.140000] [<c01e7304>] (at91_pinconf_dbg_show) from [<c01e6034>]
(pinconf_pins_show+0xc8/0xf8)
[ 51.140000] [<c01e6034>] (pinconf_pins_show) from [<c00ae0b8>]
(seq_read+0x1a0/0x464)
[ 51.140000] [<c00ae0b8>] (seq_read) from [<c0090dec>]
(__vfs_read+0x20/0xd0)
[ 51.140000] [<c0090dec>] (__vfs_read) from [<c0091508>]
(vfs_read+0x7c/0x108)
[ 51.140000] [<c0091508>] (vfs_read) from [<c0091d9c>]
(SyS_read+0x40/0x94)
[ 51.140000] [<c0091d9c>] (SyS_read) from [<c000efa0>]
(ret_fast_syscall+0x0/0x3c)
[ 51.140000] Code: eb010ec2 e30a0d08 e34c005a eb0ae5a7 (e5993000)
[ 51.150000] ---[ end trace fb3c370da3ea4794 ]---
Fixes: a0b957f306fa ("pinctrl: at91: allow to have disabled gpio bank")
Cc: stable@xxxxxxxxxxxxxxx # 3.18
Signed-off-by: David Dueck <davidcdueck@xxxxxxxxxxxxxx>
Acked-by: Ludovic Desroches <ludovic.desroches@xxxxxxxxx>
Acked-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Acked-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
Cc: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 73fec7fd04a2ad6c879c93881cba9a40d551b3fd
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:26 2015 +0300
IB/cm: Remove compare_data checks
Now that there are no ib_cm clients using the compare_data feature for
matching IB CM requests' private data, remove the compare_data parameter
of
ib_cm_listen and remove the code implementing the feature.
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 51efe394bcab3a0c511634f7ae58bb88b1686983
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:25 2015 +0300
IB/cma: Share ib_cm_ids between rdma_cm_ids
Use ib_cm_insert_listen to create listening IB CM IDs or share existing
ones if needed. When given a request on a specific CM ID, the code now
matches the request to the RDMA CM ID based on the request parameters, so
it no longer needs to rely on the ib_cm's private data matching
capabilities.
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 0b3ca768fcb07338c99df5e3ccec99119435e321
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:24 2015 +0300
IB/cma: Use found net_dev for passive connections
When receiving a new connection in cma_req_handler, we actually already
know the net_dev that is used for the connection's creation. Instead of
calling cma_translate_addr to resolve the new connection id's source
address, just use the net_dev that was found.
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit f887f2ac87c25124a90adf97d76b258eba6295cb
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:23 2015 +0300
IB/cma: Validate routing of incoming requests
Pass incoming request parameters through the relevant IPv4/IPv6 routing
tables and make sure the network stack is configured to handle such
requests.
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 4c21b5bcef73e6649429c1d9b39f5065e756d857
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:22 2015 +0300
IB/cma: Add net_dev and private data checks to RDMA CM
Instead of relying on a the ib_cm module to check an incoming CM request's
private data header, add these checks to the RDMA CM module. This allows a
following patch to to clean up the ib_cm interface and remove the code
that
looks into the private headers. It will also allow supporting namespaces
in
RDMA CM by making these checks namespace aware later on.
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 24cad9a7e8bfd4cf1ace7ac2a2b3f696a0e70420
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:21 2015 +0300
IB/cm: Expose BTH P_Key in CM and SIDR request events
The rdma_cm module will later use the P_Key from the BTH to de-mux
requests.
See discussion at:
http://www.spinics.net/lists/netdev/msg336067.html
Cc: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Cc: Liran Liss <liranl@xxxxxxxxxxxx>
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit aac978e15230fccb7a3e9190eb58732925019300
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:20 2015 +0300
IB/cma: Helper functions to access port space IDRs
Add helper functions to access the IDRs by port-space and port number.
Pass around the port-space enum in cma.c instead of using pointers to
port-space IDRs.
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Yotam Kenneth <yotamke@xxxxxxxxxxxx>
Signed-off-by: Shachar Raindel <raindel@xxxxxxxxxxxx>
Signed-off-by: Guy Shapiro <guysh@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 0c505f70a28d943e15a6702ca75bea4f332a03ed
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:19 2015 +0300
IB/cma: Refactor RDMA IP CM private-data parsing code
When receiving a connection request, rdma_cm needs to associate the
request
with a network device, in order to disambiguate requests. To do this, it
needs to know the request's destination IP. For this the module needs to
allow getting this information from the private data in the request
packet,
instead of relying on the information already being in the listening RDMA
CM ID.
When creating a new incoming connection ID, the code in
cma_save_ip{4,6}_info can no longer rely on the listener's private data to
find the port number, so it reads it from the requested service ID.
Signed-off-by: Guy Shapiro <guysh@xxxxxxxxxxxx>
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Yotam Kenneth <yotamke@xxxxxxxxxxxx>
Signed-off-by: Shachar Raindel <raindel@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 067b171b8679f99e170feae2e1d2eae319736420
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:18 2015 +0300
IB/cm: Share listening CM IDs
Enabling network namespaces for RDMA CM will allow processes on different
namespaces to listen on the same port. In order to leave namespace support
out of the CM layer, this requires that multiple RDMA CM IDs will be able
to share a single CM ID.
This patch adds infrastructure to retrieve an existing listening ib_cm_id,
based on its device and service ID, or create a new one if one does not
already exist. It also adds a reference count for such instances
(cm_id_private.listen_sharecount), and prevents cm_destroy_id from
destroying a CM if it is still shared. See the relevant discussion [1].
[1] Re: [PATCH v3 for-next 05/13] IB/cm: Reference count ib_cm_ids
http://www.spinics.net/lists/netdev/msg328860.html
Reviewed-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 15865e7dab62a58407f1b7decdafd89dd0a8b063
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:17 2015 +0300
IB/cm: Expose service ID in request events
Expose the service ID on an incoming CM or SIDR request to the event
handler. This will allow the RDMA CM module to de-multiplex connection
requests based on the information encoded in the service ID.
Acked-by: Sean Hefty <sean.hefty@xxxxxxxxx>
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit ddde896e561a51ae5023e531d66dc6a140a95ec3
Author: Guy Shapiro <guysh@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:16 2015 +0300
IB/ipoib: Return IPoIB devices matching connection parameters
Implement the get_net_device_by_port_pkey_ip callback that returns network
device to ib_core according to connection parameters. Check the ipoib
device and iterate over all child devices to look for a match.
For each IPoIB device we iterate through all upper devices when searching
for a matching IP, in order to support bonding.
Signed-off-by: Guy Shapiro <guysh@xxxxxxxxxxxx>
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Yotam Kenneth <yotamke@xxxxxxxxxxxx>
Signed-off-by: Shachar Raindel <raindel@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 9268f72dcb24348c8b4cf9bcf8afeb24035157a5
Author: Yotam Kenneth <yotamke@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:15 2015 +0300
IB/core: Find the network device matching connection parameters
In the case of IPoIB, and maybe in other cases, the network device is
managed by an upper-layer protocol (ULP). In order to expose this
network device to other users of the IB device, let ULPs implement
a callback that returns network device according to connection parameters.
The IB device and port, together with the P_Key and the GID should
be enough to uniquely identify the ULP net device. However, in current
kernels there can be multiple IPoIB interfaces created with the same GID.
Furthermore, such configuration may be desireable to support ipvlan-like
configurations for RDMA CM with IPoIB. To resolve the device in these
cases the code will also take the IP address as an additional input.
Reviewed-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Yotam Kenneth <yotamke@xxxxxxxxxxxx>
Signed-off-by: Shachar Raindel <raindel@xxxxxxxxxxxx>
Signed-off-by: Guy Shapiro <guysh@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 7c1eb45a22d76bb99236e7485958f87ef7c449cf
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:14 2015 +0300
IB/core: lock client data with lists_rwsem
An ib_client callback that is called with the lists_rwsem locked only for
read is protected from changes to the IB client lists, but not from
ib_unregister_device() freeing its client data. This is because
ib_unregister_device() will remove the device from the device list with
lists_rwsem locked for write, but perform the rest of the cleanup,
including the call to remove() without that lock.
Mark client data that is undergoing de-registration with a new going_down
flag in the client data context. Lock the client data list with
lists_rwsem
for write in addition to using the spinlock, so that functions calling the
callback would be able to lock only lists_rwsem for read and let callbacks
sleep.
Since ib_unregister_client() now marks the client data context, no need
for
remove() to search the context again, so pass the client data directly to
remove() callbacks.
Reviewed-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 5aa44bb90f047662c12c44be1b6de454658632d0
Author: Haggai Eran <haggaie@xxxxxxxxxxxx>
Date: Thu Jul 30 17:50:13 2015 +0300
IB/core: Add rwsem to allow reading device list or client list
Currently the RDMA subsystem's device list and client list are protected
by
a single mutex. This prevents adding user-facing APIs that iterate these
lists, since using them may cause a deadlock. The patch attempts to solve
this problem by adding a read-write semaphore to protect the lists.
Readers
now don't need the mutex, and are safe just by read-locking the semaphore.
The ib_register_device, ib_register_client, ib_unregister_device, and
ib_unregister_client functions are modified to lock the semaphore for
write
during their respective list modification. Also, in order to make sure
client callbacks are called only between add() and remove() calls, the
code
is changed to only add items to the lists after the add() calls and remove
from the lists before the remove() calls.
This patch attempts to solve a similar need [1] that was seen in the RoCE
v2 patch series.
[1] http://www.spinics.net/lists/linux-rdma/msg24733.html
Reviewed-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Cc: Matan Barak <matanb@xxxxxxxxxxxx>
Signed-off-by: Haggai Eran <haggaie@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 50002d4c2176da6b2ed5a2529a2367c05f0fd73b
Author: Inki Dae <daeinki@xxxxxxxxx>
Date: Mon Aug 31 01:11:53 2015 +0900
drm/exynos: fix build warning to exynos_drm_gem.c
Signed-off-by: Inki Dae <daeinki@xxxxxxxxx>
commit fbbb1e1a7f170cb560224d9694f1afd851bcf47f
Author: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Date: Mon Aug 31 00:53:57 2015 +0900
drm/exynos: Properly report supported formats for each device
Exynos DRM reported that all planes for all supported sub-devices supports
only three pixel formats: XRGB24, ARGB24 and NV12. This patch lets each
Exynos DRM sub-drivers to provide the list of supported pixel formats
and registers this list to DRM core.
Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 74f230d2a7e36c27fde38db20ebfb7ddb9c4a116
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Mon Aug 31 00:45:56 2015 +0900
drm/exynos: add render node support
This patch allows clients who want to use render node to access
rendering relevant ioctls - g2d, post processor and gem allocation.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit cc5a7b35799459ec1d0b0e538f4d810aef704217
Author: Hyungwon Hwang <human.hwang@xxxxxxxxxxx>
Date: Thu Aug 27 18:21:14 2015 +0900
drm/exynos: implement atomic_{begin/flush} of DECON
Each CRTC's atomic_{begin/flush} must stop/start the update of shadow
registers to active register in the functions. This patch achieves these
purpose by moving the setting of protection bits to those functions from
decon_update_plane.
v2: rebased to the branch exynos-drm-next
Signed-off-by: Hyungwon Hwang <human.hwang@xxxxxxxxxxx>
Reviewed-by: Daniel Stone <daniels@xxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit e7fefb1d5af5d90baec5204d9096e8c4db8c93bd
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Mon Aug 31 00:33:57 2015 +0900
drm/exynos: remove legacy ->suspend()/resume()
These legacy helpers should only be used by shadow-attaching drivers.
KMS drivers has its own way to handle suspend/resume and don't need to
use these two helpers.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <daeinki@xxxxxxxxx>
commit c8c38ccff9308a706b5314ca1cf157713a40f6b5
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 20:52:19 2015 +0900
drm/exynos: Enable atomic modesetting feature
From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Now that atomic modesetting is implemented for exynos enable the
DRIVER_ATOMIC flag on the driver's features.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 7cf23eaf0d8e6f34f3bc89141efc96b2502b290c
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Sat Aug 15 13:26:19 2015 -0300
drm/exynos: remove wait queue for pending page flip
Exynos atomic commit procedures already does this job of waiting for
pending updates to finish, that means using pending_flip_queue is
pointless now because the disable CRTC procedure will never happen
during a page_flip.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit c4533665d819271dad890440b887776ac3d5f265
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Sat Aug 15 13:26:18 2015 -0300
drm/exynos: wait all planes updates to finish
Add infrastructure to wait for all planes updates to finish by using
an atomic_t variable to track how many pending updates we are waiting
plus a wait_queue for the wait part.
It also changes vblank behaviour and keeps it enabled for all types
of updates
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit a379df19356de97afdca37c4e8f5e8729215d6ea
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Sat Aug 15 13:26:17 2015 -0300
drm/exynos: add atomic asynchronous commit
The atomic modesetting interfaces supports async commits that should be
implemented by the drivers. If drm core requests an async commit
exynos_atomic_commit() will now schedule a work task to run the update
later.
It also serializes commits that needs to run on the same crtc, putting the
following commit to wait until the current one is finished.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit cb11b3f18957f90f8adeb95adf694f52581416b3
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Sat Aug 15 13:26:16 2015 -0300
drm/exynos: fimd: only finish update if START == START_S
fimd_update_plane() programs BUF_START[win] and during the update
BUF_START[win] is copied to BUF_START_S[win] (its shadow register)
and starts scanning out, then it raises a irq.
The fimd_irq_handler, in the case we have a pending_fb, will check
the fb value was copied to START_S register and finish the update
in case of success.
Based on patch from Daniel Kurtz <djkurtz@xxxxxxxxxxxx>
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 44205083751cdcfdbd3f8607694ee1a5a9b161c7
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Sat Aug 15 13:26:15 2015 -0300
drm/exynos: add macro to get the address of START_S reg
This macro is need to get the value of the START shadow register, that
will tell if an framebuffer is currently displayed on the screen or not.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 822f6dfd714c961e3c5648b1d4a5ac10f807d592
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Sat Aug 15 13:26:14 2015 -0300
drm/exynos: check for pending fb before finish update
The current code was ignoring the end of update for all overlay planes,
caring only for the primary plane update in case of pageflip.
This change adds a change to start to check for pending updates for all
planes through exynos_plane->pending_fb. At the start of plane update the
pending_fb is set with the fb to be shown on the screen. Then only when to
fb is already presented in the screen we set pending_fb to NULL to
signal that the update was finished.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
fixup! drm/exynos: check for pending fb before finish update
commit ce3ff36be91a85d87f138794dbbd704fb99320c2
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Sat Aug 15 13:26:13 2015 -0300
drm/exynos: fimd: move window protect code to prepare/cleanup_plane
Only set/clear the update bit in the CRTC's .atomic_begin()/flush()
so all planes are really committed at the same time.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit d9220d4733d1ea1ae375bd76dd2c961969a6795c
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 20:36:59 2015 +0900
drm/exynos: add prepare and cleanup phases for planes
From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
.prepare_plane() and .cleanup_plane() allows to perform extra operations
before and after the update of planes. For FIMD for example this will
be used to enable disable the shadow protection bit.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit fc75f7107a8de47e135cf3b9fec62f99c184a2c8
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Sat Aug 15 13:26:11 2015 -0300
drm/exynos: fimd: unify call to exynos_drm_crtc_finish_pageflip()
Unify handling of finished plane update to prepare for a following patch
that will check for the START and START_S regs to really make sure that
the plane was updated.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit bb0fa93523b8d7f89b6ee61ab8e9b926ff7a9779
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Sat Aug 15 13:26:10 2015 -0300
drm/exynos: don't track enabled state at exynos_crtc
struct drm_crtc already stores the enabled state of the crtc
thus we don't need to replicate enabled in exynos_drm_crtc.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 91931320cfbbcc1dd874c2d0aef62e7d90f07f70
Merge: 02dc14d ca94085 d32e03f 534dcd7
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:59:18 2015 +0100
Merge remote-tracking branches 'asoc/topic/wm8996', 'asoc/topic/xtensa'
and 'asoc/topic/zx296702' into asoc-next
commit 02dc14d66e2047ca2d1bc7ed8ebef7f3415cf476
Merge: 384ea79 84eac61 b970499 779ea47 3176bf2 85e7118
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:58:56 2015 +0100
Merge remote-tracking branches 'asoc/topic/wm8741', 'asoc/topic/wm8753',
'asoc/topic/wm8904', 'asoc/topic/wm8960' and 'asoc/topic/wm8983' into asoc-next
commit 384ea7936cc987ee771690f624593f6dd8ca15a2
Merge: c009d37 030e6ee efc04ca dc606e05 c8a6b92 f611cdd
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:58:36 2015 +0100
Merge remote-tracking branches 'asoc/topic/wm0010', 'asoc/topic/wm5100',
'asoc/topic/wm5110', 'asoc/topic/wm8004' and 'asoc/topic/wm8731' into asoc-next
commit c009d370dd35eb29a8c14f6eb50a4da4276db3f1
Merge: 428157c 95e3c23 ef3355d 4313489 0a3dcb5
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:58:18 2015 +0100
Merge remote-tracking branches 'asoc/topic/txx9', 'asoc/topic/uda134x',
'asoc/topic/ux500' and 'asoc/topic/width' into asoc-next
commit 428157c1e8c9eaf0029430ae82ec0df8578de46b
Merge: 0a5ff07 82cf77a 9425e9d f57ddcd 2e45a25 1a3232d
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:57:34 2015 +0100
Merge remote-tracking branches 'asoc/topic/tas2552',
'asoc/topic/tas5086', 'asoc/topic/tegra', 'asoc/topic/tlv' and
'asoc/topic/topology' into asoc-next
commit 0a5ff077572d058d3023d243ba97a7e98d111f4c
Merge: cfed47d 601e457 97a7471 e129091 601b9d9
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:57:13 2015 +0100
Merge remote-tracking branches 'asoc/topic/ssm2518', 'asoc/topic/sta529',
'asoc/topic/sti' and 'asoc/topic/sti-sas' into asoc-next
commit cfed47d7b5abd5ce9c010169cce9c2754394a02d
Merge: a8f1d97 7d4d443 e8de871 e225797 8e2175d 2c3f4b9
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:56:44 2015 +0100
Merge remote-tracking branches 'asoc/topic/rt5677', 'asoc/topic/sh',
'asoc/topic/simple', 'asoc/topic/sirf-codec' and 'asoc/topic/spear' into
asoc-next
commit a8f1d97bfa986f00835d2669a970e19f6dd9b9d8
Merge: 532161e 5efe58c 818454d 469444f 387ad57
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:56:27 2015 +0100
Merge remote-tracking branches 'asoc/topic/rt298', 'asoc/topic/rt5640',
'asoc/topic/rt5651' and 'asoc/topic/rt5670' into asoc-next
commit 532161e6ccbd1c5ac3a2ea9dc60c8e253cd22fa5
Merge: d781c23 1af2cc6 41a5fefe ac1125d 1c0beb2 a5afdc5
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:55:54 2015 +0100
Merge remote-tracking branches 'asoc/topic/rcar',
'asoc/topic/reg-default', 'asoc/topic/rl6231', 'asoc/topic/rockchip' and
'asoc/topic/rt286' into asoc-next
commit d781c23e9b46f33c1c6c07febae36f37a11f9d4d
Merge: acb47ad 42d1b8c 637c4497 618718d
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:55:41 2015 +0100
Merge remote-tracking branches 'asoc/topic/pm-ops', 'asoc/topic/pxa' and
'asoc/topic/qcom' into asoc-next
commit acb47ad5023fbd29a2c9a681c28b33968c9dcc9e
Merge: 1d1ed2c 775b07d 0643558 d5f1117 5e3cdaa 7d40acc
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:55:21 2015 +0100
Merge remote-tracking branches 'asoc/topic/mediatek', 'asoc/topic/mtk',
'asoc/topic/nuc900', 'asoc/topic/of-name' and 'asoc/topic/omap' into asoc-next
commit 1d1ed2c23e6fac1c9a11df846536553754ac9780
Merge: 373e515 62d6d47 5549ce8 4ab0c591 623436a 6eb1c2a
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:54:57 2015 +0100
Merge remote-tracking branches 'asoc/topic/max98090',
'asoc/topic/max98095', 'asoc/topic/max98357a', 'asoc/topic/max9877' and
'asoc/topic/max98925' into asoc-next
commit 373e515d655086d4c05aae3b098bd48fe1f0c382
Merge: 246647e e1d46d3 c4a4291 6f43979 04b5cbd f102aa1
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:54:38 2015 +0100
Merge remote-tracking branches 'asoc/topic/intel', 'asoc/topic/kirkwood',
'asoc/topic/lm49453', 'asoc/topic/max9768' and 'asoc/topic/max98088' into
asoc-next
commit 246647ee3e7533362e2c291eebaa7409b8565376
Merge: bb85d37 89e0e25 dce0332 2002e90 b37bfda bf08f39
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:54:15 2015 +0100
Merge remote-tracking branches 'asoc/topic/fsl-spdif',
'asoc/topic/fsl-ssi', 'asoc/topic/gtm601', 'asoc/topic/ics43432' and
'asoc/topic/ids' into asoc-next
commit bb85d37358bbca1bbd0fffda87bb38e7c9b69364
Merge: 7c00313 be9ae23 dcfcf2c fa3be920 50e0ee0 9b7493d
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:53:56 2015 +0100
Merge remote-tracking branches 'asoc/topic/fsi', 'asoc/topic/fsl',
'asoc/topic/fsl-asrc', 'asoc/topic/fsl-card' and 'asoc/topic/fsl-sai' into
asoc-next
commit 7c0031360bd721254a52c56bd1c2e90b6d9df57b
Merge: 3999622 508a43f 553de19 628536e c5b8540
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:53:39 2015 +0100
Merge remote-tracking branches 'asoc/topic/davinci',
'asoc/topic/davinci-vcif', 'asoc/topic/doc' and 'asoc/topic/dpcm' into asoc-next
commit 399962239c07ab00adbfda72064b045c9c2c7b40
Merge: b18fec9 7f325bf fbf917e f755d11 a01da00
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:53:22 2015 +0100
Merge remote-tracking branches 'asoc/topic/cs42l56',
'asoc/topic/cs42l73', 'asoc/topic/cs4349' and 'asoc/topic/da732x' into asoc-next
commit b18fec9fe42846784e1744e6bd6c754751e1d172
Merge: 48997b9 6479304 c176330 80deaf0 4caae95
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:52:59 2015 +0100
Merge remote-tracking branches 'asoc/topic/const', 'asoc/topic/cs35l32',
'asoc/topic/cs4265' and 'asoc/topic/cs42l52' into asoc-next
commit 48997b9c03a80cadd14e0ed097f9594ff8454039
Merge: 21af109 fd63542 054bc83 c4d2ab0 54d8697
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:52:41 2015 +0100
Merge remote-tracking branches 'asoc/topic/au1x', 'asoc/topic/bcm2835',
'asoc/topic/blackfin' and 'asoc/topic/card' into asoc-next
commit 21af1094385186a078a044f886a312511dcca04f
Merge: 28becbd 93ec3a1 310398f f8ea6ce d90c6cc 56113f6
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:52:21 2015 +0100
Merge remote-tracking branches 'asoc/topic/88pm860x', 'asoc/topic/ac97',
'asoc/topic/ak4542', 'asoc/topic/arizona' and 'asoc/topic/atmel' into asoc-next
commit 28becbd59c89cccf26b7539684105437fa77210e
Merge: cb42e0f dbe71b9
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:52:16 2015 +0100
Merge remote-tracking branch 'asoc/topic/ssm4567' into asoc-next
commit cb42e0f709a73caf4d631be32189bb1ca513ad25
Merge: ca945cf f2988af
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:52:12 2015 +0100
Merge remote-tracking branch 'asoc/topic/rt5645' into asoc-next
commit ca945cf9fb887ff64e63f324a9098a1bd848c58f
Merge: 4253f3a 48f403b
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:52:08 2015 +0100
Merge remote-tracking branch 'asoc/topic/pcm1681' into asoc-next
commit 4253f3a8f4c7835a95dbdef232ad81d0af88fab3
Merge: 24ecc23 6e588a0
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:51:57 2015 +0100
Merge remote-tracking branch 'asoc/topic/dapm' into asoc-next
commit 24ecc23cf62a48ae47ccc40f0f226d45c962512e
Merge: a178065 abd31b3
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:51:52 2015 +0100
Merge remote-tracking branch 'asoc/topic/core' into asoc-next
commit a1780653b906ca342f20812570e1f07edb35b907
Merge: 1931553 9d83528 0e76597 e5b9408 9b850ca 14a500f e134cb2
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:51:20 2015 +0100
Merge remote-tracking branches 'asoc/fix/adav80x', 'asoc/fix/arizona',
'asoc/fix/max98090', 'asoc/fix/rt5640', 'asoc/fix/samsung' and
'asoc/fix/wm8994' into asoc-linus
commit 19315532b6d46142e401db4dce3cd52cd5c60577
Merge: c13dcf9 c171348
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 15:51:15 2015 +0100
Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linus
commit 534dcd7ea60cebc41816eff0c290700acb2cc43e
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Sat Aug 29 23:09:30 2015 +0800
ASoC: zx296702-i2s: Fix resource leak when unload module
Use devm_* API to fix leaks in current code.
1. Use devm_kzalloc to fix memory leak for zx_i2s when unload the module.
2. Use devm_snd_soc_register_component to ensure component is unregistered
when unload the module.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Reviewed-by: Jun Nie <jun.nie@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit f5164b8833498825b3197cb34150b142a9fc5bbf
Merge: aaa9b64 a70f0d0
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 14:40:29 2015 +0100
Merge remote-tracking branch 'regulator/topic/tps6586x' into
regulator-next
commit aaa9b649d0868725cd7536bc9017fe3956ad5393
Merge: 3e68312 5a286aa e2adfac a13eaf0 5127e31 30f93ca
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 14:40:11 2015 +0100
Merge remote-tracking branches 'regulator/topic/qcom-smd',
'regulator/topic/qcom-spmi', 'regulator/topic/rk808', 'regulator/topic/stub'
and 'regulator/topic/tol' into regulator-next
commit 3e683126f4b42bd29ac5adff1eb178880aa7706a
Merge: 176175b 6d73aef 3a003ba a807a6c a02daad 60cb65e
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 14:39:48 2015 +0100
Merge remote-tracking branches 'regulator/topic/mt6311',
'regulator/topic/ocp', 'regulator/topic/owner', 'regulator/topic/pfuze100' and
'regulator/topic/pwm' into regulator-next
commit 176175b613cb560a33839838c3baa817c9e218ca
Merge: 11f2482 804486b 6cb6e6b ee3010d b10c7f3
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 14:39:34 2015 +0100
Merge remote-tracking branches 'regulator/topic/lp872x',
'regulator/topic/ltc3589', 'regulator/topic/max77693' and
'regulator/topic/max8973' into regulator-next
commit 11f24823667400983a05e6099d645f523d1989ef
Merge: 08aad16 4245746 7bd3935 e80c47b 5b87af4 609ca5f
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 14:39:14 2015 +0100
Merge remote-tracking branches 'regulator/topic/da9210',
'regulator/topic/da9211', 'regulator/topic/fan53555', 'regulator/topic/isl9305'
and 'regulator/topic/list' into regulator-next
commit 08aad16c80f22d2c34407dc2f8cfe0eb57750db6
Merge: eaf018e bf1fc23 ce31751 d4ea7d8 736050c
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 14:38:50 2015 +0100
Merge remote-tracking branches 'regulator/topic/88pm800',
'regulator/topic/ad5398', 'regulator/topic/axp20x' and 'regulator/topic/da9062'
into regulator-next
commit eaf018e170cef4a5a4378c984b70d768dd30048d
Merge: e616e2f 099982f
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 14:38:46 2015 +0100
Merge remote-tracking branch 'regulator/topic/core' into regulator-next
commit e616e2f11b2776cbc24035fd14df4773a57b4b6a
Merge: c13dcf9 c329061
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 14:38:37 2015 +0100
Merge remote-tracking branch 'regulator/fix/pbias' into regulator-linus
commit 6d73aef11760017c37e448d84595dcb44e1c3827
Author: kbuild test robot <fengguang.wu@xxxxxxxxx>
Date: Sun Aug 30 20:20:42 2015 +0800
regulator: mt6311: fix platform_no_drv_owner.cocci warnings
drivers/regulator/mt6311-regulator.c:169:3-8: No need to set .owner here.
The core will do it.
Remove .owner field if calls are used which set it automatically
Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 6cb6e6be41b5b42370e9028d7b691803295b097e
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Sat Aug 29 13:56:11 2015 +0200
regulator: ltc3589: Remove unnecessary MODULE_ALIAS()
The driver has a I2C device id table that is used to create the modaliases
and already contains a "ltc3589" device id. So the modalias is
unnecessary.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit ce317515b43f3e0b789b41df9b54e1608c783c5d
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Sat Aug 29 13:56:10 2015 +0200
regulator: ad5398: Remove unnecessary MODULE_ALIAS()
The driver has a I2C device id table that is used to create the modaliases
and also "ad5398-regulator" is not a supported I2C id, so it's never used.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit e12909107c30efccf570ac67802df5d2eec4cabd
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Sat Aug 29 23:06:32 2015 +0800
ASoC: sti_uniperif: Ensure component is unregistered when unload module
Use devm_snd_soc_register_component to ensure component is unregistered
when unload the module.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 1cfa8de2880e5512f9037c7804ea47a79cc8232c
Author: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Date: Sun May 3 10:36:19 2015 +0100
MIPS: pgtable-bits.h: Correct _PAGE_GLOBAL_SHIFT build failure
Correct a build failure introduced by be0c37c9 [MIPS: Rearrange PTE bits
into fixed positions.]:
In file included from ./arch/mips/include/asm/io.h:27:0,
from ./arch/mips/include/asm/page.h:176,
from include/linux/mm_types.h:15,
from include/linux/sched.h:27,
from include/linux/ptrace.h:5,
from arch/mips/kernel/cpu-probe.c:16:
./arch/mips/include/asm/pgtable-bits.h:164:0: error: "_PAGE_GLOBAL_SHIFT"
redefined [-Werror]
#define _PAGE_GLOBAL_SHIFT (_PAGE_MODIFIED_SHIFT + 1)
^
./arch/mips/include/asm/pgtable-bits.h:141:0: note: this is the location
of the previous definition
#define _PAGE_GLOBAL_SHIFT (_PAGE_SPLITTING_SHIFT + 1)
^
cc1: all warnings being treated as errors
make[2]: *** [arch/mips/kernel/cpu-probe.o] Error 1
for 64BIT/CPU_MIPSR1/MIPS_HUGE_TLB_SUPPORT configurations. Remove the
scattered double `_PAGE_NO_EXEC_SHIFT' and `_PAGE_GLOBAL_SHIFT' macro
definitions and rearrange them so that the respective macros these
definitions are based on are also those used for guarding conditionals.
[ralf@xxxxxxxxxxxxxx: resolved conflicts and updated commments.]
Signed-off-by: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx>
Cc: Steven J. Hill <Steven.Hill@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/9960/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit fd63542fc5492b86158dbd53ce5de764f171b1b6
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Sun Aug 30 11:09:49 2015 +0800
ASoC: au1x: psc-i2s: Convert to use devm_ioremap_resource
Use devm_ioremap_resource() instead of open code.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit e8de871e19668257972b167aabd56bb5faae784c
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Sun Aug 30 11:07:33 2015 +0800
ASoC: sh: dma-sh7760: Convert to devm_snd_soc_register_platform
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 37c5db7938093cada165146ee99bd57c97baf6a3
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Sun Aug 30 18:35:51 2015 +0800
spi: fsl-(e)spi: Fix checking return value of devm_ioremap_resource
devm_ioremap_resource() returns ERR_PTR on error.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 2c3f4b97eea5ce405baf2591715445da6ed05851
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Sun Aug 30 08:08:15 2015 +0800
ASoC: spear_pcm: Use devm_snd_dmaengine_pcm_register to fix resource leak
All the callers assume devm_spear_pcm_platform_register is a devm_ API, so
use devm_snd_dmaengine_pcm_register in devm_spear_pcm_platform_register.
Fixes: e1771bcf99b0 ("ASoC: SPEAr: remove custom DMA alloc compat
function")
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 2497ee721524be80a7690dac0956d04c0ee954f0
Author: Christoph Hellwig <hch@xxxxxx>
Date: Fri Aug 28 09:27:16 2015 +0200
amdkfd: use <linux/mman.h> instead of <uapi/asm-generic/mman-common.h>
The latter is a default version of <asm/mman.h> and not for driver use.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Oded Gabbay <oded.gabbay@xxxxxxxxx>
commit 29332534e2b68b5889a40ccb6606ba0d06750a69
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Sun Aug 30 09:33:56 2015 +0200
regmap-i2c: Add smbus i2c block support
This allows to read/write up to 32 bytes of data and is to be prefered
if supported before the register read/write smbus support.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit c335931ed9d22c30017cf957518262c2fe6502ce
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Sun Aug 30 09:33:55 2015 +0200
regmap: Add raw_write/read checks for max_raw_write/read sizes
Check in regmap_raw_read() and regmap_raw_write() for correct maximum
sizes of the operations. Return -E2BIG if this size is not supported
because it is too big.
Also this patch causes an uninitialized variable warning so it
initializes ret (although not necessary).
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit f50c9eb4e9304cf555206c93152f580c0e7213b2
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Sun Aug 30 09:33:54 2015 +0200
regmap: regmap max_raw_read/write getter functions
Add functions to access the maximum size we can read/write using
regmap_raw_read/write().
This helps drivers that need to know how much they can write with the
raw functions without problems. There are some devices (e.g. bmc150)
that have fifos as registers which need to be read in specific chunks
otherwise samples are dropped.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit adaac459759db4a1fd35baddbe47bac700095496
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Sun Aug 30 09:33:53 2015 +0200
regmap: Introduce max_raw_read/write for regmap_bulk_read/write
There are some buses which have a limit on the maximum number of bytes
that can be send/received. An example for this is
I2C_FUNC_SMBUS_I2C_BLOCK which does not support any reads/writes of more
than 32 bytes. The regmap_bulk operations should still be able to
utilize the full 32 bytes in this case.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 10524612e8aa98804190ec7d0b380cf99c3bdbd7
Merge: c13dcf9 9a16ea9 9c9f7f6 07ea400 c5f58f2
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Sun Aug 30 10:19:11 2015 +0100
Merge branches 'fix/raw', 'topic/core', 'topic/i2c', 'topic/raw' and
'topic/doc' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap
into regmap-smbus-block
commit 390fd5929f52bdfb9dfcc03820041ba556780f4a
Author: Philippe Bergheaud <felix@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 28 09:37:36 2015 +0200
cxl: Set up and enable PSL Timebase
This patch configures the PSL Timebase function and enables it,
after the CAPP has been initialized by OPAL.
Acked-by: Ian Munsie <imunsie@xxxxxxxxxxx>
Signed-off-by: Philippe Bergheaud <felix@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 55e07668fbba9466e6a9ef7650718356cda38406
Author: Ian Munsie <imunsie@xxxxxxxxxxx>
Date: Thu Aug 27 19:50:19 2015 +1000
cxl: Fix force unmapping mmaps of contexts allocated through the kernel
api
The cxl user api uses the address_space associated with the file when we
need to force unmap all cxl mmap regions (e.g. on eeh, driver detach,
etc). Currently, contexts allocated through the kernel api do not do
this and instead skip the mmap invalidation, potentially allowing them
to poke at the hardware after such an event, which may cause all sorts
of trouble.
This patch allocates an address_space for cxl contexts allocated through
the kernel api so that the same invalidate path will for these contexts
as well. We don't use the anonymous inode's address_space, as doing so
could invalidate any mmaps of completely unrelated drivers using
anonymous file descriptors.
This patch also introduces a kernelapi flag, so we know when freeing the
context if the address_space was allocated by us and needs to be freed.
Signed-off-by: Ian Munsie <imunsie@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit af2a50bb0ce1ca7a9c4784813419c922bf2285df
Author: Ian Munsie <imunsie@xxxxxxxxxxx>
Date: Thu Aug 27 19:50:18 2015 +1000
cxl: Fix + cleanup error paths in cxl_dev_context_init
If the cxl_context_alloc() call fails, we return immediately without
releasing the reference on the AFU device, allowing it to leak.
This patch switches to using goto style error handling so that the
device is released in common code for both error paths, and will also
simplify things if we add additional initialisation in this function in
the future.
Signed-off-by: Ian Munsie <imunsie@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 099392048cd443349c50310f7fdc96070e40f4e7
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Sat Aug 29 19:11:21 2015 -0700
SUNRPC: Prevent SYN+SYNACK+RST storms
Add a shutdown() call before we release the socket in order to ensure the
reset is sent before we try to reconnect.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 2573d78872f242a05b842e9c553da45a3d9924e5
Merge: 8e816df a581b96
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sat Aug 29 19:07:16 2015 -0700
Merge branch 'ovs-vport-cleanup'
Pravin B Shelar says:
====================
openvswitch: Cleanup post vport conversion.
After converting all vport to netdev implmentations there
is no need for some of vport functionality.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a581b96dbfc52b6b498552525ec929aa635680ed
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Sat Aug 29 17:44:08 2015 -0700
openvswitch: Remove vport-net
This structure is not used anymore.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8c876639c98501b049269b554bf4ecbb8f9c012f
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Sat Aug 29 17:44:07 2015 -0700
openvswitch: Remove vport stats.
Since all vport types are now backed by netdev, we can directly
use netdev stats. Following patch removes redundant stat
from vport.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3eedb41fb43461b5fde3f72fd00a7706f0b90103
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Sat Aug 29 17:44:06 2015 -0700
openvswitch: Remove egress_tun_info.
tun info is passed using skb-dst pointer. Now we have
converted all vports to netdev based implementation so
Now we can remove redundant pointer to tun-info from OVS_CB.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 24d43f32d86026a0e318fee736380e164d85eefa
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Sat Aug 29 17:44:05 2015 -0700
openvswitch: Remove vport get_name()
Remove unused get_name() function pointer from vport ops.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 650c919798c71fb34b77a6f2ba03a06907f06a76
Merge: 895fb31 64291f7
Author: Chris Zankel <chris@xxxxxxxxxx>
Date: Sat Aug 29 23:55:58 2015 +0000
Merge tag 'v4.2' into for_next
Linux 4.2
commit 8e816df87997bb0c40122d5df621423b445c4fe6
Author: Jesse Gross <jesse@xxxxxxxxxx>
Date: Fri Aug 28 16:54:40 2015 -0700
geneve: Use GRO cells infrastructure.
Geneve can benefit from GRO at the device level in a manner similar
to other tunnels, especially as hardware offloads are still emerging.
After this patch, aggregated frames are seen on the tunnel interface.
Single stream throughput nearly doubles in ideal circumstances (on
old hardware).
Signed-off-by: Jesse Gross <jesse@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0c78789e3a030615c6650fde89546cadf40ec2cc
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Sat Aug 29 13:36:30 2015 -0700
SUNRPC: xs_reset_transport must mark the connection as disconnected
In case the reconnection attempt fails.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit c30da497893718abc6cec4f1d34d35875200edee
Author: Simon Horman <simon.horman@xxxxxxxxxxxxx>
Date: Sat Aug 29 09:02:21 2015 +0900
openvswitch: retain parsed IPv6 header fields in flow on error skipping
extension headers
When an error occurs skipping IPv6 extension headers retain the already
parsed IP protocol and IPv6 addresses in the flow. Also assume that the
packet is not a fragment in the absence of information to the contrary;
that is always use the frag_off value set by ipv6_skip_exthdr().
This allows matching on the IP protocol and IPv6 addresses of packets
with malformed extension headers.
Signed-off-by: Simon Horman <simon.horman@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f5004a14fac0a71656340544c48a14c80a3afddf
Merge: 6d74232 917522a
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sat Aug 29 13:15:03 2015 -0700
Merge branch 'for-upstream' of
git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
Johan Hedberg says:
====================
pull request: bluetooth-next 2015-08-28
One more bunch of Bluetooth patches for 4.3:
- Crash fix for hci_bcm driver
- Enhancements to hci_intel driver (e.g. baudrate configuration)
- Fix for SCO link type after multiple connect attempts
- Cleanups & minor fixes in a few other places
Please let me know if there are any issues pulling. Thanks.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f892a84cc890aaaba7bc42daf2e2ee86b0961884
Author: Tony Lindgren <tony@xxxxxxxxxxx>
Date: Fri Aug 28 11:50:15 2015 -0700
net/smsc911x: Fix deferred probe for interrupt
The interrupt handler may not be available when smsc911x probes if the
interrupt handler is a GPIO controller for example. Let's fix that
by adding handling for -EPROBE_DEFER.
Cc: Steve Glendinning <steve.glendinning@xxxxxxxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6d74232410a9f3ed0e1fc0f5e538598f21e93982
Merge: f6d3c19 a43a9ef
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sat Aug 29 13:07:55 2015 -0700
Merge branch 'tnl-ipv4-ipv6'
Jiri Benc says:
====================
tunnels: fix incorrect IPv4/v6 headers interpretation
With tunneling, it is currently possible to get an IPv6 header and
interpret
it as an IPv4 header, or to interpret an IPv6 address as an IPv4 address
(and vice versa). This leads to things like sending packets to incorrect
address, IPv6 flow label being interpreted as IP packet length, etc.
Fix several places where this can happen.
Most of this is net-next only. The third patch affects net, too, but it
doesn't seem there's anything in user space that sets the attribute at all
currently, thus net-next is fine.
Changelog:
v2: fixed geneve after incorrect rebase on top of Pravin's patches
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a43a9ef6a2e510fec61176ff2c34fab3e7d581da
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Fri Aug 28 20:48:22 2015 +0200
vxlan: do not receive IPv4 packets on IPv6 socket
By default (subject to the sysctl settings), IPv6 sockets listen also for
IPv4 traffic. Vxlan is not prepared for that and expects IPv6 header in
packets received through an IPv6 socket.
In addition, it's currently not possible to have both IPv4 and IPv6 vxlan
tunnel on the same port (unless bindv6only sysctl is enabled), as it's not
possible to create and bind both IPv4 and IPv6 vxlan interfaces and
there's
no way to specify both IPv4 and IPv6 remote/group IP addresses.
Set IPV6_V6ONLY on vxlan sockets to fix both of these issues. This is not
done globally in udp_tunnel, as l2tp and tipc seems to work okay when
receiving IPv4 packets on IPv6 socket and people may rely on this
behavior.
The other tunnels (geneve and fou) do not support IPv6.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b9b6695cf0e1afebc207e28c7e9350c90547a426
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Fri Aug 28 20:48:21 2015 +0200
fou: reject IPv6 config
fou does not really support IPv6 encapsulation. After an UDP socket is
created in fou_create, the encap_rcv callback is set either to
fou_udp_recv
or to gue_udp_recv. Both of those unconditionally assume that the received
packet has an IPv4 header and access the data at network_header as it was
an
IPv4 header. This leads to IPv6 flow label being interpreted as IP packet
length, etc.
Disallow fou tunnel to be configured as IPv6 until real IPv6 support is
added to fou.
CC: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7f9562a1f405306eacb97f95d78cb996e33f27f5
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Fri Aug 28 20:48:20 2015 +0200
ip_tunnels: record IP version in tunnel info
There's currently nothing preventing directing packets with IPv6
encapsulation data to IPv4 tunnels (and vice versa). If this happens,
IPv6 addresses are incorrectly interpreted as IPv4 ones.
Track whether the given ip_tunnel_key contains IPv4 or IPv6 data. Store
this
in ip_tunnel_info. Reject packets at appropriate places if they are
supposed
to be encapsulated into an incompatible protocol.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 46fa062ad63146dd138ec0f017e71224471e8ea5
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Fri Aug 28 20:48:19 2015 +0200
ip_tunnels: convert the mode field of ip_tunnel_info to flags
The mode field holds a single bit of information only (whether the
ip_tunnel_info struct is for rx or tx). Change the mode field to bit
flags.
This allows more mode flags to be added.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f6d3c19274c74ff17174df8078e0a14df003667f
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 28 08:42:09 2015 -0700
net: FIB tracepoints
A few useful tracepoints developing VRF driver.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a02daad70214a820988c045494a15dea047c16d4
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Sat Aug 29 02:35:13 2015 +0200
regulator: pfuze100: Remove unnecessary MODULE_ALIAS()
The driver has a I2C device id table that is used to create the modaliases
and also "pfuze100-regulator" is not a supported I2C id, so is never used.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 22c103cd3dfadff340b3b639e477a3c161cb2104
Author: Takashi Sakamoto <o-takashi@xxxxxxxxxxxxx>
Date: Sat Aug 29 10:38:46 2015 +0900
ALSA: fireworks/bebob/dice/oxfw: fix substreams counting at vmalloc
failure
In PCM core, when hw_params() in each driver returns error, the state of
PCM substream is kept as 'open'. In this case, current drivers for sound
units on IEEE 1394 bus doesn't decrement substream counter in hw_free()
correctly. This causes these drivers to keep streams even if not
required.
This commit fixes this bug. When snd_pcm_lib_alloc_vmalloc_buffer()
fails, hw_params function in each driver returns without incrementing the
counter.
Reported-by: Takashi Iwai <tiwai@xxxxxxx>
Signed-off-by: Takashi Sakamoto <o-takashi@xxxxxxxxxxxxx>
Acked-by: Clemens Ladisch <clemens@xxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 73e6742027f5cb5a7c747d9abab5351b01fd4c74
Author: Vlad Yasevich <vyasevich@xxxxxxxxx>
Date: Fri Aug 28 21:23:39 2015 -0400
sctp: Do not try to search for the transport twice
When removing an non-primary transport during ASCONF
processing, we end up traversing the transport list
twice: once in sctp_cmd_del_non_primary, and once in
sctp_assoc_del_peer. We can avoid the second
search and call sctp_assoc_rm_peer() instead.
Found by code inspection during code reviews.
Signed-off-by: Vladislav Yasevich <vyasevich@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b0d4943eec9a42c7ba2065f6cfa949894204dd4a
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 28 15:05:32 2015 -0700
bonding: fix bond_poll_controller bh_enable warning
The problem is rcu_read_unlock_bh() which triggers a warning when irqs are
disabled. ndo_poll_controller should run with irqs disabled always so we
can drop the rcu_read_lock_bh.
[ 98.502922] bond0: making interface eth1 the new active one
[ 98.503039] ------------[ cut here ]------------
[ 98.503039] WARNING: CPU: 0 PID: 1744 at kernel/softirq.c:150
__local_bh_enable_ip+0x96/0xc0()
[ 98.503039] Modules linked in: bonding(OE) rpcsec_gss_krb5 nfsv4
dns_resolver nfs fscache netconsole ppdev joydev parport_pc serio_raw parport
i2c_piix4 video acpi_cpufreq nfsd auth_rpcgss nfs_acl lockd grace sunrpc
virtio_net e1000 ata_generic pcnet32 mii virtio_pci virtio_ring virtio pata_acpi
[ 98.503039] CPU: 0 PID: 1744 Comm: ifenslave Tainted: G OE
4.2.0-rc7+ #56
[ 98.503039] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
VirtualBox 12/01/2006
[ 98.503039] 0000000000000000 00000000e96ba230 ffff880020c236b8
ffffffff8183f105
[ 98.503039] 0000000000000000 0000000000000000 ffff880020c236f8
ffffffff810a9496
[ 98.503039] ffff88002ea99e08 0000000000000200 ffffffffa02a8e06
ffff88002ea99e08
[ 98.503039] Call Trace:
[ 98.503039] [<ffffffff8183f105>] dump_stack+0x4c/0x65
[ 98.503039] [<ffffffff810a9496>] warn_slowpath_common+0x86/0xc0
[ 98.503039] [<ffffffffa02a8e06>] ? bond_poll_controller+0x146/0x250
[bonding]
[ 98.503039] [<ffffffff810a95ca>] warn_slowpath_null+0x1a/0x20
[ 98.503039] [<ffffffff810ae376>] __local_bh_enable_ip+0x96/0xc0
[ 98.503039] [<ffffffffa02a8e2f>] bond_poll_controller+0x16f/0x250
[bonding]
[ 98.503039] [<ffffffffa02a8cf3>] ? bond_poll_controller+0x33/0x250
[bonding]
[ 98.503039] [<ffffffff810feaed>] ? trace_hardirqs_off+0xd/0x10
[ 98.503039] [<ffffffff81848afb>] ?
_raw_spin_unlock_irqrestore+0x5b/0x60
[ 98.503039] [<ffffffff816ec48e>] netpoll_poll_dev+0x6e/0x350
[ 98.503039] [<ffffffff816eb977>] ? netpoll_start_xmit+0x137/0x1d0
[ 98.503039] [<ffffffff816b2e8b>] ? __alloc_skb+0x5b/0x210
[ 98.503039] [<ffffffff816ec89d>] netpoll_send_skb_on_dev+0x12d/0x2a0
[ 98.503039] [<ffffffff816eccde>] netpoll_send_udp+0x2ce/0x430
[ 98.503039] [<ffffffffa0190850>] write_msg+0xb0/0xf0 [netconsole]
[ 98.503039] [<ffffffff81116b63>]
call_console_drivers.constprop.25+0x133/0x260
[ 98.503039] [<ffffffff81117934>] console_unlock+0x2f4/0x580
[ 98.503039] [<ffffffff81117ea5>] ? vprintk_emit+0x2e5/0x630
[ 98.503039] [<ffffffff81117ee5>] vprintk_emit+0x325/0x630
[ 98.503039] [<ffffffff81118379>] vprintk_default+0x29/0x40
[ 98.503039] [<ffffffff8183de4f>] printk+0x55/0x6b
[ 98.503039] [<ffffffff816c754c>] __netdev_printk+0x16c/0x260
[ 98.503039] [<ffffffff816c7a12>] netdev_info+0x62/0x80
[ 98.503039] [<ffffffffa02ab464>] bond_change_active_slave+0x134/0x6a0
[bonding]
[ 98.503039] [<ffffffffa02aba95>] bond_select_active_slave+0xc5/0x310
[bonding]
[ 98.503039] [<ffffffffa02aeb78>] bond_enslave+0x1088/0x10c0 [bonding]
[ 98.503039] [<ffffffffa02af46b>] bond_do_ioctl+0x37b/0x400 [bonding]
[ 98.503039] [<ffffffff81101d8d>] ? trace_hardirqs_on+0xd/0x10
[ 98.503039] [<ffffffff816dc437>] ? rtnl_lock+0x17/0x20
[ 98.503039] [<ffffffff816e5fd1>] dev_ifsioc+0x331/0x3e0
[ 98.503039] [<ffffffff816e62dc>] dev_ioctl+0xec/0x6c0
[ 98.503039] [<ffffffff816a6c6a>] sock_do_ioctl+0x4a/0x60
[ 98.503039] [<ffffffff816a7300>] sock_ioctl+0x1c0/0x250
[ 98.503039] [<ffffffff81271bfe>] do_vfs_ioctl+0x2ee/0x540
[ 98.503039] [<ffffffff810fd943>] ? up_read+0x23/0x40
[ 98.503039] [<ffffffff81070993>] ? __do_page_fault+0x1d3/0x420
[ 98.503039] [<ffffffff8127e246>] ? __fget_light+0x66/0x90
[ 98.503039] [<ffffffff81271ec9>] SyS_ioctl+0x79/0x90
[ 98.503039] [<ffffffff8184936e>] entry_SYSCALL_64_fastpath+0x12/0x76
[ 98.503039] ---[ end trace 00cfa804b0670051 ]---
Fixes: 616f45416ca0 ("bonding: implement bond_poll_controller()")
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Acked-by: Mahesh Bandewar <maheshb@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7a468ac624c80bda76957d8cbc28024f4f68e316
Author: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 28 16:56:01 2015 +0300
sh_eth: propagate platform_get_irq() error upstream
The driver overrides the error returned by platform_get_irq() with -ENODEV
which e.g. precludes the deferred probing from working. Propagate the
real
error code to the driver core instead.
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Acked-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f375339e497582ea0bc8806a0552add1cabb6d4e
Author: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 28 16:55:10 2015 +0300
ravb: propagate platform_get_irq() error upstream
The driver overrides the error returned by platform_get_irq() with -ENODEV
which e.g. precludes the deferred probing from working. Propagate the
real
error code to the driver core instead.
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Acked-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7c5a9461812b21e1a1b7a09a83e97530b8867459
Author: lucien <lucien.xin@xxxxxxxxx>
Date: Fri Aug 28 17:45:58 2015 +0800
sctp: ASCONF-ACK with Unresolvable Address should be sent
RFC 5061:
This is an opaque integer assigned by the sender to identify each
request parameter. The receiver of the ASCONF Chunk will copy this
32-bit value into the ASCONF Response Correlation ID field of the
ASCONF-ACK response parameter. The sender of the ASCONF can use this
same value in the ASCONF-ACK to find which request the response is
for. Note that the receiver MUST NOT change this 32-bit value.
Address Parameter: TLV
This field contains an IPv4 or IPv6 address parameter, as described
in Section 3.3.2.1 of [RFC4960].
ASCONF chunk with Error Cause Indication Parameter (Unresolvable Address)
should be sent if the Delete IP Address is not part of the association.
Endpoint A Endpoint B
(ESTABLISHED) (ESTABLISHED)
ASCONF ----------------->
(Delete IP Address)
<----------------- ASCONF-ACK
(Unresolvable Address)
Signed-off-by: Xin Long <lucien.xin@xxxxxxxxx>
Acked-by: Vlad Yasevich <vyasevich@xxxxxxxxx>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7084a315897715776d1764f5fd9250609e515beb
Author: Ken-ichirou MATSUZAWA <chamaken@xxxxxxxxx>
Date: Fri Aug 28 16:05:20 2015 +0900
netlink: mmap: fix lookup frame position
__netlink_lookup_frame() was always called with the same "pos"
value in netlink_forward_ring(). It will look at the same ring entry
header over and over again, every time through this loop. Then cycle
through the whole ring, advancing ring->head, not "pos" until it
equals the "ring->head != head" loop test fails.
Signed-off-by: Ken-ichirou MATSUZAWA <chamas@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0a6a3a23ea6efde079a5b77688541a98bf202721
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Fri Aug 28 07:07:48 2015 +0200
netlink: add NETLINK_CAP_ACK socket option
Since commit c05cdb1b864f ("netlink: allow large data transfers from
user-space"), the kernel may fail to allocate the necessary room for the
acknowledgment message back to userspace. This patch introduces a new
socket option that trims off the payload of the original netlink message.
The netlink message header is still included, so the user can guess from
the sequence number what is the message that has triggered the
acknowledgment.
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0d5cdef8d5dd0a6819fd85305adb448f5ba56f24
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Fri Aug 28 19:22:11 2015 -0700
openvswitch: Fix conntrack compilation without mark.
Fix build with !CONFIG_NF_CONNTRACK_MARK && CONFIG_OPENVSWITCH_CONNTRACK
Fixes: 182e304 ("openvswitch: Allow matching on conntrack mark")
Reported-by: Simon Horman <simon.horman@xxxxxxxxxxxxx>
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Tested-by: Simon Horman <simon.horman@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 004f1afbe199e6ab20805b95aefd83ccd24bc5c7
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Mon Aug 24 19:20:23 2015 -0400
libnvdimm, pmem: direct map legacy pmem by default
The expectation is that the legacy / non-standard pmem discovery method
(e820 type-12) will only ever be used to describe small quantities of
persistent memory. Larger capacities will be described via the ACPI
NFIT. When "allocate struct page from pmem" support is added this default
policy can be overridden by assigning a legacy pmem namespace to a pfn
device, however this would be only be necessary if a platform used the
legacy mechanism to define a very large range.
Cc: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 32ab0a3f51701cb37ab960635254d5f84ec3de0a
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Sat Aug 1 02:16:37 2015 -0400
libnvdimm, pmem: 'struct page' for pmem
Enable the pmem driver to handle PFN device instances. Attaching a pmem
namespace to a pfn device triggers the driver to allocate and initialize
struct page entries for pmem. Memory capacity for this allocation comes
exclusively from RAM for now which is suitable for low PMEM to RAM
ratios. This mechanism will be expanded later for setting an "allocate
from PMEM" policy.
Cc: Boaz Harrosh <boaz@xxxxxxxxxxxxx>
Cc: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit e1455744b27c9e6115c3508a7b2902157c2c4347
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Thu Jul 30 17:57:47 2015 -0400
libnvdimm, pfn: 'struct page' provider infrastructure
Implement the base infrastructure for libnvdimm PFN devices. Similar to
BTT devices they take a namespace as a backing device and layer
functionality on top. In this case the functionality is reserving space
for an array of 'struct page' entries to be handed out through
pfn_to_page(). For now this is just the basic libnvdimm-device-model for
configuring the base PFN device.
As the namespace claiming mechanism for PFN devices is mostly identical
to BTT devices drivers/nvdimm/claim.c is created to house the common
bits.
Cc: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 3403051ebbd486a342272a404f16e7f1aca8758e
Author: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Date: Mon Jul 27 18:10:18 2015 -0500
RDMA/Core: remove rdma_cap_read_multi_sge() helper
This functionality already exists via the max_sge_rd
device capability.
Signed-off-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit bc3fe2e3769874dfa8674791e84c4a901ba9e48b
Author: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Date: Mon Jul 27 18:10:12 2015 -0500
svcrdma: Use max_sge_rd for destination read depths
Signed-off-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit aaae91f4f05c39f02e36e89b00ad84465f8eb02b
Author: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Date: Mon Jul 27 18:10:07 2015 -0500
ipath,qib: Expose max_sge_rd correctly
Applications must not assume that max_sge and max_sge_rd are the same,
Hence expose max_sge_rd correctly as well.
Signed-off-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Acked-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 18ebd40773bf500054a5e079e71cd13aafd1b6eb
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Mon Jul 27 18:10:01 2015 -0500
mlx4, mlx5, mthca: Expose max_sge_rd correctly
Applications must not assume that max_sge and max_sge_rd are the same,
Hence expose max_sge_rd correctly as well.
Reported-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit a724648e8a8f7ff874f0d58491b39517718c7237
Author: Jeff Becker <jeffrey.c.becker@xxxxxxxx>
Date: Fri Aug 21 12:26:22 2015 -0700
staging/hfi1: replace indent spaces with tabs
Running checkpatch.pl on mad.c produces several
"ERROR: code indent should use tabs where possible" messages.
This patch fixes these.
Signed-off-by: Jeff Becker <Jeffrey.C.Becker@xxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 7724105686e718ac476a6ad3304fea2fbcfcffde
Author: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Date: Thu Jul 30 15:17:43 2015 -0400
IB/hfi1: add driver files
Signed-off-by: Andrew Friedley <andrew.friedley@xxxxxxxxx>
Signed-off-by: Arthur Kepner <arthur.kepner@xxxxxxxxx>
Signed-off-by: Brendan Cunningham <brendan.cunningham@xxxxxxxxx>
Signed-off-by: Brian Welty <brian.welty@xxxxxxxxx>
Signed-off-by: Caz Yokoyama <caz.yokoyama@xxxxxxxxx>
Signed-off-by: Dean Luick <dean.luick@xxxxxxxxx>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx>
Signed-off-by: Easwar Hariharan <easwar.hariharan@xxxxxxxxx>
Signed-off-by: Harish Chegondi <harish.chegondi@xxxxxxxxx>
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Jim Snow <jim.m.snow@xxxxxxxxx>
Signed-off-by: John Gregor <john.a.gregor@xxxxxxxxx>
Signed-off-by: Jubin John <jubin.john@xxxxxxxxx>
Signed-off-by: Kaike Wan <kaike.wan@xxxxxxxxx>
Signed-off-by: Kevin Pine <kevin.pine@xxxxxxxxx>
Signed-off-by: Kyle Liddell <kyle.liddell@xxxxxxxxx>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Signed-off-by: Mitko Haralanov <mitko.haralanov@xxxxxxxxx>
Signed-off-by: Ravi Krishnaswamy <ravi.krishnaswamy@xxxxxxxxx>
Signed-off-by: Sadanand Warrier <sadanand.warrier@xxxxxxxxx>
Signed-off-by: Sanath Kumar <sanath.s.kumar@xxxxxxxxx>
Signed-off-by: Sudeep Dutt <sudeep.dutt@xxxxxxxxx>
Signed-off-by: Vlad Danushevsky <vladimir.danusevsky@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit d4ab347005fb26f414b98b2c8d5ef6de5778c3dc
Author: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx>
Date: Thu Jul 30 15:17:32 2015 -0400
IB/core: Add core header changes needed for OPA
This patch adds the value of the CNP opcode to the existing list of
enumerated
opcodes in ib_pack.h
Add common OPA header definitions for driver
build:
- opa_port_info.h
- opa_smi.h
- hfi1_user.h
Additionally, ib_mad.h, has additional definitions
that are common to ib_drivers including:
- trap support
- cca support
The qib driver has the duplication removed in favor
those in ib_mad.h
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Reviewed-by: John, Jubin <jubin.john@xxxxxxxxx>
Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 072bf1f7e4b5963034df35460f5f311396347a36
Author: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed Jul 29 09:44:14 2015 -0500
RDMA/amso1100: Deprecate the amso1100 driver and move to staging
The HW hasn't been sold since 2005, and the SW has definite bit rot.
Its time to remove it. So move it to staging for a few releases and
then remove it after that.
Signed-off-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 6f9b38903c06c159d167344821cd7b4bae864380
Author: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx>
Date: Thu Jul 30 09:25:42 2015 -0400
IB/ipath: Deprecate ipath driver and move to staging.
It is now time for the ipath driver to begin to be phased out of the
kernel.
This patch moves the ipath driver from the Infiniband sub tree to the
staging
area where it will remain until the code is removed from the kernel in a
few
releases.
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 2dfcad3adea961916f013387889bc418c65421cd
Author: Doug Ledford <dledford@xxxxxxxxxx>
Date: Thu Aug 27 14:18:57 2015 -0400
Staging: Add staging/rdma directory and update MAINTAINERS
Create the rdma directory in the staging area for use as we deprecate
some older drivers and as we bring in some new drivers that are in
need of work. Update the MAINTAINERS file so that updates to these
files go to linux-rdma@xxxxxxxxxxxxxxxx Expected lifespan of this
directory is three releases for any deprecated drivers moved here
and an unknown, but theoretically bounded amount of time for the new
drivers as a new core RDMA transfer library needs to be written and
the drivers modified to use it in order for them to move out of this
directory.
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 84cc6ac62d4386f5b6d9ccf2900686b5648e230f
Author: Hariprasad S <hariprasad@xxxxxxxxxxx>
Date: Tue Aug 25 14:08:23 2015 +0530
iw_cxgb4: Add support for clip
Add support for ipv6 address handling clip api provided by lld
Signed-off-by: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Acked-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 6c26a77124ff94102ea59ac23a54cdad2c49e644
Author: Spencer Baugh <sbaugh@xxxxxxxxxx>
Date: Thu Aug 13 12:19:10 2015 -0700
RDMA/cma: fix IPv6 address resolution
Resolving a link-local IPv6 address with an unspecified source address
was broken by commit 5462eddd7a, which prevented the IPv6 stack from
learning the scope id of the link-local IPv6 address, causing random
failures as the IP stack chose a random link to resolve the address on.
This commit 5462eddd7a made us bail out of cma_check_linklocal early if
the address passed in was not an IPv6 link-local address. On the address
resolution path, the address passed in is the source address; if the
source address is the unspecified address, which is not link-local, we
will bail out early.
This is mostly correct, but if the destination address is a link-local
address, then we will be following a link-local route, and we'll need to
tell the IPv6 stack what the scope id of the destination address is.
This used to be done by last line of cma_check_linklocal, which is
skipped when bailing out early:
dev_addr->bound_dev_if = sin6->sin6_scope_id;
(In cma_bind_addr, the sin6_scope_id of the source address is set to the
sin6_scope_id of the destination address, so this is correct)
This line is required in turn for the following line, L279 of
addr6_resolve, to actually inform the IPv6 stack of the scope id:
fl6.flowi6_oif = addr->bound_dev_if;
Since we can only know we are in this failure case when we have access
to both the source IPv6 address and destination IPv6 address, we have to
deal with this further up the stack. So detect this failure case in
cma_bind_addr, and set bound_dev_if to the destination address scope id
to correct it.
Signed-off-by: Spencer Baugh <sbaugh@xxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 7e967fd0b84a843b2475acc67a5a8df138c5f5c0
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 4 17:13:32 2015 -0600
IB/ucma: Fix theoretical user triggered use-after-free
Something like this:
CPU A CPU B
Acked-by: Sean Hefty <sean.hefty@xxxxxxxxx>
======================== ================================
ucma_destroy_id()
wait_for_completion()
.. anything
ucma_put_ctx()
complete()
.. continues ...
ucma_leave_multicast()
mutex_lock(mut)
atomic_inc(ctx->ref)
mutex_unlock(mut)
ucma_free_ctx()
ucma_cleanup_multicast()
mutex_lock(mut)
kfree(mc)
rdma_leave_multicast(mc->ctx->cm_id,..
Fix it by latching the ref at 0. Once it goes to 0 mc and ctx cannot
leave the mutex(mut) protection.
The other atomic_inc in ucma_get_ctx is OK because mutex(mut) protects
it from racing with ucma_destroy_id.
Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Acked-by: Sean Hefty <sean.hefty@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit b8ac3112462900a55a45df8e6098c67a139d8c2d
Author: Hariprasad S <hariprasad@xxxxxxxxxxx>
Date: Mon Jul 27 14:08:52 2015 +0530
iw_cxgb4: set the default MPA version to 2
This enables ORD/IRD negotiation and its about time to enable it by
default
Signed-off-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit 7854550ae6d89bb90980b9885c7a71e471820bf2
Author: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Date: Tue Jul 28 09:13:52 2015 -0500
RDMA/iser: Limit sgs to the device fastreg depth
Currently the sg tablesize, which dictates fast register page list
depth to use, does not take into account the limits of the rdma device.
So adjust it once we discover the device fastreg max depth limit. Also
adjust the max_sectors based on the resulting sg tablesize.
Signed-off-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit d6c7276be180fbd0a30cda8fac5c82d483be47b6
Author: Roland Dreier <roland@xxxxxxxxxxxxxxx>
Date: Mon Jul 27 14:43:23 2015 -0700
IB/mlx5: Remove dead code from alloc_cached_mr()
The only place that assigns mr inside the loop already does a break.
So "if (mr)" will never be true here since the function initializes mr
to NULL at the top. We can just drop the extra if and break here.
Signed-off-by: Roland Dreier <roland@xxxxxxxxxxxxxxx>
Acked-by: Eli Cohen <eli@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit d6f1c17e162b2a11e708f28fa93f2f79c164b442
Author: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Date: Tue Jul 21 08:36:07 2015 -0400
IB/qib: Change lkey table allocation to support more MRs
The lkey table is allocated with with a get_user_pages() with an
order based on a number of index bits from a module parameter.
The underlying kernel code cannot allocate that many contiguous pages.
There is no reason the underlying memory needs to be physically
contiguous.
This patch:
- switches the allocation/deallocation to vmalloc/vfree
- caps the number of bits to 23 to insure at least 1 generation bit
o this matches the module parameter description
Cc: stable@xxxxxxxxxxxxxxx
Reviewed-by: Vinit Agnihotri <vinit.abhay.agnihotri@xxxxxxxxx>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit e0238a6a369eaa2e41b2c0321453272fb859f618
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Tue Jul 21 14:40:12 2015 +0300
mlx5: Expose correct page_size_cap in device attributes
Should be all the page sizes that are supported by the
device.
Reported-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Reviewed-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit a3c874200cbcd95ed914ba84f33f571a0ef7adfa
Author: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Date: Mon Jul 20 19:54:36 2015 +0300
mlx5: Fix missing device local_dma_lkey
The mlx5 driver exposes device capability IB_DEVICE_LOCAL_DMA_LKEY
but does not set the the device local_dma_lkey. This breaks
rpcrdma drivers.
Query and set this lkey when creating the device resources.
Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx>
commit d6f5aef298b5e5bd12e5d3ef111a4d0fc727ca70
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Fri Aug 28 17:30:46 2015 -0700
Input: max8997_haptic - fix module alias
The driver is a platform driver and not a I2C driver so its modalias
should be exported with MODULE_DEVICE_TABLE(platform,...) instead of
MODULE_DEVICE_TABLE(i2c,...).
Also, remove the unnecessary MODULE_ALIAS("platform:max8997-haptic")
now that the correct module alias is created.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 742f452b9b60c228a33e8d35fd2c74cd15bdaa29
Author: Benson Leung <bleung@xxxxxxxxxxxx>
Date: Fri Aug 28 17:30:16 2015 -0700
Input: elan_i2c - fix typos for validpage_count
Search for "vaildpage_count" and replace with "validpage_count".
Signed-off-by: Benson Leung <bleung@xxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 8bb6944e5aabaf9b7977502667a6981733564f85
Author: Jon Hunter <jonathanh@xxxxxxxxxx>
Date: Thu Aug 27 10:17:00 2015 +0100
PM / Domains: Fix typo in description of genpd_dev_pm_detach()
The function genpd_dev_pm_detach() detaches a device from a PM domain,
however, in the description, the "dev" argument for the function is
described as the device to "attach" instead of "detach". Correct this.
Signed-off-by: Jon Hunter <jonathanh@xxxxxxxxxx>
Acked-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Acked-by: Kevin Hilman <khilman@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit ad440bf40e2846966da44e885bb7d8a1f8384fa6
Author: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Date: Tue Aug 18 13:38:02 2015 +0200
PM / Domains: Remove unusable governor dummies
The governor dummies for the !CONFIG_PM_GENERIC_DOMAINS case are
unusable, as a governors is always referred to by taking its address,
which you can't do with a literal NULL pointer.
I.e.
pm_genpd_init(genpd, &simple_qos_governor, false);
fails to compile with:
error: lvalue required as unary '&' operand
Hence just remove the governor dummies.
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Acked-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit be5ed55de011bddbb8ef7b3453edf07a26865beb
Author: Rajendra Nayak <rnayak@xxxxxxxxxxxxxx>
Date: Thu Aug 13 11:51:57 2015 +0530
PM / Domains: Make pm_genpd_init() available to modules
Export symbol pm_genpd_init so it can be used in loadable
kernel modules
Signed-off-by: Rajendra Nayak <rnayak@xxxxxxxxxxxxxx>
Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Acked-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Acked-by: Kevin Hilman <khilman@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 15dec67ae3ddb222fe6907db299229906ede8143
Author: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Date: Tue Aug 11 14:50:49 2015 +0200
PM / domains: Align column headers and data in pm_genpd_summary output
"domain": header is indented by 4, data by 0 spaces => 0 spaces
"/device": header is indented by 11, data by 4 spaces => 4 spaces
"slaves": header is indented by 47, data by 49 spaces => 48 spaces
Ruler:
1234567890123456789012345678901234567890123456789012345678901234567890
Before:
domain status slaves
/device runtime status
----------------------------------------------------------------------
a3sp on a2us
/devices/platform/e60b0000.i2c suspended
After:
domain status slaves
/device runtime status
----------------------------------------------------------------------
a3sp on a2us
/devices/platform/e60b0000.i2c suspended
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Acked-by: Kevin Hilman <khilman@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 5021282cc483d4126c1704942adb74806f7d15d6
Author: Seiichi Ikarashi <s.ikarashi@xxxxxxxxxxxxxx>
Date: Wed Aug 19 14:26:03 2015 +0900
powercap / RAPL: disable the 2nd power limit properly
Let rapl_unregister_powercap() disable the second power limit
only if it exists.
Intel64 SDM Vol.3 14.9 says that the package domain has it
but neither the power plane domain nor the DRAM domain has it.
Signed-off-by: Seiichi Ikarashi <s.ikarashi@xxxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 404c2db635b0e41697eed165b045cb47fd729dd0
Author: Shreyas B. Prabhu <shreyas@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 3 11:46:00 2015 +0530
tools: cpupower: Fix error when running cpupower monitor
get_cpu_topology() tries to get topology info from all cpus by reading
files in the topology sysfs dir. If a cpu is offlined, since it doesn't
have topology dir, this function fails and returns -1. This causes
functions relying on get_cpu_topology() to fail. For example-
$ cpupower monitor
Cannot read number of available processors
Fix this by skipping fetching topology info for offline cpus.
Signed-off-by: Shreyas B. Prabhu <shreyas@xxxxxxxxxxxxxxxxxx>
Reported-by: Pavaman Subramaniyam <pavsubra@xxxxxxxxxxxxxxxxxx>
Acked-by: Thomas Renninger <trenn@xxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 581a5f2a6111e3d3b22f31a7d93b6bae2627e83a
Merge: cc7acad 851345c
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Fri Aug 28 16:29:59 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next
Pablo Neira Ayuso says:
====================
Netfilter updates for net-next
The following patchset contains Netfilter/IPVS updates for your net-next
tree.
In sum, patches to address fallout from the previous round plus updates
from
the IPVS folks via Simon Horman, they are:
1) Add a new scheduler to IPVS: The weighted overflow scheduling algorithm
directs network connections to the server with the highest weight that
is
currently available and overflows to the next when active connections
exceed
the node's weight. From Raducu Deaconu.
2) Fix locking ordering in IPVS, always take rtnl_lock in first place.
Patch
from Julian Anastasov.
3) Allow to indicate the MTU to the IPVS in-kernel state sync daemon. From
Julian Anastasov.
4) Enhance multicast configuration for the IPVS state sync daemon. Also
from
Julian.
5) Resolve sparse warnings in the nf_dup modules.
6) Fix a linking problem when CONFIG_NF_DUP_IPV6 is not set.
7) Add ICMP codes 5 and 6 to IPv6 REJECT target, they are more informative
subsets of code 1. From Andreas Herz.
8) Revert the jumpstack size calculation from mark_source_chains due to
chain
depth miscalculations, from Florian Westphal.
9) Calm down more sparse warning around the Netfilter tree, again from
Florian
Westphal.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit cc7acad135b7228b56977867afb07d3d54f0cdd3
Merge: c9fd56b 8d3b7dc
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Fri Aug 28 16:27:28 2015 -0700
Merge branch 'bpf_trace_printk-percent-s'
Alexei Starovoitov says:
====================
support for '%s' in bpf_trace_printk
v2->v3:
fix the comment to mention that strncpy_from_unsafe() returns
the length of the string including the trailing NUL.
v1->v2:
patch 1: generalize FETCH_FUNC_NAME(memory, string) into
strncpy_from_unsafe()
patch 2: use it in bpf_trace_printk
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8d3b7dce8622919da5c5822ef7338d6604c9fe6e
Author: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Date: Fri Aug 28 15:56:23 2015 -0700
bpf: add support for %s specifier to bpf_trace_printk()
%s specifier makes bpf program and kernel debugging easier.
To make sure that trace_printk won't crash the unsafe string
is copied into stack and unsafe pointer is substituted.
The following C program:
#include <linux/fs.h>
int foo(struct pt_regs *ctx, struct filename *filename)
{
void *name = 0;
bpf_probe_read(&name, sizeof(name), &filename->name);
bpf_trace_printk("executed %s\n", name);
return 0;
}
when attached to kprobe do_execve()
will produce output in /sys/kernel/debug/tracing/trace_pipe :
make-13492 [002] d..1 3250.997277: : executed /bin/sh
sh-13493 [004] d..1 3250.998716: : executed /usr/bin/gcc
gcc-13494 [002] d..1 3250.999822: : executed
/usr/lib/gcc/x86_64-linux-gnu/4.7/cc1
gcc-13495 [002] d..1 3251.006731: : executed /usr/bin/as
gcc-13496 [002] d..1 3251.011831: : executed
/usr/lib/gcc/x86_64-linux-gnu/4.7/collect2
collect2-13497 [000] d..1 3251.012941: : executed /usr/bin/ld
Suggested-by: Brendan Gregg <brendan.d.gregg@xxxxxxxxx>
Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1a6877b9c0c2ad901d4335d909432d3bb6d3a330
Author: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Date: Fri Aug 28 15:56:22 2015 -0700
lib: introduce strncpy_from_unsafe()
generalize FETCH_FUNC_NAME(memory, string) into
strncpy_from_unsafe() and fix sparse warnings that were
present in original implementation.
Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c9fd56b34efd06a031cbc918d288f09e38173ff9
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 28 15:44:25 2015 -0700
netpoll: warn on netpoll_send_udp users who haven't disabled irqs
Make sure we catch future netpoll_send_udp users who use it without
disabling irqs and also as a hint for poll_controller users.
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a9de9777d613500b089a7416f936bf3ae5f070d2
Author: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
Date: Fri Aug 28 21:01:43 2015 +0200
netfilter: nfnetlink: work around wrong endianess in res_id field
The convention in nfnetlink is to use network byte order in every header
field
as well as in the attribute payload. The initial version of the batching
infrastructure assumes that res_id comes in host byte order though.
The only client of the batching infrastructure is nf_tables, so let's add
a
workaround to address this inconsistency. We currently have 11 nfnetlink
subsystems according to NFNL_SUBSYS_COUNT, so we can assume that the
subsystem
2560, ie. htons(10), will not be allocated anytime soon, so it can be an
alias
of nf_tables from the nfnetlink batching path when interpreting the res_id
field.
Based on original patch from Florian Westphal.
Reported-by: Florian Westphal <fw@xxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit 96be5f2806cd65a2ebced3bfcdf7df0116e6c4a6
Author: Elad Raz <eladr@xxxxxxxxxxxx>
Date: Sat Aug 22 08:44:11 2015 +0300
netfilter: ipset: Fixing unnamed union init
In continue to proposed Vinson Lee's post [1], this patch fixes
compilation
issues founded at gcc 4.4.7. The initialization of .cidr field of unnamed
unions causes compilation error in gcc 4.4.x.
References
Visible links
[1] https://lkml.org/lkml/2015/7/5/74
Signed-off-by: Elad Raz <eladr@xxxxxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit 55cc051915fd066f46c56ebd60ba486ad11e0e29
Merge: c1b3b19 ef899c0
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Fri Aug 28 14:15:25 2015 -0700
Merge branch 'phylib-simplifications'
Sergei Shtylyov says:
====================
Some phylib simplifications
Here's 2 patches against DaveM's 'net-next.git' repo. We simplify a
bogus
string of type casts in the 1st patch and make the code respect some
coding
standards of the networking code in the 2nd one. I may follow with fixing
of
checkpatch.pl's complaints. if I have time..
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ef899c0778a39063816e19d749a688c06a6ac78e
Author: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 28 21:35:14 2015 +0300
phylib: simplify NULL checks
Fix scripts/checkpatch.pl's messages like:
CHECK: Comparison to NULL could be written "!phydrv->read_mmd_indirect"
BTW, it doesn't detect the reversed comparisons (which I've fixed as
well).
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d3765f08d6f32f17ac898ec1f19957b322d4157f
Author: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 28 21:34:34 2015 +0300
phylib: simplify bogus phy_device_create() result
Get rid of the bogus string of type casts where ERR_PTR() is enough.
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c1b3b19923a371c9e099c30372d376b02fe66088
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Fri Aug 28 18:46:39 2015 +0200
net: sched: don't break line in tc_classify loop notification
Just some minor noise follow-up to address some stylistic issues of
commit 3b3ae880266d ("net: sched: consolidate tc_classify{,_compat}").
Accidentally v1 instead of v2 of that commit got applied, so this
patch adds the relative diff.
Suggested-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b0fbdae127a3968688ff7b474e9164dc4bf30dd5
Author: Shradha Shah <sshah@xxxxxxxxxxxxxx>
Date: Fri Aug 28 10:55:42 2015 +0100
sfc: Allow driver to cope with a lower number of VIs than it needs for RSS
Previously, the driver would refuse to load if it couldn't secure
enough VIs from the MC to fulfill its RSS requirements.
This was causing probe to fail on later functions in
configurations where we'd run out of VIs, such as having many
VFs.
This change allows the driver to load with fewer VIs, down to a
minimum of 2. A warning will be printed saying that RSS
requirements were not met, possibly affecting performance.
efx->max_tx_channels needs to be set to avoid going down the
failure path in efx_probe_nic() immediately in the loop after the
probe() NIC-type function.
Also, Set rc=ENOSPC when bombing out of efx_probe_nic due to lack
of VIs.
Signed-off-by: Shradha Shah <sshah@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9ca678d1dff610f7df6ac9b31fd9152c4426f815
Merge: 2fc32c9 27d868b 91f15fb
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Fri Aug 28 15:53:08 2015 -0500
Merge branches 'pci/enumeration' and 'pci/misc' into next
* pci/enumeration:
PCI: Set MPS to match upstream bridge
PCI: Move MPS configuration check to pci_configure_device()
PCI: Drop references acquired by of_parse_phandle()
PCI/MSI: Remove unused pcibios_msi_controller() hook
ARM/PCI: Remove msi_controller from struct pci_sys_data
ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi()
PCI: Add pci_scan_root_bus_msi()
ARM/PCI: Replace panic with WARN messages on failures
PCI: generic: Add arm64 support
PCI: Build setup-irq.o for arm64
PCI: generic: Remove dependency on ARM-specific struct hw_pci
ARM/PCI: Set MPS before pci_bus_add_devices()
* pci/misc:
PCI: Disable async suspend/resume for JMicron multi-function SATA/AHCI
commit a69265e9f65a6747c27b01b4030ad85d71aa11ba
Author: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Date: Fri Aug 28 11:17:12 2015 +0530
cxgb4: Force uninitialized state if FW in adapter is unsupported
Forcing uninitialized state allows us to upgrade and reinitialize
the adapter.
FW_VERSION_T4 = 1.4.0.0
FW_VERSION_T5 = 0.0.0.0
FW_VERSION_T6 = 0.0.0.0
At this point driver supports above and greater than above version.
If FW in adapter < min FW_VERSION driver supports tries to upgrade the FW
If FW in adapter >= FW_VERSION driver supports then it follows normal path
Signed-off-by: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8b72ca67fed39816b732b0cf53a1c7f2efc6400d
Merge: 9723e6a ed29266
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Fri Aug 28 13:43:33 2015 -0700
Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge
Antonio Quartulli says:
====================
Included changes:
- code beautification
- remove obsolete 'deleted' attribute for bat-gw node
- increase internal version number
- prevent potential access to netdev object after deregistration
- set needed_head/tail_room for batman virtual interface
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9723e6abc70a472c726d5d5ac6402a2d1bb10882
Author: Valentin Rothberg <valentinrothberg@xxxxxxxxx>
Date: Fri Aug 28 10:39:56 2015 +0200
openswitch: fix typo CONFIG_NF_CONNTRACK_LABEL
Fix typo in conntrack.c
s/CONFIG_NF_CONNTRACK_LABEL/CONFIG_NF_CONNTRACK_LABELS/
Signed-off-by: Valentin Rothberg <valentinrothberg@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit fe55565ef251d486c2c97779512ad22faf57384c
Merge: 8f58336 192132b
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Fri Aug 28 13:32:37 2015 -0700
Merge branch 'vrf-inetpeer'
David Ahern says:
====================
net: Refactor inetpeer cache and add support for VRFs
Per Dave's comment on the version 1 patch adding VRF support to inetpeer
cache by explicitly making the address + index a key. Refactored the
inetpeer code in the process; mostly impacts the use by tcp_metrics.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 192132b9a034d87566294be0fba5f8f75c2cf16b
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 16:07:03 2015 -0700
net: Add support for VRFs to inetpeer cache
inetpeer caches based on address only, so duplicate IP addresses within
a namespace return the same cached entry. Enhance the ipv4 address key
to contain both the IPv4 address and VRF device index.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5345c2e12d41f815c1009c9dee72f3d5fcfd4282
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 16:07:02 2015 -0700
net: Refactor inetpeer address struct
Move the inetpeer_addr_base union to inetpeer_addr and drop
inetpeer_addr_base.
Both the a6 and in6_addr overlays are not needed; drop the __be32 version
and rename in6 to a6 for consistency with ipv4. Add a new u32 array to
the union which removes the need for the typecast in the compare function
and the use of a consistent arg for both ipv4 and ipv6 addresses which
makes the compare function more readable.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d39d14ffa24cca9f0e44aa4a63315f4c44c56a93
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 16:07:01 2015 -0700
net: Add helper function to compare inetpeer addresses
tcp_metrics and inetpeer both have functions to compare inetpeer
addresses. Consolidate into 1 version.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3abef286cf2f138de353fb0b54453621de961043
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 16:07:00 2015 -0700
net: Add set,get helpers for inetpeer addresses
Use inetpeer set,get helpers in tcp_metrics rather than peeking into
the inetpeer_addr struct.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 72afa352d6a3d4da7783b5ddee02b94be49e051a
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 16:06:59 2015 -0700
net: Introduce ipv4_addr_hash and use it for tcp metrics
Refactors a common line into helper function.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8f58336d3f78aef61c8023c18546155f5fdf3224
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 10:10:50 2015 -0700
net: Add ethernet header for pass through VRF device
The change to use a custom dst broke tcpdump captures on the VRF device:
$ tcpdump -n -i vrf10
...
05:32:29.009362 IP 10.2.1.254 > 10.2.1.2: ICMP echo request, id 21989,
seq 1, length 64
05:32:29.009855 00:00:40:01:8d:36 > 45:00:00:54:d6:6f, ethertype Unknown
(0x0a02), length 84:
0x0000: 0102 0a02 01fe 0000 9181 55e5 0001 bd11 ..........U.....
0x0010: da55 0000 0000 bb5d 0700 0000 0000 1011 .U.....]........
0x0020: 1213 1415 1617 1819 1a1b 1c1d 1e1f 2021 ...............!
0x0030: 2223 2425 2627 2829 2a2b 2c2d 2e2f 3031 "#$%&'()*+,-./01
0x0040: 3233 3435 3637 234567
Local packets going through the VRF device are missing an ethernet header.
Fix by adding one and then stripping it off before pushing back to the IP
stack. With this patch you get the expected dumps:
...
05:36:15.713944 IP 10.2.1.254 > 10.2.1.2: ICMP echo request, id 23795,
seq 1, length 64
05:36:15.714160 IP 10.2.1.2 > 10.2.1.254: ICMP echo reply, id 23795, seq
1, length 64
...
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 274b045509175db0405c784be85e8cce116e6f7d
Author: Chas Williams <3chas3@xxxxxxxxx>
Date: Thu Aug 27 12:28:46 2015 -0400
net/xen-netfront: only napi_synchronize() if running
If an interface isn't running napi_synchronize() will hang forever.
[ 392.248403] rmmod R running task 0 359 343
0x00000000
[ 392.257671] ffff88003760fc88 ffff880037193b40 ffff880037193160
ffff88003760fc88
[ 392.267644] ffff880037610000 ffff88003760fcd8 0000000100014c22
ffffffff81f75c40
[ 392.277524] 0000000000bc7010 ffff88003760fca8 ffffffff81796927
ffffffff81f75c40
[ 392.287323] Call Trace:
[ 392.291599] [<ffffffff81796927>] schedule+0x37/0x90
[ 392.298553] [<ffffffff8179985b>] schedule_timeout+0x14b/0x280
[ 392.306421] [<ffffffff810f91b9>] ? irq_free_descs+0x69/0x80
[ 392.314006] [<ffffffff811084d0>] ? internal_add_timer+0xb0/0xb0
[ 392.322125] [<ffffffff81109d07>] msleep+0x37/0x50
[ 392.329037] [<ffffffffa00ec79a>]
xennet_disconnect_backend.isra.24+0xda/0x390 [xen_netfront]
[ 392.339658] [<ffffffffa00ecadc>] xennet_remove+0x2c/0x80
[xen_netfront]
[ 392.348516] [<ffffffff81481c69>] xenbus_dev_remove+0x59/0xc0
[ 392.356257] [<ffffffff814e7217>] __device_release_driver+0x87/0x120
[ 392.364645] [<ffffffff814e7cf8>] driver_detach+0xb8/0xc0
[ 392.371989] [<ffffffff814e6e69>] bus_remove_driver+0x59/0xe0
[ 392.379883] [<ffffffff814e84f0>] driver_unregister+0x30/0x70
[ 392.387495] [<ffffffff814814b2>] xenbus_unregister_driver+0x12/0x20
[ 392.395908] [<ffffffffa00ed89b>] netif_exit+0x10/0x775 [xen_netfront]
[ 392.404877] [<ffffffff81124e08>] SyS_delete_module+0x1d8/0x230
[ 392.412804] [<ffffffff8179a8ee>] system_call_fastpath+0x12/0x71
Signed-off-by: Chas Williams <3chas3@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit df2cf4a78e488d26728590cb3c6b4fe4c4862c77
Author: Philip Downey <pdowney@xxxxxxxxxxx>
Date: Thu Aug 27 16:46:26 2015 +0100
IGMP: Inhibit reports for local multicast groups
The range of addresses between 224.0.0.0 and 224.0.0.255 inclusive, is
reserved for the use of routing protocols and other low-level topology
discovery or maintenance protocols, such as gateway discovery and
group membership reporting. Multicast routers should not forward any
multicast datagram with destination addresses in this range,
regardless of its TTL.
Currently, IGMP reports are generated for this reserved range of
addresses even though a router will ignore this information since it
has no purpose. However, the presence of reserved group addresses in
an IGMP membership report uses up network bandwidth and can also
obscure addresses of interest when inspecting membership reports using
packet inspection or debug messages.
Although the RFCs for the various version of IGMP (e.g.RFC 3376 for
v3) do not specify that the reserved addresses be excluded from
membership reports, it should do no harm in doing so. In particular
there should be no adverse effect in any IGMP snooping functionality
since 224.0.0.x is specifically excluded as per RFC 4541 (IGMP and MLD
Snooping Switches Considerations) section 2.1.2. Data Forwarding
Rules:
2) Packets with a destination IP (DIP) address in the 224.0.0.X
range which are not IGMP must be forwarded on all ports.
IGMP reports for local multicast groups can now be optionally
inhibited by means of a system control variable (by setting the value
to zero) e.g.:
echo 0 > /proc/sys/net/ipv4/igmp_link_local_mcast_reports
To retain backwards compatibility the previous behaviour is retained
by default on system boot or reverted by setting the value back to
non-zero e.g.:
echo 1 > /proc/sys/net/ipv4/igmp_link_local_mcast_reports
Signed-off-by: Philip Downey <pdowney@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d7d2d89d4b0afa8f4c2b169475a0c6e43553c146
Author: Corinna Vinschen <vinschen@xxxxxxxxxx>
Date: Thu Aug 27 17:11:48 2015 +0200
r8169: Add software counter for multicast packages
The multicast hardware counter on 8168/8111 chips is only 32 bit while the
statistics in struct rtnl_link_stats64 are 64 bit. Given that statistics
are requested on an irregular basis, an overflow of the hardware counter
can go unnoticed. To count even very large numbers of multicast packets
reliably, add a software counter and remove previously applied code to
fill the multicast field requested by @rtl8169_get_stats64 with the values
read from the rx_multicast hardware counter.
Signed-off-by: Corinna Vinschen <vinschen@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 710105fda7a7f350c9fb22e7f61f74c3dc0fe514
Author: Hannes Reinecke <hare@xxxxxxx>
Date: Thu Aug 27 14:17:02 2015 +0200
scsi_dh: return SCSI_DH_NOTCONN in scsi_dh_activate()
When calling scsi_dh_activate() we should be returning
SCSI_DH_NOTCONN if the device handler couldn't be attached.
Reviewed-by: Bart van Assche <bart.vanassche@xxxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Hannes Reinecke <hare@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit d44227749500d8b88a1c079bc04f69187eaf8747
Author: Christoph Hellwig <hch@xxxxxx>
Date: Thu Aug 27 14:17:01 2015 +0200
scsi_dh: don't allow to detach device handlers at runtime
The I/O submission and completion paths call into the device handler
without any synchronization agains detachment. So disallow detaching
device handlers at runtime.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit e959ed9a44c5239863ca6db42cb37130bee3c7a3
Author: Christoph Hellwig <hch@xxxxxx>
Date: Thu Aug 27 14:17:00 2015 +0200
scsi_dh: add a common helper to get a scsi_device from a request_queue
And cleanup the various messy opencoded versions of this. Note that this
moves the sdev_state checks outside the queue_lock coverage, but as
we don't hold the lock over the activation they are only advisory anyway.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit ee14c674e8fc57251223054fb52dc0ecfe711028
Author: Christoph Hellwig <hch@xxxxxx>
Date: Thu Aug 27 14:16:59 2015 +0200
scsi_dh: kill struct scsi_dh_data
Add a ->handler and a ->handler_data field to struct scsi_device and kill
this indirection. Also move struct scsi_device_handler to scsi_dh.h so
that
changes to it don't require rebuilding every SCSI LLDD.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit d95dbff2a41e934cd8789734b34dc591e78ba11c
Author: Christoph Hellwig <hch@xxxxxx>
Date: Thu Aug 27 14:16:58 2015 +0200
scsi_dh: move device matching to the core code
Add a single list of devices that need non-ALUA device handlers to the
core
scsi_dh code so that we can autoload the modules for them at probe time.
While this is a little ugly in terms of architecture it actually
significantly simplifies the code in addition to the new autoloading
functionality.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Acked-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 086b91d052ebe4ead5d28021afe3bdfd70af15bf
Author: Christoph Hellwig <hch@xxxxxx>
Date: Thu Aug 27 14:16:57 2015 +0200
scsi_dh: integrate into the core SCSI code
Stop building scsi_dh as a separate module and integrate it fully into the
core SCSI code with explicit callouts at bus scan time. For now the
callouts are placed at the same point as the old bus notifiers were
called,
but in the future we will be able to look at ALUA INQUIRY data earlier on.
Note that this also means that the device handler modules need to be
loaded
by the time we scan the bus. The next patches will add support for
autoloading device handlers at bus scan time to make sure they are always
loaded if they are enabled in the kernel config.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Acked-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit daaa858b7a6bb497f11c2aae555053b9c047824b
Author: Christoph Hellwig <hch@xxxxxx>
Date: Thu Aug 27 14:16:56 2015 +0200
scsi_dh: move to drivers/scsi
Prepare for building scsi_dh.c into the core SCSI module by moving it to
drivers/scsi.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Hannes Reinecke <hare@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 566079c849cfe538e908c44ac11a9c4638db8f91
Author: Christoph Hellwig <hch@xxxxxx>
Date: Thu Aug 27 14:16:55 2015 +0200
dm-mpath, scsi_dh: request scsi_dh modules in scsi_dh, not dm-mpath
This way we can reused the same code any attachment method, not just those
requested from dm-mpath.
[jejb: fixup checkpatch error]
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Acked-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 1bab0de0274fbe8c8ac92179e6705584c55ed169
Author: Christoph Hellwig <hch@xxxxxx>
Date: Thu Aug 27 14:16:54 2015 +0200
dm-mpath, scsi_dh: don't let dm detach device handlers
While allowing dm-mpath to attach device handlers is a functionality we
need
for backwards compatibility reason there is no reason to reference count
them and detach them if dm-mpath stops using the device for some reason.
If the device handler works for the given device it can just stay
attached,
and we can take the retain_hw_handler codepath.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Acked-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Acked-by: Hannes Reinecke <hare@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 36dd5acd196574d41de3e81d8264df475bbb7123
Author: Hannes Reinecke <hare@xxxxxxx>
Date: Mon Jul 6 13:07:58 2015 +0200
aic94xx: Skip reading user settings if flash is not found
If no user settings are found it's pointless trying to
read them from flash. So skip that step.
This also fixes a compilation warning about uninitialized variables in
aic94xx.
Signed-off-by: Hannes Reinecke <hare@xxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit e35d7f27fbd51a09a41a5439e39f22a3d102c00b
Author: Gabriel Krisman Bertazi <krisman@xxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 11:47:06 2015 -0300
ipr: Enable SIS pipe commands for SIS-32 devices.
Remove unnecessary check that disabled SIS pipe commands for SIS-32
devices. This change was sufficient to enable raw mode and send SIS
pipe commands for a 57B3 device.
Fixes: f8ee25d7d239 ("ipr: AF DASD raw mode implementation in ipr driver")
Signed-off-by: Gabriel Krisman Bertazi <krisman@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Wen Xiong <wenxiong@xxxxxxxxxxxxxxxxxx>
Acked-by: Brian King <brking@xxxxxxxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 3cb4fc1fcae9647c594bc2b8fda1b818f4fb757f
Author: Gabriel Krisman Bertazi <krisman@xxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 11:47:05 2015 -0300
ipr: Inhibit underlength data check for AFDASD in raw mode.
Disable underlength error verification based on count of bytes actually
transferred for AF DASD devices when SIS pipe mode is enabled.
This avoids unexpected underlength errors when issuing some commands in
raw mode.
Signed-off-by: Gabriel Krisman Bertazi <krisman@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Wen Xiong <wenxiong@xxxxxxxxxxxxxxxxxx>
Acked-by: Brian King <brking@xxxxxxxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 917522aae169ad02010dcee6ae42c16155bcd285
Author: Frederic Danis <frederic.danis@xxxxxxxxxxxxxxx>
Date: Fri Aug 28 15:44:00 2015 +0200
Bluetooth: hci_bcm: Fix crash on suspend
If bcm_suspend is called whithout device opened there is a crash as
it tries to use bdev->hu which is NULL.
Rename bcm_device_list_lock to bcm_device_lock as it does not only apply
to bcm_device_list.
Signed-off-by: Frederic Danis <frederic.danis@xxxxxxxxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit 6e7a3840745c950c37d37cbb0af2e753a765d4ec
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Thu Aug 27 13:46:09 2015 +0800
drm/amdgpu: use IB for fill_buffer instead of direct command
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 8f8202f771c182a7244caa5880f50def1bedd713
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu May 7 15:19:25 2015 +0200
drm/amdgpu: stop trying to suspend UVD sessions v2
Saving the current UVD state on suspend and restoring it on resume
just doesn't work reliable. Just close cleanup all sessions on suspend.
Ported from radeon commit "12e49feadff6d7b7ebbe852b36943a71524d8d34".
v2: rebased
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> (v1)
commit e61235db62c5e68e56e59bea62b88f9f3d7a3cf5
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 25 11:05:36 2015 +0200
drm/amdgpu: add scheduler dependency callback v2
This way the scheduler doesn't wait in it's work thread any more.
v2: fix race conditions
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 69bd5bf13a8eccb4db5f26de608556416a56d973
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Aug 26 11:31:23 2015 +0200
drm/amdgpu: let the scheduler work more with jobs v2
v2: fix another race condition
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 86b7709d48f0df8796bddd7e1ce45c6fb7a7c6ec
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Thu Aug 27 09:52:22 2015 -0400
drm/radeon: fix HDMI quantization_range for pre-DCE5 asics
Support for output_csc is only available on DCE5 and newer so
don't mess with the HDMI quantization_range on pre-DCE5 asics.
bug:
https://bugs.freedesktop.org/show_bug.cgi?id=83226
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 851345c5bbb4644911f7c351c042559a71f57d19
Author: Florian Westphal <fw@xxxxxxxxx>
Date: Fri Aug 28 00:16:21 2015 +0200
netfilter: reduce sparse warnings
bridge/netfilter/ebtables.c:290:26: warning: incorrect type in assignment
(different modifiers)
-> remove __pure annotation.
ipv6/netfilter/ip6t_SYNPROXY.c:240:27: warning: cast from restricted
__be16
-> switch ntohs to htons and vice versa.
netfilter/core.c:391:30: warning: symbol 'nfq_ct_nat_hook' was not
declared. Should it be static?
-> delete it, got removed
net/netfilter/nf_synproxy_core.c:221:48: warning: cast to restricted
__be32
-> Use __be32 instead of u32.
Tested with objdiff that these changes do not affect generated code.
Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit 98dbbfc3f1a555194e784304d930d2aafde3e2a3
Author: Florian Westphal <fw@xxxxxxxxx>
Date: Wed Aug 26 23:20:51 2015 +0200
Revert "netfilter: xtables: compute exact size needed for jumpstack"
This reverts commit 98d1bd802cdbc8f56868fae51edec13e86b59515.
mark_source_chains will not re-visit chains, so
*filter
:INPUT ACCEPT [365:25776]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [217:45832]
:t1 - [0:0]
:t2 - [0:0]
:t3 - [0:0]
:t4 - [0:0]
-A t1 -i lo -j t2
-A t2 -i lo -j t3
-A t3 -i lo -j t4
# -A INPUT -j t4
# -A INPUT -j t3
# -A INPUT -j t2
-A INPUT -j t1
COMMIT
Will compute a chain depth of 2 if the comments are removed.
Revert back to counting the number of chains for the time being.
Reported-by: Cong Wang <cwang@xxxxxxxxxxxxxxxx>
Reported-by: Hannes Frederic Sowa <hannes@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit 618353b1f34947b3a399d6f51934f10df40e42ff
Author: Kuba Pawlak <kubax.t.pawlak@xxxxxxxxx>
Date: Fri Aug 28 13:05:22 2015 +0100
Bluetooth: Fix SCO link type handling on connection complete
Synchronous connections are initially created with type eSCO.
Link manager may reject proposed link parameters, which triggers
connection setup retry with a different set. Link type embedded
in responses should be disregarded until Synchronous Connect Complete
returns Success (0x00). Current code updates link type every time
which creates an issue when link type changes to SCO and back to eSCO
on further attepts.
Issue happens with BlackBerry 9100 and 9700 with Intel WilkinsPeak
on third connection setup attept
2015-05-18 01:27:57.332242 < HCI Command: Setup Synchronous Connection
(0x01|0x0028) plen 17
handle 256 voice setting 0x0060 ptype 0x0380
2015-05-18 01:27:57.333604 > HCI Event: Command Status (0x0f) plen 4
Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
2015-05-18 01:27:57.334614 > HCI Event: Synchronous Connect Complete
(0x2c) plen 17
status 0x1a handle 0 bdaddr 30:7C:30:B3:A8:86 type SCO
Error: Unsupported Remote Feature / Unsupported LMP Feature
2015-05-18 01:27:57.334895 < HCI Command: Setup Synchronous Connection
(0x01|0x0028) plen 17
handle 256 voice setting 0x0060 ptype 0x0380
2015-05-18 01:27:57.335601 > HCI Event: Command Status (0x0f) plen 4
Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
2015-05-18 01:27:57.336610 > HCI Event: Synchronous Connect Complete
(0x2c) plen 17
status 0x1a handle 0 bdaddr 30:7C:30:B3:A8:86 type SCO
Error: Unsupported Remote Feature / Unsupported LMP Feature
2015-05-18 01:27:57.336685 < HCI Command: Setup Synchronous Connection
(0x01|0x0028) plen 17
handle 256 voice setting 0x0060 ptype 0x03c8
2015-05-18 01:27:57.337603 > HCI Event: Command Status (0x0f) plen 4
Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
2015-05-18 01:27:57.342608 > HCI Event: Max Slots Change (0x1b) plen 3
handle 256 slots 1
2015-05-18 01:27:57.377631 > HCI Event: Synchronous Connect Complete
(0x2c) plen 17
status 0x00 handle 257 bdaddr 30:7C:30:B3:A8:86 type eSCO
Air mode: CVSD
Signed-off-by: Kuba Pawlak <kubax.t.pawlak@xxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit 1ab1f239bf17e91b183a0f18fbb22722ff16d164
Author: Loic Poulain <loic.poulain@xxxxxxxxx>
Date: Thu Aug 27 07:21:51 2015 +0200
Bluetooth: hci_intel: Add support for platform driver
A platform device can be used to provide some specific resources in
order to manage the controller. In this first patch we retrieve the
reset gpio which is used to power on/off the controller.
The main issue is to match the current tty with the correct pdev.
In case of ACPI, we can easily find the right tty/pdev pair because
they are both child of the same UART port.
If controller is powered-on from the driver, we need to wait for a
HCI boot event before being able to send any command.
Signed-off-by: Loic Poulain <loic.poulain@xxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit 0ed97e829458496cc41ff8c39eb330d5a2247191
Author: Marcel Holtmann <marcel@xxxxxxxxxxxx>
Date: Thu Aug 27 08:57:39 2015 +0200
Bluetooth: btintel: Add MODULE_FIRMWARE entries for iBT 3.0 controllers
The iBT 3.0 controllers need intel/ibt-11-5.sfi and intel/ibt-11-5.ddc
firmware files from linux-firmware repository.
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
Signed-off-by: Johan Hedberg <johan.hedberg@xxxxxxxxx>
commit 5075edae086ff1c09e66699b7a27e1589ca75a3f
Author: Minjune Kim <infinite.minjune.kim@xxxxxxxxx>
Date: Thu Aug 27 13:21:52 2015 +0900
Bluetooth: btusb: Correct typos based on checkpatch.pl
Signed-off-by: Minjune Kim <infinite.minjune.kim@xxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit ff2895592f0fccc59332d5c7d4917ccbecd7468e
Author: Loic Poulain <loic.poulain@xxxxxxxxx>
Date: Tue Aug 25 17:55:44 2015 +0200
Bluetooth: hci_intel: Add Intel baudrate configuration support
Implement the set_baudrate callback for hci_intel.
- Controller requires a read Intel version command before updating
its baudrate.
- The operation consists in an async cmd since the controller does
not respond at the same speed.
- Wait 100ms to let the controller change its baudrate.
- Clear RTS until we change our own UART speed
Manage speed change in the setup function, we need to restore the oper
speed once chip has booted on patched firmware.
Signed-off-by: Loic Poulain <loic.poulain@xxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit e54991677e1c8060ba5642472cbd9a0954298d01
Author: Loic Poulain <loic.poulain@xxxxxxxxx>
Date: Mon Aug 24 18:57:57 2015 +0200
Bluetooth: hci_uart: Fix zero len data packet reception issue
Packets with a variable length value equal to zero were not received.
Since no more data expected (and input buffer entirely consumed), we
need to complete/forward the packet immediately instead of waiting for
more data.
Signed-off-by: Loic Poulain <loic.poulain@xxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit 4e1795de10903ae561872c54a72fa1bcf78f49cd
Author: Stefan Schmidt <stefan@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 12:09:47 2015 +0200
nl802154: stricter input checking for boolean inputs
So far we handled boolean input by forcing them with !! and assigning
them into a bool. This allowed userspace to send values > 1 which were
used as 1. We should be stricter here and return -EINVAL for all but
0 or 1.
Signed-off-by: Stefan Schmidt <stefan@xxxxxxxxxxxxxxx>
Acked-by: Alexander Aring <alex.aring@xxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit df945360ce07ca592464e44fdd2ce61ee1536e1e
Author: Nicholas Krause <xerofoify@xxxxxxxxx>
Date: Tue Aug 18 21:23:01 2015 -0400
Bluetooth: Make the function sco_conn_del have a return type of void
This makes the function sco_conn_del have a return type of void now
due to this function always running successfully and thus never
needing to signal its caller when a non recoverable internal failure
occurs by returning a error code to its respective caller.
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit d4902632ffe5d6958bd267a6712575e3a312a6e2
Author: Shengzhen Li <szli@xxxxxxxxxxx>
Date: Wed Aug 19 03:12:19 2015 -0700
Bluetooth: btmrvl: change device pointer passed to dev_coredumpv
This change ensures we will get driver name as 'btmrvl_sdio'
in udev event.
Signed-off-by: Shengzhen Li <szli@xxxxxxxxxxx>
Signed-off-by: Amitkumar Karwar <akarwar@xxxxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit 5397df15fd993acd23d9590dbb29d39219d80e3d
Author: Jiri Kosina <jkosina@xxxxxxx>
Date: Fri Aug 28 20:46:42 2015 +0200
HID: wacom: wacom_setup_numbered_buttons is local to wacom_wac
wacom_setup_numbered_buttons() is not used outside of wacom_wac.c,
make it static.
Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
commit 72b236d60218fe211a8e1210be31c31e81684b86
Author: Aaron Skomra <skomra@xxxxxxxxx>
Date: Thu Aug 20 16:05:17 2015 -0700
HID: wacom: Add support for Express Key Remote.
This device is pad (buttons) only, there is no stylus or touch. Up to
five remotes can pair with the device's associated USB dongle.
Signed-off-by: Aaron Skomra <aaron.skomra@xxxxxxxxx>
Reviewed-by: Jason Gerecke <jason.gerecke@xxxxxxxxx>
Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
commit 70ee06c5f447b9d50747b29d3e8d48ae7ef1cabe
Author: Aaron Skomra <skomra@xxxxxxxxx>
Date: Thu Aug 20 16:05:16 2015 -0700
HID: wacom: Set button bits based on a new numbered_buttons
Prior to this commit, numbered button bit setting was done separately
for each device type in wacom_setup_pad_capabilities(). Here we add a
numbered_buttons property to the wacom_features struct and extract the
repeated bit setting code to a new function:
wacom_settup_numbered_buttons().
Signed-off-by: Aaron Skomra <aaron.skomra@xxxxxxxxx>
Reviewed-by: Jason Gerecke <jason.gerecke@xxxxxxxxx>
Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
commit 628b3198ccc235e387c0b8ee200c10c883e86644
Author: Michael Powell <michael_powell@xxxxxxxxxx>
Date: Sun Aug 2 22:59:29 2015 +0000
acer-wmi: No rfkill on HP Omen 15 wifi
Prevents acer-wmi from blocking wifi on HP Omen 15 laptops
Signed-off-by: Michael Powell <michael_powell@xxxxxxxxxx>
[david.ward@xxxxxxxxxx: Resubmitted clean patch]
Signed-off-by: Darren Hart <dvhart@xxxxxxxxxxxxxxx>
commit 628536ea0627e71da654bd34b1942c85832dbdba
Author: Jonathan Corbet <corbet@xxxxxxx>
Date: Tue Aug 25 01:14:48 2015 -0600
ASoC: Clean up docbook warnings
A number of functions and structures in the sound subsystem had incomplete
and/or obsolete DocBook comments, leading to warnings when the docs were
built. Correct those comments so that we can enjoy our audio in the
absence of warning noise.
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 2c07144dfce366e21465cc7b0ada9f0b6dc7b7ed
Author: Kan Liang <kan.liang@xxxxxxxxx>
Date: Fri Aug 28 05:48:05 2015 -0400
perf evlist: Add backpointer for perf_env to evlist
Add backpointer to perf_env in evlist, so we can easily access env when
processing something where we have a evsel or evlist.
Suggested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440755289-30939-5-git-send-email-kan.liang@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit ce80d3bef9ff97638ca57a5659ef6ad356f35047
Author: Kan Liang <kan.liang@xxxxxxxxx>
Date: Fri Aug 28 05:48:04 2015 -0400
perf tools: Rename perf_session_env to perf_env
As it is not necessarily tied to a perf.data file and needs using in
places where a perf_session is not required.
Suggested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440755289-30939-4-git-send-email-kan.liang@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 9f30fffc78ca35c862f74f34cc597c7fdddc8793
Author: Jiri Olsa <jolsa@xxxxxxxxxx>
Date: Wed Aug 26 15:46:45 2015 +0200
perf tools: Do not change lib/api/fs/debugfs directly
The tracing_events_path is the variable we want to change via
--debugfs-dir option, not the debugfs_mountpoint.
Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Reviewed-by: Matt Fleming <matt@xxxxxxxxxxxxxxxxxxx>
Cc: Raphael Beamonte <raphael.beamonte@xxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440596813-12844-4-git-send-email-jolsa@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 9f44f0cc1c32f1542071447a9493652bbc03facb
Author: Jiri Olsa <jolsa@xxxxxxxxxx>
Date: Wed Aug 26 15:46:44 2015 +0200
perf tools: Add tracing_path and remove unneeded functions
There's no need for find_tracing_dir, because perf already searches for
debugfs/tracefs mount on start and populate tracing_events_path.
Adding tracing_path to carry tracing dir string to be used in
get_tracing_file instead of calling find_tracing_dir.
Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Raphael Beamonte <raphael.beamonte@xxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Matt Fleming <matt@xxxxxxxxxxxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440596813-12844-3-git-send-email-jolsa@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 0b5a7935f3b5b7d40293b02c3e552f3d67af208b
Author: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Date: Sat Aug 15 20:42:59 2015 +0900
perf buildid: Introduce sysfs/filename__sprintf_build_id
Introduce sysfs/filename__sprintf_build_id for consolidating similar
code.
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: Hemant Kumar <hemant@xxxxxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/20150815114259.13642.34685.stgit@xxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit d49e4695077278ee3016cd242967de23072ec331
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Thu Aug 27 08:07:40 2015 -0400
perf evsel: Add a backpointer to the evlist a evsel is in
So that functions that deal primarily with an evsel to access
information that concerns the whole evlist it is in.
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440677263-21954-5-git-send-email-kan.liang@xxxxxxxxx
Signed-off-by: Kan Liang <kan.liang@xxxxxxxxx>
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit a598bb5e3558509cbb8aa1d422071ef61fda9d77
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Fri Aug 28 12:02:37 2015 -0300
perf trace: Add header with copyright and background info
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-5yqtfs728r1j1u8zmg8ufxwm@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 84e5d89a777cca26cc513264752b439874702dd6
Author: Tony Jones <tonyj@xxxxxxxx>
Date: Mon Aug 17 12:48:52 2015 -0700
perf scripts python: Add new compaction-times script
This patch creates a new script (compaction-times) to report time
spent in mm compaction. It is possible to report times in nanoseconds
(default) or microseconds (-u).
The option -p will break down results by process id, -pv will further
decompose by each compaction entry/exit.
For each compaction entry/exit what is reported is controlled by the
options:
-t report only timing
-m report migration stats
-ms report migration scanner stats
-fs report free scanner stats
The default is to report all.
Entries may be further filtered by pid, pid-range or comm (regex).
The script is useful when analysing workloads that compact memory. The
most common example will be THP allocations on systems with a lot of
uptime that has fragmented memory.
This is an example of using the script to analyse a thpscale from
mmtests which deliberately fragments memory and allocates THP in 4
separate threads
# Recording step, one of the following;
$ perf record -e 'compaction:mm_compaction_*' ./workload
# or:
$ perf script record compaction-times
# Reporting: basic
total: 2444505743ns migration: moved=357738 failed=39275
free_scanner: scanned=2705578 isolated=387875
migration_scanner: scanned=414426 isolated=397013
# Reporting: Per task stall times
$ perf script report compaction-times -- -t -p
total: 2444505743ns
6384[thpscale]: 740800017ns
6385[thpscale]: 274119512ns
6386[thpscale]: 832961337ns
6383[thpscale]: 596624877ns
# Reporting: Per-compaction attempts for task 6385
$ perf script report compaction-times -- -m -pv 6385
total: 274119512ns migration: moved=14893 failed=24285
6385[thpscale]: 274119512ns migration: moved=14893 failed=24285
6385[thpscale].1: 3033277ns migration: moved=511 failed=1
6385[thpscale].2: 9592094ns migration: moved=1524 failed=12
6385[thpscale].3: 2495587ns migration: moved=512 failed=0
6385[thpscale].4: 2561766ns migration: moved=512 failed=0
6385[thpscale].5: 2523521ns migration: moved=512 failed=0
..... output continues ...
Changes since v1:
- report stats for isolate_migratepages and isolate_freepages
(Vlastimil Babka)
- refactor code to achieve above
- add help text
- output to stdout/stderr explicitly
Signed-off-by: Tony Jones <tonyj@xxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxxx>
Cc: Vlastimil Babka <vbabka@xxxxxxx>
Link:
http://lkml.kernel.org/r/1439840932-8933-1-git-send-email-tonyj@xxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit efd85cf86a56898686187397adfd52dfac79aff2
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Aug 26 11:13:38 2015 -0700
thinkpad_acpi: Remove side effects from vdbg_printk -> no_printk macro
vdbg_printk when not using CONFIG_THINKPAD_ACPI_DEBUG uses
no_printk which produces no logging output but always
evaluates arguments.
Change the macro to surround the no_printk call with
do { if (0) no_printk(...); } while (0)
to avoid the unnecessary argument evaluations.
$ size drivers/platform/x86/thinkpad_acpi.o*
text data bss dec hex filename
60918 6184 824 67926 10956
drivers/platform/x86/thinkpad_acpi.o.new
60927 6184 824 67935 1095f
drivers/platform/x86/thinkpad_acpi.o.old
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Acked-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx>
Signed-off-by: Darren Hart <dvhart@xxxxxxxxxxxxxxx>
commit 099982fac0f3e884ed4af2178d4dcded69e0042e
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Fri Aug 28 16:22:18 2015 +0530
regulator: core: use debug level print in regulator_check_drms
When calling regulator_set_load, regulator_check_drms prints and returns
an error if the regulator device's flag REGULATOR_CHANGE_DRMS isn't set.
drms_uA_update, however, bails out without reporting an error.
Replace the error print with a debug level print so that we don't get
such prints when the underlying regulator doesn't support DRMS.
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 39d9b85a4d4fa1642663ca0d208b5c246a3d6f50
Author: Gary Wang <gary.c.wang@xxxxxxxxx>
Date: Fri Aug 28 16:40:34 2015 +0800
drm/i915: set CDCLK if DPLL0 enabled during resuming from S3
Since BIOS RC 1.4 it would enable CDCLK PLL during BIOS S3 resume, then
driver needs to set CDCLK to avoid display corruption if DPLL0 enabled.
References: https://bugs.freedesktop.org/show_bug.cgi?id=91697
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Reviewed-by: Damien Lespiau <damien.lespiau@xxxxxxxxx>
Reviewed-by: Cooper Chiou <cooper.chiou@xxxxxxxxx>
Reviewed-by: Wei Shun Chang <wei.shun.chang@xxxxxxxxx>
Tested-by: Gary Wang <gary.c.wang@xxxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Gavin Hindman <gavin.hindman@xxxxxxxxx>
Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Cc: Xiong Y Zhang <xiong.y.zhang@xxxxxxxxx>
Signed-off-by: Gary Wang <gary.c.wang@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit bf9628373418328daf67b6508fc3713fc6f5067d
Author: Kamlakant Patel <kamlakant.patel@xxxxxxxxxxxx>
Date: Thu Aug 27 17:49:29 2015 +0530
spi: Add DT bindings documentation for Netlogic XLP SPI controller
Add DT bindings documentation for SPI controller driver used by
Netlogic XLP MIPS64 SoCs.
Signed-off-by: Kamlakant Patel <kamlakant.patel@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit d8c80d49cfa08b83841a3e315fa13dd310bec006
Author: Kamlakant Patel <kamlakant.patel@xxxxxxxxxxxx>
Date: Thu Aug 27 17:49:28 2015 +0530
spi/xlp: SPI controller driver for Netlogic XLP SoCs
Add SPI Master controller driver for the SPI interface on XLP8XX,
XLP3XX, XLP2XX, XLP9XX and XLP5XX family of Netlogic XLP MIPS64
processors.
Signed-off-by: Kamlakant Patel <kamlakant.patel@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit e9abb4db8d108624c293f06dce06b2978e626a13
Author: Heiner Kallweit <hkallweit1@xxxxxxxxx>
Date: Wed Aug 26 21:21:55 2015 +0200
spi: fsl-espi: add runtime PM
Add runtime PM and use autosuspend instead of suspending the
SPI controller after each transfer.
Signed-off-by: Heiner Kallweit <hkallweit1@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 3c5395b66ff69d8d568d0b9ff8b1077e044def5b
Author: Heiner Kallweit <hkallweit1@xxxxxxxxx>
Date: Wed Aug 26 21:21:53 2015 +0200
spi: fsl-(e)spi: simplify cleanup code
Now that most cleanup is done automatically the remove functions
can be significantly simplified.
Signed-off-by: Heiner Kallweit <hkallweit1@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 4178b6b1b595003cd6e04711b449797a582e44f5
Author: Heiner Kallweit <hkallweit1@xxxxxxxxx>
Date: Wed Aug 26 21:21:50 2015 +0200
spi: fsl-(e)spi: migrate to using devm_ functions to simplify cleanup
Migrate fsl-espi and fsl-spi to using the managed devm_ functions
for resource handling. This simplifies the cleanup.
Signed-off-by: Heiner Kallweit <hkallweit1@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 54d71856428961124be26301b7997f2ad23be520
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Fri Aug 28 18:18:57 2015 +0800
f2fs: avoid accessing NULL pointer in f2fs_drop_largest_extent
If extent cache is disable, we will encounter oops when triggering direct
IO as below:
BUG: unable to handle kernel NULL pointer dereference at 0000000c
IP: [<f0b9c61e>] f2fs_drop_largest_extent+0xe/0x30 [f2fs]
*pdpt = 000000002bb9a001 *pde = 0000000000000000
Oops: 0000 [#1] SMP
Modules linked in: f2fs(O) fuse bnep rfcomm bluetooth nfsd dm_crypt
nfs_acl auth_rpcgss oid_registry nfs binfmt_misc fscache lockd
sunrpc grace snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_seq_midi
snd_rawmidi snd_seq_midi_event snd_seq snd_timer
snd_seq_device snd soundcore joydev psmouse hid_generic i2c_piix4
serio_raw ppdev mac_hid parport_pc lp parport ext4 jbd2 mbcache
usbhid hid e1000
CPU: 3 PID: 3608 Comm: dd Tainted: G O 4.2.0-rc4 #12
Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox
12/01/2006
task: ef161600 ti: ebd5e000 task.ti: ebd5e000
EIP: 0060:[<f0b9c61e>] EFLAGS: 00010202 CPU: 3
EIP is at f2fs_drop_largest_extent+0xe/0x30 [f2fs]
EAX: 00000000 EBX: ddebc000 ECX: 00000000 EDX: 00000000
ESI: ebd5fdf8 EDI: 00000000 EBP: ebd5fd58 ESP: ebd5fd58
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
CR0: 80050033 CR2: 0000000c CR3: 2c24ee40 CR4: 000006f0
Stack:
ebd5fda4 f0b8c005 00000000 00000001 00000000 f0b8c430 c816cd68 ddebc000
ddebc088 00001000 00000555 00000555 ffffffff c160bb00 00055501 00000000
00000000 00000100 00000000 ebd5fe20 f0b8c430 00000046 ef161600 00001000
Call Trace:
[<f0b8c005>] __allocate_data_block+0x1a5/0x260 [f2fs]
[<f0b8c430>] ? f2fs_direct_IO+0x370/0x440 [f2fs]
[<c160bb00>] ? down_read+0x30/0x50
[<f0b8c430>] f2fs_direct_IO+0x370/0x440 [f2fs]
[<c113e115>] generic_file_direct_write+0xa5/0x260
[<c10b53f8>] ? current_fs_time+0x18/0x50
[<c113e38b>] __generic_file_write_iter+0xbb/0x210
[<c113e50f>] ? generic_file_write_iter+0x2f/0x320
[<c113e63c>] generic_file_write_iter+0x15c/0x320
[<f0b77f29>] f2fs_file_write_iter+0x39/0x80 [f2fs]
[<c11984d9>] __vfs_write+0xa9/0xe0
[<c1199227>] vfs_write+0x97/0x180
[<c119955b>] SyS_write+0x5b/0xd0
[<c160dcd0>] sysenter_do_call+0x12/0x12
Code: 10 8b 50 1c 89 53 14 eb ca 8d 74 26 00 85 f6 74 86 eb a6 0f 0b 90
8d b4 26 00 00 00 00 55 89 e5 3e 8d 74 26 00 8b 80 d4 02 00
00 <8b> 48 0c 39 d1 77 0e 03 48 14 39 ca 73 07 c7 40 14 00 00 00 00
EIP: [<f0b9c61e>] f2fs_drop_largest_extent+0xe/0x30 [f2fs] SS:ESP
0068:ebd5fd58
CR2: 000000000000000c
---[ end trace a38c07026a1afffd ]---
This is because when extent cache is disable, extent_tree pointer in
struct
f2fs_inode_info should be NULL, but in f2fs_drop_largest_extent we access
this NULL pointer directly without checking state of extent cache, then,
the oops occurs. Let's fix it by checking state of extent cache before
accessing.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 95e3c2305b79e9c0e5f2cb0090efca397249b51f
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Thu Aug 27 09:14:50 2015 +0800
ASoC: txx9: Convert to devm_snd_soc_register_platform
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 637c4497bbf0c9a4e00d6be2731bd560bf609f6b
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Thu Aug 27 09:13:46 2015 +0800
ASoC: pxa: Convert to devm_snd_soc_register_platform
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit d5f1117ff60d1e314b15e3a85b7705db3421d7d4
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Thu Aug 27 09:12:17 2015 +0800
ASoC: nuc900: Convert to devm_snd_soc_register_platform
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit c4d2ab0d59f53a1534e6817b5dbd28719f667c39
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Thu Aug 27 09:11:13 2015 +0800
ASoC: blackfin: Convert to devm_snd_soc_register_platform
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit edd98a1a2d163cef6d91226bf42ca002ced6ff16
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Thu Aug 27 09:09:29 2015 +0800
ASoC: au1x: Convert to devm_snd_soc_register_platform
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 6fe7ccfd77415a6ba250c10c580eb3f9acf79753
Author: Jozsef Kadlecsik <kadlec@xxxxxxxxxxxxxxxxx>
Date: Tue Aug 25 11:17:51 2015 +0200
netfilter: ipset: Out of bound access in hash:net* types fixed
Dave Jones reported that KASan detected out of bounds access in hash:net*
types:
[ 23.139532]
==================================================================
[ 23.146130] BUG: KASan: out of bounds access in
hash_net4_add_cidr+0x1db/0x220 at addr ffff8800d4844b58
[ 23.152937] Write of size 4 by task ipset/457
[ 23.159742]
=============================================================================
[ 23.166672] BUG kmalloc-512 (Not tainted): kasan: bad access detected
[ 23.173641]
-----------------------------------------------------------------------------
[ 23.194668] INFO: Allocated in hash_net_create+0x16a/0x470 age=7 cpu=1
pid=456
[ 23.201836] __slab_alloc.constprop.66+0x554/0x620
[ 23.208994] __kmalloc+0x2f2/0x360
[ 23.216105] hash_net_create+0x16a/0x470
[ 23.223238] ip_set_create+0x3e6/0x740
[ 23.230343] nfnetlink_rcv_msg+0x599/0x640
[ 23.237454] netlink_rcv_skb+0x14f/0x190
[ 23.244533] nfnetlink_rcv+0x3f6/0x790
[ 23.251579] netlink_unicast+0x272/0x390
[ 23.258573] netlink_sendmsg+0x5a1/0xa50
[ 23.265485] SYSC_sendto+0x1da/0x2c0
[ 23.272364] SyS_sendto+0xe/0x10
[ 23.279168] entry_SYSCALL_64_fastpath+0x12/0x6f
The bug is fixed in the patch and the testsuite is extended in ipset
to check cidr handling more thoroughly.
Signed-off-by: Jozsef Kadlecsik <kadlec@xxxxxxxxxxxxxxxxx>
commit 618718dc56a49321a12f231b34f6c43f44c3c374
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Fri Aug 28 10:53:31 2015 +0800
ASoC: qcom: Constify asoc_qcom_lpass_cpu_dai_ops
asoc_qcom_lpass_cpu_dai_ops is exported and used by multiple drivers,
make it const to prevent modifying it at run time.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 92eca20bbeaa4ec1908bad8aeefcaa2d98e302ff
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Fri Aug 28 10:50:53 2015 +0800
ASoC: sh: ssi: Convert to devm_snd_soc_register_component
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 2cf32b7b338086e9b85bb9fdd8aa398e89d83e9e
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Fri Aug 28 10:49:44 2015 +0800
ASoC: pxa2xx-i2s: Convert to devm_snd_soc_register_component
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 637ce53a1b1c489ff0e92aa00b8376464f697dc5
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Fri Aug 28 10:48:35 2015 +0800
ASoC: pxa-ssp: Convert to devm_snd_soc_register_component
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit b37bfdaac914f4886b8be803703b12177eb873f6
Author: Ricard Wanderlof <ricard.wanderlof@xxxxxxxx>
Date: Fri Aug 28 12:11:48 2015 +0200
ASoC: ics43432: Fix build errors
Fix build errors
Signed-off-by: Ricard Wanderlof <ricardw@xxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 2f38bc8829b83aed3e2c5e6d43a430d39f1b0e1d
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Fri Aug 28 11:23:05 2015 +0800
ASoC: ics43432: Fix module license
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 11d932416ecada27ca7576dca7e74e23477df7ef
Author: kbuild test robot <fengguang.wu@xxxxxxxxx>
Date: Fri Aug 28 10:04:03 2015 +0800
ASoC: ics43432: fix platform_no_drv_owner.cocci warnings
sound/soc/codecs/ics43432.c:66:3-8: No need to set .owner here. The core
will do it.
Remove .owner field if calls are used which set it automatically
Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci
CC: Ricard Wanderlof <ricard.wanderlof@xxxxxxxx>
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 5bbb9f753afe213aebc8dba30c7e2dbb73616b79
Author: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 20 11:53:30 2015 +0200
scripts: add stackdelta script
This adds a simple perl script for reading two files as produced by
the stackusage script and computing the changes in stack usage. For
example:
$ scripts/stackusage -o /tmp/old.su CC=gcc-4.7 -j8 fs/ext4/
$ scripts/stackusage -o /tmp/new.su CC=gcc-5.0 -j8 fs/ext4/
$ scripts/stackdelta /tmp/{old,new}.su | sort -k5,5g
shows that gcc 5.0 generally produces less stack-hungry code than gcc
4.7. Obviously, the script can also be used for measuring the effect
of commits, .config tweaks or whatnot.
Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit d523b255de60880304038006de5f93f2db612ad6
Author: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 20 11:53:29 2015 +0200
kbuild: remove *.su files generated by -fstack-usage
Make sure 'make clean' removes *.su files generated by the gcc option
-fstack-usage.
Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit e25572878a70d9cd84020f577b7c45583b9d42ae
Author: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 20 11:53:28 2015 +0200
.gitignore: add *.su pattern
Ignore the *.su files generated by using the gcc option -fstack-usage.
Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 56d4a3814690a62a3fd9724844e23ea152ce938c
Author: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 20 11:53:27 2015 +0200
scripts: add stackusage script
The current checkstack.pl script has a few problems, stemming from the
overly simplistic attempt at parsing objdump output with regular
expressions: For example, on x86_64 it doesn't take the push
instruction into account, making it consistently underestimate the
real stack use, and it also doesn't capture stack pointer adjustments
of exactly 128 bytes [1].
Since newer gcc (>= 4.6) knows about -fstack-usage, we might as well
take the information straight from the horse's mouth. This patch
introduces scripts/stackusage, which is a simple wrapper for running
make with KCFLAGS set to -fstack-usage. Example use is
scripts/stackusage -o out.su -j8 lib/
The script understands "-o foo" for writing to 'foo' and -h for a
trivial help text; anything else is passed to make.
Afterwards, we find all newly created .su files, massage them a
little, sort by stack use and write the result to a single output
file.
Note that the function names printed by (at least) gcc 4.7 are
sometimes useless. For example, the first three lines of out.su
generated above are
./lib/decompress_bunzip2.c:155 get_next_block 448 static
./lib/decompress_unlzma.c:537 unlzma 336 static
./lib/vsprintf.c:616 8 304 static
That function '8' is really the static symbol_string(), but it has
been subject to 'interprocedural scalar replacement of aggregates', so
its name in the object file is 'symbol_string.isra.8'. gcc 5.0 doesn't
have this problem; it uses the full name as seen in the object file.
[1] Since gcc encodes that by
48 83 c4 80 add $0xffffffffffffff80,%rsp
and not
48 81 ec 80 00 00 00 sub $0x80,%rsp
since -128 fits in an imm8.
Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 601083cffb7cabdcc55b8195d732f0f7028570fa
Author: Kan Liang <kan.liang@xxxxxxxxx>
Date: Thu Jul 2 03:08:43 2015 -0400
perf stat: Get correct cpu id for print_aggr
print_aggr() fails to print per-core/per-socket statistics after commit
582ec0829b3d ("perf stat: Fix per-socket output bug for uncore events")
if events have differnt cpus. Because in print_aggr(), aggr_get_id needs
index (not cpu id) to find core/pkg id. Also, evsel cpu maps should be
used to get aggregated id.
Here is an example:
Counting events cycles,uncore_imc_0/cas_count_read/. (Uncore event has
cpumask 0,18)
$ perf stat -e cycles,uncore_imc_0/cas_count_read/ -C0,18 --per-core
sleep 2
Without this patch, it failes to get CPU 18 result.
Performance counter stats for 'CPU(s) 0,18':
S0-C0 1 7526851 cycles
S0-C0 1 1.05 MiB uncore_imc_0/cas_count_read/
S1-C0 0 <not counted> cycles
S1-C0 0 <not counted> MiB uncore_imc_0/cas_count_read/
With this patch, it can get both CPU0 and CPU18 result.
Performance counter stats for 'CPU(s) 0,18':
S0-C0 1 6327768 cycles
S0-C0 1 0.47 MiB uncore_imc_0/cas_count_read/
S1-C0 1 330228 cycles
S1-C0 1 0.29 MiB uncore_imc_0/cas_count_read/
Signed-off-by: Kan Liang <kan.liang@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Acked-by: Stephane Eranian <eranian@xxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Fixes: 582ec0829b3d ("perf stat: Fix per-socket output bug for uncore
events")
Link:
http://lkml.kernel.org/r/1435820925-51091-1-git-send-email-kan.liang@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 1d945012d1381f0232ea2d66e32b06182eedb476
Author: Steven Rostedt <rostedt@xxxxxxxxxxx>
Date: Thu Aug 27 09:46:01 2015 -0400
tools lib traceeveent: Allow for negative numbers in print format
It was reported that "%-8s" does not parse well when used in the printk
format. The '-' is what is throwing it off. Allow that to be included.
Reporter note:
Example before:
transhuge-stres-10730 [004] 5897.713989: mm_compaction_finished: node=0
zone=>-<8s order=-2119871790 ret=
Example after:
transhuge-stres-4235 [000] 453.149280: mm_compaction_finished: node=0
zone=ffffffff81815d7a order=9 ret=
(I will send patches to fix the string handling in the tracepoints so
it's on par with in-kernel printing via trace_pipe:)
transhuge-stres-10921 [007] ...1 6307.140205: mm_compaction_finished:
node=0
zone=Normal order=9 ret=partial
Reported-by: Vlastimil Babka <vbabka@xxxxxxx>
Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
Tested-by: Vlastimil Babka <vbabka@xxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Link: http://lkml.kernel.org/r/20150827094601.46518bcc@xxxxxxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 77e0070da41f76e1ebd15291fb0254b0c174adfa
Author: Mark Drayton <mbd@xxxxxx>
Date: Wed Aug 26 12:18:15 2015 -0700
perf script: Add --[no-]-demangle/--[no-]-demangle-kernel
Sometimes when post-processing output from `perf script` one does not
want to demangle C++ symbol names. Add an option to allow this.
Also add --[no-]demangle-kernel to be consistent with top/report/probe.
Signed-off-by: Mark Drayton <mbd@xxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440616695-32340-1-git-send-email-scientist@xxxxxx
Signed-off-by: Yannick Brosseau <scientist@xxxxxx>
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 50a3cb04a5f9cd5323a76db9ee409a7f3004259a
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Wed Aug 12 15:59:39 2015 +0530
PM / OPP: Drop unlikely before IS_ERR(_OR_NULL)
IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there
is no need to do that again from its callers. Drop it.
Acked-by: Pavel Machek <pavel@xxxxxx>
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 68fa9f0ab1b61cfc7deee699da8b5b5cb12f7a58
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Aug 17 19:20:20 2015 +0530
PM / OPP: Fix static checker warning (broken 64bit big endian systems)
Dan Carpenter reported (generated with static checker):
drivers/base/power/opp.c:949 _opp_add_static_v2()
warn: passing casted pointer '&new_opp->clock_latency_ns' to
'of_property_read_u32()' 64 vs 32.
This code will break on 64 bit, big endian machines.
Fix this by reading the value in a u32 type variable first and then
assigning it to the unsigned long variable.
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Suggested-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 4c1ed5a6079078699128064664913ae7b079648f
Author: Xunlei Pang <pang.xunlei@xxxxxxxxxx>
Date: Tue Aug 4 13:48:56 2015 +0800
cpuidle/coupled: Remove redundant 'dev' argument of
cpuidle_state_is_coupled()
For cpuidle_state_is_coupled(), 'dev' is not used, so remove it.
Signed-off-by: Xunlei Pang <pang.xunlei@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit ba6a860d41ed3a377d61d59d7c7b08dd7455c686
Author: Xunlei Pang <pang.xunlei@xxxxxxxxxx>
Date: Tue Aug 4 13:48:55 2015 +0800
cpuidle/coupled: Remove cpuidle_device::safe_state_index
cpuidle_device::safe_state_index need to be initialized before
use, it should be the same as cpuidle_driver::safe_state_index.
We tackled this issue by removing the safe_state_index from the
cpuidle_device structure and use the one in the cpuidle_driver
structure instead.
Suggested-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Signed-off-by: Xunlei Pang <pang.xunlei@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit ce14c5831364118324b10c0355dead062b9ddd40
Author: Prarit Bhargava <prarit@xxxxxxxxxx>
Date: Tue Aug 25 13:34:53 2015 -0400
Documentation, add kernel-parameters.txt entry for dis_ucode_ldr
dis_ucode_ldr was introduced in 65cef13 ("x86, microcode: Add a disable
chicken bit") and will disable microcode loading on x86. This kernel
parameter is buried in the code and should be added to the Documentation.
Signed-off-by: Prarit Bhargava <prarit@xxxxxxxxxx>
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
commit 4d59ed85451befda203d72462f1b7ead0fde3267
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Tue Aug 25 08:31:16 2015 +0200
leds: Export OF module alias information in missing drivers
The I2C core always reports the MODALIAS uevent as "i2c:<modalias>"
regardless of the mechanism that was used to register the device
(i.e: OF or board code) and the table that is used later to match
the driver with the device (i.e: I2C id table or OF match table).
So drivers needs to export the I2C id table and this be built into
the module or udev won't have the necessary information to autoload
the needed driver module when the device is added.
But this means that OF-only drivers needs to have both OF and I2C id
tables that have to be kept in sync and also the dev node compatible
manufacturer prefix is stripped when reporting the MODALIAS. Which can
lead to issues if two vendors use the same I2C device name for example.
To avoid the above, the I2C core behavior may be changed in the future
to not require an SPI device table for OF-only drivers and report the
OF module alias. So, it's better to also export the OF table even when
is unused now to prevent breaking module loading when the core changes.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit ed133352047e46687afd98c299ec8ce7f6ea07bd
Author: Milo Kim <milo.kim@xxxxxx>
Date: Mon Aug 24 16:09:55 2015 +0900
leds:lp55xx: use the private data instead of updating I2C device platform
data
Currently, lp55xx_of_populate_pdata() allocates lp55xx_platform_data if
it's null. And it parses the DT and copies values into the
'client->dev.platform_data'. This may have architectural issue.
Platform data is configurable through the DT or I2C board info inside the
platform area. However, lp55xx common driver changes this configuration
when it is loaded. So 'client->dev.platform_data' is not null anymore.
Eventually, the driver initialization is not identical when it's unloaded
and loaded again.
The lp55xx common driver should use the private data, 'lp55xx_chip->pdata'
instead of changing the original platform data.
So, lp55xx_of_populate_pdata() is modified as follows.
* Do not update 'dev->platform_data'. Return the pointer of new allocated
lp55xx_platform_data. Then the driver points it to private data,
'lp55xx_chip->pdata'.
* Each lp55xx driver checks the pointer and handles an error case.
Then, original platform data configuration will be kept regardless of
loading or unloading the driver.
The driver allocates the memory and copies them from the DT if it's NULL.
After the driver is loaded again, 'client->dev.platform_data' is same as
initial load, so the driver is initialized identically.
Cc: Toshi Kikuchi <toshik@xxxxxxxxxxxx>
Cc: linux-leds@xxxxxxxxxxxxxxx
Signed-off-by: Milo Kim <milo.kim@xxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 991a3f61fa93c1752a47ae157a8238395850c730
Author: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Date: Tue Aug 18 12:25:26 2015 -0700
leds: syscon: Correct check for syscon_node_to_regmap() errors
syscon_node_to_regmap() returns a regmap or an ERR_PTR().
Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit c2d4af9370b1757714b895f005479393e4ec14b8
Author: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Date: Tue Aug 18 19:50:16 2015 +0530
leds: leds-fsg: Use devm_led_classdev_register
Use resource-managed function devm_led_classdev_register instead
of led_classdev_register to make the error-path simpler.
To be compatible with the change, various gotos are replaced with
direct returns and unneeded labels are dropped. Also, remove
fsg_led_remove as it is now redundant.
Signed-off-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit b8926ba0d7fd74e140d408f6dfeff5f5b9c2afae
Author: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
Date: Thu Aug 20 08:59:35 2015 +0200
MAINTAINERS: Change LED subsystem git tree URL
This patch removes Bryan Wu from the list of LED subsystem
maintainers and replaces related git tree URL with the one
maintained by Jacek Anaszewski.
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
Cc: Richard Purdie <rpurdie@xxxxxxxxx>
Acked-by: Bryan Wu <cooloney@xxxxxxxxx>
commit e5b5a61fcb3743f1dacf9e20d28f48423cecf0c1
Author: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx>
Date: Fri Jul 31 13:36:21 2015 +0200
leds/led-class: Add missing put_device()
Devices found by class_find_device must be freed with put_device().
Otherwise the reference count will not work properly.
Fixes: a96aa64cb572 ("leds/led-class: Handle LEDs with the same name")
Reported-by: Alan Tull <delicious.quinoa@xxxxxxxxx>
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 4fc5af86837d983d7b1dd4edad245454e1874fa0
Author: Vincent Donnefort <vdonnefort@xxxxxxxxx>
Date: Thu Jul 2 19:56:41 2015 +0200
ARM: Kirkwood: add modes-map property to ns2-leds nodes
Since the LED modes mapping is no longer hardcoded inside the leds-ns2
driver, then it must be provided through the modes-map property in the
ns2-leds nodes.
Signed-off-by: Vincent Donnefort <vdonnefort@xxxxxxxxx>
Acked-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit f3a2a097a37acfb7c28da171248d15b9bb2e657b
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Sun Jul 26 12:05:16 2015 +0800
leds: tlc591xx: Remove redundant I2C_FUNC_SMBUS_BYTE_DATA functionality
check
This checking is done by regmap_get_i2c_bus() which is called in
devm_regmap_init_i2c().
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Reviewed-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 259f5ba308ee46c616ced3d336d7ab8e06f5a6ce
Author: Simon Guinot <simon.guinot@xxxxxxxxxxxx>
Date: Thu Jul 2 19:56:43 2015 +0200
leds: leds-ns2: depends on MACH_ARMADA_370
The leds-ns2 driver is also used by the n090401 board (Seagate NAS
4-Bay), which is based on the Marvell Armada-370 SoC.
Then this patch allows to select the leds-ns2 driver if MACH_ARMADA_370
is enabled. Additionally, this also updates the Kconfig help message.
Signed-off-by: Simon Guinot <simon.guinot@xxxxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 4b90432dc1edca6cfc0bb338794beed46af3a472
Author: Simon Guinot <simon.guinot@xxxxxxxxxxxx>
Date: Thu Jul 2 19:56:42 2015 +0200
leds: leds-ns2: handle can_sleep GPIOs
On the board n090401 (Seagate NAS 4-Bay), some of the LEDs are handled
by the leds-ns2 driver. This LEDs are connected to an I2C GPIO expander
(PCA95554PW) which means that GPIO access may sleep. This patch makes
leds-ns2 compatible with such GPIOs by using the *_cansleep() variant of
the GPIO functions. As a drawback this functions can't be used safely in
a timer context (with the timer LED trigger for example). To fix this
issue, a workqueue mechanism (copied from the leds-gpio driver) is used.
Note that this patch also updates slightly the ns2_led_sata_store
function. The LED state is now retrieved from cached values instead of
reading the GPIOs previously. This prevents ns2_led_sata_store from
working with a stale LED state (which may happen when a delayed work
is pending).
Signed-off-by: Simon Guinot <simon.guinot@xxxxxxxxxxxx>
Signed-off-by: Vincent Donnefort <vdonnefort@xxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit f7fafd083ccc340502448903aaddc76f10785c8c
Author: Vincent Donnefort <vdonnefort@xxxxxxxxx>
Date: Thu Jul 2 19:56:40 2015 +0200
leds: leds-ns2: move LED modes mapping outside of the driver
On the board n090401 (Seagate NAS 4-Bay), the LED mode mapping (GPIO
values to LED mode) is different from the one used on other boards
supported by the leds-ns2 driver.
With this patch the hardcoded mapping is removed from leds-ns2. Now,
it must be defined either in the platform data (if an old-fashion board
setup file is used) or in the DT node. In order to allow the later, this
patch also introduces a modes-map property for the leds-ns2 DT binding.
Signed-off-by: Vincent Donnefort <vdonnefort@xxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit de88e71a91ed7c8de321b44882e0805f0b24d734
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Wed Jul 8 10:43:26 2015 +0800
leds: lp8860: Constify reg_default tables
These reg_default tables are not modified after initialized, so make them
const.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 44ab901f91b22dcfc7d03d6f0da15c5354042367
Author: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Date: Fri Jul 10 15:00:52 2015 +0900
leds: Drop owner assignment from i2c_driver
i2c_driver does not need to set an owner because i2c_register_driver()
will set it.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 6e3956cd532d8c263e68ebae1252828e297aac4d
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Mon Jul 6 15:42:34 2015 +0200
leds: Allow compile test of LEDS_AAT1290 and LEDS_KTD2692 if !GPIOLIB
The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is
not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer
functionality only, can still be compiled if GPIOLIB is not enabled.
If COMPILE_TEST is enabled, relax the dependency on GPIOLIB for the
recently introduced symbols LEDS_AAT1290 and LEDS_KTD2692.
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit 823227419588001f2d4accf3c5660cd99442a0f8
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Tue May 5 18:32:25 2015 +0200
leds: Allow compile test of GPIO consumers if !GPIOLIB
The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is
not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer
functionality only, can still be compiled if GPIOLIB is not enabled.
Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where
appropriate.
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: Richard Purdie <rpurdie@xxxxxxxxx>
Cc: linux-leds@xxxxxxxxxxxxxxx
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
commit aa14318aa02f14044acf81f418e1a1cbda29fcfc
Author: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
Date: Fri Apr 10 10:36:56 2015 +0200
DT: leds: Improve description of flash LEDs related properties
1. Since max-microamp property has had no users so far, then rename
it to more descriptive led-max-microamp.
2. Since flash-timeout-us property has had no users so far, then rename
it to more accurate flash-max-timeout-us.
3. Describe led-max-microamp property as mandatory for specific board
configurations.
4. Make flash-max-microamp and flash-max-timeout-us properties mandatory
for devices with configurable flash current and flash timeout settings
respectively.
Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
Cc: Richard Purdie <rpurdie@xxxxxxxxx>
Cc: Pavel Machek <pavel@xxxxxx>
Cc: devicetree@xxxxxxxxxxxxxxx
Acked-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
Acked-by: Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx>
commit 92cffd56b21c825579f3b37bc7803e4c37073076
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Aug 28 20:33:58 2015 +1000
drm/nouveau/dispnv04: fix build on powerpc
align with mask code in overlay.c, Ben can clean the naming
up later if necessary.
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 90996511187d6282db6d02d3f97006b4dbb5c457
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Wed Aug 5 15:42:35 2015 -0700
MIPS: CPS: use 32b accesses to GCRs
Commit b677bc03d757 ("MIPS: cps-vec: Use macros for various arithmetics
and memory operations") replaced various load & store instructions
through cps-vec.S with the PTR_L & PTR_S macros. However it was somewhat
overzealous in doing so for CM GCR accesses, since the bit width of the
CM doesn't necessarily match that of the CPU. The registers accessed
(GCR_CL_COHERENCE & GCR_CL_ID) should be safe to simply always access
using 32b instructions, so do so in order to avoid issues when using a
32b CM with a 64b CPU.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # 3.16+
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10864/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 6aa6925cad06159dc6e25857991bbc4960821242
Author: Yao-Wen Mao <yaowen@xxxxxxxxxx>
Date: Fri Aug 28 16:33:25 2015 +0800
ALSA: usb-audio: correct the value cache check.
The check of cval->cached should be zero-based (including master channel).
Signed-off-by: Yao-Wen Mao <yaowen@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit a47d4576cd1c58157a2d8cfffa93aa7ca375eede
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Fri Aug 28 10:30:15 2015 +0200
x86/irq: Do not dereference irq descriptor before checking it
Having the IS_NULL_OR_ERR() check after dereferencing the pointer is
not really working well.
Move the dereference after the check.
Fixes: a782a7e46bb5 'x86/irq: Store irq descriptor in vector array'
Reported-and-tested-by: Ingo Molnar <mingo@xxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 4b9e78bd9f0efcf9e82b4886de7a4289dbf3cffe
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Aug 28 18:18:10 2015 +1000
nouveau: fix powerpc build
Reported-by: Ilia Mirkin on irc.
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 2baa891e42d84159b693eadd44f6fe1486285bdc
Author: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Date: Mon Aug 24 12:13:33 2015 -0700
x86/mm/mtrr: Remove kernel internal MTRR interfaces: unexport mtrr_add()
and mtrr_del()
The effort to replace mtrr_add() with architecture agnostic
arch_phys_wc_add() is complete, this will ensure write-combining
implementations (PAT on x86) is taken advantage instead of using
MTRR. With the effort done now, hide direct MTRR access for
drivers.
The legacy user-space /proc/mtrr ABI is not affected.
Update x86 documentation on MTRR to reflect the completion of
the phasing out of direct access to MTRR, also add a note on
platform firmware code use of MTRRs based on the obituary
discussion of MTRRs on Linux [0].
[0] http://lkml.kernel.org/r/1438991330.3109.196.camel@xxxxxx
Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Cc: <syrjala@xxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Andy Walls <awalls@xxxxxxxxxxxxxxxx>
Cc: Antonino Daplas <adaplas@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Davidlohr Bueso <dbueso@xxxxxxx>
Cc: Doug Ledford <dledford@xxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Suresh Siddha <sbsiddha@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Toshi Kani <toshi.kani@xxxxxx>
Cc: Ville Syrjälä <syrjala@xxxxxx>
Cc: Vlastimil Babka <vbabka@xxxxxxx>
Cc: airlied@xxxxxxxx
Cc: benh@xxxxxxxxxxxxxxxxxxx
Cc: bhelgaas@xxxxxxxxxx
Cc: dan.j.williams@xxxxxxxxx
Cc: konrad.wilk@xxxxxxxxxx
Cc: linux-fbdev@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-media@xxxxxxxxxxxxxxx
Cc: mst@xxxxxxxxxx
Cc: netdev@xxxxxxxxxxxxxxx
Cc: vinod.koul@xxxxxxxxx
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440443613-13696-12-git-send-email-mcgrof@xxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit d1ee8bc195ffedbf91af0245a2406d6ebd2578f8
Merge: 0e53909 a2fb338
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Fri Aug 28 08:22:02 2015 +0200
Merge tag 'perf-core-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
User visible changes:
- Add support for using several Intel PT features (CYC, MTC packets),
the
relevant documentation was updated:
tools/perf/Documentation/intel-pt.txt,
briefly describing those packets, its purposes, how to configure them
in
the event config terms and relevant external documentation for further
reading. (Adrian Hunter)
- Introduce support for probing at an absolute address, for user and
kernel
'perf probe's, useful when one have the symbol maps on a developer
machine
but not on an embedded system. (Wang Nan)
- Fix 'perf probe' list results when a symbol can't be found or the
address is zero and when an offset is provided without a function
(Wang Nan)
- Do not print '0x (null)' in uprobes when offset is zero (Wang Nan)
- Clear the progress bar at the end of a ordered_events flush, fixing
an UI artifact when, after ordering the events the screen doesn't get
completely redraw, for instance, when an error window covers just the
center of the screen and waits for user input. (Arnaldo Carvalho de
Melo)
- Fix 'annotate' segfault by resetting the dso find_symbol cache when
removing
symbols. (Arnaldo Carvalho de Melo)
Infrastructure changes:
- Allow duplicate objects in the object list, just like it is possible
to have
things like this, in the kernel:
drivers/Makefile:obj-$(CONFIG_PCI) += usb/
drivers/Makefile:obj-$(CONFIG_USB_GADGET) += usb/
(Jiri Olsa)
- Fix Intel PT 'instructions' sample period. (Adrian Hunter)
- Prevent segfault when reading probe point with absolute address.
(Wang Nan)
Build fixes:
- Fix tarball build broken by pt/bts. (Adrian Hunter)
- Remove export.h from MANIFEST, fixing the perf tarball make target.
(Jiri Olsa)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit ee03c5868e74847ba0bd1e6dccbbe26e6504466d
Author: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Date: Wed Aug 26 16:34:10 2015 -0700
s390/io: Add pci_iomap_wc() and pci_iomap_wc_range()
The following commit:
1b3d4200c1e0 ("PCI: Add pci_iomap_wc() variants")
Introduced pci_iomap_wc() variants but broke the s390 build,
because s390 requires its own implementation of pcio_iomap*()
calls.
The reason for that is that:
"BAR spaces are not disjunctive on s390 so we need the bar
parameter of pci_iomap to find the corresponding device
and create the mapping cookie"
so it has its own lookup/lock solution and it does not include
asm-generic/pci_iomap.h.
Since it currenty maps ioremap_wc() to ioremap_nocache() and
that's the architecture default we can easily just map the wc
calls to the default calls as well.
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Cc: Frank Blaschka <frank.blaschka@xxxxxxxxxx>
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Thierry Reding <treding@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Toshi Kani <toshi.kani@xxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: linux-fbdev@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: linux-s390@xxxxxxxxxxxxxxx
Cc: linux390@xxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440632050-23648-1-git-send-email-mcgrof@xxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 7e01ebffffedec22cea86ebe94802f909e4579ca
Author: Huang Rui <ray.huang@xxxxxxx>
Date: Thu Aug 27 18:04:04 2015 +0800
x86/asm: Drop repeated macro of X86_EFLAGS_AC definition
We just need one macro of X86_EFLAGS_AC_BIT and X86_EFLAGS_AC.
Signed-off-by: Huang Rui <ray.huang@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Cc: Fenghua Yu <fenghua.yu@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Li <tony.li@xxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440669844-21535-1-git-send-email-ray.huang@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 1a7ccad88d1bcebabc011b54a2f8615175e523fc
Author: Eric Sandeen <sandeen@xxxxxxxxxx>
Date: Fri Aug 28 14:51:10 2015 +1000
xfs: fix error gotos in xfs_setattr_nonsize
As the code stands today, if xfs_trans_reserve() fails, we
goto out_dqrele, which does not free the allocated transaction.
Fix up the goto targets to undo everything properly.
Addresses-Coverity-Id: 145571
Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 8774cf8bacd4e79b7c65cdf1208da264a9d436d2
Author: Lucas Stach <dev@xxxxxxxxxx>
Date: Fri Aug 28 14:50:56 2015 +1000
xfs: add mssing inode cache attempts counter increment
Increasing the inode cache attempt counter was apparently dropped while
refactoring the cache code and so stayed at the initial 0 value. Add the
increment back to make the runtime stats more useful.
Signed-off-by: Lucas Stach <dev@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit c9eb256eda4420c06bb10f5e8fbdbe1a34bc98e0
Author: David Jeffery <djeffery@xxxxxxxxxx>
Date: Fri Aug 28 14:50:45 2015 +1000
xfs: return errors from partial I/O failures to files
There is an issue with xfs's error reporting in some cases of I/O
partially
failing and partially succeeding. Calls like fsync() can report success
even
though not all I/O was successful in partial-failure cases such as one
disk of
a RAID0 array being offline.
The issue can occur when there are more than one bio per xfs_ioend struct.
Each call to xfs_end_bio() for a bio completing will write a value to
ioend->io_error. If a successful bio completes after any failed bio, no
error is reported do to it writing 0 over the error code set by any
failed bio.
The I/O error information is now lost and when the ioend is completed
only success is reported back up the filesystem stack.
xfs_end_bio() should only set ioend->io_error in the case of BIO_UPTODATE
being clear. ioend->io_error is initialized to 0 at allocation so only
needs
to be updated by a failed bio. Also check that ioend->io_error is 0 so
that
the first error reported will be the error code returned.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: David Jeffery <djeffery@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit dfdd4ac66c2f921ecec730a2b24b0b13e10346b2
Author: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
Date: Fri Aug 28 14:50:03 2015 +1000
libxfs: bad magic number should set da block buffer error
If xfs_da3_node_read_verify() doesn't recognize the magic number of a
buffer it's just read, set the buffer error to -EFSCORRUPTED so that
the error can be sent up to userspace. Without this patch we'll
notice the bad magic eventually while trying to traverse or change
the block, but we really ought to fail early in the verifier.
Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 0d36938bb82a7775c21ce0a7429f08ba13d025b6
Merge: 55f14da 4941b8f
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 27 21:45:31 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
commit ab98193dace971f4742eebb5103212e23bb392f5
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Wed Aug 26 14:16:27 2015 -0700
dmaengine: ioatdma: add Broadwell EP ioatdma PCI dev IDs
Adding the Broadwell Xeon ioatdma PCI device IDs and
related bits. This is still IOATDMA 3.2 based hw.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 6ef41cf6f721573d286a06ca35a9f1e370637d51
Author: yalin wang <yalin.wang2010@xxxxxxxxx>
Date: Tue Aug 25 16:15:13 2015 +0800
dmaengine :ipu: change ipu_irq_handler() to remove compile warning
Change ipu_irq_handler() to avoid gcc warning:
drivers/dma/ipu/ipu_irq.c:305:4: warning: 'irq' may be used
uninitialized in this function [-Wmaybe-uninitialized]
generic_handle_irq(irq);
Signed-off-by: yalin wang <yalin.wang2010@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 259800135c654a098d9f0adfdd3d1f20eef1f231
Author: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 28 11:57:00 2015 +1000
powerpc/eeh: Fix fenced PHB caused by eeh_slot_error_detail()
The config space of some PCI devices can't be accessed when their
PEs are in frozen state. Otherwise, fenced PHB might be seen.
Those PEs are identified with flag EEH_PE_CFG_RESTRICTED, meaing
EEH_PE_CFG_BLOCKED is set automatically when the PE is put to
frozen state (EEH_PE_ISOLATED). eeh_slot_error_detail() restores
PCI device BARs with eeh_pe_restore_bars(), which then calls
eeh_ops->restore_config() to reinitialize the PCI device in
(OPAL) firmware. eeh_ops->restore_config() produces PCI config
access that causes fenced PHB. The problem was reported on below
adapter:
0001:01:00.0 0200: 14e4:168e (rev 10)
0001:01:00.0 Ethernet controller: Broadcom Corporation \
NetXtreme II BCM57810 10 Gigabit Ethernet (rev 10)
This fixes the issue by skipping eeh_pe_restore_bars() in
eeh_slot_error_detail() when EEH_PE_CFG_BLOCKED is set for the PE.
Fixes: b6541db1 ("powerpc/eeh: Block PCI config access upon frozen PE")
Cc: stable@xxxxxxxxxxxxxxx # v4.0+
Reported-by: Manvanthara B. Puttashankar <mputtash@xxxxxxxxxx>
Signed-off-by: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 3439633a85891626abf124a52f2c3e3e83cca9d0
Merge: d7b27368 a3c1ff8
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Aug 28 13:20:09 2015 +1000
Merge branch 'linux-4.3' of
git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next
Rather large pull request this time around, due to the long-pending
cleanup of the kernel driver being here. There's a stupidly large
number of commits for that, as I wanted to have the series be
bisectable at a fairly fine-grained level. That said, a very large
portion of the churn in the rework was automated, and a very large
number of boards from right across the whole range we support have
been tested. I'm fairly confident there shouldn't be (too many)
issues from this.
Beyond correcting some not-so-great design decisions and making the
code a lot easier to work with, there's not much exciting (lower
memory usage, GPU VM should be a lot faster, etc) to be gained by the
end-user as a result of the cleanup, it mostly lays the groundwork for
future improvements.
A big thanks goes to Alexandre Courbot for testing/debugging the GK20A
codepaths for me :)
Highlights:
- A heap of perfmon work, providing a more useful userspace interface
and specifying counters for a bunch of boards
- Support for GT200 reclocking + other misc pm improvements
- Initial patches towards supporting GM20B (Tegra X1)
- Maxwell DisplayPort fixes
- Cleanup of the kernel driver
- The usual collection of random fixes
* 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
(312 commits)
drm/nouveau: bump driver version for release
drm/nouveau/tegra: merge platform setup from nouveau drm
drm/nouveau/pci: merge agp handling from nouveau drm
drm/nouveau/device: remove pci/platform_device from common struct
drm/nouveau/device: import pciid list and integrate quirks with it
drm/nouveau/device: cleaner abstraction for device resource functions
drm/nouveau/mc: move device irq handling to platform-specific code
drm/nouveau/mc/gf100-: handle second interrupt tree
drm/nouveau/mc: abstract interface to master intr registers
drm/nouveau/pci: new subdev
drm/nouveau/object: merge with handle
drm/nouveau/core: remove the remainder of the previous style
drm/nouveau/mpeg: convert to new-style nvkm_engine
drm/nouveau/sw: convert to new-style nvkm_engine
drm/nouveau/pm: convert to new-style nvkm_engine
drm/nouveau/gr: convert to new-style nvkm_engine
drm/nouveau/fifo: convert to new-style nvkm_engine
drm/nouveau/disp: convert to new-style nvkm_engine
drm/nouveau/dma: convert to new-style nvkm_engine
drm/nouveau/cipher: convert to new-style nvkm_engine
...
commit a3c1ff87cfe27f99de58c153eb9d42dcfdbfa59b
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:23 2015 +1000
drm/nouveau: bump driver version for release
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 43a70661eaa64aa4e36e421eee3b9ded3190837b
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:23 2015 +1000
drm/nouveau/tegra: merge platform setup from nouveau drm
The copyright header in nvkm/engine/device/platform.c has been replaced
with the NVIDIA one from drm/nouveau_platform.c, as most of the actual
code is now theirs.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 340b0e7c500a0ac8fb649c58cf8528550642c1d8
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:23 2015 +1000
drm/nouveau/pci: merge agp handling from nouveau drm
This commit reinstates the pre-DEVINIT AGP fiddling that was broken in
an earlier commit.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 26c9e8effebb9166eb1cfba2d164676e98c505c7
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:23 2015 +1000
drm/nouveau/device: remove pci/platform_device from common struct
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c7af0ff0e89327918743052d12bf5536e34c7f1a
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:23 2015 +1000
drm/nouveau/device: import pciid list and integrate quirks with it
PCI IDs taken from the NVIDIA binary driver, with permission.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 7e8820fed712c6de1933dcc91edbf08dcec74925
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:23 2015 +1000
drm/nouveau/device: cleaner abstraction for device resource functions
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2b700825e7a7702fb862edba1262c98040dc1bf6
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:22 2015 +1000
drm/nouveau/mc: move device irq handling to platform-specific code
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit ae0a5b2dd2f54584d677701d989732b464b6d8c9
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:22 2015 +1000
drm/nouveau/mc/gf100-: handle second interrupt tree
Doesn't fix any known issue, but best be safe in case control is handed
to us from firmware with these left enabled.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d4c4cc8373806d0f822f8847f8bcda64f36cb73f
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:22 2015 +1000
drm/nouveau/mc: abstract interface to master intr registers
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 0a34fb3149c3001f9c1b2bd0f98f94d63e74cb85
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:22 2015 +1000
drm/nouveau/pci: new subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit fbd58ebda9c8572ca6285b88e3348c7712f125ec
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:22 2015 +1000
drm/nouveau/object: merge with handle
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 68f3f702b6a430a8d1e909455a60d26c0f2da530
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:22 2015 +1000
drm/nouveau/core: remove the remainder of the previous style
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 7624fc011e56902a83e409b14d6c1efa75aa4a58
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:22 2015 +1000
drm/nouveau/mpeg: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6f41c7c56929b3a2ad943d5b6dd4d66d716e74d7
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:22 2015 +1000
drm/nouveau/sw: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 97070f23c60869830039b216ff88230f54ef7107
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:22 2015 +1000
drm/nouveau/pm: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c85ee6ca79590cd51356bf24fb8936bc352138cf
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:22 2015 +1000
drm/nouveau/gr: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 13de7f462902d1a452d501cdb2d06ef02cabbfff
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:22 2015 +1000
drm/nouveau/fifo: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 70aa8670e5229766f12c4b818a68aa61913df0b6
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:22 2015 +1000
drm/nouveau/disp: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit bd70563f015a5204c62a52a87a35c32377940187
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/dma: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 14d74acafb15fd3fac16eef89de7643cddd01775
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/cipher: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit e5b31ca63249f03e56529dcd4260b23196ce2c28
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/ce: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 98b20c9ab88ff4dbe5f3e239efa5a6b7818c1da7
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/xtensa: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 53e60da43aee440d3f75000cdd269bd1324a8ad4
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/falcon: convert to new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 437b2296ced574eada632b11346e22f6b0103e17
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/volt: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 31649ecf47a44e02e73bffc5680c8f56d6cf587a
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/tmr: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 57113c0170b9efeacb3e3e9d4c2178c30d9cd991
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/therm: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit e2ca4e7d6e56cb73a068708f0b0c9bd62ab9e02c
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/pmu: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a4f7bd360893ab4f6bbc1ae4ef617c68bf987f3d
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/mxm: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c9582455ab74246ec9f5986db3821b33058de585
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/mmu: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 54dcadd5b65e12f851ff80af4afef606040ad8b9
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/mc: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 70bc7182cbf1bb07e414bbb553890ddf1b540264
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:21 2015 +1000
drm/nouveau/ltc: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit b7a2bc1886d00f5f1358079e1e6f4979006a4ed6
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:20 2015 +1000
drm/nouveau/imem: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 8de65bd0901e2ee7a485a158bfe9e4631cc00644
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:20 2015 +1000
drm/nouveau/devinit: run devinit scripts right after preinit
This ensures we have a valid mask of disabled engines before we start
trying to execute fini()/init() on the subdevs, potentially touching
devices that don't exist.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 551d341755e2ade4a915d889524a4187f2cd210e
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:20 2015 +1000
drm/nouveau/ibus: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 49bd8da5130aa2de1c891c71163a033254eaf932
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:20 2015 +1000
drm/nouveau/i2c: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2ea7249fe2d4815fc6d0b50021bcbd8bb72b8437
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:20 2015 +1000
drm/nouveau/gpio: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c5fcafa528463b207108cd606e0d41741fb7dc50
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:20 2015 +1000
drm/nouveau/fuse: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 03c8952fb36b58e451b8a93a1a2abd59e09ddf7b
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:20 2015 +1000
drm/nouveau/fb: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 151abd44c27c1562f348a99c176b078a876ebe93
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:20 2015 +1000
drm/nouveau/devinit: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6625f55c080f888ccf51b6881f0bad13f5762d15
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:20 2015 +1000
drm/nouveau/clk: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit bb23f9d7919311ebc696bc540e41c908168f9cb5
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:20 2015 +1000
drm/nouveau/bus: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 46484438ab7dbab6ed29cf647d029e0b1ef3d9d8
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:20 2015 +1000
drm/nouveau/bios: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 3293228174e4d44cca56d809cc8409c3f88f8b90
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:20 2015 +1000
drm/nouveau/bar: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit ef8bc5760b51d69741ed5f42224f1fdd2935541a
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/core: kill some (now) dead code
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 07b9e6cc957195bd1e6908612d67a92ba0ed2cb6
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/sw: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 5ffeb84b8eba71b4f88af6997db843ddf68149e0
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/pm: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 218f978d43296a9ac142a63361e25f517df3d318
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/mpeg: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 27f3d6cf80324940edd29be7758f81145e73d1ff
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/gr: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit b3c981504721a5765641a21d521eb04f7d23e065
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/cipher: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit e5ff112781667dbe641aee2adf6189d8023cb27f
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/ce: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c79a191b2799fb36a7b64c0f9ddc20383ed0dcdb
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/xtensa: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 9d498e0f7a5ece8f61c8a174b40668a2621a82e3
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/falcon: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 8f0649b5c6e70ec18122255690e39f010c12a614
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/fifo: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 9a65a38c456ebac97f0498e85fe26f6d26fe3936
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/fifo: split user classes out from engine implementations
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 0ce41e3c66ca8958dec427f1c46f64efdda90f30
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/disp: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2a7909c0ade08c66690e6115ae49765dc47873e6
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:19 2015 +1000
drm/nouveau/disp: split user classes out from engine implementations
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 0710cc31482ae3711367c42e61580126c50c8ec0
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/dma: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 19fef52d93518cc01fd284b55ee93c0a9967634f
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/dma: split user classes out from engine implementations
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 0e29998a89a6254f5ca9f78167f9ce790d01da45
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/device: convert ctrl class to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2a9f847f5d43d15c0401d050cdd77fb4cbe7da06
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/device: convert user class to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 24bd0930bedea1182aaadc52757897d2b9b3ca99
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/client: convert to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6157091177102638c7d94ffc159c0b157a1c9b56
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/sw: remove dependence on namedb/engctx lookup
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 590801c1a3b19883b0d0e4c60241cbed8a916d47
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/mpeg: remove dependence on namedb/engctx lookup
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a65955e19e769e92a0e29cccdc29aea0b19f3809
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/gr: remove dependence on namedb/engctx lookup
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6ca307b0c9c7878eb1b2b42982c05671f0591229
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/fifo: remove dependence on namedb/engctx lookup
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 35acf3d72cf273e164c9a8bbf30610b95e2a4c84
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/cipher: remove dependence on namedb/engctx lookup
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a83d8872fc8a482e47f7375ab66006e1f8c1fd59
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/falcon: remove dependence on namedb/engctx lookup
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 344c2d429dd86b1b0113177e18f15adb74e9d936
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/fb: remove dependence on namedb/engctx lookup
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 898a2b32138da26ed8f7abc0cc8232741ca03de7
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/sw: turn flip completion into an event
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit cd459e7776c2c08e3771e20fca7de96272f2c9cd
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:18 2015 +1000
drm/nouveau/sw/nv04: replace direct context access with GetRef method
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 1d2a1e53865266a67fb569705eba3ec992682721
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/ramht: remove dependence on namedb
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit f027f49166171c98d5945af12ac3ee9bc9f9bf4c
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/gpuobj: separate allocation from nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 227c95d90a3c50defbc7b4f98605e13af4e6214c
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/gr: directly use instmem where currently possible
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 358ce601ae5de59bf6f08f79455c5b3cb7d359d4
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/fifo: directly use instmem for runlists and polling areas
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit faf468981e3a50ce088460595bd10812af9be7f8
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/xtensa: directly use instmem for ucode image
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 406ca8c714825c2d9e2c866787150eae4e1a1cc3
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/falcon: directly use instmem for ucode image
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 5b1ab0c2c79c3556c4350f4f47d11745fdffad8f
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/imem/nv04-nv40: directly use instmem for vbios/ramfc/ramro
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit adb53d2773a7b0e95bb47e092c71906c7d989366
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/bar/gf100: directly use instmem for channel descriptors
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d0659d3277cd7bf50e45d48f4692a7fbb11e5957
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/mmu: directly use instmem for page tables
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d8e83994aaf6749b7124a219f5b46bd1329e2a08
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/imem: improve management of instance memory
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 1de68568d69ac518db076cc6118af91e930b5f90
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/mmu: protect each vm with its own mutex
An upcoming commit requires being able to modify the PRAMIN BAR page
tables while already holding the MMU subdev mutex.
To solve this issue, each VM has been given its own mutex. As a nice
side-effect, this also allows separate VMs to be updated concurrently.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 524bdbf2025d44cdea672511d21012a52b427374
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/core: prepare for new-style objects
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6cf813fb26640ef539051fb7f965af8c9ff10d92
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/device: prepare for new-style subdevs
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 7974dd1bdb43aaf5b45a915c6b439d11733450fc
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:17 2015 +1000
drm/nouveau/device: separate construction of pci/tegra devices
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 168c2e213d3a9b605856d3676d9e93733c8b37d3
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/engine: implement support for new-style nvkm_engine
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit f0290215c44370ff5d55c01a13dc5a44a1f86efa
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/subdev: implement support for new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit cbea21e2ab658ca1256bfe5f4c535b2b1b9e4060
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/object: implement support for new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 89c651e2213a148d19407109051abbf81328a4a8
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/engine: rename some functions to avoid upcoming conflicts
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 3a8c3400f3e74638bedd0d2410416aa8b794c0fd
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/subdev: rename some functions to avoid upcoming conflicts
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit aa35888ff024b18c7b6b29eb773a221f642987f7
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/object: rename some functions to avoid upcoming conflicts
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d61f4c178cb36a7b15871fcc60814f1f94a5044d
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/nvif: device time mthd
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 159045cdc460794df27e2cc624a9641be5c54b23
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/nvif: replace pushbuf with vm in fermi/kepler gpfifo class
args
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 22827fa42b0baa9287ea56691f26dc45fecea049
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/nvif: return chipset/board names from device info method
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d56241794c293ff7341d373d853e5a4e2f5de244
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/nvif: add supported engines query to kepler gpfifo class
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 41a634064db489713945e228e216336080ba57f8
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/nvif: return min/max versions for supported object classes
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit f58ddf9581655d3fea51465f06f292d365af9c87
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/nvif: assign internal class identifiers to sw classes
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 315a8b2edf51711857795ba6e02b843d7792b59c
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/nvif: use negative oclass identifier for internal classes
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 5c15bf709eb6fb52c5bcb95d545250dde22f9625
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/nvif: return success from sclass even for objects without
children
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 99d4d36ad673c2b4fea364f6d456718f0f701ce4
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/nvif: extend nop ioctl to return nvif version identifier
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit bf81df9be28657eea4aca8c6ab4ed3e69f8a051c
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:16 2015 +1000
drm/nouveau/nvif: replace path-based object identification
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a01ca78c8f118e5a24f1527ecf078ab56ddd4805
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/nvif: simplify and tidy library interfaces
A variety of tweaks to the NVIF library interfaces, mostly ripping out
things that turned out to be not so useful.
- Removed refcounting from nvif_object, callers are expected to not be
stupid instead.
- nvif_client is directly reachable from anything derived from
nvif_object,
removing the need for heuristics to locate it
- _new() versions of interfaces, that allocate memory for the object
they construct, have been removed. The vast majority of callers used
the embedded _init() interfaces.
- No longer storing constructor arguments (and the data returned from
nvkm) inside nvif_object, it's more or less unused and just wastes
memory.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 4e7e62d607a711bc8e8576a0fc7d8f242d25c9b3
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/client: store default device by handle, not reference
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 102b49da15834c1d2ba508457fdf69b3d07c6fee
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/parent: remove some (now) unnecessary special-case handling
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 493f189dc0cbbe9bde8074fb49ca777ba1ef292c
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/object: store object type data outside of handle
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a1e88736221d2e971726931c449ed7d0af31755b
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/device: decouple from engine machinery
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a1bfb29a33521efa6b1714589bf68cb4afebacb1
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/device: split user device implementation out on its own
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 0ac9d210a13c6eaa5492bdd27eb0add952238b8c
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/device: simplify subdev construction
Replaces the piece-by-piece (in response to NV_DEVICE ctor args) device
contruction with a once-off all-or-nothing approach, eliminating some
tricky refcounting issues. The partial device init capability was only
required by some tools, and has been moved to probe time instead.
Temporarily removes a workaround for some boards where we need to fiddle
with AGP registers before executing the DEVINIT scripts. A later commit
in this series reinstates it.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c813d8e048740ca82b88a9d3f639bbd8095b24ac
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/bin: punt client/device argument handling into a common helper
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit e781dc8f6cebf69bd410eb652a13e0a3797d71fe
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/device: tidy ctor/dtor interfaces
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 76ecea5b4b9383edde2bfe49e59e76fec4e21aa4
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/client: tidy ctor/dtor interfaces
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 47b2505efb2d951f16c3a229d93450b463d925e5
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/platform: remove subclassing of nvkm_device
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit f2c906fc0cf1657e4164e09ae6061534eebd5430
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/disp: transition outp/conn away from being based on
nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2aa5eac5163fedf09f2d61992cb5ea4d75bec9db
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:15 2015 +1000
drm/nouveau/i2c: transition pad/ports away from being based on nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d36a99d2da22bdffebf644e4a5f811e8eff82360
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/fb: transition nvkm_ram away from being based on nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a8dae9fe0e8ad94de1bb2bfda90d288c1b9eb6e6
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/vga: require nvkm_device pointer in accessor functions
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 95cf469cc3b266324cd9129f93a2d44b85ea27ed
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/imem: use object accessor function for suspend/resume
Very much not ideal, but this will be improved later.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit cfdc4c44b4388bb8e697882cddd966333e4ab7b0
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/core: wrap direct use of object accessor functions
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 572fb13db2a9dc5336a4b769d60428bc9cff0af6
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/mpeg: switch to gpuobj accessor macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 142ea05f49b9517929f8b27ee800160e7ebf3a02
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/gr: switch to gpuobj accessor macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 5444e770e3991ddb5a9583d622fc18bbf414b551
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/fifo: switch to gpuobj accessor macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 3f532ef1e23395d7abb0eed316dd31123f87f448
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/dma: switch to gpuobj accessor macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6d06fd68cb8d3c8be819d96bffb0a342d01b5e22
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/cipher: switch to gpuobj accessor macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit edb1dc51de2f93905f49ba693c1777d6497a5cae
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/xtensa: switch to gpuobj accessor macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 9cc264a3aac2ca62d8a2e13c8f13c8ef8567550b
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/falcon: switch to gpuobj accessor macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit cd821077aa7f180f83f3a5d60ec47cb75d56fd37
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/mmu: switch to gpuobj accessor macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 1918707556986e9460682845a2bf4055c43a8b65
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/bar: switch to gpuobj accessor macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 45ea503161af6e94d593a59e8cca8981d0435d5c
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/core: switch to gpuobj accessor macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 384af9aceaf8ee1e2d3791cc89a32c161d67bb57
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:14 2015 +1000
drm/nouveau/gpuobj: type-safe accessor macros
These require an explicit struct nvkm_gpuobj pointer, unlike the previous
macros which take a void *, and work with any nvkm_object.
New semantics require acquiring/releasing a gpuobj before accessing them,
which will be made use of in later patches to greatly reduce the overhead
of accesses, particularly when a direct mmio mapping of the object is not
available (suspend/resume, out of ioremap() space, and on GK20A).
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 9ccdc76006e3b6ca46c8dbc446bc2e3f6d8d95cb
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/xtensa: remove object accessor functions
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 63902181a7ce9177c476103694cbdf45ee5c0578
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/falcon: remove object accessor functions
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a47474261e77b148480daff855e516dc60e80b48
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/imem: remove object accessor functions
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 7e24c1145a9176fb9c9b81b3a0f0703598b1445c
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/fuse: remove object accessor functions
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 7f5f518fd70b1b72ca4cf8249ca3306846383ed4
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/bios: remove object accessor functions
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 53003941067534b1071b0f7b71f4700c16d97b28
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/core: remove last printks
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 9ad97ede4b1b257ccc867d5a1e865049e1f09166
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau: use dev_* for logging
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 9e3911e5b244c01886f25ce1cb453dd9c5334853
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/sec: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 476901ff6c611620daab3af6cea940be91d97420
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/pm: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit b835c09bc6b87318fd06bfcb9ac4bb59eaa48f57
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/mpeg: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 109c2f2f1c42c16a4b265e796dee6ae4ada78417
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/gr: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit e5c5e4f5d319799fe67dc67531e41ba0b7ed15e6
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/fifo: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 84407824e97d87161f5ef09ba43a1ac6ec10f479
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/disp: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit e37f543370b86de9eefd86896adb171b7c45a451
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:13 2015 +1000
drm/nouveau/device: switch to dev_printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 65850a3b407b065f4b0db0264796d2981feb85aa
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/cipher: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 1eed206fa29a98df728dd6e67ac02e135645029f
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/ce: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 7108bfe4086862fa29ba1cf82f4dee66be314619
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/xtensa: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 64b5ce1fe9ab0949c6387f5df57aaf0527567e08
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/falcon: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 185eda33394af09dbb0c9d330811718e84c0b070
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/volt: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 9d7b9d9f1140e56ad14111fd9576e7333412dc12
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/tmr: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit b3c418bb48228a206a8c421adaf269cdc83c3c52
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/therm: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c19e329d663715014b367c4fedb217e0378342bf
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/pmu: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 27cc60a17512055c63f05a27eb6687051ade5257
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/mxm: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 85ae830f5ac177244892b934953106d11cd5a679
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/mmu: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c47a48a544ba47eb26ff922203fa0f99c0306907
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/mc: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 59e1a2f1a665c6defc0050060846ed3d89291e8c
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/ltc: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 00c5550710184bad189d2cfe6b1880c0e9331bae
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/imem: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 18019e95de4ffdfb020d61197b8da2af1a442c8e
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/ibus: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 1cb57d25b6b62b39f07c4ff4370c2c48803000e9
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/i2c: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 3ecd329b6445efdcad26e94edd57f0fd5ccd080b
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/fb: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit aa860e4bbe16d5756d6845022a6e94d6cb200df9
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/devinit: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit b907649e7be734a4911f83b67a14e3425fa8a2a1
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:12 2015 +1000
drm/nouveau/clk: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a699a85addc747068a9ac1b2046f4313eb499bc2
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/bus: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 60b29d2071795d322221cfcfe377e6778b09ca90
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/bios: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 0df18e6d52fab22e841e734c384c86f3b7b762b8
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/bar: switch to subdev printk macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6594363b9f765e569feb6222d7d07e19db3fa460
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/core: type-safe printk macros
These require an explicit pointers to nvkm_object/nvkm_subdev/nvkm_device,
depending on which macros are used. This is unlike the previous macros
which take a void *, and work for anything derived from nvkm_object (by
way of some awful heuristics).
The output will be a bit confused until everything has been transitioned,
as the logging format used is a more standard style that previously.
In addition, usage of pr_cont(), which doesn't work correctly with the
dev_*() printk functions (and was potentially racy to begin with), will
be replaced.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 5444204036b2e3a4aeeef6265897df3a9976bf97
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 37eabb030c03539996bff662e4adb078a7f8b2a6
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/mpeg: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c4584adc37720b65ae44a84c660d47b3ebcf7dfb
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/gr: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit af3082b3c621e75371dc6d11fac5a2dc2b19b1bc
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/fifo: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 3a020b4dfc3a6c79f144b2c6786d86b33cda64d9
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/disp: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6ed5c1682425e29913785977cccca67ff3dec5f1
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/falcon: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit dd4bb3eccc806e78baee3009aa466466daae0f29
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/pmu: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 909604d444eb26ed37860268cfc6a68d4a5f28cb
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/mmu: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 1302bcbb8229b0575401be87765277629330384a
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/ltc: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 63bb5c390bf2f975f0936b6523af6784af811b49
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/ibus: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit cf07d861ce3c4bfd9d45f9e66f30cbfb56dca3a0
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/fb: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6979c6303a4abf263753cd9d577d79f05c6e8c47
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/clk: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 4f31c84ebafd7b3940c2fe109fe173c62d097080
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:11 2015 +1000
drm/nouveau/bus: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 4dd308f446c31e8f4a2b5033ba2de6f53f015114
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/bar: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 56f67dc19623b6cd4db57ee07d6f0cad32bcd5af
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/tmr: type-safe PTIMER-based delay/wait macros
These require an explicit struct nvkm_device pointer, unlike the previous
macros which take a void *, and work for (almost) anything derived from
nvkm_object by using some heuristics.
These macros are more general than the previous ones, and can be used to
handle PTIMER-based busy-waits (will be used in later devinit fixes) as
well as more complicated wait conditions.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2ebfa1bc6ff1a7cded8b662f507d34574ffcc2c6
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/kms/nv04: fix incorrect use of register accessors
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 01d64afc2e3238cf1658184427fa2563963c8708
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/sw: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit b8ad561e5541e6e6fe5c60ef33fec50ec211c92b
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/sec: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 846e831d953fd01cb78b9ed92495baee142bed37
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/pm: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit f2d85ad1a63130ba31434d042b6c76f24f6b9673
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/msvld: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 320ca25131758a445e351f701daf91d8aa5be096
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/msppp: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 54118c74fb4b4fdb032a6c4dfc59bb856bc6fc48
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/mspdec: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 636e37aa978b4904189710b5b501299bd7404ad5
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/mpeg: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 276836d46e535c8ca299a1ea8302879dbdd3e93a
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/gr: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 8774440390cdfe37c5d003f850847c9fd67cdf61
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/fifo: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2fde1f1c343030d169945aa67a0e485b568f1393
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/disp: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit f9793bb7ed4d83c1b72661c1cca2949a343df231
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:10 2015 +1000
drm/nouveau/device: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit b958bf916d34f35639048361f7d87334770ebf4d
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/cipher: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 29e9f51094316879c4602795167e9635e18a3c8b
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/ce: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2ef770f743c55ee2e7efb8e750c6e2d2eae9f74e
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/xtensa: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 96975248ee45cd50101b4bdf0eaf8c2d9e6cfa73
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/falcon: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c44c049f28dbebfb95aca3847fd4996ca3503b0c
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/tmr: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 5718ea3257f5fb945a8625dd17d0d753c9dbec34
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/therm: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit bef002e87f1accc12a7fc7c98b80354c136c199e
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/pmu: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 83f56106ead017a07868176279746d73bc7a7060
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/mmu: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 25e3a463fc1bd39c01cc6d19d2c8b4c4725699b9
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/mc: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 99336ed363f49f484b4d93600c4dfec1f2ebb84a
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/ltc: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d5c5bcf693e7c72f2f853066858f3d40a42ba942
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/imem: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit fef5cc0f258d68d3a9ead1058461bf5f2e2796da
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/ibus: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6f2274991043a3db2ab84b5d9462a085d38f1fb1
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/i2c: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 4de93a086eb0315f0bd8e1d6da40186842670b57
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/gpio: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2bdb4995fd9629840ed80305f2a9f046071881d7
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/fuse: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6758745b2821bddcec1aae0c4cffaa9608aeda59
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/fb: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 8ac3f64f75b6b7dbe5917e5c65344915415f58e1
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:09 2015 +1000
drm/nouveau/devinit: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 822ad79fa40070fc36cae2ad929ab0c409919080
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/clk: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 14caba447c9a22ceb0400e964f585e5ffff5f0b8
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/bus: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d8f266a353cb397aa792b59d5aa16ea09579f9ac
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/bios: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 9155c16214631e064d0d1edcd60a62347f823c80
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/bar: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 94bab102233e30d08fcb33a424ec56520b22eb1b
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/core: switch to device pri macros
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit dd64694208d7c902ba7a5bcd2bf012c1087ba0f0
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/device: type-safe register accessor macros
These require an explit struct nvkm_device pointer, unlike the previous
macros which take a void *, and assume it's any old nvkm_subdev.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 8699745a2bc143eee429c556d631e8e5be5dc009
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/vp: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 226dcefe706ff8854bca1bb75ae7bfd2fe3296c5
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/sw: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c0e297dc61f8d4453e07afbea1fa8d0e67cd4a34
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/sec: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 8c1aeaa13954585e8482866457abacb5c094db35
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/pm: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 74137ffcd1dfd6537bbfdd1d1149942412280e9e
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/msvld: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit fd507a53abda54697bcae2f60cfaf41932634d68
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/msppp: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 11271f9f8ff3755bf9a413d157dc7cb7c36856b1
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/mspdec: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit b19de4f3d787947224e89447505dd3c99b304d7b
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/mpeg: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit bfee3f3d97db88bfb732735eb4955ad3381ac758
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:08 2015 +1000
drm/nouveau/gr: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6189f1b0938dc0621c27494031b83ffae566e318
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/fifo: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a317aa21be51f869d5ab0198fad94a4570af9ddb
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/dma: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit fd166a1832db138f22ad95eacd0879af30742f57
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/disp: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit e2f1cf253e0cf5b64fa6fee439aeeda49c6f09d8
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/cipher: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d9261a68374fbeda5a180fbba926aaba29321a75
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/ce: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d8c304b504bc2709eaec742be1b30d5e53e47449
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/bsp: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit f0961867b817e3aca45dca7e1885a7ec99a260ed
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/xtensa: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit b26ada6fedeb7cf6dacb1275a8ea08f4e39b53d2
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/falcon: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6052dc5775ac0be49db3e25d2719c72a250189a2
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/volt: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit cb8bb9cedb6015eafd56ef9e9c5b2c216e8e7960
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/tmr: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit da06b46b720687117178d3ee85a601762f1c36b5
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/therm: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 5a7d1e22feedd3cfab5a94bba5f26ab61610bc62
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/pmu: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2d9d5889e8848501ffe71b4e99c639a29a1fe10f
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/mxm: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 1f5bffca226929a834c7d631464d420e78cbe5f1
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/mmu: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2ca0ddbc03917f94c6d34820f91d0c920c057df2
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/mc: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c7750cfbc150460a507deb27b8eed93fcf60ea8d
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:07 2015 +1000
drm/nouveau/ltc: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c44c06aeebf481fb69c665a21090f2f0aac878c5
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/imem: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit ac51596f27d5cece39cb63b857e6ebbffa05ca33
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/ibus: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 5b920d926422fdc5b40b703d72344d5e20b3872a
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/i2c: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit e7d65181045898a6da80add0392765e253b0023c
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/gpio: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit ce7b4f60a84cfb1533f217198b01758aab05f4dc
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/fuse: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit b1e4553cb1f9deddbd8c13d95e9cef81967a3f41
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/fb: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 266f8b5ee6e98979f3251efc81451a2a2cbf2a28
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/devinit: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 3eca809b3c05ea6918c1d13da478abdae5e712ba
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/clk: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 01d6b95605ad5c5be9ce0c7bf37b1a6d51cbb9e4
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/bus: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a00014e3963642e7cf7206a9fa814b547d642a72
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/bios: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 5b0c189fcb232daa1cabac8892e42cdee57254bd
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/bar: cosmetic changes
This is purely preparation for upcoming commits, there should be no
code changes here.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 9ace404b1098221021b01c2ba0eeea0c257fa4a5
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/device: include core/device.h automatically for
subdevs/engines
Pretty much every subdev/engine is going to need access to nvkm_device
shortly to touch registers and/or output messages.
The odd placement of the includes is necessary to work around some
inter-dependencies that currently exist. This will be fixed later.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6d0d40e7a577bbc7497ee7fbfeb2315d46a872a6
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:06 2015 +1000
drm/nouveau/device: add direct pointer to struct device
A future commit will hide the platform/pci specifics from nvkm_device,
but it's still very useful in a lot of places to have access to the
Linux device struct.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 741d778ea0dde26a345717f1843407760f02fe03
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:05 2015 +1000
drm/nouveau/device: add direct pointers to subdevs from nvkm_device
Will be used in upcoming commits to remove the need for lookup/runtime
type-checking functions when accessing foreign subdevs.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d351b8569e3c57bf5dc3dd5a1295974a9e04316e
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:05 2015 +1000
drm/nouveau/subdev: add direct pointer to nvkm_device
Will be utilised in upcoming commits to remove the need for heuristics
to lookup the device a subdev belongs to.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 0d5dd3f301bbc66c41b219f50fa97a6df1965cfe
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 20 14:54:05 2015 +1000
drm/nouveau/lib: various tweaks
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 205877f9156daebb975fb46205488da6fdf5b3f5
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Thu Aug 27 17:33:19 2015 +1000
drm/nouveau/pmu/gk104: implement a hackish workaround for a hw bug
Only a handful of machines have this enabled by default, where it's been
proven to work. The workaround can be explicitly enabled with a module
option also.
Still waiting on feedback from NVIDIA for a proper idea of exactly what
this fix is doing, and how to implement it properly.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2a89359415da2fc1250b4c205de3c384bd781f54
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Fri Aug 21 13:38:31 2015 +1000
drm/nouveau/disp/dp: gm1xx appears to have same dp lane ordering as gm2xx
Fixes 2-lane DP on Quadro K620.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit fe0f5d08806dcf7fd51092dfc6ea666ea2392692
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Fri Aug 21 12:50:07 2015 +1000
drm/nouveau/disp/dp: fix some tx_pu mishandling
We only need to mask 0x0f on GM2xx, and want to keep the higher bits on
earlier cards.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit f10956d4455fcb24ecbdca30e6d9d88c95dc2588
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Fri Aug 21 13:19:13 2015 +1000
drm/nouveau/bios/dp: use alternate set of drvctl values where necessary
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 7c11c99b3c66a8e03494e56ce6e6c5303ee85934
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Fri Aug 21 10:52:54 2015 +1000
drm/nouveau/bios/dcb: accept "maxwell" lane count values for dcb 4.0
We previously assumed that the values "2" and "4" were new in DCB 4.1,
however, there's at least one GM107 DCB 4.0 board (Quadro K620) that
uses the newer values.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 895fb8e6f77589b9c50ff1f231b5025935d1d59f
Author: Ilia Mirkin <imirkin@xxxxxxxxxxxx>
Date: Mon Aug 17 19:37:34 2015 -0400
drm/nouveau/fb/sddr3: add WR/CWL values seen on a GK208
Signed-off-by: Ilia Mirkin <imirkin@xxxxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 0a363e85cdafbceeee6a49b91c604d0d4d070dc7
Author: Hans de Goede <hdegoede@xxxxxxxxxx>
Date: Thu Jul 23 17:20:12 2015 +0200
drm/nouveau/nv46: Change mc subdev oclass from nv44 to nv4c
MSI interrupts appear to not work for nv46 based cards. Change the mc
subdev oclass for these cards from nv44 to nv4c, the nv4c mc code is
identical to the nv44 mc code except that it does not use msi
(it does not define a msi_rearm callback).
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=90435
Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2df0bf57f89cfa6e6adafb44d666ecc4a228a731
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Tue Aug 4 23:58:15 2015 +0200
drm/nouveau/pm/gf100: only use PBFB_BROADCAST.PM_UNK100 for PBFB signals
High level hardware events related to PBFB will monitor all partitions.
While we are at it, fix bitfield for this mux.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 8feece04db884e04c31c008b76a7610849757720
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Tue Aug 4 23:58:14 2015 +0200
drm/nouveau/pm/gf100: remove multiple definitions of GPC_DOM signal 0x0e
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 9b4dc66d4772a432f271e1ebafd70aafe2b9bb27
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Tue Aug 4 23:58:13 2015 +0200
drm/nouveau/pm/gf100: remove undefined TEX.PM_UNKC8 mux
This mux only exists on GF108+ (except for GF110 one), but since it is
not used by the userspace we can drop it for now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 7fe882eb90844f79acd9cdd3ccd5d3459c27cf3f
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Tue Aug 4 23:58:12 2015 +0200
drm/nouveau/pm: allow zeroed signals to enable sources
Hardware signals index 0x00 are defined for some domains and they have
to be allowed to enable sources like the others.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 5a23936129b87833e3f3e90a610c65f73c7bbeaa
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jul 26 11:30:08 2015 +0200
drm/nouveau/pm/nv50: TPC[0x3] must be used for PGRAPH muxs on G80
I thought that using TPC[0x0] like for G84:GT215 was sufficient on G80,
but it's actually not the case. According to NVIDIA PerfKit on Windows,
we have to configure PGRAPH related muxs on TPC[0x3] for this chipset.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a4650ed9bd6564b5135ccebf8a5b108ed16abbac
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jul 26 11:30:07 2015 +0200
drm/nouveau/pm/nv50: fix wrong addr for ZCULL source on G80:GT215
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit bacbad17fbc636125bf472240860a58a54ad62db
Author: Ilia Mirkin <imirkin@xxxxxxxxxxxx>
Date: Fri Jun 19 02:51:23 2015 -0400
drm/nouveau/bios: add opcodes 0x73 and 0x77
No known VBIOSes use these, but they are present in the actual VBIOS
table parsing logic. No harm in adding these too.
Signed-off-by: Ilia Mirkin <imirkin@xxxxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 970fee29d036eda3ea869033d6b0b7b42238b22a
Author: Alexandre Courbot <acourbot@xxxxxxxxxx>
Date: Tue Jun 23 15:16:06 2015 +0900
drm/nouveau/platform: recognize GM20B
Allow the platform driver to recognize GM20B.
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d10ae271301803c2720b8ad53d6a90b5620ea439
Author: Alexandre Courbot <acourbot@xxxxxxxxxx>
Date: Tue Jun 23 15:16:05 2015 +0900
drm/nouveau/device: recognize GM20B
Recognize GM20B and assign the right engines and subdevs.
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a032fb9da665ed6e6a36fa6788eff1db43ba2703
Author: Alexandre Courbot <acourbot@xxxxxxxxxx>
Date: Tue Jun 23 15:16:04 2015 +0900
drm/nouveau/gr: add GM20B support
Add support for GM20B's graphics engine, based on GK20A. Note that this
code alone will not allow the engine to initialize on released devices
which require PMU-assisted secure boot.
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 3326060a17f6ef8ca3d3f785b1ae31ff76f713f6
Author: Alexandre Courbot <acourbot@xxxxxxxxxx>
Date: Tue Jun 23 15:16:03 2015 +0900
drm/nouveau/fifo: add GM20B fifo
GM20B has a 512-channels FIFO similar to GK104.
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c4d0f8f6f8c8dc09cd32e7fdb31e3d1a65a0f8f1
Author: Alexandre Courbot <acourbot@xxxxxxxxxx>
Date: Tue Jun 23 15:16:02 2015 +0900
drm/nouveau/gr/gk20a: use same initialization sequence as nvgpu
GK20A's initialization was based on GK104, but differences exist in the
way the initial context is built and the initialization process itself.
This patch follows the same initialization sequence as nvgpu performs
to avoid bad surprises. Since the register bundles initialization also
differ considerably from GK104, the register packs are now loaded from
firmware files, again similarly to what is done with nvgpu.
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 8539b37acef73949861a16808b60cb8b5b9b3bab
Author: Alexandre Courbot <acourbot@xxxxxxxxxx>
Date: Tue Jun 23 15:16:01 2015 +0900
drm/nouveau/gr: use NVIDIA-provided external firmwares
NVIDIA will officially start providing GR firmwares through
linux-firmware for GPUs that require it. Change the GR firmware lookup
function to use these files.
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 13cffadced770954fc647e1aee8c959a99ecf0f4
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Fri Jun 19 17:37:18 2015 +0200
drm/nouveau/pm/gk104: add compute signals/sources
These signals and sources have been reverse engineered from CUPTI
(Linux). Graphics signals exposed by PerfKit (Windows only) will be
added later. I need to reverse engineer them and it's a bit painful.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 1914f673ec8b440a03ed56e0a1f42e3565c405c7
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Fri Jun 19 17:37:17 2015 +0200
drm/nouveau/pm/gk104: re-use gf100_pm_ctor()
gk104_pm_ctor() is equal to gf100_pm_ctor().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 261d678d10d9ba866e279e0da0415267f1e6e561
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Fri Jun 19 17:36:38 2015 +0200
drm/nouveau/pm/nv40: rename pcounter domains to 'pc' instead of 'pm'
This trivial patch makes thing more consistent since hardware signals
names are prefixed by 'pcXX'.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit df0b37ee1aa19fc1b948099bf449fdd94f36036c
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Fri Jun 19 17:36:37 2015 +0200
drm/nouveau/pm: expose name of domains
This is going to be very useful for GF100+ because each GPC can
have its own domain of counters.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 85fa319d8a5240bab2e4123cfc9178bff55694ca
Author: Wei Ni <wni@xxxxxxxxxx>
Date: Tue Jun 16 17:35:12 2015 +0800
drm/nouveau/drm/nouveau/clk: fix tstate to pstate calculation
According to the tstate calculation in nvkm_clk_tstate(),
the range of tstate is from -(clk->state_nr - 1) to 0,
it mean the tstate is negative value. But in nvkm_pstate_work(),
it use (clk->state_nr - 1 - clk->tstate) to limit pstate,
it's not correct.
This patch fix it to use (clk->state_nr - 1 + clk->tstate) to
limit pstate.
Signed-off-by: Wei Ni <wni@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d4a312dc90a7c1079133b038aec0120ee9e3d0ce
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 14 13:50:06 2015 +0200
drm/nouveau/pm: some fixes related to sources
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit eb94345a93204f0d7d7e0809dde329977522aec0
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 14 13:50:05 2015 +0200
drm/nouveau/pm: fix signals/sources for GT200+
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 94a2ef69aa0c3612577ab1a6f5c248b206118e68
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 14 13:33:55 2015 +0200
drm/nouveau/pm/gf100: add compute signals/sources
These signals and sources have been reverse engineered from CUPTI
(Linux). Graphics signals exposed by PerfKit (Windows only) will be
added later. I need to reverse engineer them and it's a bit painful.
This commit also adds a new class for GF108 and GF117.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 060f50e3b100b8f51fbf165de48c2ea097ff7390
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 14 13:33:54 2015 +0200
drm/nouveau/pm/gf100: allow to share GPC, HUB and PART domains
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit f21950ea35c86be79c293b199fe48b5152ec8311
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Sun Jun 14 12:20:37 2015 +1000
drm/nouveau/pm: stack perfdom class under perfmon
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2d4b94b95f30b0a4244fce4866583094d991c0ec
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Sun Jun 14 12:10:59 2015 +1000
drm/nouveau/pm: swap perfmon/perfdom code to avoid forward decl in next
commit
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 06b7972dc915e60051cd6531d988a7c72645d00a
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:28 2015 +0200
drm/nouveau/pm/nv50: add compute and graphics signals/sources
These signals and sources have been reverse engineered from NVIDIA
PerfKit (Windows) and CUPTI (Linux), they will be used to build complex
hardware events from the userspace.
This commit also adds a new class for GT200.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6137b5a7c2aeca9f72229c120504f5d083fa9127
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:27 2015 +0200
drm/nouveau/pm: allow the userspace to configure sources
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 0f3804360dd4f88332b9c0b2d7cb4c1f30893cc7
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:26 2015 +0200
drm/nouveau/pm: allow to configure domains instead of simple counters
Configuring counters from the userspace require the kernel to handle some
logic related to performance counters. Basically, it has to find a free
slot to assign a counter, to handle extra counting modes like B4/B6 and it
must return and error when it can't configure a counter.
In my opinion, the kernel should not handle all of that logic but it
should only write the configuration sent by the userspace without
checking anything. In other words, it should overwrite the configuration
even if it's already counting and do not return any errors.
This patch allows the userspace to configure a domain instead of
separate counters. This has the advantage to move all of the logic to
the userspace.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 3bfdde178a959cb5e490e4a3a2433c95a9a1af26
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:25 2015 +0200
drm/nouveau/pm: allow the userspace to schedule hardware counters
This adds a new method NVIF_PERFCTR_V0_INIT which starts a batch of
hardware counters for sampling. This will allow the userspace to start
a monitoring session using the INIT method and to stop it with SAMPLE,
for example before and after a frame is rendered.
This commit temporarily breaks nv_perfmon but this is going to be fixed
with the upcoming patch.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 6f99c84873f455a76a0356061b276bc0c89b5d92
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:24 2015 +0200
drm/nouveau/pm: implement NVIF_PERFMON_V0_QUERY_SOURCE method
This allows to query the ID, the mask and the user-readable name of
sources for each signal.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 50d138d7528c3370ebf3a54079091a35a60a23be
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:23 2015 +0200
drm/nouveau/pm: allow to query the number of sources for a signal
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit e82661e23c60fc41424ca138820d729d8e4a2226
Author: Samuel Pitoiset <samuel.pitoisetÅ?gmail.com>
Date: Sun Jun 7 22:40:22 2015 +0200
drm/nouveau/pm: add concept of sources
A source (or multiplexer) is a tuple addr+mask+shift which allows to
control a block of signals. The maximum number of sources that a signal
can define is arbitrary limited to 8 and this should be large enough.
This patch allows to define multi-level of sources for a signal.
Each different sources are stored to a global list and will be exposed
to the userspace through the nvif interface in order to avoid conflicts.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 40a3b22c92ac3dad5adc818a84671bfb00303731
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:21 2015 +0200
drm/nouveau/pm: allow to monitor hardware signal index 0x00
This signal index must be always allowed even if it's not clearly
defined in a domain in order to monitor a counter like 0x03020100
because it's the default value of signals.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 10a4d2b2489394e32f17afc6cc63ccdfc1b6050b
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:20 2015 +0200
drm/nouveau/pm: use hardware signals indexes instead of user-readable
names
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit e4047599aede7a7aca97ace770002c4e29e403d2
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:19 2015 +0200
drm/nouveau/pm: change signal iter to u16
16 bits is large enough to store the maximum number of signals available
for one domain (i.e. 256).
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 3e1b33571ab4937cbd400976a115e4922797559a
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:18 2015 +0200
drm/nouveau/pm: allow to query signals by domain
This will allow to configure performance counters with hardware signal
indexes instead of user-readable names in an upcoming patch.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 45f0f94db285009a41a94e069618ea9bb269af84
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:17 2015 +0200
drm/nouveau/pm: implement NVIF_PERFMON_V0_QUERY_DOMAIN method
This allows to query the number of available domains, including the
number of hardware counter and the number of signals per domain.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 44d9de58ea5633e4f2d062e718016383b28b4eed
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:16 2015 +0200
drm/nouveau/pm: prevent creating a perfctr object when signals are not
found
Since a new class has been introduced to query signals, we can now
return an error when the userspace wants to monitor unknown signals.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 5a0bc4b5aeba3bb32eb7da6a98108e93bbd64f7e
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:15 2015 +0200
drm/nouveau/pm: reorganize the nvif interface
This commit introduces the NVIF_IOCTL_NEW_V0_PERFMON class which will be
used in order to query domains, signals and sources. This separates the
querying and the counting interface.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit a78ce96f96d76311fd165207a6ffb64b0ebd85cc
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:14 2015 +0200
drm/nouveau/pm: remove unused nvkm_perfsig_wrap() function
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Reviewed-by: Martin Peres <martin.peres@xxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 0b7515c035d26faee91b6c3023622385c109b99e
Author: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Date: Sun Jun 7 22:40:13 2015 +0200
drm/nouveau/pm: remove pmu signals
PDAEMON signals don't have to be exposed by the perfmon engine.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@xxxxxxxxx>
Reviewed-by: Martin Peres <martin.peres@xxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 087cd0db87a79b03d35567a32d4a29bee179ad9e
Author: Roy Spliet <rspliet@xxxxxxxxxx>
Date: Sun May 24 10:44:02 2015 +0200
drm/nouveau/clk/nv50: Enable user reclocking for NVA0
Tested on a few cards. Probably works quite well for most, given they
should
all be GDDR3.
Signed-off-by: Roy Spliet <rspliet@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 852c619b6e6e33509b405a5ad7400255e02ba8ec
Author: Roy Spliet <rspliet@xxxxxxxxxx>
Date: Sun May 24 10:44:01 2015 +0200
drm/nouveau/fb/gddr3: Add a few CL and WR entries observed on GTX260
Signed-off-by: Roy Spliet <rspliet@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 82a74fd2936afd97e83cf195c41dc372ebe9fc84
Author: Roy Spliet <rspliet@xxxxxxxxxx>
Date: Sun May 24 10:44:00 2015 +0200
drm/nouveau/fb/ramnv50: GDDR3 script for NVA0
This looks surprisingly similar to scripts on earlier cards as well
but they don't seem to work just yet. That... and I don't have any, which
makes it a tough job to reverse engineer.
Signed-off-by: Roy Spliet <rspliet@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit c25bf7b6155cb1e737c39ab76c844469deed3c98
Author: Roy Spliet <rspliet@xxxxxxxxxx>
Date: Sun May 24 10:43:59 2015 +0200
drm/nouveau/bios/ramcfg: Separate out RON pull value
Signed-off-by: Roy Spliet <rspliet@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 2813e19f13035e5971b6f4001782135cfc0909e0
Author: Roy Spliet <rspliet@xxxxxxxxxx>
Date: Sat May 23 10:37:47 2015 +0200
drm/nouveau/bios/rammap: Parse perf mode as if it's a rammap entry
Some of the bits in there are similar to the bits in the gt215 rammap.
Signed-off-by: Roy Spliet <rspliet@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 35fe024acffc2c29bade5a68a09962bf7ea3c8ed
Author: Roy Spliet <rspliet@xxxxxxxxxx>
Date: Sat May 23 10:37:46 2015 +0200
drm/nouveau/fb/ramnv50: Ressurect timing code, use proper timing/rammap
handlers
Might need some generalisation to < GT200. For those: use at your own
risk!
Signed-off-by: Roy Spliet <rspliet@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 3b582bed907a26b30e511c83c24254c0ae987f47
Author: Roy Spliet <rspliet@xxxxxxxxxx>
Date: Sat May 23 10:37:45 2015 +0200
drm/nouveau/fb/ramgt215: No need to cuss like that
Signed-off-by: Roy Spliet <rspliet@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit d4cc5f0c2aea8350fe07a87cd312ca6a8f1f3129
Author: Roy Spliet <rspliet@xxxxxxxxxx>
Date: Sat May 23 10:37:44 2015 +0200
drm/nouveau/fb/ramnv50: Make 0x100da0 per-partition
Like on GT215
Signed-off-by: Roy Spliet <rspliet@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 7164f4c5b2cfe9aa59d290ea71268022f8950eba
Author: Roy Spliet <rspliet@xxxxxxxxxx>
Date: Sat May 23 10:37:43 2015 +0200
drm/nouveau/bios/rammap: Pull DLLoff bit out of version 0x10 struct
In preparation of NV50 reclocking, where there is no version
Signed-off-by: Roy Spliet <rspliet@xxxxxxxxxx>
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 4a68ccc8e49854e071e14995de2a35016b240131
Author: Ben Skeggs <bskeggs@xxxxxxxxxx>
Date: Wed Apr 29 10:28:17 2015 +1000
remove unnecessary include
This was merged with core/device.h in an earlier commit, but somehow
never got removed.
Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
commit 1f821ed7afaa7ed689322ee2369f270e374a6350
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Wed Aug 12 16:30:18 2015 +0530
PM / OPP: Free resources and properly return error on failure
_of_init_opp_table_v2() isn't freeing up resources on some errors and
the error values returned are also not correct always.
This fixes following problems:
- Return -ENOENT, if no entries are found in the table.
- Use IS_ERR() to properly check return value of _find_device_opp().
- Return error value with PTR_ERR() in above case.
- Free table if _find_device_opp() fails.
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit ea0f8acf4d44727f7d3a38072566029bf5e17b44
Author: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 14:12:37 2015 +1000
powerpc/pseries: Cleanup on pci_dn_reconfig_notifier()
This applies cleanup on pci_dn_reconfig_notifier(), no functional
changes:
* Rename variable "pci" to "pdn" to indicate its purpose clearly.
* The parent node can be released at any time. So it should be
hold with of_get_parent() before accessing it.
* The device node doesn't have to have parent node in theory.
More check on this.
Signed-off-by: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 590c7567a2895f939525ead57b0334c6d47986f0
Author: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 14:12:36 2015 +1000
powerpc/pseries: Fix corrupted pdn list
Commit cca87d30 ("powerpc/pci: Refactor pci_dn") introduced pdn
list for SRIOV VFs. It means the pdn is be put into the child list
of its parent pdn when the pdn is created. When doing PCI hot
unplugging on pSeries, the PCI device node as well as its pdn are
released through procfs entry "powerpc/ofdt". Some one else grabs
the memory chunk of the pdn and update it accordingly. At the same
time, the pdn is still tracked in the child list of parent pdn. It
leads to corrupted child list in the parent pdn.
This fixes above issue by removing the pdn from the child list of
its parent pdn when the device node is detached from the system.
Note the pdn is free'd when the device node is released if the
device node is dynamic one. Otherwise, the device node as well
as the pdn won't be released.
Fixes: cca87d30 ("powerpc/pci: Refactor pci_dn")
Cc: stable@xxxxxxxxxxxxxxx # 4.1+
Reported-by: Santwana Samantray <santwana.samantray@xxxxxxxxxx>
Signed-off-by: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 6669cb8bed02ec1b60e80f2e1e317afc28544207
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Aug 27 20:43:20 2015 -0400
NFSv4.1/pnfs: Ensure layoutreturn reserves space for the opaque payload
The "FIXME" is outdated. Flexfiles does add a payload.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit d13549074cf066d6d5bb29903d044beffea342d3
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Aug 27 20:37:39 2015 -0400
NFSv4.1/flexfiles: Fix a protocol error in layoutreturn
According to the flexfiles protocol, the layoutreturn should specify an
array of errors in the following format:
struct ff_ioerr4 {
offset4 ffie_offset;
length4 ffie_length;
stateid4 ffie_stateid;
device_error4 ffie_errors<>;
};
This patch fixes up the code to ensure that our ffie_errors is indeed
encoded as an array (albeit with only a single entry).
Reported-by: Tom Haynes <thomas.haynes@xxxxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 55f14da66954083b621debbdbf62c7fc429291e8
Merge: 69dba9b 3e692f2
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 27 17:14:30 2015 -0700
Merge branch 'iff_no_queue_fixups'
Phil Sutter says:
====================
fixup IFF_NO_QUEUE conversion
This series serves two purposes:
On one hand it fixes a quite embarrassing bug around the warning I added
for
drivers still setting tx_queue_len = 0 to achieve noqueue operation. It
turned
out to be quite useless as due to using alloc_netdev(), many in-kernel
drivers
fell into the trap by accident, as well. Instead this place serves pretty
well
as a sanitizing point to set IFF_NO_QUEUE for drivers not initializing
tx_queue_len, which in turn allows to drop all special treatment of the
latter
being zero since that can not happen anymore without IFF_NO_QUEUE being
set.
On the other hand, it provides a better solution for Eric Dumazet's
concern
regarding how to assign noqueue to an interface which does not default to
it
already. In order to make this possible, noqueue is being registered so
users
can 'tc qd add dev eth0 root noqueue'. In addition, it resolves the ugly
situation of 'tc qd show' not showing noqueue. Finally, the former changes
allow for some code cleanup.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3e692f21532a54eeb5e6fc0ccc214cfa56fe23d3
Author: Phil Sutter <phil@xxxxxx>
Date: Thu Aug 27 21:21:39 2015 +0200
net: sched: simplify attach_one_default_qdisc()
Now that noqueue qdisc can be attached just like any other qdisc, no
special treatment is necessary anymore when attaching it as default
qdisc.
This change has the added benefit that 'tc qdisc show' prints noqueue
instead of nothing for devices defaulting to noqueue.
Signed-off-by: Phil Sutter <phil@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d66d6c3152e8d5a6db42a56bf7ae1c6cae87ba48
Author: Phil Sutter <phil@xxxxxx>
Date: Thu Aug 27 21:21:38 2015 +0200
net: sched: register noqueue qdisc
This way users can attach noqueue just like any other qdisc using tc
without having to mess with tx_queue_len first.
Signed-off-by: Phil Sutter <phil@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit db4094bca7a5746bc8e36db0557e8732963e88f0
Author: Phil Sutter <phil@xxxxxx>
Date: Thu Aug 27 21:21:37 2015 +0200
net: sched: ignore tx_queue_len when assigning default qdisc
Since alloc_netdev_mqs() sets IFF_NO_QUEUE for drivers not initializing
tx_queue_len, it is safe to assume that if tx_queue_len is zero,
dev->priv flags always contains IFF_NO_QUEUE.
Signed-off-by: Phil Sutter <phil@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f84bb1eac0275283ccd76455e20f926e186ea8c8
Author: Phil Sutter <phil@xxxxxx>
Date: Thu Aug 27 21:21:36 2015 +0200
net: fix IFF_NO_QUEUE for drivers using alloc_netdev
Printing a warning in alloc_netdev_mqs() if tx_queue_len is zero and
IFF_NO_QUEUE not set is not appropriate since drivers may use one of the
alloc_netdev* macros instead of alloc_etherdev*, thereby not
intentionally leaving tx_queue_len uninitialized. Instead check here if
tx_queue_len is zero and set IFF_NO_QUEUE, so the value of tx_queue_len
can be ignored in net/sched_generic.c.
Fixes: 906470c ("net: warn if drivers set tx_queue_len = 0")
Signed-off-by: Phil Sutter <phil@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 69dba9bbc50609f19ee89d62d5199c81fcbc74b2
Author: Jean Sacren <sakiwit@xxxxxxxxx>
Date: Thu Aug 27 18:05:49 2015 -0600
sock: fix kernel doc error
The symbol '__sk_reclaim' is not present in the current tree. Apparently
'__sk_reclaim' was meant to be '__sk_mem_reclaim', so fix it with the
right symbol name for the kernel doc.
Signed-off-by: Jean Sacren <sakiwit@xxxxxxxxx>
Cc: Hideo Aoki <haoki@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5334c5bdac926c5f8d89729beccb46fe88eda9e7
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Wed Aug 26 21:13:37 2015 +0800
NFS: Send attributes in OPEN request for NFS4_CREATE_EXCLUSIVE4_1
Client sends a SETATTR request after OPEN for updating attributes.
For create file with S_ISGID is set, the S_ISGID in SETATTR will be
ignored at nfs server as chmod of no PERMISSION.
v3, same as v2.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 8c61282ff61c28d5a12bb53f0eaa221d30fd3ae1
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Wed Aug 26 21:12:58 2015 +0800
NFS: Get suppattr_exclcreat when getting server capabilities
Create file with attributs as NFS4_CREATE_EXCLUSIVE4_1 mode
depends on suppattr_exclcreat attribut.
v3, same as v2.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 5153aacfb8e2744af68e7b84ccd3f02aeefe4f48
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Wed Aug 26 21:12:15 2015 +0800
NFS: Update NFS4_BITMAP_SIZE
v4.1/v4.2 have define attributes at word2, nfs client also support
security label now.
v3, same as v2.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit c5c3fb5f975a8bcc42cd039b83d9a4729ce489bb
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Wed Aug 26 21:11:39 2015 +0800
NFS: Make opened as optional argument in _nfs4_do_open
Check opened, only update it when non-NULL.
It's not needs define an unused value for the opened
when calling _nfs4_do_open.
v3, same as v2.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit ae57ca0f4fce219ef34c28f0edc210598c465a4d
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Wed Aug 26 21:10:55 2015 +0800
NFS: Check size by inode_newsize_ok in nfs_setattr
Set rlimit for NFS's files is useless right now.
For local process's rlimit, it should be checked by nfs client.
The same, CIFS also call inode_change_ok checking rlimit at its client
in cifs_setattr_nounix() and cifs_setattr_unix().
v3, fix bad using of error
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 96601adb745186ccbcf5b078d4756f13381ec2af
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Mon Aug 24 18:29:38 2015 -0400
x86, pmem: clarify that ARCH_HAS_PMEM_API implies PMEM mapped WB
Given that a write-back (WB) mapping plus non-temporal stores is
expected to be the most efficient way to access PMEM, update the
definition of ARCH_HAS_PMEM_API to imply arch support for
WB-mapped-PMEM. This is needed as a pre-requisite for adding PMEM to
the direct map and mapping it with struct page.
The above clarification for X86_64 means that memcpy_to_pmem() is
permitted to use the non-temporal arch_memcpy_to_pmem() rather than
needlessly fall back to default_memcpy_to_pmem() when the pcommit
instruction is not available. When arch_memcpy_to_pmem() is not
guaranteed to flush writes out of cache, i.e. on older X86_32
implementations where non-temporal stores may just dirty cache,
ARCH_HAS_PMEM_API is simply disabled.
The default fall back for persistent memory handling remains. Namely,
map it with the WT (write-through) cache-type and hope for the best.
arch_has_pmem_api() is updated to only indicate whether the arch
provides the proper helpers to meet the minimum "writes are visible
outside the cache hierarchy after memcpy_to_pmem() + wmb_pmem()". Code
that cares whether wmb_pmem() actually flushes writes to pmem must now
call arch_has_wmb_pmem() directly.
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Reviewed-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
[hch: set ARCH_HAS_PMEM_API=n on x86_32]
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
[toshi: x86_32 compile fixes]
Signed-off-by: Toshi Kani <toshi.kani@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 41e94a851304f7acac840adec4004f8aeee53ad4
Author: Christoph Hellwig <hch@xxxxxx>
Date: Mon Aug 17 16:00:35 2015 +0200
add devm_memremap_pages
This behaves like devm_memremap except that it ensures we have page
structures available that can back the region.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
[djbw: catch attempts to remap RAM, drop flags]
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 033fbae988fcb67e5077203512181890848b8e90
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Sun Aug 9 15:29:06 2015 -0400
mm: ZONE_DEVICE for "device memory"
While pmem is usable as a block device or via DAX mappings to userspace
there are several usage scenarios that can not target pmem due to its
lack of struct page coverage. In preparation for "hot plugging" pmem
into the vmemmap add ZONE_DEVICE as a new zone to tag these pages
separately from the ones that are subject to standard page allocations.
Importantly "device memory" can be removed at will by userspace
unbinding the driver of the device.
Having a separate zone prevents allocation and otherwise marks these
pages that are distinct from typical uniform memory. Device memory has
different lifetime and performance characteristics than RAM. However,
since we have run out of ZONES_SHIFT bits this functionality currently
depends on sacrificing ZONE_DMA.
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Jerome Glisse <j.glisse@xxxxxxxxx>
[hch: various simplifications in the arch interface]
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 012dcef3f058385268630c0003e9b7f8dcafbeb4
Author: Christoph Hellwig <hch@xxxxxx>
Date: Fri Aug 7 17:41:01 2015 -0400
mm: move __phys_to_pfn and __pfn_to_phys to asm/generic/memory_model.h
Three architectures already define these, and we'll need them genericly
soon.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit cb389b9c0e00c30c9daf20287f7d91e2466edbb1
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Fri Aug 7 17:41:00 2015 -0400
dax: drop size parameter to ->direct_access()
None of the implementations currently use it. The common
bdev_direct_access() entry point handles all the size checks before
calling ->direct_access().
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit b0f6446377e72bcabafe83d29bf6a2f6dd19d0b0
Author: Carol L Soto <clsoto@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 14:43:26 2015 -0500
net/mlx4_core: Fix unintialized variable used in error path
The uninitialized value name in mlx4_en_activate_cq was used in order
to print an error message. Fixing it by replacing it with cq->vector.
Signed-off-by: Matan Barak <matanb@xxxxxxxxxxxx>
Signed-off-by: Carol L Soto <clsoto@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4a9bf88a5caa8495b5eb2b738d5fb40924bbc538
Merge: a06a757 67a3e8f
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Thu Aug 27 19:40:26 2015 -0400
Merge branch 'pmem-api' into libnvdimm-for-next
commit 9293267a3e2a7a2555d8ddc8f9301525e5b03b1b
Author: Carol L Soto <clsoto@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 14:43:25 2015 -0500
net/mlx4_core: Capping number of requested MSIXs to MAX_MSIX
We currently manage IRQs in pool_bm which is a bit field
of MAX_MSIX bits. Thus, allocating more than MAX_MSIX
interrupts can't be managed in pool_bm.
Fixing this by capping number of requested MSIXs to
MAX_MSIX.
Signed-off-by: Matan Barak <matanb@xxxxxxxxxxxx>
Signed-off-by: Carol L Soto <clsoto@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b22fbf22f8469d8cacb6fcf5d266426826e1137d
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 14:19:20 2015 -0700
bridge: fdb: rearrange net_bridge_fdb_entry
While looking into fixing the local entries scalability issue I noticed
that the structure is badly arranged because vlan_id would fall in a
second cache line while keeping rcu which is used only when deleting
in the first, so re-arrange the structure and push rcu to the end so we
can get 16 bytes which can be used for other fields (by pushing rcu
fully in the second 64 byte chunk). With this change all the core
necessary information when doing fdb lookups will be available in a
single cache line.
pahole before (note vlan_id):
struct net_bridge_fdb_entry {
struct hlist_node hlist; /* 0 16 */
struct net_bridge_port * dst; /* 16 8 */
struct callback_head rcu; /* 24 16 */
long unsigned int updated; /* 40 8 */
long unsigned int used; /* 48 8 */
mac_addr addr; /* 56 6 */
unsigned char is_local:1; /* 62: 7 1 */
unsigned char is_static:1; /* 62: 6 1 */
unsigned char added_by_user:1; /* 62: 5 1 */
unsigned char added_by_external_learn:1; /* 62: 4 1 */
/* XXX 4 bits hole, try to pack */
/* XXX 1 byte hole, try to pack */
/* --- cacheline 1 boundary (64 bytes) --- */
__u16 vlan_id; /* 64 2 */
/* size: 72, cachelines: 2, members: 11 */
/* sum members: 65, holes: 1, sum holes: 1 */
/* bit holes: 1, sum bit holes: 4 bits */
/* padding: 6 */
/* last cacheline: 8 bytes */
}
pahole after (note vlan_id):
struct net_bridge_fdb_entry {
struct hlist_node hlist; /* 0 16 */
struct net_bridge_port * dst; /* 16 8 */
long unsigned int updated; /* 24 8 */
long unsigned int used; /* 32 8 */
mac_addr addr; /* 40 6 */
__u16 vlan_id; /* 46 2 */
unsigned char is_local:1; /* 48: 7 1 */
unsigned char is_static:1; /* 48: 6 1 */
unsigned char added_by_user:1; /* 48: 5 1 */
unsigned char added_by_external_learn:1; /* 48: 4 1 */
/* XXX 4 bits hole, try to pack */
/* XXX 7 bytes hole, try to pack */
struct callback_head rcu; /* 56 16 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
/* size: 72, cachelines: 2, members: 11 */
/* sum members: 65, holes: 1, sum holes: 7 */
/* bit holes: 1, sum bit holes: 4 bits */
/* last cacheline: 8 bytes */
}
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 67a3e8fe90156d41cd480d3dfbb40f3bc007c262
Author: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Date: Thu Aug 27 13:14:20 2015 -0600
nd_blk: change aperture mapping from WC to WB
This should result in a pretty sizeable performance gain for reads. For
rough comparison I did some simple read testing using PMEM to compare
reads of write combining (WC) mappings vs write-back (WB). This was
done on a random lab machine.
PMEM reads from a write combining mapping:
# dd of=/dev/null if=/dev/pmem0 bs=4096 count=100000
100000+0 records in
100000+0 records out
409600000 bytes (410 MB) copied, 9.2855 s, 44.1 MB/s
PMEM reads from a write-back mapping:
# dd of=/dev/null if=/dev/pmem0 bs=4096 count=1000000
1000000+0 records in
1000000+0 records out
4096000000 bytes (4.1 GB) copied, 3.44034 s, 1.2 GB/s
To be able to safely support a write-back aperture I needed to add
support for the "read flush" _DSM flag, as outlined in the DSM spec:
http://pmem.io/documents/NVDIMM_DSM_Interface_Example.pdf
This flag tells the ND BLK driver that it needs to flush the cache lines
associated with the aperture after the aperture is moved but before any
new data is read. This ensures that any stale cache lines from the
previous contents of the aperture will be discarded from the processor
cache, and the new data will be read properly from the DIMM. We know
that the cache lines are clean and will be discarded without any
writeback because either a) the previous aperture operation was a read,
and we never modified the contents of the aperture, or b) the previous
aperture operation was a write and we must have written back the dirtied
contents of the aperture to the DIMM before the I/O was completed.
In order to add support for the "read flush" flag I needed to add a
generic routine to invalidate cache lines, mmio_flush_range(). This is
protected by the ARCH_HAS_MMIO_FLUSH Kconfig variable, and is currently
only supported on x86.
Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit d3a730971b90dd150e43c924b1b4dec8197fccad
Merge: c4d3e22 7b85b4d
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 27 16:35:51 2015 -0700
Merge branch 'ovs-v6-build-err'
Joe Stringer says:
====================
OPENVSWITCH && !NETFILTER build fix.
Fix issues reported by kbuild test robot:
All error/warnings (new ones prefixed by >>):
net/openvswitch/actions.c: In function 'ovs_fragment':
>> net/openvswitch/actions.c:705:16: error: implicit declaration of
function 'nf_get_ipv6_ops' [-Werror=implicit-function-declaration]
const struct nf_ipv6_ops *v6ops = nf_get_ipv6_ops();
^
>> net/openvswitch/actions.c:705:37: warning: initialization makes
pointer from integer without a cast
const struct nf_ipv6_ops *v6ops = nf_get_ipv6_ops();
^
>> net/openvswitch/actions.c:707:19: error: storage size of 'ovs_rt'
isn't known
struct rt6_info ovs_rt;
^
>> net/openvswitch/actions.c:724:8: error: dereferencing pointer to
incomplete type
v6ops->fragment(skb->sk, skb, ovs_vport_output);
^
>> net/openvswitch/actions.c:707:19: warning: unused variable 'ovs_rt'
[-Wunused-variable]
struct rt6_info ovs_rt;
^
cc1: some warnings being treated as errors
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7b85b4dff2caa5e52726093fd058f87bbc14f156
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Thu Aug 27 15:25:46 2015 -0700
openvswitch: Include ip6_fib.h.
kbuild test robot reports that certain configurations will not
automatically pick up on the "struct rt6_info" definition, so explicitly
include the header for this structure.
Fixes: 7f8a436 "openvswitch: Add conntrack action"
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2e4cfae2a8e3f9ce3925c9b6e9e865fe8476fc4f
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Thu Aug 27 15:25:45 2015 -0700
netfilter: Define v6ops in !CONFIG_NETFILTER case.
When CONFIG_OPENVSWITCH is set, and CONFIG_NETFILTER is not set, the
openvswitch IPv6 fragmentation handling cannot refer to ipv6_ops because
it isn't defined. Add a dummy version to avoid #ifdefs in source files.
Fixes: 7f8a436 "openvswitch: Add conntrack action"
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a06a7576526e10a99ea7721533e7f2df3e26baad
Author: yalin wang <yalin.wang2010@xxxxxxxxx>
Date: Thu Aug 27 19:35:48 2015 -0400
nvdimm: change to use generic kvfree()
Signed-off-by: yalin wang <yalin.wang2010@xxxxxxxxx>
Reviewed-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit c4d3e22438d405b84c00710aad177184d789353f
Merge: ec5d165 1e81779
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 27 16:31:17 2015 -0700
Merge branch 'mlxsw-small-updates'
Jiri Pirko says:
====================
mlxsw: small driver update
Ido Schimmel (2):
mlxsw: Remove duplicate included header
mlxsw: Make mailboxes 4KB aligned
Jiri Pirko (1):
mlxsw: adjust transmit fail log message level in __mlxsw_emad_transmit
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1e81779ae41e5d14174ce5e61790ace34914ade0
Author: Ido Schimmel <idosch@xxxxxxxxxxxx>
Date: Thu Aug 27 17:59:57 2015 +0200
mlxsw: Make mailboxes 4KB aligned
The HW-SW contract requires mailboxes passed to the firmware to be 4KB
aligned. Previously, these mailboxes were mapped using streaming DMA
routines, which do not guarantee the bus addresses to be 4KB aligned.
Under certain conditions this constraint was indeed violated and errors
were observed.
By using consistent DMA mapping routines together with a mailbox size of
4KB we are guaranteed not to violate the constraint.
Signed-off-by: Ido Schimmel <idosch@xxxxxxxxxxxx>
Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 262df6919edd837c0745fc2a751364af671feaf7
Author: Jiri Pirko <jiri@xxxxxxxxxxxx>
Date: Thu Aug 27 17:59:56 2015 +0200
mlxsw: adjust transmit fail log message level in __mlxsw_emad_transmit
When transmit fails, it is an error, not a warning.
Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxxxx>
Signed-off-by: Ido Schimmel <idosch@xxxxxxxxxxxx>
Signed-off-by: Elad Raz <eladr@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a585dabd96f3ccb4ada36cf616ab4477873b506c
Author: Ido Schimmel <idosch@xxxxxxxxxxxx>
Date: Thu Aug 27 17:59:55 2015 +0200
mlxsw: Remove duplicate included header
Signed-off-by: Ido Schimmel <idosch@xxxxxxxxxxxx>
Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxxxx>
Signed-off-by: Elad Raz <eladr@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 718e38b4d96085b4dab08d3d32e5e033aa1ba6e9
Author: Roger Quadros <rogerq@xxxxxx>
Date: Wed Jul 8 14:50:19 2015 +0300
mtd: mtd_oobtest: Fix the address offset with vary_offset case
When vary_offset is set (e.g. test case 3), the offset is not always
zero so memcmpshow() will show the wrong offset in the print message.
To fix this we introduce a new function memcmpshowoffset() which takes
offset as a parameter and displays the right offset and use it in
the case where offset is non zero.
The old memcmpshow() functionality is preserved by converting it into
a macro with offset preset to 0.
Signed-off-by: Roger Quadros <rogerq@xxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit ec5d165555ea02ac9b69bbed8ff8f1de7c782f66
Merge: 547c890 686ed30
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 27 16:28:35 2015 -0700
Merge branch 'rocker-master-change'
Jiri Pirko says:
====================
rocker: make master change handling nicer
Jiri Pirko (6):
net: introduce change upper device notifier change info
net: add netif_is_bridge_master helper
net: add netif_is_ovs_master helper with IFF_OPENVSWITCH private flag
net: kill long time unused bonding private flags
rocker: use new helper to figure out master kind
rocker: use change upper info
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 686ed3047e8727fe3c7eb5a3c63a5e9b1556bbbb
Author: Jiri Pirko <jiri@xxxxxxxxxxxx>
Date: Thu Aug 27 09:31:23 2015 +0200
rocker: use change upper info
Since now information about changed upper is passed along, benefit from
that and use this info directly.
This also fixes possible issues that could happen when non-master device
is added (current code does not distinguish between master and non-master
upper device).
Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxxxx>
Acked-by: Scott Feldman <sfeldma@xxxxxxxxx
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit fb4bf214346e37778bcf00a89bfb90112859b23c
Author: Jiri Pirko <jiri@xxxxxxxxxxxx>
Date: Thu Aug 27 09:31:22 2015 +0200
rocker: use new helper to figure out master kind
Looking at rtnl kind string is kind of ugly. So use new helpers to do
this in nicer way.
Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxxxx>
Acked-by: Scott Feldman <sfeldma@xxxxxxxxx
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0dc1549bfd67053181415a3f7544628a6bcd2a08
Author: Jiri Pirko <jiri@xxxxxxxxxxxx>
Date: Thu Aug 27 09:31:21 2015 +0200
net: kill long time unused bonding private flags
We don't use them for years, just kill them now.
Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 35d4e1725202e6656fcfa8b88447327ad3ae0c0c
Author: Jiri Pirko <jiri@xxxxxxxxxxxx>
Date: Thu Aug 27 09:31:20 2015 +0200
net: add netif_is_ovs_master helper with IFF_OPENVSWITCH private flag
Add this helper so code can easily figure out if netdev is openswitch.
Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0894ae3f0a587bda9733ec4a4b67af7ded3a9498
Author: Jiri Pirko <jiri@xxxxxxxxxxxx>
Date: Thu Aug 27 09:31:19 2015 +0200
net: add netif_is_bridge_master helper
Add this helper so code can easily figure out if netdev is a bridge.
Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0e4ead9d7b3655d76371604abb9b0dcc4e79bb7d
Author: Jiri Pirko <jiri@xxxxxxxxxxxx>
Date: Thu Aug 27 09:31:18 2015 +0200
net: introduce change upper device notifier change info
Add info that is passed along with NETDEV_CHANGEUPPER event.
Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0bdb8fa6ecb4a356f26c6874db51b5488706e088
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Aug 27 19:17:33 2015 -0400
NFSv4.1/pNFS: pnfs_mark_matching_lsegs_return must notify of layout return
It's not sufficient to just mark the layout segment for layout return. We
also need to set the NFS_LAYOUT_RETURN_BEFORE_CLOSE flag in the layout
header.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 547c890cfd26010e01b3faf98f29ca9b2252c8d8
Author: Jason Wang <jasowang@xxxxxxxxxx>
Date: Thu Aug 27 14:53:06 2015 +0800
virtio-net: avoid unnecessary sg initialzation
Usually an skb does not have up to MAX_SKB_FRAGS frags. So no need to
initialize the unuse part of sg. This patch initialize the sg based on
the real number it will used:
- during xmit, it could be inferred from nr_frags and can_push.
- for small receive buffer, it will also be 2.
Cc: Michael S. Tsirkin <mst@xxxxxxxxxx>
Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5e0aa59728854837a7256e21644596f21a16ce0f
Merge: d2d427b 66d4700
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 27 15:42:48 2015 -0700
Merge branch 'geneve-consolidation'
Pravin B Shelar says:
====================
Geneve: Add support for tunnel metadata mode
Following patches adds support for Geneve tunnel metadata
mode. OVS can make use of Geneve net-device with tunnel
metadata API from kernel.
This also allows us to consolidate Geneve implementation
from two kernel modules geneve_core and geneve to single
geneve module. geneve_core module was targeted to share
Geneve encap and decap code between Geneve netdevice and
OVS Geneve tunnel implementation, Since OVS no longer
needs these API, Geneve code can be consolidated into
single geneve module.
v3-v4:
- Drop NETIF_F_NETNS_LOCAL feature.
- Fix geneve device newlink check
v2-v3:
- make tunnel medata device and regular device mutually exclusive.
- Fix Kconfig dependency for Geneve.
- Fix dst-port netlink encoding.
- drop changelink patch.
v1-v2:
- Replaced per hash table tunnel pointer (metadata enabled) with flag.
- Added support for changelink.
- Improve geneve device route lookup with more parameters.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 66d47003f7c1034d66776ab869030f73f6c9ce81
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Wed Aug 26 23:46:55 2015 -0700
geneve: Move device hash table to geneve socket.
This change simplifies Geneve Tunnel hash table management.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Reviewed-by: Jesse Gross <jesse@xxxxxxxxxx>
Reviewed-by: John W. Linville <linville@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 371bd1061d29562e6423435073623add8c475ee2
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Wed Aug 26 23:46:54 2015 -0700
geneve: Consolidate Geneve functionality in single module.
geneve_core module handles send and receive functionality.
This way OVS could use the Geneve API. Now with use of
tunnel meatadata mode OVS can directly use Geneve netdevice.
So there is no need for separate module for Geneve. Following
patch consolidates Geneve protocol processing in single module.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Reviewed-by: Jesse Gross <jesse@xxxxxxxxxx>
Acked-by: John W. Linville <linville@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6b001e682e90d7edf21f93687f5c3b39d412ad6c
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Wed Aug 26 23:46:53 2015 -0700
openvswitch: Use Geneve device.
With help of tunnel metadata mode OVS can directly use
Geneve devices to implement Geneve tunnels.
This patch removes all of the OVS specific Geneve code
and make OVS use a Geneve net_device. Basic geneve vport
is still there to handle compatibility with current
userspace application.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Reviewed-by: Jesse Gross <jesse@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e305ac6cf5a1e1386aedce7ef9cb773635d5845c
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Wed Aug 26 23:46:52 2015 -0700
geneve: Add support to collect tunnel metadata.
Following patch create new tunnel flag which enable
tunnel metadata collection on given device. These devices
can be used by tunnel metadata based routing or by OVS.
Geneve Consolidation patch get rid of collect_md_tun to
simplify tunnel lookup further.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Reviewed-by: Jesse Gross <jesse@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit cd7918b35f0ee0106bbe2ce4a14b5a8c9763deb8
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Wed Aug 26 23:46:51 2015 -0700
geneve: Make dst-port configurable.
Add netlink interface to configure Geneve UDP port number.
So that user can configure it for a Gevene device.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Reviewed-by: Jesse Gross <jesse@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: John W. Linville <linville@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c29a70d2cadfea443c027d23481f820530b70057
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Wed Aug 26 23:46:50 2015 -0700
tunnel: introduce udp_tun_rx_dst()
Introduce function udp_tun_rx_dst() to initialize tunnel dst on
receive path.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Reviewed-by: Jesse Gross <jesse@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 980c394c53e420f7e5484d011378a4bec861ec7a
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Wed Aug 26 23:46:49 2015 -0700
geneve: Use skb mark and protocol to lookup route.
On packet transmit path geneve need to lookup route. Following
patch improves route lookup using more parameters.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Reviewed-by: Jesse Gross <jesse@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: John W. Linville <linville@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 87cd3dcaf4bd135e44ee187baf788deeb011e58d
Author: Pravin B Shelar <pshelar@xxxxxxxxxx>
Date: Wed Aug 26 23:46:48 2015 -0700
geneve: Initialize ethernet address in device setup.
Signed-off-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Reviewed-by: Jesse Gross <jesse@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: John W. Linville <linville@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d2d427b3927bd7a0348fc7f323d0e291f79a2779
Author: Toshiaki Makita <makita.toshiaki@xxxxxxxxxxxxx>
Date: Thu Aug 27 15:32:26 2015 +0900
bridge: Add netlink support for vlan_protocol attribute
This enables bridge vlan_protocol to be configured through netlink.
When CONFIG_BRIDGE_VLAN_FILTERING is disabled, kernel behaves the
same way as this feature is not implemented.
Signed-off-by: Toshiaki Makita <makita.toshiaki@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9c9a6524b5fdf6cb57c9ff627b7f242a6a4e0b00
Author: Yuval Mintz <Yuval.Mintz@xxxxxxxxxx>
Date: Thu Aug 27 08:03:08 2015 +0300
bnx2x: Add new device ids under the Qlogic vendor
This adds support for 3 new PCI device combinations -
1077:16a1, 1077:16a4 and 1077:16ad.
Signed-off-by: Yuval Mintz <Yuval.Mintz@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9fae100cbd1049057bbc3e3180a6de339b9b73a9
Author: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Date: Fri Aug 14 21:43:38 2015 +0800
selftests: breakpoints: fix installing error on the architecture except
x86
Signed-off-by: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
commit a7d0f078892ee5e737cbe79541353c630bc71651
Author: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Date: Fri Aug 14 21:43:35 2015 +0800
selftests: check before install
When the test cases is not supported by the current architecture
the install files(TEST_PROGS, TEST_PROGS_EXTENDED and TEST_FILES)
will be empty. Check it before installation to dismiss a failure
reported by install program.
Signed-off-by: Bamvor Jian Zhang <bamvor.zhangjian@xxxxxxxxxx>
Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
commit f21fb798fe38cf87b177d45820991f0e315c0ba8
Author: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>
Date: Tue Aug 18 12:31:59 2015 +0530
selftests/zram: Adding zram tests
zram: Compressed RAM based block devices
----------------------------------------
The zram module creates RAM based block devices named /dev/zram<id>
(<id> = 0, 1, ...). Pages written to these disks are compressed and stored
in memory itself. These disks allow very fast I/O and compression provides
good amounts of memory savings. Some of the usecases include /tmp storage,
use as swap disks, various caches under /var and maybe many more :)
Statistics for individual zram devices are exported through sysfs nodes at
/sys/block/zram<id>/
This patch is to validate the zram functionality. Test interacts with
block
device /dev/zram<id> and sysfs nodes /sys/block/zram<id>/
zram.sh: sanity check of CONFIG_ZRAM and to run zram01 and zram02 tests
zram01.sh: creates general purpose ram disks with different filesystems
zram02.sh: creates block device for swap
zram_lib.sh: create library with initialization/cleanup functions
README: ZRAM introduction and Kconfig required.
Makefile: To run zram tests
zram test output
-----------------
./zram.sh
--------------------
running zram tests
--------------------
/dev/zram0 device file found: OK
set max_comp_streams to zram device(s)
/sys/block/zram0/max_comp_streams = '2' (1/1)
zram max streams: OK
test that we can set compression algorithm
supported algs: [lzo] lz4
/sys/block/zram0/comp_algorithm = 'lzo' (1/1)
zram set compression algorithm: OK
set disk size to zram device(s)
/sys/block/zram0/disksize = '2097152' (1/1)
zram set disksizes: OK
set memory limit to zram device(s)
/sys/block/zram0/mem_limit = '2M' (1/1)
zram set memory limit: OK
make ext4 filesystem on /dev/zram0
zram mkfs.ext4: OK
mount /dev/zram0
zram mount of zram device(s): OK
fill zram0...
zram0 can be filled with '1932' KB
zram used 3M, zram disk sizes 2097152M
zram compression ratio: 699050.66:1: OK
zram cleanup
zram01 : [PASS]
/dev/zram0 device file found: OK
set max_comp_streams to zram device(s)
/sys/block/zram0/max_comp_streams = '2' (1/1)
zram max streams: OK
set disk size to zram device(s)
/sys/block/zram0/disksize = '1048576' (1/1)
zram set disksizes: OK
set memory limit to zram device(s)
/sys/block/zram0/mem_limit = '1M' (1/1)
zram set memory limit: OK
make swap with zram device(s)
done with /dev/zram0
zram making zram mkswap and swapon: OK
zram swapoff: OK
zram cleanup
zram02 : [PASS]
CC: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
CC: Tyler Baker <tyler.baker@xxxxxxxxxx>
CC: Milosz Wasilewski <milosz.wasilewski@xxxxxxxxxx>
CC: Alexey Kodanev <alexey.kodanev@xxxxxxxxxx>
Signed-off-by: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>
Signed-off-by: Alexey Kodanev <alexey.kodanev@xxxxxxxxxx>
Reviewed-By: Tyler Baker <tyler.baker@xxxxxxxxxx>
Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
commit 3f1d44ae640172482a8c0125efe9ca93331b056b
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Thu Aug 27 11:13:36 2015 +0100
Documentation/Changes: Now need OpenSSL devel packages for module signing
The module signing script (sign-file) used to be a wrapper around the
openssl program. It has now been replaced by a C program that uses the
crypto library from the OpenSSL package meaning that the OpenSSL devel
packages are necessary to provide the devel library link and the header
files.
This would be openssl-devel on Fedora and libssl-dev on Debian.
Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Acked-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: James Morris <james.l.morris@xxxxxxxxxx>
commit 31cb5c9e69cedd4bdd7bb7b442582914ceae8c2b
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Wed Aug 26 20:27:05 2015 -0700
smsc911x: Ignore error return from device_get_phy_mode()
Commit 62ee783bf1f8 ("smsc911x: Fix crash seen if neither ACPI nor OF is
configured or used") introduces an error check for the return value from
device_get_phy_mode() and bails out if there is an error. Unfortunately,
there are configurations where no phy is configured. Those configurations
now fail.
To fix the problem, accept error returns from device_get_phy_mode(),
and use the return value from device_property_read_u32() to determine
if there is a suitable firmware interface to read the configuration.
Fixes: 62ee783bf1f8 ("smsc911x: Fix crash seen if neither ACPI nor OF is
configured or used")
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4fa7508e9f1c64ae39516e40ee5495aaa4616ad7
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Wed Aug 26 20:27:04 2015 -0700
device property: Return -ENXIO if there is no suitable FW interface
Return -ENXIO if device property array access functions don't find
a suitable firmware interface.
This lets drivers decide if they should use available platform data
instead.
Cc: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Tested-by: Jeremy Linton <jeremy.linton@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3b3ae880266d148bf73a573a766bc9b78c08d805
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Wed Aug 26 23:00:06 2015 +0200
net: sched: consolidate tc_classify{,_compat}
For classifiers getting invoked via tc_classify(), we always need an
extra function call into tc_classify_compat(), as both are being
exported as symbols and tc_classify() itself doesn't do much except
handling of reclassifications when tp->classify() returned with
TC_ACT_RECLASSIFY.
CBQ and ATM are the only qdiscs that directly call into
tc_classify_compat(),
all others use tc_classify(). When tc actions are being configured
out in the kernel, tc_classify() effectively does nothing besides
delegating.
We could spare this layer and consolidate both functions. pktgen on
single CPU constantly pushing skbs directly into the netif_receive_skb()
path with a dummy classifier on ingress qdisc attached, improves
slightly from 22.3Mpps to 23.1Mpps.
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit fe2188236ad04618b25978c44d896c16613de9aa
Merge: 0118e01 bf41846
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 27 14:06:09 2015 -0700
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue
Jeff Kirsher says:
====================
Intel Wired LAN Driver Updates 2015-08-26
This series contains updates to i40e and i40evf only.
Anjali provides a fix for i40e where the part is not receiving multicast
or VLAN tagged packets when in promiscuous mode. This can occur when a
software bridge is created on top of the device. Fixed the legacy and MSI
interrupt mode in the driver, which was non-existent before since we
were assuming MSIX was the only mode that the driver ran in. Fixed the
i40evf driver, where the wrong defines were getting used in the VF
driver.
Mitch fixes a sparse warning about comparing __le16 to u16 so use
le16_to_cpu() to resolve the warning. Also fixed a dyslexic spelling
of invalid.
Shannon adds port.crc_errors to receive CRC error counter, since it
is a receive counter.
Catherine provides a fix to move the stopping of the service task and
flow director to i40e_shutdown() instead of i40e_suspend().
Greg fixes the ethtool offline diagnostic with netqueues, which just need
to be treated the same as virtual functions when someone wants to run the
ethtool offline diagnostic test. Also fixed up code comments for the
i40e ethtool diagnostic test function. Cleans up redundant and unneeded
messages, since the kernel notifies all VXLAN capable registered drivers,
so no need to log this.
Neerav adds the ability to update statistics per VEB per traffic class
and dump it via ethtool.
Jingjing adds support for virtual channel offload to support receive
polling mode in the VF driver.
v2: dropped patch which added helper functions into a header, feedback
from
David Miller was to make the functions constant to reduce the driver
footprint, so remove the patch while Anjali works on making the
requested
changes.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0118e01935cae83261f1c52f1c88c6514ef330f6
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Wed Aug 26 11:49:35 2015 -0700
smsc9194: Remove uncompilable #if 0'd use of pr_dbg
No pr_dbg method exists.
While this code is #if 0'd, it'd be nicer to
use the generic hex_dump, so use it instead.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 763a32bd0fea2893d4b87f20f9f9c278d776fbf6
Merge: 21c721f 9b00eb4
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 27 13:51:38 2015 -0700
Merge branch 'xgene-tso'
Iyappan Subramanian says:
====================
drivers: net: xgene: Add TSO support
Adding TSO support for 10GbE
iperf Tx data rate without TSO: 3.42 Gbps
with TSO: 9.41 Gbps
v2: Address review comments from v1
- skb_linearize() if headers doesn't fit in 3 hardware buffers
v1:
* Initial version
====================
Signed-off-by: Iyappan Subramanian <isubramanian@xxxxxxx>
commit 9b00eb494dc7c19ee69afef46e864f842cc1824f
Author: Iyappan Subramanian <isubramanian@xxxxxxx>
Date: Wed Aug 26 11:48:06 2015 -0700
drivers: net: xgene: Adding support for TSO
Signed-off-by: Iyappan Subramanian <isubramanian@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 949c40bb16bcf5f9584ce585f8a477481ab6aa80
Author: Iyappan Subramanian <isubramanian@xxxxxxx>
Date: Wed Aug 26 11:48:05 2015 -0700
drivers: net: xgene: Preparatory patch for TSO support
- Rearranged descriptor writes
- Moved increment command write to xgene_enet_setup_tx_desc
Signed-off-by: Iyappan Subramanian <isubramanian@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 152933244a1a3232b32d2e973754d03321a5b0c6
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Thu Aug 27 21:09:04 2015 +0800
spi: mediatek: fix SPI_CMD_PAUSE_IE macro error
enable pause interrupt should use SPI_CMD_PAUSE_IE MACRO,
so fix it.
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 2002e90412df17ef7f714be62ed96a3c80b2f907
Merge: 02a9547 3b7ce99
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Thu Aug 27 20:30:46 2015 +0100
Merge branch 'topic/ics43432' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-gtm601
commit d6aa1db3eac37cc92d67c3f66eab1b46d5bb9f7b
Merge: 3b7ce99 02a9547
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Thu Aug 27 20:29:18 2015 +0100
Merge branch 'topic/gtm601' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-ics43432
commit 054bc835d27b558393541c32a209c01d89cda75a
Author: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 17:04:01 2015 +0200
ASoC: bcm2835-i2s: Fix module autoload for OF platform drivers
These platform drivers have a OF device ID table but the OF module
alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt <luis@xxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit f2988afedf2c19880a3c65d79dfc7939e1b53d8a
Author: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Date: Thu Aug 27 15:14:51 2015 +0800
ASoC: rt5645: Prevent the pop sound of the headphone while rebooting or
shutdowning
Add i2c shutdown function to prevent the pop sound of the headphone while
the system is rebooting or shutdowning. It de-initials the jack detection
function, and it cannot be turned off in _BIAS_OFF. If we don't de-initial
it, the pop sound will be heard in the situation of powering off. And
replace the related register settings from magic number to meaningful
defined name.
Signed-off-by: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit ba30011577330b7e29ecb5916d89c6db9fbc5b3d
Author: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Date: Wed Aug 12 10:58:22 2015 +0200
clk: s5pv210: add missing call to samsung_clk_of_add_provider()
Commit d5e136a21b2028fb1f45143ea7112d5869bfc6c7 ("clk: samsung: Register
clk provider only after registering its all clocks", merged to v3.17-rc1)
modified a way that driver registers registers to core framework. This
change has not been applied to s5pv210 clocks driver, which has been
merged in parallel to that commit. This patch adds a missing call to
samsung_clk_of_add_provider(), so the driver is operational again.
Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
CC: stable@xxxxxxxxxxxxxxx # v3.17+
Acked-by: Tomasz Figa <tomasz.figa@xxxxxxxxx>
Signed-off-by: Michael Turquette <mturquette@xxxxxxxxxxxx>
commit 21c721fd0b991b1871ea5dd517be1b5375c5f8f7
Merge: 538e456 cae3a26
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 27 11:40:44 2015 -0700
Merge branch 'ovs-conntrack'
Joe Stringer says:
====================
OVS conntrack support
The goal of this series is to allow OVS to send packets through the Linux
kernel connection tracker, and subsequently match on fields populated by
conntrack. This functionality is enabled through a new
CONFIG_OPENVSWITCH_CONNTRACK option.
This version addresses the feedback from v5, primarily checking the
behaviour
is correct with different configurations such as disabling
CONFIG_OPENVSWITCH_CONNTRACK or disabling individual conntrack features
like
connlabels.
The branch below has been updated with the corresponding userspace pieces:
https://github.com/joestringer/ovs dev/ct_20150818
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit cae3a2627520c3795b54533c5328b77af3405dbe
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Wed Aug 26 11:31:53 2015 -0700
openvswitch: Allow attaching helpers to ct action
Add support for using conntrack helpers to assist protocol detection.
The new OVS_CT_ATTR_HELPER attribute of the CT action specifies a helper
to be used for this connection. If no helper is specified, then helpers
will be automatically applied as per the sysctl configuration of
net.netfilter.nf_conntrack_helper.
The helper may be specified as part of the conntrack action, eg:
ct(helper=ftp). Initial packets for related connections should be
committed to allow later packets for the flow to be considered
established.
Example ovs-ofctl flows allowing FTP connections from ports 1->2:
in_port=1,tcp,action=ct(helper=ftp,commit),2
in_port=2,tcp,ct_state=-trk,action=ct(recirc)
in_port=2,tcp,ct_state=+trk-new+est,action=1
in_port=2,tcp,ct_state=+trk+rel,action=1
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c2ac667358708d7cce64c78f58af6adf4c1e848b
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Wed Aug 26 11:31:52 2015 -0700
openvswitch: Allow matching on conntrack label
Allow matching and setting the ct_label field. As with ct_mark, this is
populated by executing the CT action. The label field may be modified by
specifying a label and mask nested under the CT action. It is stored as
metadata attached to the connection. Label modification occurs after
lookup, and will only persist when the conntrack entry is committed by
providing the COMMIT flag to the CT action. Labels are currently fixed
to 128 bits in size.
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 86ca02e77408bb58ba596c1a411ec7f631733690
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Wed Aug 26 11:31:51 2015 -0700
netfilter: connlabels: Export setting connlabel length
Add functions to change connlabel length into nf_conntrack_labels.c so
they may be reused by other modules like OVS and nftables without
needing to jump through xt_match_check() hoops.
Suggested-by: Florian Westphal <fw@xxxxxxxxx>
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Acked-by: Florian Westphal <fw@xxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 55e5713f2b5cefed98e3674017e994d688e47b85
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Wed Aug 26 11:31:50 2015 -0700
netfilter: Always export nf_connlabels_replace()
The following patches will reuse this code from OVS.
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 182e3042e15de759e81618d11fe4f62f5259d982
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Wed Aug 26 11:31:49 2015 -0700
openvswitch: Allow matching on conntrack mark
Allow matching and setting the ct_mark field. As with ct_state and
ct_zone, these fields are populated when the CT action is executed. To
write to this field, a value and mask can be specified as a nested
attribute under the CT action. This data is stored with the conntrack
entry, and is executed after the lookup occurs for the CT action. The
conntrack entry itself must be committed using the COMMIT flag in the CT
action flags for this change to persist.
Signed-off-by: Justin Pettit <jpettit@xxxxxxxxxx>
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7f8a436eaa2c3ddd8e1ff2fbca267e6275085536
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Wed Aug 26 11:31:48 2015 -0700
openvswitch: Add conntrack action
Expose the kernel connection tracker via OVS. Userspace components can
make use of the CT action to populate the connection state (ct_state)
field for a flow. This state can be subsequently matched.
Exposed connection states are OVS_CS_F_*:
- NEW (0x01) - Beginning of a new connection.
- ESTABLISHED (0x02) - Part of an existing connection.
- RELATED (0x04) - Related to an established connection.
- INVALID (0x20) - Could not track the connection for this packet.
- REPLY_DIR (0x40) - This packet is in the reply direction for the flow.
- TRACKED (0x80) - This packet has been sent through conntrack.
When the CT action is executed by itself, it will send the packet
through the connection tracker and populate the ct_state field with one
or more of the connection state flags above. The CT action will always
set the TRACKED bit.
When the COMMIT flag is passed to the conntrack action, this specifies
that information about the connection should be stored. This allows
subsequent packets for the same (or related) connections to be
correlated with this connection. Sending subsequent packets for the
connection through conntrack allows the connection tracker to consider
the packets as ESTABLISHED, RELATED, and/or REPLY_DIR.
The CT action may optionally take a zone to track the flow within. This
allows connections with the same 5-tuple to be kept logically separate
from connections in other zones. If the zone is specified, then the
"ct_zone" match field will be subsequently populated with the zone id.
IP fragments are handled by transparently assembling them as part of the
CT action. The maximum received unit (MRU) size is tracked so that
refragmentation can occur during output.
IP frag handling contributed by Andy Zhou.
Based on original design by Justin Pettit.
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Signed-off-by: Justin Pettit <jpettit@xxxxxxxxxx>
Signed-off-by: Andy Zhou <azhou@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e79e259588a414589a016edc428ee8dd308f81ad
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Wed Aug 26 11:31:47 2015 -0700
dst: Add __skb_dst_copy() variation
This variation on skb_dst_copy() doesn't require two skbs.
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5b490047240f7b986228de968334ddd7a341e1fe
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Wed Aug 26 11:31:46 2015 -0700
ipv6: Export nf_ct_frag6_gather()
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit be26b9a88fcee570796c67701f50800039e25aec
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Wed Aug 26 11:31:45 2015 -0700
openvswitch: Move MASKED* macros to datapath.h
This will allow the ovs-conntrack code to reuse these macros.
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8e2fed1c0cfbb29995a4301060acc0ef4ee84420
Author: Joe Stringer <joestringer@xxxxxxxxxx>
Date: Wed Aug 26 11:31:44 2015 -0700
openvswitch: Serialize acts with original netlink len
Previously, we used the kernel-internal netlink actions length to
calculate the size of messages to serialize back to userspace.
However,the sw_flow_actions may not be formatted exactly the same as the
actions on the wire, so store the original actions length when
de-serializing and re-use the original length when serializing.
Signed-off-by: Joe Stringer <joestringer@xxxxxxxxxx>
Acked-by: Pravin B Shelar <pshelar@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 538e4563198cd3d1a8e74c47fee3e49dc93e4a95
Author: RafaÅ? MiÅ?ecki <zajec5@xxxxxxxxx>
Date: Wed Aug 26 17:53:45 2015 +0200
bgmac: support up to 3 cores (devices) on a bus
Broadcom buses may have more than 1 Ethernet device. This is used e.g.
to have few interfaces connected to different switch ports. So far we
saw chipsets with only 2 devices (e.g. BCM4706) but recent ones have
up to 3 (e.g. Netgear R8000 uses 3rd interface for most of switch
traffic, lower interfaces are for some kind of offloading).
Signed-off-by: RafaÅ? MiÅ?ecki <zajec5@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 395250e483d492e9ec5e36a6b78fb142affddee2
Merge: 1dd34b5 0ba3ac0
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 27 11:25:56 2015 -0700
Merge tag 'wireless-drivers-next-for-davem-2015-08-26' of
git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next
Kalle Valo says:
====================
Major changes:
iwlwifi:
* new Tx power firmware API
* bump max firmware API to 17
* fix bug in debug prints
* static checker fix
* fix unused defines
* fix command list on newest firmware
brcmfmac:
* support NVRAM loading for bcm47xx platform
* new debugfs entry for msgbuf protocol layer used with PCIe devices
ath10k:
* add spectral scan support for qca99x0
* add qca6164 support
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ed29266347025a19ee689807b07d121f0a7441f1
Author: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Date: Tue Aug 4 23:31:44 2015 +0800
batman-adv: turn batadv_neigh_node_get() into local function
commit c214ebe1eb29 ("batman-adv: move neigh_node list add into
batadv_neigh_node_new()") removed external calls to
batadv_neigh_node_get().
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 7bca68c7844b1642868809a5ef4387c1f099ab1d
Author: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Date: Fri Aug 7 19:28:42 2015 +0200
batman-adv: Add lower layer needed_(head|tail)room to own ones
The maximum of hard_header_len and maximum of all needed_(head|tail)room
of
all slave interfaces of a batman-adv device must be used to define the
batman-adv device needed_(head|tail)room. This is required to avoid too
small buffer problems when these slave devices try to send the
encapsulated
packet in a tx path without the possibility to resize the skbuff.
Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit a5256f7e74d85d7ae60ac3bd557d5fe3444be810
Author: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
Date: Tue Aug 4 22:26:19 2015 +0200
batman-adv: don't access unregistered net_device object
In batadv_hardif_disable_interface() there is a call to
batadv_softif_destroy_sysfs() which in turns invokes
unregister_netdevice() on the soft_iface.
After this point we cannot rely on the soft_iface object
anymore because it might get free'd by the netdev periodic
routine at any time.
For this reason the netdev_upper_dev_unlink(.., soft_iface) call
is moved before the invocation of batadv_softif_destroy_sysfs() so
that we can be sure that the soft_iface object is still valid.
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
commit 07c48eca1661decbd52393ef535f0c97e5313c4e
Author: Simon Wunderlich <sw@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 4 14:43:16 2015 +0200
batman-adv: Start new development cycle
Signed-off-by: Simon Wunderlich <sw@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 1e3b4669e79253748073b0ee95270f92f0372b20
Author: Simon Wunderlich <sw@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 4 15:44:06 2015 +0200
batman-adv: fix gateway client style issues
commit 0511575c4d03 ("batman-adv: remove obsolete deleted attribute for
gateway node") incorrectly added an empy line and forgot to remove an
include.
Signed-off-by: Simon Wunderlich <sw@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 3f32f8a6874ae2515c8894588a5c60dd65ecc7e5
Author: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Date: Sun Jul 26 04:59:15 2015 +0800
batman-adv: rearrange batadv_neigh_node_new() arguments to follow
convention
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Acked-by: Simon Wunderlich <sw@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit bd3524c14bd02f94a4fa33e700883e01182f5ed5
Author: Simon Wunderlich <simon@xxxxxxxxxxxxx>
Date: Mon Aug 3 19:13:58 2015 +0200
batman-adv: remove obsolete deleted attribute for gateway node
With rcu, the gateway node deleted attribute is not needed anymore. In
fact, it may delay the free of the gateway node and its referenced
structures. Therefore remove it altogether and simplify purging as well.
Signed-off-by: Simon Wunderlich <simon@xxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 741aa06bfb0ab731086d258a1838152fe2502b5f
Author: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Date: Sun Jul 26 04:57:43 2015 +0800
batman-adv: move neigh_node list add into batadv_neigh_node_new()
All batadv_neigh_node_* functions expect the neigh_node list item to be
part
of the orig_node->neigh_list, therefore the constructor of said list item
should be adding the newly created neigh_node to the respective list.
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Acked-by: Simon Wunderlich <sw@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 39bf7618f038474a0ccbeb0be173f11e147bd083
Author: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Date: Sun Jul 26 04:37:47 2015 +0800
batman-adv: remove redundant hard_iface assignment
The batadv_neigh_node_new() function already sets the hard_iface pointer.
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Acked-by: Simon Wunderlich <sw@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit f729dc70dafec281e524f51ae496a72ea4f8e319
Author: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Date: Sun Jul 26 04:37:15 2015 +0800
batman-adv: move hardif refcount inc to batadv_neigh_node_new()
The batadv_neigh_node cleanup function 'batadv_neigh_node_free_rcu()'
takes care of reducing the hardif refcounter, hence it's only logical
to assume the creating function of that same object
'batadv_neigh_node_new()' takes care of increasing the same refcounter.
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Acked-by: Simon Wunderlich <sw@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit c75683ca13d12a700531864bcd3118e94bc9eaa0
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:25:06 2015 +0530
mpt3sas : Bump mpt3sas driver version to 9.100.00.00
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit df838f92f3f5240dca54e1629e8547818e8ea646
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:25:05 2015 +0530
mpt3sas: When device is blocked followed by unblock fails, unfreeze the
I/Os
Issue: When the disks are getting discovered and assigned device
handles by the kernel, a device block followed by an unblock
(due to broadcast primitives) issued by the driver is
interspersed by the kernel changing the state of the device.
Therefore the unblock by the driver results in a no operation
within the kernel API.
To fix this one, the below patch checks the return of the unblock API
and performs a block followed by an unblock to unfreeze the block
layer's I/O queue. Sufficient checks and prints are also added in the
driver to identify this condition caused by the kernel.
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 36814028ad720165a6febcf9ddd7de20833fd240
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:25:04 2015 +0530
mpt3sas: Call dma_mapping_error() API after mapping an address with
dma_map_single() API
Added dma_mapping_error() API after mapping an address with
dma_map_single()
API. Otherwise when CONFIG_DMA_API_DEBUG is enabled in the kernel, then
it
complains about mpt3sas driver not calling dma_mapping_error after
mapping an
address with dma_map_single
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit bdff785e4f593218816fa3677e043aae1481aa98
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:25:03 2015 +0530
mpt3sas: Use alloc_ordered_workqueue() API instead of
create_singlethread_workqueue() API
Created a thread using alloc_ordered_workqueue() API in order to process
the works from firmware Work-queue sequentially instead of
create_singlethread_workqueue() API.
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Joe Lawrence <joe.lawrence@xxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit d8eb4a47c70b4bab34b938d2f682044687f53c64
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:25:02 2015 +0530
mpt3sas: Added support for customer specific branding
"VendorID" "DeviceID" "SubsystemVendor ID" "SubsystemDevice ID"
Cisco Branding String
0x1000 0x97 0x1137 0x154
Cisco 9300-8i 12Gbps SAS HBA
0x1000 0x97 0x1137 0x155
Cisco 12G Modular SAS Pass through Controller
0x1000 0x97 0x1137 0x156 UCS
C3X60 12G SAS Pass through Controller
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 62f5c74c97037c7c00fdefb69dcfe39810c34a05
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:25:01 2015 +0530
mpt3sas: Return host busy error status to SML when DMA mapping of scatter
gather list fails for a SCSI command
scsi_dma_map API will return a negative value (i.e. -ENOMEM)
if DMA mapping of sg lists fails and zero if the sg list in the
SCSI cmd is NULL. But drivers doesn't handled sg list DMA mapping
failure case properly.
So, Updated the code to return host busy error status to SCSI MID
Layer(SML),
when DMA mapping of scatter gather list fails for a SCSI command.
So that SML will retry this SCSI cmd after some time.
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 3898f08e8ccfc8b7b4c297960ecdde970869e950
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:25:00 2015 +0530
mpt3sas: Complete the SCSI command with DID_RESET status for log_info
value 0x0x32010081
For any SCSI command, if the driver receives
IOC status = SCSI_IOC_TERMINATED and log info = 0x32010081 then
that command will be completed with DID_RESET host status.
The definition of this log info value is
"Virtual IO has failed and has to be retried".
Firmware will provide this log info value with IOC Status
"SCSI_IOC_TERMINATED", whenever a drive (with is a part of a volume)
is pulled and pushed back within some minimal delay.
With this log info value, firmware informs the driver to retry the
failed IO command infinite times, so to provide some time for the
firmware to discover the reinserted drive successfully instated of
just retrying failed command for five times(doesn't giving enough
time for firmware to complete the drive discovery) and failing the
IO permanently even though drive came back successfully.
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit a6f84009b9d7ca97c400ca929f9d58f43b0ece9d
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:59 2015 +0530
mpt3sas: MPI 2.5 Rev K (2.5.6) specifications
Below are the new changes to MPI 2.5 Rev K(2.5.6) specification and
2.00.35
header files
1) Added a minimum size requirement for target mode command buffers.
2) Added MinMSIxIndex and MaxMSIxIndex fields to CommandBufferPostBase
Request.
3) For BIOS Page 1, added SSUTimeout field, and added Product Name String
Format bits to the BiosOptions field
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 2b89669ae4addfa68a58e0fc16afdd24739720d8
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:58 2015 +0530
mpt3sas: Bump mpt3sas driver version to v6.100.00.00
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 38e4141ecb0e59c93d85ec5948f98d1f1e331a88
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:57 2015 +0530
mpt3sas: Add branding string support for OEM custom HBA
Add the following OEM's branding to the mpt3sas driver.
"VendorID" "DeviceID" "SubsystemVendor ID" "SubsystemDevice ID"
Cisco Branding String
0x1000 0x97 SVID = 0x1137 0x014C
Cisco 9300-8E 12G SAS HBA
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit fb84dfc44718ef4099a827d147f738e428828d02
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:56 2015 +0530
mpt3sas: Add branding string support for OEM's HBA
Added the following Dell branding to the mpt3sas driver.
"VendorID" "DeviceID" "SubsystemVendor ID" "SubsystemDevice ID" Dell
Branding String
0x1000 0x0097 0x1028 0x1F46
DELL 12Gbps HBA
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 35c319b47884e49d9d0a84779097916ccb173947
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:55 2015 +0530
mpt3sas: MPI 2.5 Rev J (2.5.5) specification and 2.00.34 header files
Following is the change set,
1. Added more defines for the BiosOptions field of
MPI2_CONFIG_PAGE_BIOS_1.
2. Added MPI2_TOOLBOX_CLEAN_BIT26_PRODUCT_SPECIFIC definition.
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 2e26c3853206ba166c3434e5f2ca4c82078ad84e
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:54 2015 +0530
mpt3sas: Update MPI2 strings to MPI2.5
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit f9d81cfc23151eb6e9e498663c9784c351646d0e
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:53 2015 +0530
mpt3sas: Bump mpt3sas Driver version to v5.100.00.00
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit e6d45e3e7e6582fa206ef84631639ce70d50e5c5
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:52 2015 +0530
mpt3sas: Provides the physical location of sas drives
This Patch will provide more details of the devices such as slot number,
enclosure logical id, enclosure level & connector name in the following
scenarios,
- When end device is added in the topology,
- When the end device is removed from the setup,
- When the SCSI mid layer issues TASK ABORT/ DEVICE RESET/ TARGET RESET
during
error handling,
- When any command to the device fails with Sense key Hardware error or
Medium
error or Unit Attention,
- When firmware returns device error or device not ready status for the
end
device,
- When a Predicted fault is detected on an end device.
This information can be used by the user to identify the location of the
desired drive in the topology.
Driver will get these information by reading the sas device page0.
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit a94bea343c2f747c62ef66b52d2430e6aeb75434
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:51 2015 +0530
mpt3sas: MPI 2.5 Rev I (2.5.4) specifications.
Update MPI 2.5 Release: MPI 2.5 Rev I (2.5.4) specification and 2.00.33
header
files
Below is the change set from the MPI specification for I Rev
1) Added Base Enclosure Level bit to the Flags field of Manufacturing
Page 7.
2) Updated description of the MaxTargetPortConnectTime field of SAS IO
Unit
Page 1.
3) Added EnclosureLevel and ConnectorName fields to SAS Device Page 0.
Also,
added EnclosureLevel and ConnectorName Valid bit to the Flags field.
4) Added EnclosureLevel field to SAS Enclosure Page 0. Also, added
EnclosureLevel Valid bit to the Flags field.
5) Added value for BIOS image to HashImageType.
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 580d4e3153f0d7a9a9235b675b0b7b13e2185a8b
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:50 2015 +0530
mpt3sas: Remove redundancy code while freeing the controller resources.
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit e4bc7f5c21a18cab9acd30940df0ee791fcd7b9e
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:49 2015 +0530
mpt3sas: Don't block the drive when drive addition under the control of
SML
During hot-plugging of a disk(having a flaky link), the disk addition
stops and any further disk addition or removal doesn't happen on that
controller.
This is because, when driver receives DELAY_NOT_RESPONDING event for a
disk
while it is undergoing addition at the SCSI Transport layer, the driver
would block the I/O to that disk resulting in a deadlock. i.e the disk
addition work couldn't be completed at the SCSI Transport Layer as it
can't send any I/Os (such as Inquiry, Report LUNs etc) to the disk as
I/Os are blocked to this drive. Also any subsequent device removal
(TARGET_NOT_RESPONDING) or link update(RC_PHY_CHANGED) event couldn't be
processed as they are in the queue to get processed after disk addition
event.
Description of Change:
Don't block the drive when drive addition is under the control of SML.
So that SML won't be blocked of issuing the device dicovery commands
(such as Inquiry, Report LUNs etc).
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 4dc8c8087f0304ff8d06f862520406b11aac4a66
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:48 2015 +0530
mpt3sas: Get IOC_FACTS information using handshake protocol only after
HBA card gets into READY or Operational state.
Driver initialization fails if driver tries to send IOC facts request
message
when the IOC is in reset or in a fault state.
This patch will make sure that
1.Driver to send IOC facts request message only if HBA is in operational
or
ready state.
2.If IOC is in fault state, a diagnostic reset would be issued.
3.If IOC is in reset state then driver will wait for 10 seconds to exit
out
of reset state. If the HBA continues to be in reset state, then the
HBA
wouldn't be claimed by the driver.
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit fb77bb5376a55f4e6c8d9243249e82831a276ee5
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Tue Jun 30 12:24:47 2015 +0530
mpt3sas: Added Combined Reply Queue feature to extend up-to 96 MSIX
vector support
In this patch, increased the number of MSIX vector support for SAS3 C0
HBAs to
up-to 96.
Following are changes that are done in this patch
1. This feature is enabled only for SAS3 C0 and higher revision cards and
also
only when reply post free queue count is greater than 8.
2. To support this feature 12 SupplementalReplyPostHostIndex system
interfaces
are used. MSI-X index numbered from 0 to 7 use the first
SupplementalReplyPostHostIndex system interface to update its
corresponding
ReplyPostHostIndex values, MSI-X index numbered from 8 to 15 will use the
second SupplementalReplyPostHostIndex system interface and so on. These 12
SuppementalReplyPostHostIndex system interfaces address are saved in the
array
replyPostRegisterIndex[].
3. As each SupplementalReplyPostHostIndex register supports 8 MSI-X
vectors. So MSIxIndex field in these register must contain a value
between 0
and 7.
4. After processing the reply descriptors from a reply post free queues
then
update the new reply post host index value in ReplyPostHostIndex field and
(msix_index mod 8) value in MSIxIndex field of
SupplementalReplyPostHostIndex
register. The Address of this SupplementalReplyPostHostIndex register is
retrived from (msix_index/8)th entry of replyPostRegisterIndex[] array.
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit b00855aecbb166428c67b26e1bfeb675463a0212
Author: Srinidhi Kasagar <srinidhi.kasagar@xxxxxxxxx>
Date: Thu Aug 27 21:30:55 2015 +0530
ACPI / LPSS: Ignore 10ms delay for Braswell
LPSS devices in Braswell does not need the default 10ms
d3_delay imposed by PCI specification. Removing this
unnecessary delay significantly reduces the resume time
approximately upto 200ms on this platform.
Signed-off-by: Srinidhi Kasagar <srinidhi.kasagar@xxxxxxxxx>
Acked-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 3b7ce99748f0d006f9d1aa85709872e7b46787f7
Author: Ricard Wanderlof <ricard.wanderlof@xxxxxxxx>
Date: Thu Aug 27 11:35:20 2015 +0200
ASoC: ics43432: Add codec driver for InvenSense ICS-43432
Add support for the InvenSense ICS-43432 I2S MEMS microphone.
This is a non-software-configurable MEMS microphone with I2S output.
Tested on a setup with a single ICS-43432 (the device itself supports
stereo operation using a hardware pin controlling left vs. right channel
output).
Signed-off-by: Ricard Wanderlof <ricardw@xxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 8d03bc56cc27ddd93f70a630686ef06289787c78
Author: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Date: Wed Aug 26 13:09:28 2015 -0400
tile: correct some typos in opcode type names
These particular opcode names are not used in the kernel directly,
so updating them just has the effect of making downstream consumers
more likely to end up using better names; this was reported from the
qemu community.
Reported-by: Richard Henderson <rth@xxxxxxxxxxx>
Signed-off-by: Chris Metcalf <cmetcalf@xxxxxxxxxx>
commit 01f779f4862b53810ba4eb247f57bd1ad31d1c18
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Wed Aug 26 17:00:45 2015 +0100
irqchip/GIC: Don't deactivate interrupts forwarded to a guest
Commit 0a4377de3056 ("genirq: Introduce irq_set_vcpu_affinity() to
target an interrupt to a VCPU") added just what we needed at the
lowest level to allow an interrupt to be deactivated by a guest.
When such a request reaches the GIC, it knows it doesn't need to
perform the deactivation anymore, and can safely leave the guest
do its magic. This of course requires additional support in both
VFIO and KVM.
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Reviewed-and-tested-by: Eric Auger <eric.auger@xxxxxxxxxx>
Cc: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: <linux-arm-kernel@xxxxxxxxxxxxxxxxxxx>
Cc: kvmarm@xxxxxxxxxxxxxxxxxxxxx
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440604845-28229-5-git-send-email-marc.zyngier@xxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 0b996fd35957a30568cddbce05b917c1897966e0
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Wed Aug 26 17:00:44 2015 +0100
irqchip/GIC: Convert to EOImode == 1
So far, GICv2 has been used with EOImode == 0. The effect of this
mode is to perform the priority drop and the deactivation of the
interrupt at the same time.
While this works perfectly for Linux (we only have a single priority),
it causes issues when an interrupt is forwarded to a guest, and when
we want the guest to perform the EOI itself.
For this case, the GIC architecture provides EOImode == 1, where:
- A write to the EOI register drops the priority of the interrupt
and leaves it active. Other interrupts at the same priority level
can now be taken, but the active interrupt cannot be taken again
- A write to the DIR marks the interrupt as inactive, meaning it can
now be taken again.
We only enable this feature when booted in HYP mode and that
the device-tree reported a suitable CPU interface. Observable behaviour
should remain unchanged.
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Reviewed-and-tested-by: Eric Auger <eric.auger@xxxxxxxxxx>
Cc: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: <linux-arm-kernel@xxxxxxxxxxxxxxxxxxx>
Cc: kvmarm@xxxxxxxxxxxxxxxxxxxxx
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440604845-28229-4-git-send-email-marc.zyngier@xxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 530bf353e4eb06bcba5078390c949650cd26a7c7
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Wed Aug 26 17:00:43 2015 +0100
irqchip/GICv3: Don't deactivate interrupts forwarded to a guest
Commit 0a4377de3056 ("genirq: Introduce irq_set_vcpu_affinity() to
target an interrupt to a VCPU") added just what we needed at the
lowest level to allow an interrupt to be deactivated by a guest.
When such a request reaches the GIC, it knows it doesn't need to
perform the deactivation anymore, and can safely leave the guest
do its magic. This of course requires additional support in both
VFIO and KVM.
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Reviewed-and-tested-by: Eric Auger <eric.auger@xxxxxxxxxx>
Cc: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: <linux-arm-kernel@xxxxxxxxxxxxxxxxxxx>
Cc: kvmarm@xxxxxxxxxxxxxxxxxxxxx
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440604845-28229-3-git-send-email-marc.zyngier@xxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 0b6a3da9617a08e13afc09cb7e148470ed0eb280
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Wed Aug 26 17:00:42 2015 +0100
irqchip/GICv3: Convert to EOImode == 1
So far, GICv3 has been used in with EOImode == 0. The effect of this
mode is to perform the priority drop and the deactivation of the
interrupt at the same time.
While this works perfectly for Linux (we only have a single priority),
it causes issues when an interrupt is forwarded to a guest, and when
we want the guest to perform the EOI itself.
For this case, the GIC architecture provides EOImode == 1, where:
- A write to ICC_EOIR1_EL1 drops the priority of the interrupt and
leaves it active. Other interrupts at the same priority level can
now be taken, but the active interrupt cannot be taken again
- A write to ICC_DIR_EL1 marks the interrupt as inactive, meaning
it can now be taken again.
This patch converts the driver to be able to use this new mode,
depending on whether or not the kernel can behave as a hypervisor.
No feature change.
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Reviewed-and-tested-by: Eric Auger <eric.auger@xxxxxxxxxx>
Cc: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: <linux-arm-kernel@xxxxxxxxxxxxxxxxxxx>
Cc: kvmarm@xxxxxxxxxxxxxxxxxxxxx
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440604845-28229-2-git-send-email-marc.zyngier@xxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 1ed32160dba643e61504b334f45b002198c88254
Author: Huang Rui <ray.huang@xxxxxxx>
Date: Thu Aug 27 16:07:38 2015 +0800
hwmon: (fam15h_power) Add ratio of Tsample to the PTSC period
This patch adds a member (cpu_pwr_sample_ratio) of fam15h_power_data,
that represents the ratio of compute unit power accumulator sample
period to the PTSC counter period.
Tsample: compute unit power accumulator sample period
Tref: the performance timestamp counter period
PTSC: performance timestamp counter
Signed-off-by: Huang Rui <ray.huang@xxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 5aeb5d205e122b70742df94a7d51a3502f1a8277
Author: Huang Rui <ray.huang@xxxxxxx>
Date: Thu Aug 27 16:07:37 2015 +0800
hwmon: (fam15h_power) Add documentation for new processors support
This patch updates description of fam15h_power driver, its scope is
extended to family 16h processsors.
Signed-off-by: Huang Rui <ray.huang@xxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit e9cd4d55d16f880ddf436fbae8c0c82ce0a928d5
Author: Huang Rui <ray.huang@xxxxxxx>
Date: Thu Aug 27 16:07:35 2015 +0800
hwmon: (fam15h_power) Update running_avg_capture bit field to 28
On Carrizo and later platforms, running_avg_capture bit field is
extended to 4:31 (28 bits) from 4:25.
Signed-off-by: Huang Rui <ray.huang@xxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit b3a5bbfd780d9e9291f5f257be06e9ad6db11657
Author: Bob Peterson <rpeterso@xxxxxxxxxx>
Date: Thu Aug 27 09:34:47 2015 -0500
dlm: print error from kernel_sendpage
Print a dlm-specific error when a socket error occurs
when sending a dlm message.
Signed-off-by: Bob Peterson <rpeterso@xxxxxxxxxx>
Signed-off-by: David Teigland <teigland@xxxxxxxxxx>
commit d83e92b3af602c6ebb6d25d5232ecba73201a0e5
Author: Huang Rui <ray.huang@xxxxxxx>
Date: Thu Aug 27 16:07:33 2015 +0800
hwmon: (fam15h_power) Rename fam15h_power_is_internal_node0 function
We rename fam15h_power_is_internal_node0() function to
should_load_on_this_node(), because it may not be node0 from KV and
on, and they are single-node processors.
Signed-off-by: Huang Rui <ray.huang@xxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 5dc087254acf12bf6908a924539fb624891e8b24
Author: Huang Rui <ray.huang@xxxxxxx>
Date: Thu Aug 27 16:07:32 2015 +0800
hwmon: (fam15h_power) Add support for AMD Carrizo
AMD Carrizo(Fam15h, M60h) processors can report power1_crit
(ProcessorPwrWatts) and power1_input (CurrPwrWatts) values.
And this patch adds support for CZ.
Signed-off-by: Huang Rui <ray.huang@xxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 987e05c9c3fbffba81104b8ae9a0dde9c73758e9
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:44:07 2015 +0530
mmc: host: omap_hsmmc: remove CONFIG_REGULATOR check
Now that support for platforms which have optional regulator is added,
remove CONFIG_REGULATOR check in omap_hsmmc.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 1d17f30bd87bf4857478b2a68dadf0096ca1cb40
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:44:06 2015 +0530
mmc: host: omap_hsmmc: use ios->vdd for setting vmmc voltage
vdd voltage is set in mmc core to ios->vdd and vmmc should actually
be set to this voltage. Modify omap_hsmmc_enable_supply
to not take vdd as argument since now it's directly set to
the voltage in ios->vdd.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit c55d7a0553643a7e8f120688b82b594471084d3c
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:44:05 2015 +0530
mmc: host: omap_hsmmc: use regulator_is_enabled to find pbias status
Use regulator_is_enabled of pbias regulator to find pbias regulator
status instead of maintaining a custom bookkeeping
pbias_enabled variable.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 3f77f702389b7fbc955ec95721ce3861e40697fc
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:44:04 2015 +0530
mmc: host: omap_hsmmc: enable/disable vmmc_aux regulator based on
previous state
enable vmmc_aux regulator only if it is in disabled state and disable
vmmc_aux regulator only if it is in enabled state.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit c8518efa6de999bcbd638702c2a2d72fe83431e4
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:44:03 2015 +0530
mmc: host: omap_hsmmc: don't use ->set_power to set initial regulator
state
If the regulator is enabled on boot (checked using regulator_is_enabled),
invoke regulator_enable() so that the usecount reflects the correct
state of the regulator and then disable the regulator so that the
initial state of the regulator is disabled. Avoid using ->set_power,
since set_power also takes care of setting the voltages which is not
needed at this point.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 97fe7e5ab6318ea5716f86be3b4ca8776a9e609c
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:44:02 2015 +0530
mmc: host: omap_hsmmc: avoid pbias regulator enable on power off
Fix omap_hsmmc_set_power so that pbias regulator is not enabled
during power off.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit ec85c95e8ce5df18608ee9aa6a2626d903f548af
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:44:01 2015 +0530
mmc: host: omap_hsmmc: add separate function to set pbias
No functional change. Cleanup omap_hsmmc_set_power by adding separate
functions to set pbias and invoke it from omap_hsmmc_set_power.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 2a17f84442e22cd1522400fcc0356c4a36b38361
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:44:00 2015 +0530
mmc: host: omap_hsmmc: add separate functions for enable/disable supply
No functional change. Cleanup omap_hsmmc_set_power by adding separate
functions for enable/disable supply and invoke it from
omap_hsmmc_set_power.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 229f329265d6d2a738fc861b7b9b6144980580f6
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:43:59 2015 +0530
mmc: host: omap_hsmmc: return error if any of the regulator APIs fail
Return error if any of the regulator APIs (regulator_enable,
regulator_disable, regulator_set_voltage) fails in
omap_hsmmc_set_power to avoid undefined behavior.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit ef62b8bc2c740a7f72525a4797aa45056c833e3d
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:43:58 2015 +0530
mmc: host: omap_hsmmc: remove unnecessary pbias set_voltage
Remove the unnecessary pbias regulator_set_voltage done after
pbias regulator_disable in omap_hsmmc_set_power.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Reviewed-by: Roger Quadros <rogerq@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit aa9a68014bb6c6e1052d79561815885b797d15ea
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:43:57 2015 +0530
mmc: host: omap_hsmmc: use mmc_host's vmmc and vqmmc
No functional change. Instead of using omap_hsmmc_host's vcc and vcc_aux
members, use vmmc and vqmmc present in mmc_host which is present
for the same purpose.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Reviewed-by: Roger Quadros <rogerq@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit b49069fc0b96de5dd508ccba0a1417e524734712
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:43:56 2015 +0530
mmc: host: omap_hsmmc: use the ocrmask provided by the vmmc regulator
If the vmmc regulator provides a valid ocrmask, use it. By this even if
the pdata has a valid ocrmask, it will be overwritten with the ocrmask
of the vmmc regulator.
Also remove the unnecessary compatibility check between the ocrmask in
the pdata and the ocrmask from the vmmc regulator.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit c299dc39883ca5596905507cc945332fa4bae8bd
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:43:55 2015 +0530
mmc: host: omap_hsmmc: cleanup omap_hsmmc_reg_get()
No functional change. Instead of using a local regulator variable
in omap_hsmmc_reg_get() for holding the return value of
devm_regulator_get_optional() and then assigning to omap_hsmmc_host
regulator members: vcc, vcc_aux and pbias, directly use the
omap_hsmmc_host regulator members.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Reviewed-by: Roger Quadros <rogerq@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 6a9b2ff07d0415ad19fb07b9a141863fb86c3497
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:43:54 2015 +0530
mmc: host: omap_hsmmc: return on fatal errors from omap_hsmmc_reg_get
Now return error only if the return value of
devm_regulator_get_optional() is not the same as -ENODEV, since with
-EPROBE_DEFER, the regulator can be obtained later and all other
errors are fatal.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 7d607f917008218564ae44ca3ef47076a9b36e8f
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Thu Aug 27 14:43:53 2015 +0530
mmc: host: omap_hsmmc: use devm_regulator_get_optional() for vmmc
Since vmmc can be optional for some platforms, use
devm_regulator_get_optional() for vmmc. Now return error only
if the return value of devm_regulator_get_optional() is not the
same as -ENODEV, since with -EPROBE_DEFER, the regulator can be
obtained later and all other errors are fatal.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 5f2b3eab3fade514f9647e88356d29c7795ed7ef
Author: kbuild test robot <fengguang.wu@xxxxxxxxx>
Date: Tue Aug 25 16:13:29 2015 +0200
mmc: sdhci-of-at91: fix platform_no_drv_owner.cocci warnings
Remove .owner field if calls are used which set it automatically
Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci
CC: ludovic.desroches@xxxxxxxxx <ludovic.desroches@xxxxxxxxx>
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 5afc30fc666165c1c37c246e08b4282bc8c31d98
Author: Koji Matsuoka <koji.matsuoka.xm@xxxxxxxxxxx>
Date: Sun Aug 23 21:58:08 2015 +0900
mmc: sh_mmcif: Fix suspend process
The clock should be enable when SDHI registers are accessed.
Signed-off-by: Koji Matsuoka <koji.matsuoka.xm@xxxxxxxxxxx>
Signed-off-by: Yoshihiro Kaneko <ykaneko0929@xxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 3b1cac4d9f915758d0d755f11bb8fd4373cf653b
Author: Julia Lawall <Julia.Lawall@xxxxxxx>
Date: Sun Aug 23 02:11:17 2015 +0200
mmc: usdhi6rol0: fix error return code
Propagate error code on failure.
A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
identifier ret; expression e1,e2;
@@
(
if (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret = 0
)
... when != ret = e1
when != &ret
*if(...)
{
... when != ret = e2
when forall
return ret;
}
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 38276a912c9bb6dc48e21dc23a92b6286ca00962
Author: Julia Lawall <Julia.Lawall@xxxxxxx>
Date: Sun Aug 23 02:11:12 2015 +0200
mmc: omap: fix error return code
Return a negative error code on failure.
A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
identifier ret; expression e1,e2;
@@
(
if (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret = 0
)
... when != ret = e1
when != &ret
*if(...)
{
... when != ret = e2
when forall
return ret;
}
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 3fe95db19be6a98bcb45d2780c6a90d1e96bfcc9
Author: Rabin Vincent <rabin.vincent@xxxxxxxx>
Date: Wed Aug 19 15:41:36 2015 +0200
mmc: usdhi6rol0: fix ack register write
The intent appears to be to clear only the bits which are set in status
(by setting them to zero in the ack write), like in the other interrupt
handlers, and not to always clear everything (by always writing zero).
Use the correct not operator.
Signed-off-by: Rabin Vincent <rabin.vincent@xxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit bb08a7d489bd22a9b6e489f8c8449b0bc92594d0
Author: Rabin Vincent <rabin.vincent@xxxxxxxx>
Date: Wed Aug 19 15:41:35 2015 +0200
mmc: usdhi6rol0: fix NULL pointer deref in debug print
host->sg is only set when we're transferring multiple blocks. Check for
its availibility before dereferencing it in the timeout work debug
print.
Signed-off-by: Rabin Vincent <rabin.vincent@xxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 767264725d6c0c8e2a42f14ded88c8f05fec5863
Author: Rabin Vincent <rabin.vincent@xxxxxxxx>
Date: Wed Aug 19 15:41:34 2015 +0200
mmc: usdhi6rol0: handle probe deferral for regulator
We ignore errors from mmc_regulator_get_supply() because the usage of
the regulators is optional for the driver, but we still need to check
for and handle EPROBE_DEFER, like it's done in for example dw_mmc.
Otherwise we might end up not using the specified regulators just
because of probe order.
Signed-off-by: Rabin Vincent <rabin.vincent@xxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit da795ec26e2542f1e306598a1d7a31c0762f2bd7
Author: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>
Date: Tue Aug 11 15:57:05 2015 +0800
mmc: sdhci-of-arasan: Add the support for sdhci-5.1
This patch adds the compatible string in sdhci-of-arasan.c to
support sdhci-arasan5.1 version of controller. No documented
controller IP version is found in the TRM, so we use ths version
of command queueing engine integrated into this controller by arasan
to specify our controller.
Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>
Acked-by: Michal Simek <michal.simek@xxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 0dafa60eb2506617e6968b97cc5a44914a7fb1a6
Author: Jisheng Zhang <jszhang@xxxxxxxxxxx>
Date: Tue Aug 18 16:21:39 2015 +0800
mmc: sdhci: also get preset value and driver type for MMC_DDR52
commit bb8175a8aa42 ("mmc: sdhci: clarify DDR timing mode between
SD-UHS and eMMC") added MMC_DDR52 as eMMC's DDR mode to be
distinguished from SD-UHS, but it missed setting driver type for
MMC_DDR52 timing mode.
So sometimes we get the following error on Marvell BG2Q DMP board:
[ 1.559598] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd
response 0x900, card status 0xb00
[ 1.569314] mmcblk0: retrying using single block read
[ 1.575676] mmcblk0: error -84 transferring data, sector 2, nr 6, cmd
response 0x900, card status 0x0
[ 1.585202] blk_update_request: I/O error, dev mmcblk0, sector 2
[ 1.591818] mmcblk0: error -84 transferring data, sector 3, nr 5, cmd
response 0x900, card status 0x0
[ 1.601341] blk_update_request: I/O error, dev mmcblk0, sector 3
This patches fixes this by adding the missing driver type setting.
Fixes: bb8175a8aa42 ("mmc: sdhci: clarify DDR timing mode ...")
Signed-off-by: Jisheng Zhang <jszhang@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit f912632b6086d4464af2443dee0c6f4055cf5159
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 16:26:48 2015 +0200
mmc: atmel-mci: remove useless include
Definitions from linux/platform_data/atmel.h are not used, remove the
include.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Acked-by: Ludovic Desroches <ludovic.desroches@xxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 7bb9c244356d2d45ac03cf65e55b035c5954d7de
Author: Michal Suchanek <hramrach@xxxxxxxxx>
Date: Wed Aug 12 15:29:31 2015 +0200
mmc: sunxi: fix timeout in sunxi_mmc_oclk_onoff
The 250ms timeout is too short.
On my system enabling the oclk takes under 50ms and disabling slightly
over 100ms when idle. Under load disabling the clock can take over
350ms.
This does not make mmc clock gating look like good option to have on
sunxi but the system should not crash with mmc clock gating enabled
nonetheless.
This patch sets the timeout to 750ms.
Signed-off-by: Michal Suchanek <hramrach@xxxxxxxxx>
Acked-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 1880d8f6fbb01a16404dee7167621dc09b5f1d35
Author: Barry Song <Baohua.Song@xxxxxxx>
Date: Wed Aug 12 06:59:33 2015 +0000
mmc: sdhci-sirf: corrent quirk according to real chips
the current quirk set is for an old FPGA, and this patch corrects
quirks according to real SoC.
Signed-off-by: Barry Song <Baohua.Song@xxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit b5b4ff0a633910b2b9dca7915fd6ab17aa10dc3e
Author: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>
Date: Wed Aug 12 13:08:32 2015 +0800
mmc: block: skip trim for some kingston eMMCs
For some mass production of kingston eMMCs which adopt Phison's
firmware will meet an unrecoverable data conrruption occasionally
if performing trim due to a firmware bug confirmed by vendor. We
found it on Intel-C3230RK platform. So we add fixup of broken trim
for it.
Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit e31e67cf2578bd05e99afabb22403542306d6bed
Author: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Date: Tue Aug 11 19:38:31 2015 +0800
mmc: sdhci-esdhc-imx: change default watermark level and burst length
By default, for all imx SoC types, the watermark level is 16, and the
burst length is 8. But if the SDIO/SD/MMC I/O speed is fast enough,
this default watermark level and burst length will be the performance
bottleneck.
For example, i.MX7D support eMMC HS400 mode, this mode can run in 8 bit,
200MHZ DDR mode. So the I/O speed improve a lot compare to SD3.0.
The default burst length is 8, if we don't change this value, in
HS400 mode, when we do eMMC read operation, we can find that the
clock signal will stop for a period of time. This means the speed
of data moving on AHB bus is slower than I/O speed. So we should
improve the speed of data moving on AHB bus.
This patch set the default burst length as 16, and set the default
watermark level as 64. The test result is the clock signal has
no stop during the eMMC HS400 operation.
Signed-off-by: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Acked-by: Dong Aisheng <aisheng.dong@xxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit fd44954e77b436673eb5221e5485a32ea6550128
Author: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Date: Tue Aug 11 19:38:30 2015 +0800
mmc: sdhci-esdhc-imx: set back the burst_length_enable bit to 1
Currently we find that if a usdhc is choosed to boot system, then ROM
code will set the burst length enable bit of this usdhc as 0.
This will make performance drop a lot if this usdhc's burst length is
configed. So this patch set back the burst_length_enable bit as 1,
which is the default value, and means burst length is enabled for INCR.
Signed-off-by: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Acked-by: Dong Aisheng <aisheng.dong@xxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit d407e30ba614b1542c8ac032f8fb2332b8071efe
Author: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Date: Tue Aug 11 19:38:27 2015 +0800
mmc: sdhci-esdhc-imx: add tuning-step setting support
tuning-step is the delay cell steps in tuning procedure. The default value
of tuning-step is 1. Some boards or cards need another value to pass the
tuning procedure. For example, imx7d-sdb board need the tuning-step value
as 2, otherwise it can't pass the tuning procedure.
So this patch add the tuning-step setting in driver, so that user can set
the tuning-step value in dts.
Signed-off-by: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Acked-by: Dong Aisheng <aisheng.dong@xxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 28b07674f287092f3b63a7d5e5c7e68bdeed0247
Author: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Date: Tue Aug 11 19:38:26 2015 +0800
mmc: sdhci-esdhc-imx: add imx7d support and support HS400
The imx7d usdhc is derived from imx6sx, the difference is that
imx7d support HS400.
So introduce a new compatible string for imx7d and add HS400
support for imx7d usdhc.
Signed-off-by: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Acked-by: Dong Aisheng <aisheng.dong@xxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 2a2a7ea7c0126d388c14c28927cdba429b4858dd
Author: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Date: Tue Aug 11 19:38:28 2015 +0800
mmc: sdhci-esdhc-imx: Document new DT bindings for imx7d support
Add a required property "fsl,imx7d-usdhc" in binding doc.
Add an optional property "fsl,tuning-step" in binding doc.
Signed-off-by: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Acked-by: Dong Aisheng <aisheng.dong@xxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 77bd2f6f6c65b4ad259394d416855ed561f21e8f
Author: Yangbo Lu <yangbo.lu@xxxxxxxxxxxxx>
Date: Tue Aug 11 10:53:34 2015 +0800
mmc: sdhci-of-esdhc: add workaround for pre divider initial value
For eSDHC(version < 2.3), the pre divider only could divide base clock
by 2 at least. Add workaround for this to avoid unexpected issue.
Signed-off-by: Yangbo Lu <yangbo.lu@xxxxxxxxxxxxx>
Acked-by: Joakim Tjernlund <Joakim.Tjernlund@xxxxxxxxxxxx>
Fixes: bd455029d01c ("mmc: sdhci-of-esdhc: Pre divider starts at 1")
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit d31911b9374a76560d2c8ea4aa6ce5781621e81d
Author: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Date: Tue Aug 25 10:02:11 2015 +0800
mmc: sdhci: fix dma memory leak in sdhci_pre_req()
Currently one mrq->data maybe execute dma_map_sg() twice
when mmc subsystem prepare over one new request, and the
following log show up:
sdhci[sdhci_pre_dma_transfer] invalid cookie: 24, next-cookie 25
In this condition, mrq->date map a dma-memory(1) in sdhci_pre_req
for the first time, and map another dma-memory(2) in sdhci_prepare_data
for the second time. But driver only unmap the dma-memory(2), and
dma-memory(1) never unmapped, which cause the dma memory leak issue.
This patch use another method to map the dma memory for the mrq->data
which can fix this dma memory leak issue.
Fixes: 348487cb28e6 ("mmc: sdhci: use pipeline mmc requests to improve
performance")
Reported-and-tested-by: Jiri Slaby <jslaby@xxxxxxx>
Signed-off-by: Haibo Chen <haibo.chen@xxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 90614cd9045dc7003913ee58cbc77950351485a0
Author: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 01:06:48 2015 +0300
mmc: host: use of_property_read_bool()
Use more compact of_property_read_bool() calls instead of the
of_find_property() calls.
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 143b648ddf1583905fa15d32be27a31442fc7933
Author: Adam Lee <adam.lee@xxxxxxxxxxxxx>
Date: Mon Aug 3 14:33:28 2015 +0800
mmc: sdhci-pci: set the clear transfer mode register quirk for O2Micro
This patch fixes MMC not working issue on O2Micro/BayHub Host, which
requires transfer mode register to be cleared when sending no DMA
command.
Signed-off-by: Peter Guo <peter.guo@xxxxxxxxxxxxxx>
Signed-off-by: Adam Lee <adam.lee@xxxxxxxxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 22d7e85ff8e5826845e9a4fa34b4723e5a97ee9b
Author: Robin van der Gracht <robin@xxxxxxxxxxx>
Date: Tue Aug 4 08:58:33 2015 +0200
mmc: core: Fixed bug in one erase-group budget TRIM
When requesting a trim for several bytes, everything up to the next
erase-group is erased. This causes data corruption.
Signed-off-by: Robin van der Gracht <robin@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 0c9fc10df211e0c931787a51c58caf487035f74e
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Thu Aug 27 14:05:26 2015 +0200
gpio: tc3589x: use static container helper
There is a helper function to do the container_of() magic for
the tc3589x GPIO, so use it.
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 3d5926599a6bc551efc0c8b244469a711f0d0166
Author: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Date: Thu Aug 27 16:25:07 2015 +0530
ARCv2: entry: Fix reserved handler
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 96983515657bfd532f4d2599df16c9d756de17ea
Merge: d690740 4524cd0
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Thu Aug 27 20:13:12 2015 +1000
Merge branch 'next' of
git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next
Freescale updates from Scott:
"Highlights include 32-bit memcpy/memset optimizations, checksum
optimizations, 85xx config fragments and updates, device tree updates,
e6500 fixes for non-SMP, and misc cleanup and minor fixes."
commit d690740f22f6520873f96e66aae7119ec2215755
Author: Vasant Hegde <hegdevasant@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 27 11:34:10 2015 +0530
powerpc/powernv: Enable LEDS support
Commit 84ad6e5c added LEDS support for PowerNV platform. Lets
update ppc64_defconfig to pick LEDS driver.
PowerNV LEDS driver looks for "/ibm,opal/leds" node in device
tree and loads if this node exists. Hence added it as 'm'.
Also note that powernv LEDS driver needs NEW_LEDS and LEDS_CLASS
as well. Hence added them to config file.
mpe: Also add them to pseries_defconfig, which is currently also used
for powernv systems.
Suggested-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Signed-off-by: Vasant Hegde <hegdevasant@xxxxxxxxxxxxxxxxxx>
Cc: Stewart Smith <stewart@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 0e1ffef02cf94e46f95957af0f822531fecf741c
Author: Alexey Kardashevskiy <aik@xxxxxxxxx>
Date: Thu Aug 27 16:01:16 2015 +1000
powerpc/iommu: Set default DMA offset in dma_dev_setup
Commit e91c25111aa3 "powerpc/iommu: Cleanup setting of DMA base/offset"
expects that the default DMA offset is set from pnv_ioda_setup_bus_dma()
which is correct unless it is SRIOV where the code flow is different -
at the moment when pnv_ioda_setup_bus_dma() is called, PCI devices for
VFs are not created yet.
This adds missing set_dma_offset() to pnv_pci_ioda_dma_dev_setup() to
cover the case of SRIOV.
Note that we still need set_dma_offset() in pnv_ioda_setup_bus_dma() as
at the boot time pnv_pci_ioda_dma_dev_setup() is called when no PE was
created yet, this happens at the PHB fixup stage.
Fixes: e91c25111aa3 ("powerpc/iommu: Cleanup setting of DMA base/offset")
Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx>
Reviewed-by: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 9b28829d6da391f67a76dbba07a167e2b554bd10
Author: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Date: Tue Nov 18 17:36:11 2014 +0530
ARCv2: perf: Finally introduce HS perf unit
With all features in place, the ARC HS pct block can now be effectively
allowed to be probed/used
Acked-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit e525c37f8413b19130d0499c7467fed45a94579b
Author: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Date: Mon Aug 24 14:03:30 2015 +0300
ARCv2: perf: SMP support
* split off pmu info into singleton and per-cpu bits
* setup PMU on all cores
Acked-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit e6b1d126bb748103824087189e30febc88c4db73
Author: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Date: Mon Aug 24 13:53:36 2015 +0300
ARCv2: perf: implement exclusion of event counting in user or kernel mode
Acked-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 36481cf7fbcc666699d54cb267088d2b415ff164
Author: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Date: Mon Aug 24 13:48:06 2015 +0300
ARCv2: perf: Support sampling events using overflow interrupts
In times of ARC 700 performance counters didn't have support of
interrupt an so for ARC we only had support of non-sampling events.
Put simply only "perf stat" was functional.
Now with ARC HS we have support of interrupts in performance counters
which this change introduces support of.
ARC performance counters act in the following way in regard of
interrupts generation.
[1] A counter counts starting from value set in PCT_COUNT register pair
[2] Once counter reaches value set in PCT_INT_CNT interrupt is raised
Basic setup look like this:
[1] PCT_COUNT = 0;
[2] PCT_INT_CNT = __limit_value__;
[3] Enable interrupts for that counter and let it run
[4] Let counter reach its limit
[5] Handle interrupt when it happens
Note that PCT HW block is build in CPU core and so ints interrupt
line (which is basically OR of all counters IRQs) is wired directly to
top-level IRQC. That means do de-assert PCT interrupt it's required to
reset IRQs from all counters that have reached their limit values.
Acked-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 1fe8bfa5ff3b2e97f26add89b20768fb7c4188c0
Author: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Date: Mon Aug 24 13:42:27 2015 +0300
ARCv2: perf: implement "event_set_period"
This generalization prepares for support of overflow interrupts.
Hardware event counters on ARC work that way:
Each counter counts from programmed start value (set in
ARC_REG_PCT_COUNT) to a limit value (set in ARC_REG_PCT_INT_CNT) and
once limit value is reached this timer generates an interrupt.
Even though this hardware implementation allows for more flexibility,
in Linux kernel we decided to mimic behavior of other architectures
this way:
[1] Set limit value as half of counter's max value (to allow counter to
run after reaching it limit, see below for more explanation):
---------->8-----------
arc_pmu->max_period = (1ULL << counter_size) / 2 - 1ULL;
---------->8-----------
[2] Set start value as "arc_pmu->max_period - sample_period" and then
count up to the limit
Our event counters don't stop on reaching max value (the one we set in
ARC_REG_PCT_INT_CNT) but continue to count until kernel explicitly
stops each of them.
And setting a limit as half of counter capacity is done to allow
capturing of additional events in between moment when interrupt was
triggered until we're actually processing PMU interrupts. That way
we're trying to be more precise.
For example if we count CPU cycles we keep track of cycles while
running through generic IRQ handling code:
[1] We set counter period as say 100_000 events of type "crun"
[2] Counter reaches that limit and raises its interrupt
[3] Once we get in PMU IRQ handler we read current counter value from
ARC_REG_PCT_SNAP ans see there something like 105_000.
If counters stop on reaching a limit value then we would miss
additional 5000 cycles.
Acked-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit fb7c57255168d34ae34300bcf78f50aebdeae4dc
Author: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Date: Mon Aug 24 13:37:01 2015 +0300
ARC: perf: cap the number of counters to hardware max of 32
The number of counters in PCT can never be more than 32 (while
countable conditions could be 100+) for both ARCompact and ARCv2
And while at it update copyright dates.
Acked-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 674c242c9323d3c293fc4f9a3a3a619fe3063290
Author: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Date: Thu Aug 27 07:12:33 2015 +0100
arm64: flush FP/SIMD state correctly after execve()
When a task calls execve(), its FP/SIMD state is flushed so that
none of the original program state is observeable by the incoming
program.
However, since this flushing consists of setting the in-memory copy
of the FP/SIMD state to all zeroes, the CPU field is set to CPU 0 as
well, which indicates to the lazy FP/SIMD preserve/restore code that
the FP/SIMD state does not need to be reread from memory if the task
is scheduled again on CPU 0 without any other tasks having entered
userland (or used the FP/SIMD in kernel mode) on the same CPU in the
mean time. If this happens, the FP/SIMD state of the old program will
still be present in the registers when the new program starts.
So set the CPU field to the invalid value of NR_CPUS when performing
the flush, by calling fpsimd_flush_task_state().
Cc: <stable@xxxxxxxxxxxxxxx>
Reported-by: Chunyan Zhang <chunyan.zhang@xxxxxxxxxxxxxx>
Reported-by: Janet Liu <janet.liu@xxxxxxxxxxxxxx>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit e4ec73510812f24087a28ac8cbf1f77c9fb262e5
Author: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Date: Thu Aug 27 01:17:46 2015 +0600
s390/jump_label: Use %*ph to print small buffers
printk() supports %*ph format specifier for printing a small buffers,
let's use it intead of %02x %02x...
Signed-off-by: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 13a3cf08fa1e4b3a252f24202d47a556242aea03
Author: Andy Grover <agrover@xxxxxxxxxx>
Date: Mon Aug 24 10:26:06 2015 -0700
target/iscsi: Replace __kernel_sockaddr_storage with sockaddr_storage
It appears to be what the rest of the kernel does, so let's do it too.
Signed-off-by: Andy Grover <agrover@xxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit dc58f760e2e1f8f2265b581d35f211415c4fee0c
Author: Andy Grover <agrover@xxxxxxxxxx>
Date: Mon Aug 24 10:26:05 2015 -0700
target/iscsi: Replace conn->login_ip with login_sockaddr
Very similar to how it went with local_sockaddr.
It was embedded in iscsi_login_stats so some changes there, and we needed
to copy in a sockaddr_storage comparison function. Hopefully the kernel
will get a standard one soon, our implementation makes the 3rd.
isert_set_conn_info() became much smaller.
IPV6_ADDRESS_SPACE define goes away, had to modify a call to in6_pton(),
can just use -1 since we are sure string is null-terminated.
Signed-off-by: Andy Grover <agrover@xxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 69d755747d31c07a416064f251c2f408938fb67a
Author: Andy Grover <agrover@xxxxxxxxxx>
Date: Mon Aug 24 10:26:04 2015 -0700
target/iscsi: Keep local_ip as the actual sockaddr
This is a more natural format that lets us format it with the appropriate
printk specifier as needed.
This also lets us handle v4-mapped ipv6 addresses a little more nicely, by
storing the addr as an actual v4 sockaddr in conn->local_sockaddr.
Finally, we no longer need to maintain variables for port, since this is
contained in sockaddr. Remove iscsi_np.np_port and iscsi_conn.local_port.
Signed-off-by: Andy Grover <agrover@xxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 76c28f1fcfeb42b47f798fe498351ee1d60086ae
Author: Andy Grover <agrover@xxxxxxxxxx>
Date: Mon Aug 24 10:26:03 2015 -0700
target/iscsi: Fix np_ip bracket issue by removing np_ip
Revert commit 1997e6259, which causes double brackets on ipv6
inaddr_any addresses.
Since we have np_sockaddr, if we need a textual representation we can
use "%pISc".
Change iscsit_add_network_portal() and iscsit_add_np() signatures to
remove
*ip_str parameter.
Fix and extend some comments earlier in the function.
Tested to work for :: and ::1 via iscsiadm, previously :: failed, see
https://bugzilla.redhat.com/show_bug.cgi?id=1249107 .
CC: stable@xxxxxxxxxxxxxxx
Signed-off-by: Andy Grover <agrover@xxxxxxxxxx>
Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
commit 9f55bca2b82a77a3cc3204900db2fc40ab30019e
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Tue Aug 18 12:20:29 2015 +0300
aic94xx: set an error code on failure
We recently did some cleanup here and now the static checkers notice
that there is a missing error code when ioremap() fails. Let's set it
to -ENOMEM.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 111f2d15b543e15c1e0ee89745fae84e3eb91932
Author: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Date: Thu Aug 13 08:43:52 2015 -0700
storvsc: Set the error code correctly in failure conditions
In the function storvsc_channel_init(), error code was not getting
set correctly in some of the failure cases. Fix this issue.
Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit b95f5be09069526cf53705acbc1e22600f3f550b
Author: Keith Mange <keith.mange@xxxxxxxxxxxxx>
Date: Thu Aug 13 08:43:51 2015 -0700
storvsc: Allow write_same when host is windows 10
Allow WRITE_SAME for Windows10 and above hosts.
Tested-by: Alex Ng <alexng@xxxxxxxxxxxxx>
Signed-off-by: Keith Mange <keith.mange@xxxxxxxxxxxxx>
Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit e6c4bc66842752110a66746e2d044fafc01e4800
Author: Keith Mange <keith.mange@xxxxxxxxxxxxx>
Date: Thu Aug 13 08:43:50 2015 -0700
storvsc: use storage protocol version to determine storage capabilities
Use storage protocol version instead of vmbus protocol
version when determining storage capabilities.
Tested-by: Alex Ng <alexng@xxxxxxxxxxxxx>
Signed-off-by: Keith Mange <keith.mange@xxxxxxxxxxxxx>
Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit cb11feada9c049bc633831d3a5dcc50163f13b5e
Author: Keith Mange <keith.mange@xxxxxxxxxxxxx>
Date: Thu Aug 13 08:43:49 2015 -0700
storvsc: use correct defaults for values determined by protocol
negotiation
Use correct defaults for values determined by protocol negotiation,
instead of resetting them with every scsi controller.
Tested-by: Alex Ng <alexng@xxxxxxxxxxxxx>
Signed-off-by: Keith Mange <keith.mange@xxxxxxxxxxxxx>
Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 1a3631081d88180f5cc421711e40b4aecff8618e
Author: Keith Mange <keith.mange@xxxxxxxxxxxxx>
Date: Thu Aug 13 08:43:48 2015 -0700
storvsc: Untangle the storage protocol negotiation from the vmbus
protocol negotiation.
Currently we are making decisions based on vmbus protocol versions
that have been negotiated; use storage potocol versions instead.
[jejb: fold ARRAY_SIZE conversion suggested by Johannes Thumshirn
<jthumshirn@xxxxxxx>
make vmstor_protocol static]
Tested-by: Alex Ng <alexng@xxxxxxxxxxxxx>
Signed-off-by: Keith Mange <keith.mange@xxxxxxxxxxxxx>
Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 2492fd7a60270b81b7ed491745fd595a26841a45
Author: Keith Mange <keith.mange@xxxxxxxxxxxxx>
Date: Thu Aug 13 08:43:47 2015 -0700
storvsc: Use a single value to track protocol versions
Use a single value to track protocol versions to simplify
comparisons and to be consistent with vmbus version tracking.
Tested-by: Alex Ng <alexng@xxxxxxxxxxxxx>
Signed-off-by: Keith Mange <keith.mange@xxxxxxxxxxxxx>
Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 6ee5c61535a2df807069145970d3e7fa492a3fac
Author: Keith Mange <keith.mange@xxxxxxxxxxxxx>
Date: Thu Aug 13 08:43:46 2015 -0700
storvsc: Rather than look for sets of specific protocol versions, make
decisions based on ranges.
Rather than look for sets of specific protocol versions,
make decisions based on ranges. This will be safer and require fewer
changes
going forward as we add more storage protocol versions.
Tested-by: Alex Ng <alexng@xxxxxxxxxxxxx>
Signed-off-by: Keith Mange <keith.mange@xxxxxxxxxxxxx>
Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 9d8e27673c45927fee9e7d8992ffb325a6b0b0e4
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 21 17:25:15 2015 +1000
cxl: Remove racy attempt to force EEH invocation in reset
cxl_reset currently PERSTs the slot, and then repeatedly tries to
read MMIO space in order to kick off EEH.
There are 2 problems with this: it's unnecessary, and it's racy.
It's unnecessary because the PERST will bring down the PHB link.
That will be picked up by the CAPP, which will send out an HMI.
Skiboot, noticing an HMI from the CAPP, will send an OPAL
notification to the kernel, which will trigger EEH recovery.
It's also racy: the EEH recovery triggered by the CAPP will
eventually cause the MMIO space to have its mapping invalidated
and the pointer NULLed out. This races with our attempt to read
the MMIO space. This is causing OOPSes in testing.
Simply drop all the attempts to force EEH detection, and trust
that Skiboot will send the notification and that we'll act on it.
The Skiboot code to send the EEH notification has been in Skiboot
for as long as CAPP recovery has been supported, so we don't need
to worry about breaking obscure setups with ancient firmware.
Cc: Ryan Grimm <grimm@xxxxxxxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Fixes: 62fa19d4b4fd ("cxl: Add ability to reset the card")
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Acked-by: Ian Munsie <imunsie@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit a6897f39660cc07fa78b4459d82f12b07abb50b1
Author: Vaibhav Jain <vaibhav@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 25 11:04:48 2015 +0530
cxl: Release irqs if memory allocation fails
This minor patch plugs a potential irq leak in case of a memory
allocation failure inside function the afu_allocate_irqs. Presently the
irqs allocated to the context gets leaked if allocation of either
one of context irq_bitmap or irq_names fails.
Signed-off-by: Vaibhav Jain <vaibhav@xxxxxxxxxxxxxxxxxx>
Acked-by: Ian Munsie <imunsie@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit d7b273685fedba5359a4ba0ae4f542e3ece28153
Merge: 3160779 6dc2e1b
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Thu Aug 27 13:01:57 2015 +1000
Merge branch 'drm-dwhdmi-devel' of
git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next
Here are some development updates for the Synopsis Designware HDMI driver,
which clean up some of the code, and start preparing to add audio support
to the driver. This series of patches are based on a couple of dependent
commits from the ALSA tree.
Briefly, the updates are:
- move comments which should have moved with the phy values to the IMX
part of the driver.
- clean up the phy configuration: to all lookups before starting to
program the phy.
- clean up the HDMI clock regenerator code
- use the drm_hdmi_avi_infoframe_from_display_mode() helper which allows
the code to be subsequently simplified
- remove the unused 'regmap' pointer in struct dw_hdmi
- use the bridge drm device rather than the connector (we're the bridge
code)
- remove private hsync/vsync/interlaced flags, getting them from the
DRM mode structure instead.
- implement interface functions to support audio - setting the audio
sample rate, and enabling the audio clocks.
- removal of broken pixel repetition support
- cleanup DVI vs HDMI sink handling
- enable audio only if connected device supports audio
- avoid double-enabling bridge in the sink path (once in mode_set, and
again in commit)
- rename mis-named dw_hdmi_phy_enable_power()
- fix bridge enable/disable handing, so a plug-in event doesn't
reconfigure the bridge if DRM has disabled the output
- fix from Vladimir Zapolskiy for the I2CM_ADDRESS macro name
These are primerily preparitory patches for the AHB audio driver and
the I2S audio driver (from Rockchip) for this IP.
* 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
drm: bridge/dw_hdmi: fix register I2CM_ADDRESS register name
drm: bridge/dw_hdmi: fix phy enable/disable handling
drm: bridge/dw_hdmi: rename dw_hdmi_phy_enable_power()
drm: bridge/dw_hdmi: avoid enabling interface in mode_set
drm: bridge/dw_hdmi: enable audio only if sink supports audio
drm: bridge/dw_hdmi: clean up HDMI vs DVI mode handling
drm: bridge/dw_hdmi: don't support any pixel doubled modes
drm: bridge/dw_hdmi: remove pixel repetition setting for all VICs
drm: bridge/dw_hdmi: introduce interfaces to enable and disable audio
drm: bridge/dw_hdmi: introduce interface to setting sample rate
drm: bridge/dw_hdmi: remove mhsyncpolarity/mvsyncpolarity/minterlaced
drm: bridge/dw_hdmi: use our own drm_device
drm: bridge/dw_hdmi: remove unused 'regmap' struct member
drm: bridge/dw_hdmi: simplify hdmi_config_AVI() a little
drm: bridge/dw_hdmi: use drm_hdmi_avi_infoframe_from_display_mode()
drm: bridge/dw_hdmi: clean up hdmi_set_clk_regenerator()
drm: bridge/dw_hdmi: clean up phy configuration
drm: imx/dw_hdmi: move phy comments
drm/edid: add function to help find SADs
commit 31607793ee81da3f1024df9560f0dec49abde37f
Merge: 40b2dff 36d4e87
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Thu Aug 27 13:01:23 2015 +1000
Merge tag 'vmwgfx-next-15-08-21' of
git://people.freedesktop.org/~thomash/linux into drm-next
Pull request of 15-08-21
The third pull request for 4.3. Contains two fixes for regressions
introduced
with previous pull requests.
* tag 'vmwgfx-next-15-08-21' of
git://people.freedesktop.org/~thomash/linux:
drm/vmwgfx: Remove duplicate ttm_bo_device_release
drm/vmwgfx: Fix a circular locking dependency in the fbdev code
commit 40b2dffbcc67e92d5df97785dffc68fe88605bfa
Merge: db56176 c2b6bd7
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Thu Aug 27 13:00:28 2015 +1000
Merge branch 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux
into drm-next
- DP fixes for radeon and amdgpu
- IH ring fix for tonga and fiji
- Lots of GPU scheduler fixes
- Misc additional fixes
* 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux: (42
commits)
drm/amdgpu: fix wait queue handling in the scheduler
drm/amdgpu: remove extra parameters from scheduler callbacks
drm/amdgpu: wake up scheduler only when neccessary
drm/amdgpu: remove entity idle timeout v2
drm/amdgpu: fix postclose order
drm/amdgpu: use IB for copy buffer of eviction
drm/amdgpu: adjust the judgement of removing fence callback
drm/amdgpu: fix no sync_wait in copy_buffer
drm/amdgpu: fix last_vm_update fence is not effetive for sched fence
drm/amdgpu: add priv data to sched
drm/amdgpu: add owner for sched fence
drm/amdgpu: remove entity reference from sched fence
drm/amdgpu: fix and cleanup amd_sched_entity_push_job
drm/amdgpu: remove amdgpu_bo_list_clone
drm/amdgpu: remove the context from amdgpu_job
drm/amdgpu: remove unused parameters to amd_sched_create
drm/amdgpu: remove sched_lock
drm/amdgpu: remove prepare_job callback
drm/amdgpu: cleanup a scheduler function name
drm/amdgpu: reorder scheduler functions
...
commit 89576205de8a5b6c19a4b3bb25bd16484a567b4e
Author: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx>
Date: Wed Aug 26 18:36:12 2015 -0500
cxlflash: Remove unused variable from queuecommand
The queuecommand routine has a local dev pointer used for the
dev_* prints. The two prints that currently exist are tucked
under a debug define and thus can be left out. Use the actual
location instead of a local to avoid this warning.
This patch is intended to be applied after the "CXL Flash Error
Recovery and Superpipe" series.
Signed-off-by: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Manoj N. Kumar <manoj@xxxxxxxxxxxxxxxxxx>
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 4da74db0d9a6ffe053d3a3efa756906e0afc4cf7
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Tue Aug 18 11:57:43 2015 +0300
cxlflash: shift wrapping bug in afu_link_reset()
"port_sel" is a u64 so the shifting should also be a 64 bit shift.
Fixes: c21e0bbfc485 ('cxlflash: Base support for IBM CXL Flash Adapter')
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Acked-by: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 46c6d45d7875a0328258a574e376ae75f7b2a64b
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Fri Aug 14 23:35:25 2015 +0300
cxlflash: off by one bug in cxlflash_show_port_status()
The > should be >= or we read one element past the end of the array.
Fixes: c21e0bbfc485 ('cxlflash: Base support for IBM CXL Flash Adapter')
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Acked-by: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 2cb79266d6b229dbebd31fe114af1bdab25c8076
Author: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 21:47:53 2015 -0500
cxlflash: Virtual LUN support
Add support for physical LUN segmentation (virtual LUNs) to device
driver supporting the IBM CXL Flash adapter. This patch allows user
space applications to virtually segment a physical LUN into N virtual
LUNs, taking advantage of the translation features provided by this
adapter.
Signed-off-by: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Manoj N. Kumar <manoj@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Michael Neuling <mikey@xxxxxxxxxxx>
Reviewed-by: Wen Xiong <wenxiong@xxxxxxxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 65be2c79acc3aa0f9c0e8d4871f5a451d854465a
Author: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 21:47:43 2015 -0500
cxlflash: Superpipe support
Add superpipe supporting infrastructure to device driver for the IBM CXL
Flash adapter. This patch allows userspace applications to take advantage
of the accelerated I/O features that this adapter provides and bypass the
traditional filesystem stack.
Signed-off-by: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Manoj N. Kumar <manoj@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Michael Neuling <mikey@xxxxxxxxxxx>
Reviewed-by: Wen Xiong <wenxiong@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Brian King <brking@xxxxxxxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 5cdac81a870f3bb65c50d3f5566a86fb086118d2
Author: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 21:47:34 2015 -0500
cxlflash: Base error recovery support
Introduce support for enhanced I/O error handling.
A device state is added to track 3 possible states of the device:
Normal - the device is operating normally and is fully operational
Limbo - the device is in a reset/recovery scenario and its operational
status is paused
Failed/terminating - the device has either failed to be reset/recovered
or is being terminated (removed); it is no longer
operational
All operations are allowed when the device is operating normally. When the
device transitions to limbo state, I/O must be paused. To help accomplish
this, a wait queue is introduced where existing and new threads can wait
until the device is no longer in limbo. When coming out of limbo, threads
need to check the state and error out gracefully when encountering the
failed state. When the device transitions to the failed/terminating state,
normal operations are no longer allowed. Only specially designated
operations related to graceful cleanup are permitted.
Signed-off-by: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Manoj N. Kumar <manoj@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Daniel Axtens <dja@xxxxxxxxxx>
Reviewed-by: Michael Neuling <mikey@xxxxxxxxxxx>
Reviewed-by: Wen Xiong <wenxiong@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Brian King <brking@xxxxxxxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit ef2a388dfce6ddc2fd0d1d798a8974396f6b6a22
Author: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Date: Tue Aug 4 13:38:04 2015 -0400
qla2xxx: Update driver version to 8.07.00.26-k
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: Giridhar Malavali <giridhar.malavali@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 2b48992f656e109b9d7357cedc0406b50ec82c22
Author: Sawan Chandak <sawan.chandak@xxxxxxxxxx>
Date: Tue Aug 4 13:38:03 2015 -0400
qla2xxx: Add pci device id 0x2261.
Signed-off-by: Sawan Chandak <sawan.chandak@xxxxxxxxxx>
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit a1d0285ecb61800a9e6808f716b880eae95f14bc
Author: Arun Easi <arun.easi@xxxxxxxxxx>
Date: Tue Aug 4 13:38:02 2015 -0400
qla2xxx: Fix missing device login retries.
On certain conditions, login failures will just invoke
qla2x00_mark_device_lost() with the intend to do login again;
but if login_retry has been set already, that would fail to set the
relogin needed flag which is required to wakeup the DPC to retry.
Signed-off-by: Arun Easi <arun.easi@xxxxxxxxxx>
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 63e322aaa6a00536055558ac1307b2919ee57aef
Author: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Date: Tue Aug 4 13:38:01 2015 -0400
qla2xxx: do not clear slot in outstanding cmd array
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: Giridhar Malavali <giridhar.malavali@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 96219424f2c7b767e42ccf203df40d7df677a5e3
Author: Chad Dupuis <chad.dupuis@xxxxxxxxxx>
Date: Tue Aug 4 13:38:00 2015 -0400
qla2xxx: Remove decrement of sp reference count in abort handler.
Fix for memory leak when command is not found by firmware due to
mismatch in sp reference count.
Signed-off-by: Chad Dupuis <chad.dupuis@xxxxxxxxxx>
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 03aa868c1b7b2633a4faa97b28c40e64c91a8e7f
Author: Sawan Chandak <sawan.chandak@xxxxxxxxxx>
Date: Tue Aug 4 13:37:59 2015 -0400
qla2xxx: Add support to show MPI and PEP FW version for ISP27xx.
Signed-off-by: Sawan Chandak <sawan.chandak@xxxxxxxxxx>
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit fd49a540ead94ce5769f6eb2028e97577739e24b
Author: Chad Dupuis <chad.dupuis@xxxxxxxxxx>
Date: Tue Aug 4 13:37:58 2015 -0400
qla2xxx: Do not reset ISP for error entry with an out of range handle.
Instead of resetting the adapter wait for the login to timeout
and retry. Resetting the adapter can cause extended path recovery
times.
Signed-off-by: Chad Dupuis <chad.dupuis@xxxxxxxxxx>
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit c7bc4cae0d5c9703d8b15fcc0fd53b86b135bde8
Author: Chad Dupuis <chad.dupuis@xxxxxxxxxx>
Date: Tue Aug 4 13:37:57 2015 -0400
qla2xxx: Do not reset adapter if SRB handle is in range.
If an SRB is NULL but the handle is in range just drop the
command instead of also resetting the adapter. If the handle
is in range then the command was valid at some point and may
have been aborted. Resetting the adapter can lead to extended
recovery times in this case.
Signed-off-by: Chad Dupuis <chad.dupuis@xxxxxxxxxx>
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 8fbdac8c70d378016f568106f09fb3ff153a47c3
Author: Hiral Patel <hiral.patel@xxxxxxxxxx>
Date: Tue Aug 4 13:37:56 2015 -0400
qla2xxx: Do not crash system for sp ref count zero
Aovid crashing the system in the scenario where firmware
just completes the command and it can not find the command
during abort mailbox processing. This scenario can lead to
sp reference counter being zero. Instead of crashing the
system, use WARN_ON to print warning in log file.
Signed-off-by: Hiral Patel <hiral.patel@xxxxxxxxxx>
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit d6b9b42b49518c30df9de92ce499f005d336e97b
Author: Saurav Kashyap <saurav.kashyap@xxxxxxxxxx>
Date: Tue Aug 4 13:37:55 2015 -0400
qla2xxx: Add adapter checks for FAWWN functionality.
Signed-off-by: Saurav Kashyap <saurav.kashyap@xxxxxxxxxx>
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 8dd7e3a55949f17fecba4aedb2cb943b153e5e55
Author: Joe Carnuccio <joe.carnuccio@xxxxxxxxxx>
Date: Tue Aug 4 13:37:54 2015 -0400
qla2xxx: Pause risc before manipulating risc semaphore.
Signed-off-by: Joe Carnuccio <joe.carnuccio@xxxxxxxxxx>
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit cc790764391a68511cf6a7e4dd18eeb6e7640233
Author: Joe Carnuccio <joe.carnuccio@xxxxxxxxxx>
Date: Tue Aug 4 13:37:53 2015 -0400
qla2xxx: Use ssdid to gate semaphore manipulation.
Execute qla25xx_manipulate_risc_semaphore() only for
ssdid 0x0175 and 0x0240.
Signed-off-by: Joe Carnuccio <joe.carnuccio@xxxxxxxxxx>
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 17cac3a175a02cd1ae21f9183b09f30a719832df
Author: Joe Carnuccio <joe.carnuccio@xxxxxxxxxx>
Date: Tue Aug 4 13:37:52 2015 -0400
qla2xxx: Handle AEN8014 incoming port logout.
When we get logged out, mark the port lost and set dpc flag for relogin.
Signed-off-by: Joe Carnuccio <joe.carnuccio@xxxxxxxxxx>
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 1dd34b5ad8aebaff17b625fc0126e18243008a3f
Author: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Date: Wed Aug 26 15:57:38 2015 -0700
bpf: fix bpf_skb_set_tunnel_key() helper
Make sure to indicate to tunnel driver that key.tun_id is set,
otherwise gre won't recognize the metadata.
Fixes: d3aa45ce6b94 ("bpf: add helpers to access tunnel metadata")
Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f299c7c2ab5df78e3201af34e596e8a3ba4d2791
Author: Joe Carnuccio <joe.carnuccio@xxxxxxxxxx>
Date: Tue Aug 4 13:37:51 2015 -0400
qla2xxx: Add serdes register read/write support for ISP25xx.
Signed-off-by: Joe Carnuccio <joe.carnuccio@xxxxxxxxxx>
Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 709c75b5a2411c31e5a649a2cd6d4866dd11f456
Author: jiang.biao2@xxxxxxxxxx <jiang.biao2@xxxxxxxxxx>
Date: Fri Jul 31 17:52:10 2015 +0800
scsi_error: should not get sense for timeout IO in scsi error handler
scsi_error: should not get sense for timeout IO in scsi error handler
When an IO timeout occurs, the IO will be aborted in
scsi_abort_command() and SCSI_EH_ABORT_SCHEDULED will be set. Because
of that, the SCSI_EH_CANCEL_CMD will be clear in scsi_eh_scmd_add().
So when scsi error handler starts, it will get sense for this
timeout IO and the scmd of the IO request will be reused. In that
case, the scmd may be double released when racing with io_done(),
which will result in crash.
SO SCSI_EH_ABORT_SCHEDULED should also be checked when getting sense.
The bug maybe reproduced when the link between host and disk is
unstable.
Signed-off-by: Jiang Biao <jiang.biao2@xxxxxxxxxx>
Signed-off-by: Long Chun <long.chun@xxxxxxxxxx>
Reviewed-by: Tan Hu <tan.hu@xxxxxxxxxx>
Reviewed-by: Chen Donghai <chen.donghai@xxxxxxxxxx>
Reviewed-by: Cai Qu <cai.qu@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 1cd129918f14f42f8b1940096dba629ce7e7a243
Author: Viswas G <Viswas.G@xxxxxxxx>
Date: Tue Aug 11 15:06:32 2015 +0530
pm80xx: Bump pm80xx driver version to 0.1.38
Bump pm80xx driver version to 0.1.38.
Signed-off-by: Viswas G <Viswas.G@xxxxxxxx>
Reviewed-by: Suresh Thiagarajan <Suresh.Thiagarajan@xxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
Reviewed-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 27ecfa5e79bfc2e4efca67a6077080acab546a4a
Author: Viswas G <Viswas.G@xxxxxxxx>
Date: Tue Aug 11 15:06:31 2015 +0530
pm80xx: Handling Invalid SSP Response frame
The request has to be retried incase if the length of the SSP
Response IU is invalid.
Signed-off-by: Viswas G <Viswas.G@xxxxxxxx>
Reviewed-by: Suresh Thiagarajan <Suresh.Thiagarajan@xxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
Reviewed-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 8414cd8057c29f60cda241aa489b33e4db6652f2
Author: Viswas G <Viswas.G@xxxxxxxx>
Date: Tue Aug 11 15:06:30 2015 +0530
pm80xx: Add PORT RECOVERY TIMEOUT support
PORT RECOVERY TIMEOUT is the maximum time between the controller's
detection of the PHY down until the receipt of the ID_Frame (from the
same remote SAS port). If the time expires before the ID_FRAME is
received, the port is considered INVALID and can be removed. The
IOP_EVENT_PORT_RECOVERY_TIMER_TMO event is reported following the
IOP_EVENT_ PHY_DOWN event when the PHY/port does not recover after
Port Recovery Time.
Signed-off-by: Viswas G <Viswas.G@xxxxxxxx>
Reviewed-by: Suresh Thiagarajan <Suresh.Thiagarajan@xxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
Reviewed-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 3b77894b2c32ed3326c47b550f30684beb64abd3
Author: Viswas G <Viswas.G@xxxxxxxx>
Date: Tue Aug 11 15:06:29 2015 +0530
pm80xx: Remove unnecessary phy disconnect while link error
If the link error happens, we don't need to disconnect the phy,
which will remove the drive. Instead acknowledging the controller
and logging the error will be enough.
Signed-off-by: Viswas G <Viswas.G@xxxxxxxx>
Reviewed-by: Suresh Thiagarajan <Suresh.Thiagarajan@xxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
Reviewed-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 3b700e341144f278b8248418991c086d09b7137b
Author: Viswas G <Viswas.G@xxxxxxxx>
Date: Tue Aug 11 15:06:28 2015 +0530
pm80xx: Fix for Incorrect DMA Unmapping of SG List
In pm8001_ccb_task_free(), the dma unmapping is done based on
ccb->n_elem value. This should be initialized to zero in the
task_abort(). Otherwise, pm8001_ccb_task_free() will try for
dma_unmap_sg() which is invalid for task abort and can lead to
kernel crash.
Changes From V1:
None
Signed-off-by: Viswas G <Viswas.G@xxxxxxxx>
Reviewed-by: Suresh Thiagarajan <Suresh.Thiagarajan@xxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
Reviewed-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 842784e0d15bc21b31ce69f8f3518a8cf86084e3
Author: Viswas G <Viswas.G@xxxxxxxx>
Date: Tue Aug 11 15:06:27 2015 +0530
pm80xx: Update For Thermal Page Code
Thermal page code has been changed to 7 for the 12G controllers.
Signed-off-by: Viswas G <Viswas.G@xxxxxxxx>
Reviewed-by: Suresh Thiagarajan <Suresh.Thiagarajan@xxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
Reviewed-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 3a1ae967741c301a5ad26665dcfb184082b969b2
Author: Viswas G <Viswas.G@xxxxxxxx>
Date: Tue Aug 11 15:06:26 2015 +0530
pm80xx: Corrected device state changes in I_T_Nexus_Reset.
In Nexus reset the device state request are not needed.
Signed-off-by: Viswas G <Viswas.G@xxxxxxxx>
Reviewed-by: Suresh Thiagarajan <Suresh.Thiagarajan@xxxxxxxx>
Acked-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit b093d590367f6eafbec89243fabb12d4b96a9997
Author: Viswas G <Viswas.G@xxxxxxxx>
Date: Tue Aug 11 15:06:25 2015 +0530
pm80xx: Updated link rate
Updated 12G linkrate to libsas.
Signed-off-by: Viswas G <Viswas.G@xxxxxxxx>
Reviewed-by: Suresh Thiagarajan <Suresh.Thiagarajan@xxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
Reviewed-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit d32477e2a72cf9b99bb174e0f11e1b1c7834b76f
Author: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxxx>
Date: Wed Jul 29 12:02:50 2015 +0200
MAINTAINERS: update email for pm8001
Company has policy to use company email address, so update
my email address to company address.
Signed-off-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit b103918a5f21a51d12018a09919617687e584384
Author: Sebastian Herbszt <herbszt@xxxxxx>
Date: Wed Jul 22 10:53:22 2015 +0200
lpfc: Use && instead of & for boolean expression
Use logical instead of bitwise AND.
Signed-off-by: Sebastian Herbszt <herbszt@xxxxxx>
Reviewed-by: James Smart <james.smart@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 5155ce5f8395730f681fe48cdc8867838e3a3f2c
Author: Dilip Kumar Uppugandla <dilip@xxxxxxxxxxxxxxx>
Date: Tue Jul 21 15:07:55 2015 -0700
qla2xxx: Return the fabric command state for non-task management requests
Invoking get_cmd_state for qla2xxx always returns 0. Instead change it
to return the actual fabric state from qla_tgt_cmd. This will help with
debugging.
Signed-off-by: Dilip Kumar Uppugandla <dilip@xxxxxxxxxxxxxxx>
Signed-off-by: Spencer Baugh <sbaugh@xxxxxxxxxx>
Acked-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 2d041306b669e281427de7dd398e74335c9f5042
Author: Don Brace <don.brace@xxxxxxxx>
Date: Sat Jul 18 11:13:15 2015 -0500
hpsa: fix rmmod issues
The driver is calling hpsa_shutdown before calling scsi_remove_host.
hpsa_shutdown is disabling interrupts.
scsi_remove_host can trigger I/O operations, such as
SYNCHRONIZE CACHE when multipath is enabled which hang the system.
Call scsi_remove_host before calling hpsa_shutdown.
Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx>
Reviewed-by: Scott Teel <scott.teel@xxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: Don Brace <don.brace@xxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 9a4178b76a973684750d20b684bae4f57ab9a355
Author: shane.seymour <shane.seymour@xxxxxx>
Date: Sat Jul 18 11:13:09 2015 -0500
hpsa: fix issues with multilun devices
A regression was introduced into the hpsa driver a while back so
non-zero LUNs of multi-LUN devices may no longer be presented via
a SAS based Smart Array. I have not done a bisection to discover
the change that caused it.
The CISS firmware specification (available on sourceforge)
defines an 8 byte lunid that describes devices that the Smart
Array can see/present to the system. The current code in the hpsa
driver attempts to find matches for non-zero LUNs with LUN 0 for
a bus/target by zeroing out byte 4 of the lunid and find a match.
This method is sufficient for SCSI based Smart Arrays because
byte 5 is always 0. For SAS based Smart arrays byte 5 of the
lunid contains the path number for a multipath device and
either one or two bits (the documentation does not define how
many bits are used but it appears it may be one only) that
indicate if the given path number in byte 5 must always be
used to access that device. Byte 5 may not always be zero.
The following are lunids (spaces added for clarity) for a
MSL2024 single drive library connected via a H241 Smart Array:
00 00 00 00 01 00 00 01 (changer)
00 00 00 00 00 80 00 01 (tape)
In the 4th byte (counting from 0) you can see that the tape
is LUN 0 and the changer is LUN 1. The 0x80 set in the 5th byte
for the tape drive means the driver should force access to
path 0 (the library in this case was connected to one path only
anyway).
After the changes we can see the following in the dmesg output:
scsi 0:3:0:0: RAID HP H241 1.18 \
PQ: 0 ANSI: 5
scsi 0:2:0:0: Sequential-Access HP Ultrium 6-SCSI 354W \
PQ: 0 ANSI: 6
scsi 0:2:0:1: Medium Changer HP MSL G3 Series 8.70 \
PQ: 0 ANSI: 5
Showing that the changer is correctly identified as LUN 1 of
bus 2 target 0. Before the change the changer device is not seen.
Suggested-by: shane.seymour <shane.seymour@xxxxxx>
Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx>
Reviewed-by: Scott Teel <scott.teel@xxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: Don Brace <don.brace@xxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 5ca0120447ae8d485e2ee5100f25b6645e3e320f
Author: Scott Benesh <scott.benesh@xxxxxxxx>
Date: Sat Jul 18 11:13:04 2015 -0500
hpsa: add in new offline mode
prevent adding volumes that are not available.
Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx>
Reviewed-by: Scott Teel <scott.teel@xxxxxxxx>
Reviewed-by: Justin Lindley <justin.lindley@xxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: Don Brace <don.brace@xxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit b9092b79ccaf4404509d6aeb2c76eb7cbfa57bf1
Author: Kevin Barnett <kevin.barnett@xxxxxxxx>
Date: Sat Jul 18 11:12:59 2015 -0500
Change how controllers in mixed mode are handled.
Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx>
Reviewed-by: Scott Teel <scott.teel@xxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: Don Brace <don.brace@xxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit cbb47dcbb405d4a694801e6ad6d63c2992f83bb4
Author: Don Brace <don.brace@xxxxxxxx>
Date: Sat Jul 18 11:12:54 2015 -0500
hpsa: add in new controllers
Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx>
Reviewed-by: Scott Teel <scott.teel@xxxxxxxx>
Signed-off-by: Don Brace <don.brace@xxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 9384950809d96ee08dcd7bb2eadc9628b99d0474
Author: Don Brace <don.brace@xxxxxxxx>
Date: Sat Jul 18 11:12:49 2015 -0500
hpsa: cleanup update scsi devices
showing that tables have been updated unnecessarily.
Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx>
Reviewed-by: Scott Teel <scott.teel@xxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: Don Brace <don.brace@xxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 8270b8624365887a716615294d0ac28af07c9287
Author: Joe Handzik <joseph.t.handzik@xxxxxx>
Date: Sat Jul 18 11:12:43 2015 -0500
hpsa: add sysfs entry path_info to show box and bay information
host no, bus, target, lun, scsi_device_type
for hba mode add: box and bay information
report if the path is active/inactive
Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx>
Reviewed-by: Scott Teel <scott.teel@xxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: Don Brace <don.brace@xxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 1358f6dc5875f5cef06eeeeb4532f382aaff8483
Author: Don Brace <don.brace@xxxxxxxx>
Date: Sat Jul 18 11:12:38 2015 -0500
hpsa: add PMC to copyright
need to add PMC to copyright notice and update the Hewlett-Packard
copyright notification.
Reviewed-by: Scott Teel <scott.teel@xxxxxxxx>
Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx>
Reviewed-by: Justin Lindley <justin.lindley@xxxxxxxx>
Signed-off-by: Don Brace <don.brace@xxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 7ef7323f4bf467ce9fe51177301ad8cbb7dc2631
Author: Don Brace <don.brace@xxxxxxxx>
Date: Sat Jul 18 11:12:33 2015 -0500
hpsa: correct static checker warnings on driver init cleanup
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx>
Reviewed-by: Scott Teel <scott.teel@xxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: Don Brace <don.brace@xxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 81c275576bcee1a80e046117c7923586216a2dd4
Author: Don Brace <don.brace@xxxxxxxx>
Date: Sat Jul 18 11:12:28 2015 -0500
hpsa: correct decode sense data
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx>
Reviewed-by: Scott Teel <scott.teel@xxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: Don Brace <don.brace@xxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 77678d3a35455d7b7c4da4e56b20de17ee63cec1
Author: Don Brace <don.brace@xxxxxxxx>
Date: Sat Jul 18 11:12:22 2015 -0500
hpsa: Correct double unlock of mutex
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Reviewed-by: Scott Teel <scott.teel@xxxxxxxx>
Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxx>
Reviewed-by: Tomas Henzl <thenzl@xxxxxxxxxx>
Signed-off-by: Don Brace <don.brace@xxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 5d0ddfebb93069061880fc57ee4ba7246bd1e1ee
Author: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Date: Fri Aug 21 15:36:23 2015 +0800
ACPI, PCI: Penalize legacy IRQ used by ACPI SCI
Nick Meier reported a regression with HyperV that "
After rebooting the VM, the following messages are logged in syslog
when trying to load the tulip driver:
tulip: Linux Tulip drivers version 1.1.15 (Feb 27, 2007)
tulip: 0000:00:0a.0: PCI INT A: failed to register GSI
tulip: Cannot enable tulip board #0, aborting
tulip: probe of 0000:00:0a.0 failed with error -16
Errors occur in 3.19.0 kernel
Works in 3.17 kernel.
"
According to the ACPI dump file posted by Nick at
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1440072
The ACPI MADT table includes an interrupt source overridden entry for
ACPI SCI:
[236h 0566 1] Subtable Type : 02 <Interrupt Source
Override>
[237h 0567 1] Length : 0A
[238h 0568 1] Bus : 00
[239h 0569 1] Source : 09
[23Ah 0570 4] Interrupt : 00000009
[23Eh 0574 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3
And in DSDT table, we have _PRT method to define PCI interrupts, which
eventually goes to:
Name (PRSA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12,14,15}
})
Name (PRSB, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12,14,15}
})
Name (PRSC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12,14,15}
})
Name (PRSD, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12,14,15}
})
According to the MADT and DSDT tables, IRQ 9 may be used for:
1) ACPI SCI in level, high mode
2) PCI legacy IRQ in level, low mode
So there's a conflict in polarity setting for IRQ 9.
Prior to commit cd68f6bd53cf ("x86, irq, acpi: Get rid of special
handling of GSI for ACPI SCI"), ACPI SCI is handled specially and
there's no check for conflicts between ACPI SCI and PCI legagy IRQ.
And it seems that the HyperV hypervisor doesn't make use of the
polarity configuration in IOAPIC entry, so it just works.
Commit cd68f6bd53cf gets rid of the specially handling of ACPI SCI,
and then the pin attribute checking code discloses the conflicts
between ACPI SCI and PCI legacy IRQ on HyperV virtual machine,
and rejects the request to assign IRQ9 to PCI devices.
So penalize legacy IRQ used by ACPI SCI and mark it unusable if ACPI
SCI attributes conflict with PCI IRQ attributes.
Please refer to following links for more information:
https://bugzilla.kernel.org/show_bug.cgi?id=101301
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1440072
Fixes: cd68f6bd53cf ("x86, irq, acpi: Get rid of special handling of GSI
for ACPI SCI")
Reported-and-tested-by: Nick Meier <nmeier@xxxxxxxxxxxxx>
Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: 3.19+ <stable@xxxxxxxxxxxxxxx> # 3.19+
Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit bf41846edf5b1618a37f8ec830251b31d8ed6ab3
Author: Catherine Sullivan <catherine.sullivan@xxxxxxxxx>
Date: Fri Jul 10 19:36:10 2015 -0400
i40e/i40evf: Bump i40e to 1.3.9 and i40evf to 1.3.5
Bump version and update the copyright year for i40evf.
Change-ID: Iddb81b9dba09f0dc57ab54937b5821ecdd721ff6
Signed-off-by: Catherine Sullivan <catherine.sullivan@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 9fffa3f34dff2585ae86cd5b59c68ad2d4172f25
Author: Neerav Parikh <neerav.parikh@xxxxxxxxx>
Date: Fri Jul 10 19:36:09 2015 -0400
i40e/i40evf: Cache the CEE TLV status returned from firmware
Store the CEE TLV status returned by firmware to allow drivers to dump
that
for debug purposes.
Change-ID: Ie3c4cf8cebabee4f15e1e3fdc4fc8a68bbca40ee
Signed-off-by: Neerav Parikh <neerav.parikh@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit b8262a6dfad8825e0b117fe5e3a1715a585bbd79
Author: Anjali Singhai Jain <anjali.singhai@xxxxxxxxx>
Date: Fri Jul 10 19:36:08 2015 -0400
i40e/i40evf: add VIRTCHNL_VF_OFFLOAD flag
Add virtual channel offload capability to support RX polling mode in the
VF.
Change-ID: Ib643ae2a7506dfc75fc489fc207493fabefa4832
Signed-off-by: Jingjing Wu <jingjing.wu@xxxxxxxxx>
Signed-off-by: Anjali Singhai Jain <anjali.singhai@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 2b20c88397fde2902c7834bb9e3ef8afc0237306
Author: Greg Rose <gregory.v.rose@xxxxxxxxx>
Date: Fri Jul 10 19:36:07 2015 -0400
i40e: Remove redundant and unneeded messages
The kernel notifies all VXLAN capable registered drivers, i.e. any
driver that implements ndo_add_vxlan_port(), of the addition of a
port so that the driver can track which ports are in use. There's
no need to log this - it just fills the system log with useless and
irksome noise.
Also, when failing to init SR-IOV interfaces the driver was printing the
same message twice. Just remove the inner printk and let the outer message
catch enable as well as the other failures.
Change-ID: Id5ecb1d425c2a357ee2bc1635dab24553831dade
Signed-off-by: Greg Rose <gregory.v.rose@xxxxxxxxx>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit e02a7f83d84d0580a62df8d4c4e95cd8791c6645
Author: Anjali Singhai Jain <anjali.singhai@xxxxxxxxx>
Date: Fri Jul 10 19:36:06 2015 -0400
i40evf: Remove PF specific register definitions from the VF
There were quite a few issues when the wrong defines were getting used
in the VF driver. This patch fixes the code where PF driver registers
were getting used for VF driver, and also removes the registers that are
not being used from the VF register file.
Change-ID: If116a9730112950d006eb8ec763998fc914cc839
Signed-off-by: Anjali Singhai Jain <anjali.singhai@xxxxxxxxx>
Acked-by: Mitch Williams <mitch.a.williams@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit b1f3366b86a9e99f4d4d557b02e0f53fa7ccd72c
Author: Anjali Singhai Jain <anjali.singhai@xxxxxxxxx>
Date: Fri Jul 10 19:36:05 2015 -0400
i40evf: Use the correct defines to match the VF registers
Use CTLN1 instead of CTLN for the VF relative register space.
Change-ID: Iefba63faf0307af55fec8dbb64f26059f7d91318
Signed-off-by: Anjali Singhai Jain <anjali.singhai@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit cd494fb4c2ba56dd9bb3919dc55565c2cc1551b6
Author: Mitch Williams <mitch.a.williams@xxxxxxxxx>
Date: Fri Jul 10 19:36:04 2015 -0400
i40e: correct spelling error
Turns out that 'inavlid' is an inavlid spelling for 'invalid'.
Change-ID: Ie1fe2d0f8d1ba75ab880594875ec2e4152a76f61
Signed-off-by: Mitch Williams <mitch.a.williams@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit b4e53f02d7356809acbab673e6c20773cf56dbd6
Author: Greg Rose <gregory.v.rose@xxxxxxxxx>
Date: Fri Jul 10 19:36:03 2015 -0400
i40e: Fix comment for ethtool diagnostic link test
The existing comment is incorrect. Add new comment to point out that the
PF reset does not affect link but if the reset is changed to a different
type that does affect link then the link test would need to be moved to
before the reset.
Change-ID: I28d786f46e9465860babdee61c1dba51016464df
Reported-by: Jeremiah Kyle <jeremiah.kyle@xxxxxxxxx>
Signed-off-by: Greg Rose <gregory.v.rose@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit fe860afb4638f5e62e7d861bfc35a1580fb633bb
Author: Neerav Parikh <neerav.parikh@xxxxxxxxx>
Date: Fri Jul 10 19:36:02 2015 -0400
i40e/i40evf: Add capability to gather VEB per TC stats
This patch adds capability to update per VEB per TC statistics and dump
it via ethtool. It also adds a structure to hold VEB per TC statistics.
The fields can be filled by reading the GLVEBTC_* counters.
Change-ID: I28b4759b9ab6ad5a61f046a1bc9ef6b16fe31538
Signed-off-by: Neerav Parikh <neerav.parikh@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit c2b6bd7e91aad8440a2f55bdbde6f5a8ae19fac5
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 25 21:39:31 2015 +0200
drm/amdgpu: fix wait queue handling in the scheduler
Freeing up a queue after signalling it isn't race free.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit bd755d08709f05a81104e8f81d721b5cc353a2b3
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Aug 24 14:57:26 2015 +0200
drm/amdgpu: remove extra parameters from scheduler callbacks
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Acked-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 510efb2682b35790b2274639ab985fe385bb526a
Author: Greg Rose <gregory.v.rose@xxxxxxxxx>
Date: Fri Jul 10 19:36:01 2015 -0400
i40e: Fix ethtool offline diagnostic with netqueues
Treat netqueues the same way we do virtual functions when someone wants to
run the ethtool offline diagnostic test.
Change-ID: Id48d2b933f1fd0db7be06305a93c6ebe3dc821f5
Signed-off-by: Greg Rose <gregory.v.rose@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 88079006dc412c5d1676f9f6e9c4d72a209eb556
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Aug 24 14:29:40 2015 +0200
drm/amdgpu: wake up scheduler only when neccessary
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Acked-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 062c7fb3ebb42d2a50d4644b3e49e731361e6951
Author: Christian König <christian.koenig@xxxxxxx>
Date: Fri Aug 21 15:46:43 2015 +0200
drm/amdgpu: remove entity idle timeout v2
Removing the entity from scheduling can deadlock the whole system.
Wait forever till the remaining IBs are scheduled.
v2: fix comment as well
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Acked-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx> (v1)
commit 02537d63623ce5281c20d76f1b61797a7836acf4
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 25 15:05:20 2015 +0200
drm/amdgpu: fix postclose order
The context needs to finish before everything else.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Acked-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 26cdc443fd8fccccdfb17fd2845cf9233a995325
Author: Anjali Singhai Jain <anjali.singhai@xxxxxxxxx>
Date: Fri Jul 10 19:36:00 2015 -0400
i40e: Fix legacy interrupt mode in the driver
This patch fixes the driver flow to take into account legacy interrupts.
Over time we added code that assumes MSIX is the only mode that the
driver runs in. It also enables a legacy workaround to trigger SWINT
when the TX ring has non-cache aligned descriptors pending and interrupts
are disabled.
We work with a single vector in MSI mode too, so apply the same
restrictions as Legacy.
Change-ID: I826ddff1f9bd45d2dbe11f56a3ddcef0dbf42563
Signed-off-by: Anjali Singhai Jain <anjali.singhai@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit c7ae72c01be10f539f385f624713f8ba0aa11a8f
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Aug 25 17:23:45 2015 +0800
drm/amdgpu: use IB for copy buffer of eviction
This aids handling buffers moves with the scheduler.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 113cd9dacbad4906e1c8db09233b9fdcb002f80d
Author: Junwei Zhang <Jerry.Zhang@xxxxxxx>
Date: Wed Aug 26 09:34:59 2015 +0800
drm/amdgpu: adjust the judgement of removing fence callback
The fence in the array may be skipped if wait_all is false,
thus the related callback is not initialized with list head.
So removing this kind callback will cause NULL pointer reference.
Signed-off-by: Junwei Zhang <Jerry.Zhang@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 02b42498f383a6c24f7c751d4fe89a911a249242
Author: Catherine Sullivan <catherine.sullivan@xxxxxxxxx>
Date: Fri Jul 10 19:35:59 2015 -0400
i40e: Move function calls to i40e_shutdown instead of i40e_suspend
We should be stopping the service task and flow director on
shutdown not on suspension.
Signed-off-by: Catherine Sullivan <catherine.sullivan@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 9f7c94487197df9aaca172027419af57e5dc7d6f
Author: Shannon Nelson <shannon.nelson@xxxxxxxxx>
Date: Fri Jul 10 19:35:57 2015 -0400
i40e: add RX to port CRC errors label
The port.crc_errors is really an RX counter, so let's mark it as such.
Change-ID: I179afd3f8a95d45229bb4163a6aeb01f0d2d250b
Signed-off-by: Shannon Nelson <shannon.nelson@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit ecbb44e8f81b860ef279b0f176a878da9ebd614e
Author: Mitch Williams <mitch.a.williams@xxxxxxxxx>
Date: Fri Jul 10 19:35:56 2015 -0400
i40e: don't degrade __le16
Sparse cries when we compare an __le16 to a u16, almost like it cares
about architectures other than x86. Weird. Use the le16_to_cpu macro to
make it stop crying.
Change-ID: Id068f4d7868a2d3df234a791a76d15938f37db35
Signed-off-by: Mitch Williams <mitch.a.williams@xxxxxxxxx>
Tested-by: Andrew Bowers <andrewx.bowers@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 66bc2f51ef7deabc8b8f3baa98ae64b65e5e973a
Author: Stefan Assmann <sassmann@xxxxxxxxx>
Date: Wed Aug 26 13:11:49 2015 -0700
Input: psmouse - add small delay for IBM trackpoint pass-through mode
There are trackpoint devices that fail to respond to the PS2 command
PSMOUSE_CMD_GETID if immediately queried after the parent device is
deactivated. Add a small delay for the hardware to get in a sane state
before sending any PS2 commands.
One example of such a system is:
Lenovo ThinkPad X120e, model 30515QG
synaptics: Touchpad model: 1, fw: 8.0, id: 0x1e2b1, caps:
0xd001a3/0x940300/0x121c00, board id: 1811, fw id: 797391
Signed-off-by: Stefan Assmann <sassmann@xxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit a5e090acbf545c0a3b04080f8a488b17ec41fe02
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Wed Aug 19 20:40:41 2015 +0100
ARM: software-based priviledged-no-access support
Provide a software-based implementation of the priviledged no access
support found in ARMv8.1.
Userspace pages are mapped using a different domain number from the
kernel and IO mappings. If we switch the user domain to "no access"
when we enter the kernel, we can prevent the kernel from touching
userspace.
However, the kernel needs to be able to access userspace via the
various user accessor functions. With the wrapping in the previous
patch, we can temporarily enable access when the kernel needs user
access, and re-disable it afterwards.
This allows us to trap non-intended accesses to userspace, eg, caused
by an inadvertent dereference of the LIST_POISON* values, which, with
appropriate user mappings setup, can be made to succeed. This in turn
can allow use-after-free bugs to be further exploited than would
otherwise be possible.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 2190fed67ba6f3e8129513929f2395843645e928
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Aug 20 10:32:02 2015 +0100
ARM: entry: provide uaccess assembly macro hooks
Provide hooks into the kernel entry and exit paths to permit control
of userspace visibility to the kernel. The intended use is:
- on entry to kernel from user, uaccess_disable will be called to
disable userspace visibility
- on exit from kernel to user, uaccess_enable will be called to
enable userspace visibility
- on entry from a kernel exception, uaccess_save_and_disable will be
called to save the current userspace visibility setting, and disable
access
- on exit from a kernel exception, uaccess_restore will be called to
restore the userspace visibility as it was before the exception
occurred.
These hooks allows us to keep userspace visibility disabled for the
vast majority of the kernel, except for localised regions where we
want to explicitly access userspace.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit aa06e5c1f9c2b466712be904cc5b56a813e24cfd
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Wed Aug 26 20:07:25 2015 +0100
ARM: entry: get rid of multiple macro definitions
The following structure is just asking for trouble:
#ifdef CONFIG_symbol
.macro foo
...
.endm
.macro bar
...
.endm
.macro baz
...
.endm
#else
.macro foo
...
.endm
.macro bar
...
.endm
#ifdef CONFIG_symbol2
.macro baz
...
.endm
#else
.macro baz
...
.endm
#endif
#endif
such as one defintion being updated, but the other definitions miss out.
Where the contents of a macro needs to be conditional, the hint is in
the first clause of this very sentence. "contents" "conditional". Not
multiple separate definitions, especially not when much of the macro
is the same between different configs.
This patch fixes this bad style, which had caused the Thumb2 code to
miss-out on the uaccess updates.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 19b2c30d3cce928010138cae4b9e57c388aa065c
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Wed Aug 26 20:34:48 2015 +0800
f2fs: update extent tree in batches
This patch introduce a new helper f2fs_update_extent_tree_range which can
do extent mapping update at a specified range.
The main idea is:
1) punch all mapping info in extent node(s) which are at a specified
range;
2) try to merge new extent mapping with adjacent node, or failing that,
insert the mapping into extent tree as a new node.
In order to see the benefit, I add a function for stating time stamping
count as below:
uint64_t rdtsc(void)
{
uint32_t lo, hi;
__asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi));
return (uint64_t)hi << 32 | lo;
}
My test environment is: ubuntu, intel i7-3770, 16G memory, 256g micron
ssd.
truncation path: update extent cache from truncate_data_blocks_range
non-truncataion path: update extent cache from other paths
total: all update paths
a) Removing 128MB file which has one extent node mapping whole range of
file:
1. dd if=/dev/zero of=/mnt/f2fs/128M bs=1M count=128
2. sync
3. rm /mnt/f2fs/128M
Before:
total count average
truncation: 7651022 32768 233.49
Patched:
total count average
truncation: 3321 33 100.64
b) fsstress:
fsstress -d /mnt/f2fs -l 5 -n 100 -p 20
Test times: 5 times.
Before:
total count average
truncation: 5812480.6 20911.6 277.95
non-truncation: 7783845.6 13440.8 579.12
total: 13596326.2 34352.4 395.79
Patched:
total count average
truncation: 1281283.0 3041.6 421.25
non-truncation: 7355844.4 13662.8 538.38
total: 8637127.4 16704.4 517.06
1) For the updates in truncation path:
- we can see updating in batches leads total tsc and update count
reducing
explicitly;
- besides, for a single batched updating, punching multiple extent nodes
in a loop, result in executing more operations, so our average tsc
increase intensively.
2) For the updates in non-truncation path:
- there is a little improvement, that is because for the scenario that we
just need to update in the head or tail of extent node, new interface
optimize to update info in extent node directly, rather than removing
original extent node for updating and then inserting that updated one
into cache as new node.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 1b383bf912b25029fb180cf2cf8f33f90d6cf97f
Merge: 1afe839 d332881
Author: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
Date: Wed Aug 26 20:33:58 2015 +0200
Merge tag 'ipvs2-for-v4.3' of
https://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs-next
Simon Horman says:
====================
Second Round of IPVS Updates for v4.3
I realise these are a little late in the cycle, so if you would prefer
me to repost them for v4.4 then just let me know.
The updates include:
* A new scheduler from Raducu Deaconu
* Enhanced configurability of the sync daemon from Julian Anastasov
====================
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit d31ff5f7f3b142b8d1ebb3da89187c54cdf2bc71
Author: Damien.Horsley <Damien.Horsley@xxxxxxxxxx>
Date: Wed Aug 26 17:11:40 2015 +0100
clk: pistachio: correct critical clock list
Current critical clock list for pistachio enables
only mips and sys clocks by default but there are
also other clocks that are not claimed by anyone and
needs to be enabled by default.
This patch updates the critical clocks that need
to be enabled by default.
Add a separate struct to distinguish the critical clocks
as listed:
1.) core clocks:
a.) mips clock
2.) peripheral system clocks:
a.) sys clock
b.) sys_bus clock
c.) DDR clock
d.) ROM clock
Fixes: b35d7c33419c("CLK: Pistachio: Register core clocks")
Cc: <stable@xxxxxxxxxxxxxxx> # 4.1
Reviewed-by: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Signed-off-by: Damien.Horsley <Damien.Horsley@xxxxxxxxxx>
Signed-off-by: Govindraj Raja <govindraj.raja@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 7937c6c57e0da7bffa7b10bac23f230c77523e35
Author: Zdenko Pulitika <zdenko.pulitika@xxxxxxxxxx>
Date: Wed Aug 26 17:11:39 2015 +0100
clk: pistachio: Fix PLL rate calculation in integer mode
.recalc_rate callback for the fractional PLL doesn't take operating
mode into account when calculating PLL rate. This results in
the incorrect PLL rates when PLL is operating in integer mode.
Operating mode of fractional PLL is based on the value of the
fractional divider. Currently it assumes that the PLL will always
be configured in fractional mode which may not be
the case. This may result in the wrong output frequency.
Also vco was calculated based on the current operating mode which
makes no sense because .set_rate is setting operating mode. Instead,
vco should be calculated using PLL settings that are about to be set.
Fixes: 43049b0c83f17("CLK: Pistachio: Add PLL driver")
Cc: <stable@xxxxxxxxxxxxxxx> # 4.1
Reviewed-by: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Signed-off-by: Zdenko Pulitika <zdenko.pulitika@xxxxxxxxxx>
Signed-off-by: Govindraj Raja <govindraj.raja@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit e53f21c761d141bbcbce06e9ddab3b4e0a828f2c
Author: Zdenko Pulitika <zdenko.pulitika@xxxxxxxxxx>
Date: Wed Aug 26 17:11:38 2015 +0100
clk: pistachio: Fix override of clk-pll settings from boot loader
PLL enable callbacks are overriding PLL mode (int/frac) and
Noise reduction (on/off) settings set by the boot loader which
results in the incorrect clock rate.
PLL mode and noise reduction are defined by the DSMPD and DACPD bits
of the PLL control register. PLL .enable() callbacks enable PLL
by deasserting all power-down bits of the PLL control register,
including DSMPD and DACPD bits, which is not necessary since
these bits don't actually enable/disable PLL.
This commit fixes the problem by removing DSMPD and DACPD bits
from the "PLL enable" mask.
Fixes: 43049b0c83f17("CLK: Pistachio: Add PLL driver")
Cc: <stable@xxxxxxxxxxxxxxx> # 4.1
Reviewed-by: Andrew Bresitcker <abrestic@xxxxxxxxxxxx>
Signed-off-by: Zdenko Pulitika <zdenko.pulitika@xxxxxxxxxx>
Signed-off-by: Govindraj Raja <govindraj.raja@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 093affb009a3d87848e51217cd1a06ce1135633f
Author: Zdenko Pulitika <zdenko.pulitika@xxxxxxxxxx>
Date: Wed Aug 26 17:11:37 2015 +0100
clk: pistachio: Fix 32bit integer overflows
This commit fixes 32bit integer overflows throughout the pll driver
(i.e. wherever the result of integer multiplication may exceed the
range of u32).
One of the functions affected by this problem is .recalc_rate. It
returns incorrect rate for some pll settings (not for all though)
which in turn results in the incorrect rate setup of pll's child
clocks.
Fixes: 43049b0c83f17("CLK: Pistachio: Add PLL driver")
Cc: <stable@xxxxxxxxxxxxxxx> # 4.1
Reviewed-by: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Signed-off-by: Zdenko Pulitika <zdenko.pulitika@xxxxxxxxxx>
Signed-off-by: Govindraj Raja <govindraj.raja@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 1afe839e6b31a85fc53adbf8757d6373908d414d
Author: Andreas Herz <andi@xxxxxxxxxxxxxxx>
Date: Fri Aug 21 11:31:32 2015 +0200
netfilter: ip6t_REJECT: added missing icmpv6 codes
RFC 4443 added two new codes values for ICMPv6 type 1:
5 - Source address failed ingress/egress policy
6 - Reject route to destination
And RFC 7084 states in L-14 that IPv6 Router MUST send ICMPv6 Destination
Unreachable with code 5 for packets forwarded to it that use an address
from a prefix that has been invalidated.
Codes 5 and 6 are more informative subsets of code 1.
Signed-off-by: Andreas Herz <andi@xxxxxxxxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit 8c5bbe77d4cd012668cdaf501bbd1cbfb9ad1d24
Merge: dc8242f cff8245
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Wed Aug 26 11:01:45 2015 -0700
Merge branch 'act_bpf_lockless'
Alexei Starovoitov says:
====================
act_bpf: remove spinlock in fast path
v1 version had a race condition in cleanup path of bpf_prog.
I tried to fix it by adding new callback 'cleanup_rcu' to 'struct
tcf_common'
and call it out of act_api cleanup path, but Daniel noticed
(thanks for the idea!) that most of the classifiers already do action
cleanup
out of rcu callback.
So instead this set of patches converts tcindex and rsvp classifiers to
call
tcf_exts_destroy() after rcu grace period and since action cleanup logic
in __tcf_hash_release() is only called when bind and refcnt goes to zero,
it's guaranteed that cleanup() callback is called from rcu callback.
More specifically:
patches 1 and 2 - simple fixes
patches 2 and 3 - convert tcf_exts_destroy in tcindex and rsvp to call_rcu
patch 5 - removes spin_lock from act_bpf
The cleanup of actions is now universally done after rcu grace period
and in the future we can drop (now unnecessary) call_rcu from
tcf_hash_destroy()
patch 5 is using synchronize_rcu() in act_bpf replacement path, since it's
very rare and alternative of dynamically allocating 'struct tcf_bpf_cfg'
just
to pass it to call_rcu looks even less appealing.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit cff82457c5584f6a96d2b85d1a88b81ba304a330
Author: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Date: Tue Aug 25 20:06:35 2015 -0700
net_sched: act_bpf: remove spinlock in fast path
Similar to act_gact/act_mirred, act_bpf can be lockless in packet
processing
with extra care taken to free bpf programs after rcu grace period.
Replacement of existing act_bpf (very rare) is done with synchronize_rcu()
and final destruction is done from tc_action_ops->cleanup() callback that
is
called from
tcf_exts_destroy()->tcf_action_destroy()->__tcf_hash_release() when
bind and refcnt reach zero which is only possible when classifier is
destroyed.
Previous two patches fixed the last two classifiers (tcindex and rsvp) to
call tcf_exts_destroy() from rcu callback.
Similar to gact/mirred there is a race between prog->filter and
prog->tcf_action. Meaning that the program being replaced may use
previous default action if it happened to return TC_ACT_UNSPEC.
act_mirred race betwen tcf_action and tcfm_dev is similar.
In all cases the race is harmless.
Long term we may want to improve the situation by replacing the whole
tc_action->priv as single pointer instead of updating inner fields one by
one.
Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Acked-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9e528d89154b602209fda2fb92e89927bbffc976
Author: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Date: Tue Aug 25 20:06:34 2015 -0700
net_sched: convert rsvp to call tcf_exts_destroy from rcu callback
Adjust destroy path of cls_rsvp to call tcf_exts_destroy() after
rcu grace period.
Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Acked-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ed7aa879ce1a0ff6468c5a6d3eb4e31169b95c4a
Author: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Date: Tue Aug 25 20:06:33 2015 -0700
net_sched: convert tcindex to call tcf_exts_destroy from rcu callback
Adjust destroy path of cls_tcindex to call tcf_exts_destroy() after
rcu grace period.
Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Acked-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit faa54be4c78da6aa2148c539659867afdecd3e8d
Author: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Date: Tue Aug 25 20:06:32 2015 -0700
net_sched: act_bpf: remove unnecessary copy
Fix harmless typo and avoid unnecessary copy of empty 'prog' into
unused 'strcut tcf_bpf_cfg old'.
Fixes: f4eaed28c783 ("act_bpf: fix memory leaks when replacing bpf
programs")
Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Acked-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3c645621b79828be7a46fb2694eb423b343b4bbe
Author: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Date: Tue Aug 25 20:06:31 2015 -0700
net_sched: make tcf_hash_destroy() static
tcf_hash_destroy() used once. Make it static.
Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Acked-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 30b139dfe0bfa8727ceec2a1d5294766943dcdc8
Author: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Date: Wed Aug 26 14:36:46 2015 +0100
scripts: add extract-cert and sign-file to .gitignore
...so "git status" doesn't nag us about them.
Cc: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Signed-off-by: James Morris <james.l.morris@xxxxxxxxxx>
commit f57ddcdfa146636dbdcd6ac0a6d22c15d47b08c8
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Sun Aug 23 23:32:14 2015 +0800
ASoC: tegra: Use devm_ioremap_resource instead of open code
Use devm_ioremap_resource() to simplify the code.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 63ab645f4d8b2dc1351c41751e7ebb1b3f1c99d3
Author: Stefan Brüns <stefan.bruens@xxxxxxxxxxxxxx>
Date: Sun Aug 23 16:06:30 2015 +0200
spi: check bits_per_word in spi_setup
This allows drivers for devices connected via SPI to check if the
controller supports a given bits_per_word value during setup.
Currently any BPW value is accepted durings setup, and transfers
are rejected later.
Signed-off-by: Stefan Brüns <stefan.bruens@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 5aeeb78aeb4c8607cbda54a7b0dc7315171e214f
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxxx>
Date: Wed Jul 15 10:19:56 2015 +0530
mpt2sas, mpt3sas: Abort initialization if no memory I/O resources detected
Driver crashes if the BIOS do not set up at least one
memory I/O resource. This failure can happen if the device is too
slow to respond during POST and is missed by the BIOS, but Linux
then detects the device later in the boot process.
Based on a patch from Timothy Pearson <tpearson@xxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@xxxxxxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 7d40acc38be55abb095f517e4e3a634818bc5253
Author: Jyri Sarha <jsarha@xxxxxx>
Date: Wed Aug 26 16:11:40 2015 +0300
ASoC: omap-hdmi-audio: Set buffer bytes step constraint to 128
Set buffer bytes step constraint to 128. A matching constraint has
already been set to period size. This helps PCM setup to tolerate ALSA
clients that set the PCM hw params in unusual order.
Signed-off-by: Jyri Sarha <jsarha@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit dc8242f704fee4fddcbebfcc5a4d08526951444a
Author: Valentin Rothberg <valentinrothberg@xxxxxxxxx>
Date: Wed Aug 26 15:36:12 2015 +0200
lib/Makefile: remove CONFIG_AVERAGE build rule
The Kconfig option AVERAGE and its implementation has been removed by
commit f4e774f55fe0 ("average: remove out-of-line implementation").
Remove the dead build rule in lib/Makefile.
Signed-off-by: Valentin Rothberg <valentinrothberg@xxxxxxxxx>
Reviewed-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8d16366b5f23e928e5fd22eaeaceeb0356921fc0
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Thu Jul 9 07:25:46 2015 -0700
qla2xxx: Avoid that sparse complains about context imbalances
Surround conditional locking statements with "#ifndef __CHECKER__" /
"#endif" to hide these for the sparse static source code analysis
tool.
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Acked-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 8a318fe16096a45c03e8c9a39449d1f750fafd27
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Thu Jul 9 07:25:25 2015 -0700
qla2xxx: Remove dead code
The "return QLA_SUCCESS" statement just above the "fw_load_failed"
label cannot be reached, hence remove it. Additionally remove the
"else" keyword since the code block below the if-statement ends
with a return statement.
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Acked-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 82e6afd49d9a5da8cdb648cb66e54432173298d7
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Thu Jul 9 07:25:07 2015 -0700
qla2xxx: Remove a superfluous test
Avoid that smatch reports the following warning:
drivers/scsi/qla2xxx/qla_attr.c:1081: qla2x00_model_desc_show() warn:
this array is probably non-NULL. 'vha->hw->model_desc'
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Acked-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 8dfa4b5a9b44714d7710f9f452f65763629f10df
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Thu Jul 9 07:24:50 2015 -0700
qla2xxx: Fix sparse annotations
This patch removes 21 casts between an __iomem pointer type and
another data type but also introduces five new casts (see also
the casts with "__force"). Although this patch does not change
any functionality, IMHO the code with __force casts needs further
review.
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Acked-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 118e2ef9df2297147706d21d2a1dfeefea878c5a
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Thu Jul 9 07:24:27 2015 -0700
qla2xxx: Avoid that sparse complains about duplicate [noderef] attributes
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Acked-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit ad950360eebb5f5f7610b13cfd08c0185ca3f146
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Thu Jul 9 07:24:08 2015 -0700
qla2xxx: Remove __constant_ prefix
Whether htonl() or __constant_htonl() is used, if the argument
is a constant the conversion happens at compile time. Hence leave
out the __constant_ prefix for this and other endianness
conversion functions. This improves source code readability.
[jejb: checkpatch fixes]
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Acked-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit df3f4cd0defd5f832a806ca1f0dd6638a2df17a5
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Thu Jul 9 07:23:46 2015 -0700
qla2xxx: Replace two macros with an inline function
Replace the QLA82XX_ADDR_IN_RANGE() and QLA8044_ADDR_IN_RANGE() macros
with the inline function addr_in_range(). This avoids that the compiler
reports the following warning when building with W=1: comparison of
unsigned expression >= 0 is always true.
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Acked-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 52c82823cc686d4faf9e9bc4feec4bf48c36fded
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Thu Jul 9 07:23:26 2015 -0700
qla2xxx: Remove set-but-not-used variables
Detected these variables by building with W=1.
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Acked-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 2374dd238c287fb7a370b53aad2dbc4c8f0c241c
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Thu Jul 9 07:23:02 2015 -0700
qla2xxx: Declare local functions static
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Acked-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit c3ff356d08275960b4a36471a81d5b2685a4074e
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Thu Jul 9 07:22:38 2015 -0700
qla2xxx: Report both rsp_info and rsp_info_len
Let the debug statement in qlafx00_tm_iocb_entry() report both rsp_info
and rsp_info_len instead of reporting rsp_info_len twice.
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Acked-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit e51e38494a8ecc18650efb0c840600637891de2c
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Thu Aug 20 14:28:48 2015 -0700
Input: synaptics - fix handling of disabling gesture mode
Bit 2 of the mode byte has dual meaning: it can disable reporting of
gestures when touchpad works in Relative mode or normal Absolute mode,
or it can enable so called Extended W-Mode when touchpad uses enhanced
Absolute mode (W-mode). The extended W-Mode confuses our driver and
causes missing button presses on some Thinkpads (x250, T450s), so let's
make sure we do not enable it.
Also, according to the spec W mode "... bit is defined only in Absolute
mode on pads whose capExtended capability bit is set. In Relative mode and
in TouchPads without this capability, the bit is reserved and should be
left at 0.", so let's make sure we respect this requirement as well.
Reported-by: Nick Bowler <nbowler@xxxxxxxxxx>
Suggested-by: Gabor Balla <gaborwho@xxxxxxxxx>
Tested-by: Gabor Balla <gaborwho@xxxxxxxxx>
Tested-by: Nick Bowler <nbowler@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 3fffd12839273429a185d68431f117f0a3654b07
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Mon Aug 17 23:52:51 2015 -0700
i2c: allow specifying separate wakeup interrupt in device tree
Instead of having each i2c driver individually parse device tree data in
case it or platform supports separate wakeup interrupt, and handle
enabling and disabling wakeup interrupts in their power management
routines, let's have i2c core do that for us.
Platforms wishing to specify separate wakeup interrupt for the device
should use named interrupt syntax in their DTSes:
interrupt-parent = <&intc1>;
interrupts = <5 0>, <6 0>;
interrupt-names = "irq", "wakeup";
This patch is inspired by work done by Vignesh R <vigneshr@xxxxxx> for
pixcir_i2c_ts driver.
Note that the original code tried to preserve any existing wakeup
settings from userspace but was not quite right in that regard:
it would preserve wakeup flag set by userspace upon driver rebinding;
but it would re-arm the wakeup flag if it was disabled by userspace.
We think that resetting the flag upon re-binding the driver is proper
behavior as the driver is responsible for setting up and handling
wakeups.
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Tested-by: Vignesh R <vigneshr@xxxxxx>
[wsa: updated the commit message]
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit 6602c452caf532893c1bde50aacda0bd17f958aa
Author: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Date: Tue Aug 25 17:04:02 2015 -0700
of/irq: export of_get_irq_byname()
Similarly to of_get_irq(), let's export of_irq_get_byname(), so if a bus
core
can be compiled as a module (such as I2C) it can have access to the
symbol.
Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Acked-by: Rob Herring <robh@xxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit 1d3f9094c6fdb5680fd3b19a5b153308d53a70ee
Author: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 17 16:13:41 2015 +0200
s390/sclp_vt220: support magic sysrequests
Implement magic sysrequest handling for the VT220 terminal (also known as
the Integrated ASCII console on the HMC/SE).
To invoke a "magic sysrequest" function, press "Ctrl+o" followed by a
second character that designates the debugging function.
The handling of the sysrq is scheduled away from the SCLP IRQ context;
because large amounts of sysrq output might fill up the console buffers.
The console might deadlock because it cannot empty the buffers while still
in the receiving IRQ context. This behavior is the same as for the SCLP
console.
Reported-by: Horst Weber <hweber@xxxxxxxxxx>
Signed-off-by: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Peter Oberparleiter <oberpar@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit ab7373bf235ede864a72f0d2f8f9a21a1748c4a2
Author: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 17:42:39 2015 +0200
s390/ctrlchar: improve handling of magic sysrequests
Extract the sysrq handling from the ctrlchar_handle() into a separate
function that can be directly used by other users.
Introduce a new sysrq_work structure to embed the work_struct and to
specify the magic sysrq function to be invoked.
Signed-off-by: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit de9c35f32410c225c585535a321ce591ea001645
Author: Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 21 19:29:33 2015 +0200
s390/numa: remove superfluous ARCH_WANT defines
The NUMA system call "__ARCH_WANT" defines are not used by the
Linux kernel, therefore remove them.
Fixes: 9df62adffeb0 ("s390/numa: add core infrastructure")
Signed-off-by: Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 05bfd70bcdd3cd12c061cb77b73a11ba6f87379d
Author: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Date: Wed Aug 19 16:50:10 2015 +0200
s390/3270: redraw screen on unsolicited device end
If a 3270 terminal is disconnected and later reconnected again,
it gets an unsolicited device end. This is currently ignored and
you have to hit the clear key to get the screen redrawn.
Add an automatic full redraw of the screen for this case.
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit e19b127f5b76ec03b9c52b64f117dc75bb39eda1
Author: Alok Pandey <pandey.alok@xxxxxxxxxxx>
Date: Wed Aug 26 08:56:14 2015 -0600
NVMe: Using PRACT bit to generate and verify PI by controller
This patch enables the PRCHK and reftag support when PRACT bit is set, and
block layer integrity is disabled.
Signed-off-by: Alok Pandey <pandey.alok@xxxxxxxxxxx>
Reviewed-by: Keith Busch <keith.busch@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 2d3a5d215e24d9bfb822ae82c6c2c5d333be076d
Author: Johannes Thumshirn <jthumshirn@xxxxxxx>
Date: Wed Jul 8 17:24:01 2015 +0200
st: Destroy st_index_idr on module exit
Destroy st_index_idr on module exit, reclaiming the allocated memory.
This was detected by the following semantic patch (written by Luis
Rodriguez
<mcgrof@xxxxxxxx>)
<SmPL>
@ defines_module_init @
declarer name module_init, module_exit;
declarer name DEFINE_IDR;
identifier init;
@@
module_init(init);
@ defines_module_exit @
identifier exit;
@@
module_exit(exit);
@ declares_idr depends on defines_module_init && defines_module_exit @
identifier idr;
@@
DEFINE_IDR(idr);
@ on_exit_calls_destroy depends on declares_idr && defines_module_exit @
identifier declares_idr.idr, defines_module_exit.exit;
@@
exit(void)
{
...
idr_destroy(&idr);
...
}
@ missing_module_idr_destroy depends on declares_idr &&
defines_module_exit && !on_exit_calls_destroy @
identifier declares_idr.idr, defines_module_exit.exit;
@@
exit(void)
{
...
+idr_destroy(&idr);
}
</SmPL>
Signed-off-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Acked-by: Kai Mäkisara <kai.makisara@xxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit da0dc9fb4e6b0ad5a947c27a3c48985f6a2377eb
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Tue Jul 7 15:52:45 2015 -0500
megaraid_sas: fix whitespace errors
Fix whitespace and indentation errors. No code change.
[jejb: checkpatch fixes]
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Acked-by: Sumit Saxena <sumit.saxena@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 1be1825453f6d75ea9c9ea0c8549ca481d94a7ab
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Tue Jul 7 15:52:34 2015 -0500
megaraid_sas: use dev_printk when possible
Use dev_printk() when possible to make messages more useful.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Acked-by: Sumit Saxena <sumit.saxena@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 3b8a1ba378b7502c7206ab3da5ea484a132ad30c
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Tue Jul 7 15:52:25 2015 -0500
megaraid : use dev_printk when possible
Use dev_printk() when possible to make messages more useful.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Acked-by: Sumit Saxena <sumit.saxena@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 14c3e677df9fa2e4bf87b9de683452fc140934b2
Author: Hannes Reinecke <hare@xxxxxxx>
Date: Mon Jul 6 13:41:53 2015 +0200
scsi: Add ALUA state change UA handling
Log the ALUA state change unit attention correctly with
the message log and emit an event to allow user-space
tools to react to it.
Signed-off-by: Hannes Reinecke <hare@xxxxxxx>
Reviewed-by: Ewan D. Milne <emilne@xxxxxxxxxx>
Reviewed-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 0662292aec0528363df037ad7c66bf9949c7ce46
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Wed Aug 26 10:23:26 2015 +0200
ALSA: usb-audio: Handle normal and auto-suspend equally
In theory, the device may get suspended even at runtime PM suspend.
Currently we don't save the mixer state for autopm, and it may bring
inconsistency.
This patch removes the special handling for autosuspend.
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit e819cdb198319cccf4af4fc12ac4d796109d8c23
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Fri Jul 3 11:53:03 2015 +0300
mptfusion: prevent some memory corruption
These are signed values the come from the user, we put a cap on the
upper bounds but not on the lower bounds.
We use "karg.dataSgeOffset" to calculate "sz". We verify "sz" and
proceed as if that means that "karg.dataSgeOffset" is correct but this
fails to consider that the "sz" calculations can have integer overflows.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit a2fb3382edbea83c6f2bf6ac15e3673b2e254aad
Author: Wang Nan <wangnan0@xxxxxxxxxx>
Date: Wed Aug 26 10:57:46 2015 +0000
tracing/uprobes: Do not print '0x (null)' when offset is 0
When manually added uprobe point with zero address, 'uprobe_events'
output '(null)' instead of 0x00000000:
# echo p:probe_libc/abs_0 /path/to/lib.bin:0x0 arg1=%ax > \
/sys/kernel/debug/tracing/uprobe_events
# cat /sys/kernel/debug/tracing/uprobe_events
p:probe_libc/abs_0 /path/to/lib.bin:0x (null) arg1=%ax
This patch fixes this behavior:
# cat /sys/kernel/debug/tracing/uprobe_events
p:probe_libc/abs_0 /path/to/lib.bin:0x0000000000000000
Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Zefan Li <lizefan@xxxxxxxxxx>
Cc: pi3orama@xxxxxxx
Link:
http://lkml.kernel.org/r/1440586666-235233-8-git-send-email-wangnan0@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit da15bd9df4afd2f9f78cf29f85f013e3a38402b5
Author: Wang Nan <wangnan0@xxxxxxxxxx>
Date: Wed Aug 26 10:57:45 2015 +0000
perf probe: Support probing at absolute address
It should be useful to allow 'perf probe' probe at absolute offset of a
target. For example, when (u)probing at a instruction of a shared object
in a embedded system where debuginfo is not avaliable but we know the
offset of that instruction by manually digging.
This patch enables following perf probe command syntax:
# perf probe 0xffffffff811e6615
And
# perf probe /lib/x86_64-linux-gnu/libc-2.19.so 0xeb860
In the above example, we don't need a anchor symbol, so it is possible
to compute absolute addresses using other methods and then use 'perf
probe' to create the probing points.
v1 -> v2:
Drop the leading '+' in cmdline;
Allow uprobing at offset 0x0;
Improve 'perf probe -l' result when uprobe at area without debuginfo.
v2 -> v3:
Split bugfix to a separated patch.
Test result:
# perf probe 0xffffffff8119d175 %ax
# perf probe sys_write %ax
# perf probe /lib64/libc-2.18.so 0x0 %ax
# perf probe /lib64/libc-2.18.so 0x5 %ax
# perf probe /lib64/libc-2.18.so 0xd8e40 %ax
# perf probe /lib64/libc-2.18.so __write %ax
# perf probe /lib64/libc-2.18.so 0xd8e49 %ax
# cat /sys/kernel/debug/tracing/uprobe_events
p:probe_libc/abs_0 /lib64/libc-2.18.so:0x (null) arg1=%ax
p:probe_libc/abs_5 /lib64/libc-2.18.so:0x0000000000000005 arg1=%ax
p:probe_libc/abs_d8e40 /lib64/libc-2.18.so:0x00000000000d8e40 arg1=%ax
p:probe_libc/__write /lib64/libc-2.18.so:0x00000000000d8e40 arg1=%ax
p:probe_libc/abs_d8e49 /lib64/libc-2.18.so:0x00000000000d8e49 arg1=%ax
# cat /sys/kernel/debug/tracing/kprobe_events
p:probe/abs_ffffffff8119d175 0xffffffff8119d175 arg1=%ax
p:probe/sys_write _text+1692016 arg1=%ax
# perf probe -l
Failed to find debug information for address 5
probe:abs_ffffffff8119d175 (on sys_write+5 with arg1)
probe:sys_write (on sys_write with arg1)
probe_libc:__write (on @unix/syscall-template.S:81 in
/lib64/libc-2.18.so with arg1)
probe_libc:abs_0 (on 0x0 in /lib64/libc-2.18.so with arg1)
probe_libc:abs_5 (on 0x5 in /lib64/libc-2.18.so with arg1)
probe_libc:abs_d8e40 (on @unix/syscall-template.S:81 in
/lib64/libc-2.18.so with arg1)
probe_libc:abs_d8e49 (on __GI___libc_write+9 in /lib64/libc-2.18.so
with arg1)
Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Zefan Li <lizefan@xxxxxxxxxx>
Cc: pi3orama@xxxxxxx
Link:
http://lkml.kernel.org/r/1440586666-235233-7-git-send-email-wangnan0@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 6c6e024f0a62a6a08c06002fd3caa2307cc54fd0
Author: Wang Nan <wangnan0@xxxxxxxxxx>
Date: Wed Aug 26 10:57:44 2015 +0000
perf probe: Fix error reported when offset without function
This patch fixes a bug that, when offset is provided but function is
lost, parse_perf_probe_point() will give a "" string as function name,
so the checking code at the end of parse_perf_probe_point() become
useless. For example:
# perf probe +0x1234
Failed to find symbol in kernel
Error: Failed to add events.
After this patch:
# perf probe +0x1234
Semantic error :Offset requires an entry function.
Error: Command Parse Error.
Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Zefan Li <lizefan@xxxxxxxxxx>
Cc: pi3orama@xxxxxxx
Link:
http://lkml.kernel.org/r/1440586666-235233-6-git-send-email-wangnan0@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit a6da499b76b1a75412f047ac388e9ffd69a5c55b
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Wed Aug 26 10:20:59 2015 +0200
ALSA: usb-audio: Replace probing flag with active refcount
We can use active refcount for preventing autopm during probe.
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit be07afe92a09638db9159d2c0794487d66a437a2
Author: Wang Nan <wangnan0@xxxxxxxxxx>
Date: Wed Aug 26 10:57:43 2015 +0000
perf probe: Fix list result when address is zero
When manually added uprobe point with zero address, 'perf probe -l'
reports error. For example:
# echo p:probe_libc/abs_0 /path/to/lib.bin:0x0 arg1=%ax > \
/sys/kernel/debug/tracing/uprobe_events
# perf probe -l
Error: Failed to show event list.
Probing at 0x0 is possible and useful when lib.bin is not a normal
shared object but is manually mapped. However, in this case kernel
report:
# cat /sys/kernel/debug/tracing/uprobe_events
p:probe_libc/abs_0 /path/to/lib.bin:0x (null) arg1=%ax
This patch supports the above kernel output.
Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Zefan Li <lizefan@xxxxxxxxxx>
Cc: pi3orama@xxxxxxx
Link:
http://lkml.kernel.org/r/1440586666-235233-5-git-send-email-wangnan0@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 47ab154593827b1a8f0713a2b9dd445753d551d8
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Tue Aug 25 16:09:00 2015 +0200
ALSA: usb-audio: Avoid nested autoresume calls
After the recent fix of runtime PM for USB-audio driver, we got a
lockdep warning like:
=============================================
[ INFO: possible recursive locking detected ]
4.2.0-rc8+ #61 Not tainted
---------------------------------------------
pulseaudio/980 is trying to acquire lock:
(&chip->shutdown_rwsem){.+.+.+}, at: [<ffffffffa0355dac>]
snd_usb_autoresume+0x1d/0x52 [snd_usb_audio]
but task is already holding lock:
(&chip->shutdown_rwsem){.+.+.+}, at: [<ffffffffa0355dac>]
snd_usb_autoresume+0x1d/0x52 [snd_usb_audio]
This comes from snd_usb_autoresume() invoking down_read() and it's
used in a nested way. Although it's basically safe, per se (as these
are read locks), it's better to reduce such spurious warnings.
The read lock is needed to guarantee the execution of "shutdown"
(cleanup at disconnection) task after all concurrent tasks are
finished. This can be implemented in another better way.
Also, the current check of chip->in_pm isn't good enough for
protecting the racy execution of multiple auto-resumes.
This patch rewrites the logic of snd_usb_autoresume() & co; namely,
- The recursive call of autopm is avoided by the new refcount,
chip->active. The chip->in_pm flag is removed accordingly.
- Instead of rwsem, another refcount, chip->usage_count, is introduced
for tracking the period to delay the shutdown procedure. At
the last clear of this refcount, wake_up() to the shutdown waiter is
called.
- The shutdown flag is replaced with shutdown atomic count; this is
for reducing the lock.
- Two new helpers are introduced to simplify the management of these
refcounts; snd_usb_lock_shutdown() increases the usage_count, checks
the shutdown state, and does autoresume. snd_usb_unlock_shutdown()
does the opposite. Most of mixer and other codes just need this,
and simply returns an error if it receives an error from lock.
Fixes: 9003ebb13f61 ('ALSA: usb-audio: Fix runtime PM unbalance')
Reported-and-tested-by: Alexnader Kuleshov <kuleshovmail@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 614e2fdbd79b47ddf63a1ccd3f2343e98c3077fb
Author: Wang Nan <wangnan0@xxxxxxxxxx>
Date: Wed Aug 26 10:57:42 2015 +0000
perf probe: Fix list result when symbol can't be found
'perf probe -l' reports error if it is unable find symbol through
address. Here is an example.
# echo 'p:probe_libc/abs_5 /lib64/libc.so.6:0x5' >
/sys/kernel/debug/tracing/uprobe_events
# cat /sys/kernel/debug/tracing/uprobe_events
p:probe_libc/abs_5 /lib64/libc.so.6:0x0000000000000005
# perf probe -l
Error: Failed to show event list
Also, this situation triggers a logical inconsistency in
convert_to_perf_probe_point() that, it returns ENOMEM but actually it
never try strdup().
This patch removes !tp->module && !is_kprobe condition, so it always
uses address to build function name if symbol not found.
Test result:
# perf probe -l
probe_libc:abs_5 (on 0x5 in /lib64/libc.so.6)
Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Zefan Li <lizefan@xxxxxxxxxx>
Cc: pi3orama@xxxxxxx
Link:
http://lkml.kernel.org/r/1440586666-235233-4-git-send-email-wangnan0@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 0bdede8a3e4ff7710622a2e6713d04b3243c24a8
Author: Jiri Olsa <jolsa@xxxxxxxxxx>
Date: Wed Aug 26 15:01:03 2015 +0200
tools build: Allow duplicate objects in the object list
It's sometimes useful to specify the object affiliation to multiple
config options like:
libperf-$(CONFIG_X86) += tsc.o
libperf-$(CONFIG_AUXTRACE) += tsc.o
while the object itself is linked only once. Adding the support for this
and ignoring duplicate objects in the object list.
Suggested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Sukadev Bhattiprolu <sukadev@xxxxxxxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/20150826130103.GF22670@xxxxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 18b9a05868391e8f617febb4528bc1765dc921cf
Author: Jiri Olsa <jolsa@xxxxxxxxxx>
Date: Wed Aug 26 10:07:50 2015 +0200
perf tools: Remove export.h from MANIFEST
We don't carry an export.h wrapper anymore, remove it from the MANIFEST
file to avoid breaking the make perf-tar targets.
Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Sukadev Bhattiprolu <sukadev@xxxxxxxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/20150826080750.GD22670@xxxxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit e486367f0101d43a044404ed2fa35aa043b19667
Author: Wang Nan <wangnan0@xxxxxxxxxx>
Date: Tue Aug 25 13:27:35 2015 +0000
perf probe: Prevent segfault when reading probe point with absolute
address
'perf probe -l' panic if there is a manually inserted probing point with
absolute address. For example:
# echo 'p:probe/abs_ffffffff811e6615 0xffffffff811e6615' >
/sys/kernel/debug/tracing/kprobe_events
# perf probe -l
Segmentation fault (core dumped)
This patch fix this problem by considering the situation that
"tp->symbol == NULL" in find_perf_probe_point_from_dwarf() and
find_perf_probe_point_from_map().
After this patch:
# perf probe -l
probe:abs_ffffffff811e6615 (on SyS_write+5@fs/read_write.c)
And when debug info is missing:
# rm -rf ~/.debug
# mv /lib/modules/4.2.0-rc1+/build/vmlinux
/lib/modules/4.2.0-rc1+/build/vmlinux.bak
# perf probe -l
probe:abs_ffffffff811e6615 (on sys_write+5)
Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: pi3orama@xxxxxxx
Link:
http://lkml.kernel.org/r/1440509256-193590-1-git-send-email-wangnan0@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit c60f99445aed684b5a8d84dcb84f5a06c1f70430
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Sun Jul 12 18:11:20 2015 -0500
MIPS: MT: Remove "weak" from vpe_run() declaration
Weak header file declarations are error-prone because they make every
definition weak, and the linker chooses one based on link order (see
10629d711ed7 ("PCI: Remove __weak annotation from pcibios_get_phb_of_node
decl")).
That's not a problem for vpe_run() because Kconfig ensures there's never
more than one definition:
- vpe_run() is defined in arch/mips/kernel/vpe-mt.c if
CONFIG_MIPS_VPE_LOADER_MT=y
- vpe_run() is defined in arch/mips/mti-malta/malta-amon.c if
CONFIG_MIPS_CMP=y
- CONFIG_MIPS_VPE_LOADER_MT cannot be set if CONFIG_MIPS_CMP=y
But it's simpler to verify correctness if we remove "weak" from the
picture
and test the config symbols directly.
Remove "weak" from the vpe_run() declaration and use #if to test whether a
definition should be present.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10684/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 1c205b9cc6f66c5caa91fa2644dcf75254c3bfe1
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Sun Jul 12 18:11:12 2015 -0500
MIPS: VPE: Exit vpe_release() early if vpe_run() isn't defined
vpe_run() is a weak symbol. If there's no definition of it, its value is
zero.
If vpe_run is zero, return failure early. We're going to fail anyway, so
there's no point in getting a VPE and attempting to load it.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10683/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 27d8d449ba7c553e9e004aaa07b225625b20fd2d
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Sun Jul 12 18:11:04 2015 -0500
MIPS: Remove "weak" from platform_maar_init() declaration
Weak header file declarations are error-prone because they make every
definition weak, and the linker chooses one based on link order (see
10629d711ed7 ("PCI: Remove __weak annotation from pcibios_get_phb_of_node
decl")).
platform_maar_init() is defined in:
- arch/mips/mm/init.c (where it is marked "weak")
- arch/mips/mti-malta/malta-memory.c (without annotation)
The "weak" attribute on the platform_maar_init() extern declaration
applies
to the platform-specific definition in arch/mips/mti-malta/malta-memory.c,
so both definitions are weak, and which one we get depends on link order.
Remove the "weak" attribute from the declaration. That makes the malta
definition strong, so it will always be preferred if it is present.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
CC: linux-mips@xxxxxxxxxxxxxx
Reviewed-by: James Hogan <james.hogan@xxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10682/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 8dedde6b289c51ba216fdf5467fc85a673775489
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Sun Jul 12 18:10:56 2015 -0500
MIPS: CPC: Remove "weak" from mips_cpc_phys_base() and make it static
There's only one implementation of mips_cpc_phys_base(), and it's only
used
within the same file, so it doesn't need to be weak, and it doesn't need
an
extern declaration.
Remove the extern mips_cpc_phys_base() declaration and make it static.
[ralf@xxxxxxxxxxxxxx: Fixed conflict.]
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
CC: linux-mips@xxxxxxxxxxxxxx
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: James Hogan <james.hogan@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10681/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 9b4685de77afd688407fd56cc350083a0a6a0516
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 13 17:14:22 2015 +0100
MIPS: Drop CONFIG_RUNTIME_DEBUG & debug.h
The debug.h header provided some MIPS-specific debug macros, which are
no longer used at all. Remove them.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10693/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 2dca88da835616c3c65d1e4167288346fd67f02f
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Mon Jul 13 17:14:21 2015 +0100
MIPS: ops-emma2rh: Drop nonsensical db_assert
The db_assert call checks whether the bus_num pointer is non-NULL, but
does so after said pointer has been dereferenced by the assignment on
the previous line. Thus the check is pointless & likely to have been
optimised out by the compiler anyway. The check_args function is static
& only ever called from the local file with bus_num being a pointer to
an on-stack variable, so the check seems somewhat overzealous anyway.
Simply remove it.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10692/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit e51395d2739d0bb4991b6b531e1066475aae9bfd
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Jul 13 20:46:10 2015 +0000
MIPS: rt3883: Prepare rt3883_pci_irq_handler for irq argument removal
The irq argument of most interrupt flow handlers is unused or merily
used instead of a local variable. The handlers which need the irq
argument can retrieve the irq number from the irq descriptor.
Search and update was done with coccinelle and the invaluable help of
Julia Lawall.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10706/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 31429d1a74c01875d7dad72a6a1d75d8eeca2bc6
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Jul 13 20:46:09 2015 +0000
MIPS: netlogic: Prepare ipi handlers for irq argument removal
The irq argument of most interrupt flow handlers is unused or merily
used instead of a local variable. The handlers which need the irq
argument can retrieve the irq number from the irq descriptor.
Search and update was done with coccinelle and the invaluable help of
Julia Lawall.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10705/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 56a86c352b02ce2fe09a72771ef4334632a1f9c1
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Jul 13 20:46:07 2015 +0000
MIPS: octeon: Replace the homebrewn flow handler
The gpio interrupt handling of octeon contains a homebrewn flow
handler which calls either handle_level_irq or handle_edge_irq
depending on the trigger type. Thats an extra conditional and call in
the interrupt handling path. The proper way to handle different types
and therefor different flows is to update the handler in the
irq_set_type() callback.
Remove the extra indirection and add the handler update to
octeon_irq_ciu_gpio_set_type(). At mapping time it defaults to
handle_level_irq which gets updated if the device tree contains a
different trigger type.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: David Daney <david.daney@xxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10704/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 9d9a2fa7dcbd05a1608a6a38b6ec1a092e117c3c
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Jul 13 20:46:06 2015 +0000
MIPS: ath91: Remove pointless irqdisable/enable
The various interrupt flow handlers in ath79 are cascading interrupt
handlers. They all have a disable_irq_nosync()/enable_irq() pair
around the generic_handle_irq() call. The value of this disable/enable
is zero because its a complete noop:
disable_irq_nosync() merily increments the disable count without
actually masking the interrupt. enable_irq() soleley decrements the
disable count without touching the interrupt chip. The interrupt
cannot arrive again because the complete call chain runs with
interrupts disabled.
Remove it.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10703/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit e0288a0a7bb8b28787453cb96f7aad272086def1
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Jul 13 20:46:04 2015 +0000
MIPS: alchemy: Remove pointless irqdisable/enable
bcsr_csc_handler() is a cascading interrupt handler. It has a
disable_irq_nosync()/enable_irq() pair around the generic_handle_irq()
call. The value of this disable/enable is zero because its a complete
noop:
disable_irq_nosync() merily increments the disable count without
actually masking the interrupt. enable_irq() soleley decrements the
disable count without touching the interrupt chip. The interrupt
cannot arrive again because the complete call chain runs with
interrupts disabled.
Remove it.
[ralf@xxxxxxxxxxxxxx: Fold in followup fix from Thomas Gleixner.]
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10702/
Patchwork: https://patchwork.linux-mips.org/patch/10708/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 9154566ee3edd0f6a7aa4ef8bed76d3cd57bcb88
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Jul 13 20:46:02 2015 +0000
MIPS: bcm63xx: Use irq_set_handler_locked()
Use irq_set_handler_locked() as it avoids a redundant lookup of the
irq descriptor.
Search and replacement was done with coccinelle.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: Julia Lawall <julia.lawall@xxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10701/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 5a06545008514ce4b9315284b4ddff31bfa9d77e
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Jul 13 20:46:01 2015 +0000
MIPS: alchemy: Use irq_set_chip_handler_name_locked()
Hand in irq_data and avoid the redundant lookup of irq_desc.
Originally-from: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10700/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 5c1594224fffccb4adb76fb460871e1047accbbd
Author: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Date: Mon Jul 13 20:45:59 2015 +0000
MIPS: irq: Use access helper irq_data_get_affinity_mask()
This is a preparatory patch for moving irq_data struct members.
Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10699/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 586134a84c0e3e503d2e65a117e2cb06f376aac8
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Jul 13 20:45:58 2015 +0000
MIPS: pci-rt3883: Consolidate chained IRQ handler install/remove
Chained irq handlers usually set up handler data as well. We now have
a function to set both under irq_desc->lock. Replace the two calls
with one.
Search and conversion was done with coccinelle.
Reported-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10698/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 4d3f77d855090e11c9823fcb00864745adaf6fae
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Jul 13 20:45:56 2015 +0000
MIPS: pci-ar724x: Consolidate chained IRQ handler install/remove
Chained irq handlers usually set up handler data as well. We now have
a function to set both under irq_desc->lock. Replace the two calls
with one.
Search and conversion was done with coccinelle.
Reported-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10697/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 777fd18a71866f5057b27535c47c817973293498
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Jul 13 20:45:55 2015 +0000
MIPS: pci-ar71xx: Consolidate chained IRQ handler install/remove
Chained irq handlers usually set up handler data as well. We now have
a function to set both under irq_desc->lock. Replace the two calls
with one.
Search and conversion was done with coccinelle.
Reported-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10696/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit f058dc80d6f964fa466650f74290a964a7f91c92
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Mon Jul 13 20:45:53 2015 +0000
MIPS: jz4740: Consolidate chained IRQ handler install/remove
Chained irq handlers usually set up handler data as well. We now have
a function to set both under irq_desc->lock. Replace the two calls
with one.
Search and conversion was done with coccinelle.
Reported-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Julia Lawall <Julia.Lawall@xxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>
Cc: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Patchwork: https://patchwork.linux-mips.org/patch/10695/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 20a7f7e5a6739a3521529a5f2bbfddf9f545fef9
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:53 2015 +0100
MIPS: Set up FTLB probability for I6400
Set up the I6400 FTLB probability similar to P5600 and proAptiv.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10652/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit e87569cd6c57cfe8c3fbbd20a5cf5cefb8b14156
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:52 2015 +0100
MIPS: cpu-probe: Fix VTLB/FTLB configuration for R6
R6 has dropped the MMUExtDef field from the config4 register and it
now returns 0. However, the return value means nothing in that case
and the only supported configuration for R6 is the VTLB+FTLB
(MMUextDef == 3). As a result, rework the code so that the correct
value is set for R6 cores.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10651/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 912708c26d673f8d043bc4a9552495fefd6ddf18
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:51 2015 +0100
MIPS: Add default case for the FTLB enable/disable code
Add a default case for the FTLB enable/disable code. This will be used
to detect that something went wrong in the set_ftlb_enable() function
either because that function knows nothing about the running core, or
simply because the core can't turn its FTLB on/off.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10650/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit c982c6d6c48b48159db481581cadbb8773219677
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:50 2015 +0100
MIPS: cpu-probe: Remove cp0 hazard barrier when enabling the FTLB
We are so early in the boot process where we really don't want to
stall and wait for CP0 FTLB related changes become visible so just drop
the cp0 hazard barrier.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10649/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 6f50c83529ac1fa3444ff4be5f5b0bf3d76db678
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:49 2015 +0100
IRQCHIP: irq-mips-gic: Add support for CM3 64-bit timer irqs
CM3 uses a 64-bit counter and compare registers so add support for
them in the GIC counter interrupt.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10648/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit c3f57f02e3a275d8b5c6dc692adb21525ccb392c
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Tue Jul 14 10:26:09 2015 +0100
IRQCHIP: irq-mips-gic: Extend GIC accessors for 64-bit CMs
Previously, the GIC accessors were only accessing u32 registers but
newer CMs may actually be 64-bit on MIPS64 cores. As a result of which,
extended these accessors to support 64-bit reads and writes.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10709/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 3885c2b463f6a236e47df22ef13d13433006b951
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:47 2015 +0100
MIPS: CM: Add support for reporting CM cache errors
The CM cache error reporting code is not Malta specific and as such it
should live in the mips-cm.c file. Moreover, CM2 and CM3 differ in the
way cache errors are being recorded to the registers so extend the
previous code to add support for the CM3 as well.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10646/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 391057d915f42d4942f0c65e7d55cec6662c8a54
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:46 2015 +0100
MIPS: CPC: Fix type for GCR CPC base reg for 64-bit
The GCR CPC base register is 64-bit on 64-bit processors so use the
appropriate field.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10645/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 038b0f536e45d85038428d2edc169f1f4089c36d
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:45 2015 +0100
MIPS: CM: The CMGCRBase register is 64-bit on 64 bit kernels.
The CMGCRBase register (CP0, 15, 3) register is 64-bit on MIPS64
so we change its type to unsigned long.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10644/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit c0b584a2691ccbc3c0d4e6cb1874bcf00a921371
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Tue Jul 14 09:14:12 2015 +0100
MIPS: mips-cm: Extend CM accessors for 64-bit CPUs
Previously, the CM accessors were only accessing CM registers as u32
types instead of using the native CM register with. However, newer CMs
may actually be 64-bit on MIPS64 cores. Fortunately, current 64-bit CMs
(CM3) hold all the useful configuration bits in the lower half of the
64-bit registers (at least most of them) so they can still be accessed
using the current 32-bit accessors.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10707/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit c014d164f21dbdbe721a4ec7e5147591c4eed545
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:43 2015 +0100
MIPS: Add platform callback before initializing the L2 cache
Allow platforms to perform platform-specific steps before configuring
the L2 cache. This is necessary for platforms with CM3 since the L2
parameters no longer live in the Config2 register.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10642/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 7d53e9c4cd21cbc82b7422c90852e56baaf7ddae
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Thu Jul 9 10:40:42 2015 +0100
MIPS: CM3: Add support for CM3 L2 cache.
Detect the L2 cache configuration from GCR_L2_CONFIG when a CM3 is
present in the system, rather than from Config2 which does not expose
the L2 configuration on I6400.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10641/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 0ba3c125aa0ff9f993c0f9629945a0dd18d42568
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Thu Jul 9 10:40:40 2015 +0100
MIPS: CM: Add GCR_L2_CONFIG register accessors
Provide accessor functions for the GCR_L2_CONFIG register introduced
with CM3, and define the bits included in the register.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10639/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 197e89e0984a2aaf1a5a998887b22e53051e3b6d
Author: Paul Burton <paul.burton@xxxxxxxxxx>
Date: Fri Jul 10 10:12:52 2015 +0100
MIPS: mips-cm: Implement mips_cm_revision
Provide a function to trivially return the version of the CM present in
the system, or 0 if no CM is present. The mips_cm_revision() will be
used later on to determine the CM register width, so it must not use
the regular CM accessors to read the revision register since that will
lead to build failures due to recursive inlines.
Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx>
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10655/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 5676319c91c8d668635ac0b9b6d9145c4fa418ac
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:38 2015 +0100
MIPS: Kconfig: Disable MIPS MT and SMP implementations for R6
R6 does not support the MIPS MT ASE and the CMP/SMP options so
restrict them in order to prevent users from selecting incompatible
SMP configuration for R6 cores. We also disable the CPS/SMP option
because its support hasn't been added to the CPS code yet.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10637/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit e57f9a2dcedc7f4847799e13a9987874a161d308
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:37 2015 +0100
MIPS: Add MIPS I6400 probe support
Add a case in cpu_probe_mips for the MIPS I6400 processor ID, which sets
the CPU type to the new CPU_I6400.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10636/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 4e88a8621301b992e8e3422e08bfb604772f3338
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:36 2015 +0100
MIPS: Add cases for CPU_I6400
Add a CPU_I6400 case to various switch statements, doing the same thing
as for CPU_P5600.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10635/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 90b8baa2c1acb8c270aa31e75d00b44193fb306f
Author: Markos Chandras <markos.chandras@xxxxxxxxxx>
Date: Thu Jul 9 10:40:35 2015 +0100
MIPS: Add MIPS I6400 PRid and cputype identifiers
Add a Processor ID and CPU type for the MIPS I6400 core.
Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10634/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit 7653716bf989cf8be04c7bedcad6bb201b1df108
Author: Alban Bedel <albeu@xxxxxxx>
Date: Thu Jul 9 10:51:36 2015 +0200
MIPS: ath79: irq: IRQCHIP_DECLARE moved to linux/irqchip.h
Remove the ugly cross tree include now that IRQCHIP_DECLARE moved to
linux/irqchip.h.
Signed-off-by: Alban Bedel <albeu@xxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: Qais Yousef <qais.yousef@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/10633/
Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
commit a0c81ce08791d3892aacba341efa29fadf30beda
Author: Julia Lawall <Julia.Lawall@xxxxxxx>
Date: Sun Aug 23 02:11:22 2015 +0200
gpio: xlp: fix error return code
Return a negative error code on failure.
A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
identifier ret; expression e1,e2;
@@
(
if (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret = 0
)
... when != ret = e1
when != &ret
*if(...)
{
... when != ret = e2
when forall
return ret;
}
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit fd96811576e646011489e38b0594dc017db21971
Author: Stefan Agner <stefan@xxxxxxxx>
Date: Fri Aug 21 15:56:42 2015 -0700
gpio: vf610: handle level IRQ's properly
The GPIO IRQ controller is able to generate level triggered
interrupts, however, these were handled by handle_simple_irq so far
which did not take care of IRQ masking. This lead to "nobody cared
(try booting with the "irqpoll" option)" stack traces.
Use the generic interrupt handlers depending on the IRQ type.
Signed-off-by: Stefan Agner <stefan@xxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 58a5e1b64bb0a9ef7747840b79d290e1ad4eed44
Author: Maoguang Meng <maoguang.meng@xxxxxxxxxxxx>
Date: Fri Aug 14 16:38:06 2015 +0800
pinctrl: mediatek: Implement wake handler and suspend resume
This patch implement irq_set_wake to get who is wakeup source and
setup on suspend resume.
Signed-off-by: Maoguang Meng <maoguang.meng@xxxxxxxxxxxx>
Reviewed-by: Daniel Kurtz <djkurtz@xxxxxxxxxxxx>
Acked-by: Yingjoe Chen <yingjoe.chen@xxxxxxxxxxxx>
Acked-by: Hongzhou Yang <hongzhou.yang@xxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit d48c2c02645392483f2b88b050d21ce1db6997b3
Author: Hongzhou Yang <hongzhou.yang@xxxxxxxxxxxx>
Date: Tue Aug 25 17:32:45 2015 -0700
pinctrl: mediatek: Fix multiple registration issue.
Since our common driver need support main chip and PMU
at the same time, that means it will register two
pinctrl device, and the pinctrl_desc structure should
be used two times.
But pinctrl_desc use global static definition, then
the latest registered pinctrl device will overwrite
the old one's, all members in pinctrl_desc will set to
the new one's, such as name, pins and pins numbers, etc.
This is a bug.
Move pinctrl_desc into mtk_pinctrl, assign new value for
each pinctrl device to fix it.
Cc: stable@xxxxxxxxxxxxxxx # v4.1+
Signed-off-by: Hongzhou Yang <hongzhou.yang@xxxxxxxxxxxx>
Reviewed-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit b25cf30a013195a69c167209d13c19b90a7450f2
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Wed Aug 26 14:21:14 2015 +0200
ALSA: hda - Remove superfluous pcm NULL check
The variable pcm can be never NULL since it was rewritten with
list_for_each_entry().
Suggested-by: Markus Osterhoff <linux-kernel@xxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 1c0beb27443c98257a5bced2978f2556f2ae1709
Author: kbuild test robot <fengguang.wu@xxxxxxxxx>
Date: Wed Aug 26 19:48:13 2015 +0800
ASoC: rockchip: fix platform_no_drv_owner.cocci warnings
sound/soc/rockchip/rockchip_rt5645.c:214:3-8: No need to set .owner here.
The core will do it.
Remove .owner field if calls are used which set it automatically
Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 0137d5ff8488f1d17a83508578976d3a67ba8e81
Author: kbuild test robot <fengguang.wu@xxxxxxxxx>
Date: Wed Aug 26 19:44:10 2015 +0800
ASoC: rockchip: fix platform_no_drv_owner.cocci warnings
sound/soc/rockchip/rockchip_max98090.c:225:3-8: No need to set .owner
here. The core will do it.
Remove .owner field if calls are used which set it automatically
Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 580a7ee93317b901358f497c2de34f7a66066963
Author: Shinobu Uehara <shinobu.uehara.xc@xxxxxxxxxxx>
Date: Wed Aug 19 01:26:55 2015 +0300
pinctrl: sh-pfc: r8a7794: add USB pin groups
Add USB0/1 pin groups to R8A7794 PFC driver.
Signed-off-by: Shinobu Uehara <shinobu.uehara.xc@xxxxxxxxxxx>
[Sergei: rebased, renamed, added changelog.]
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Acked-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 78de5d5220322456f2568de23bc2e97bba3957e3
Author: Nicholas Krause <xerofoify@xxxxxxxxx>
Date: Tue Aug 18 09:55:44 2015 -0400
gpio: max732x: Fix error handling in probe()
This fixes error handling in the function max732x_probe by checking
if the calls to the function max732x_readb fail by returning a error
code.
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit f8ce20005d1694584448cd544be5fb32416a277c
Author: Xing Zheng <zhengxing@xxxxxxxxxxxxxx>
Date: Tue Aug 25 15:52:42 2015 +0800
ASoC: rockchip: fix a misjudgement by return
Being careless, judge the return value of snd_soc_card_jack_new
is opposite, so it should be fixed.
Signed-off-by: Xing Zheng <zhengxing@xxxxxxxxxxxxxx>
Reviewed-by: Dylan Reid <dgreid@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 0ba3ac03c1f38be17102d1c76c42a7c66a3e9ff2
Merge: a8b9774 ee92a20
Author: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
Date: Wed Aug 26 12:40:23 2015 +0300
Merge ath-next from ath.git
Major changes in ath10k:
* add spectral scan support for qca99x0
* add qca6164 support
commit ee92a2099f79d47e1d6d4857ab308f5b15a00549
Author: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
Date: Fri Aug 21 18:42:36 2015 +0530
ath10k: fix compilation warnings in wmi phyerr pull function
Below compilation warnings are observed in gcc version 4.8.2.
Even though it's not seen in bit older gcc versions (for ex, 4.7.3),
It's good to fix it by changing format specifier from %d to
%zd in wmi pull phyerr functions.
wmi.c: In function 'ath10k_wmi_op_pull_phyerr_ev':
wmi.c:3567:8: warning: format '%d' expects argument of type 'int',
but argument 4 has type 'long unsigned int' [-Wformat=]
left_len, sizeof(*phyerr));
^
wmi.c: In function 'ath10k_wmi_10_4_op_pull_phyerr_ev':
wmi.c:3612:8: warning: format '%d' expects argument of type 'int',
but argument 4 has type 'long unsigned int' [-Wformat=]
left_len, sizeof(*phyerr));
^
Fixes: 991adf71a6cd ("ath10k: refactor phyerr event handlers")
Fixes: 2b0a2e0d7c2f ("ath10k: handle 10.4 firmware phyerr event")
Signed-off-by: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit a9dd941d840714b96b0a60451f6a3aa3a9be8fc6
Author: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Date: Thu Aug 13 17:16:10 2015 -0400
kbuild: avoid listing /lib/modules in kernel spec file
This causes conflicts when using multiple kernels built
with this mechanism.
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 36582e5d4daeccf68a8a3cef9bc37b60fb7d45b9
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Thu Aug 13 14:32:26 2015 +0200
ath10k: add qca6164 support
This adds additional 0x0041 PCI Device ID
definition to ath10k for QCA6164 which is a 1
spatial stream sibling of the QCA6174 (which is 2
spatial stream chip).
The QCA6164 needs a dedicated board.bin file which
is different than the one used for QCA6174. If the
board.bin is wrong the device will crash early
while trying to boot firmware. The register dump
will look like this:
ath10k_pci 0000:02:00.0: firmware register dump:
ath10k_pci 0000:02:00.0: [00]: 0x05010000 0x000015B3 0x000A012D
0x00955B31
...
Note the value 0x000A012D.
Special credit goes to Alan Liu
<alanliu@xxxxxxxxxxxxxxxx> for providing support
help which enabled me to come up with this patch.
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 4535edbd4214ce21328655434c0b75da404e29b7
Author: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
Date: Thu Aug 20 10:29:05 2015 +0530
ath10k: add spectral scan support for 10.4 fw
To enable/configure spectral scan parameters in 10.4 firmware, existing
wmi spectral related functions can be reused. Link those functions in
10.4 wmi ops table.
In addition, adjust bin size (only when size is 68 bytes) before reporting
bin samples to user space. The background for this adjustment is that
qca99x0 reports bin size as 68 bytes (64 bytes + 4 bytes) in report
mode 2. First 64 bytes carries in-band tones (-32 to +31) and last 4 byte
carries band edge detection data (+32) mainly used in radar detection
purpose. Additional last 4 bytes are stripped to make bin size valid one.
This bin size adjustment will happen only for qca99x0, all other chipsets
will report proper bin sizes (64/128) without extra 4 bytes being added
at the end. The changes are validated in qca99x0 using 10.4 firmware.
Signed-off-by: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 5e55e3cbd1042cffa6249f22c10585e63f8a29bf
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Wed Aug 19 13:10:43 2015 +0200
ath10k: fix dma_mapping_error() handling
The function returns 1 when DMA mapping fails. The
driver would return bogus values and could
possibly confuse itself if DMA failed.
Fixes: 767d34fc67af ("ath10k: remove DMA mapping wrappers")
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 503422d95248c1d9698735bb5803b70aa51b18ef
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Wed Aug 19 13:08:53 2015 +0200
ath10k: add missing mutex unlock on failpath
Kernel would complain about leaving a held lock
after going back to userspace and would
subsequently deadlock.
Fixes: e04cafbc38c7 ("ath10k: fix peer limit enforcement")
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 5d9452e7c52a106c9efdeb6c72fc73b184a6543f
Author: Grygorii Strashko <grygorii.strashko@xxxxxx>
Date: Tue Aug 18 14:10:56 2015 +0300
gpio: omap: fix clk_prepare/unprepare usage
As per CCF documentation (clk.txt) the clk_prepare/unprepare APIs
are not allowed in atomic context. But now OMAP GPIO driver
uses them while applying debounce settings and as part
of PM runtime irqsafe operations:
- omap_gpio_debounce() is holding the lock with IRQs off.
+ omap2_set_gpio_debounce()
+ clk_prepare_enable()
+ clk_prepare() this one might sleep.
- pm_runtime_get_sync() is holding the lock with IRQs off
+ omap_gpio_runtime_suspend()
+ raw_spin_lock_irqsave()
+ omap_gpio_dbck_disable()
+ clk_disable_unprepare()
Hence, fix it by moeving dbclk prepare/unprepare in OMAP GPIO
omap_gpio_probe/omap_gpio_remove. Also, while here, ensure that
debounce functionality is disabled if clk_get() failed,
because otherwise kernel will carsh in omap2_set_gpio_debounce().
Reported-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Acked-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 235f1eb1ab93a8e30a66c38949e6d2aeda136aec
Author: Grygorii Strashko <grygorii.strashko@xxxxxx>
Date: Tue Aug 18 14:10:55 2015 +0300
gpio: omap: protect regs access in omap_gpio_irq_handler
The access to HW registers has to be be protected in
omap_gpio_irq_handler(), as it may race with code executed on
another CPUs.
Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Acked-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit e85ec6c3047be0646e7c572e24869c212b685c7c
Author: Grygorii Strashko <grygorii.strashko@xxxxxx>
Date: Tue Aug 18 14:10:54 2015 +0300
gpio: omap: fix omap2_set_gpio_debounce
According to TRMs:
Required input line stable =
(the value of the GPIO_DEBOUNCINGTIME[7:0].DEBOUNCETIME + 1) Ã?â?? 31,
where the value of the GPIO_DEBOUNCINGTIME[7:0].DEBOUNCETIME bit field
is from 0 to 255.
But now omap2_set_gpio_debounce() will calculate debounce time and
behave incorrectly in the following cases:
1) requested debounce time is !0 and <32
calculated DEBOUNCETIME = 0x1 == 62 us;
expected value of DEBOUNCETIME = 0x0 == 31us
2) requested debounce time is 0
calculated DEBOUNCETIME = 0x1 == 62 us;
expected: disable debounce and DEBOUNCETIME = 0x0
3) requested debounce time is >32 and <63
calculated DEBOUNCETIME = 0x0 and debounce will be disabled;
expected: enable debounce and DEBOUNCETIME = 0x1 == 62 us
Hence, rework omap2_set_gpio_debounce() to fix above cases:
1) introduce local variable "enable" and use it to identify
when debounce need to be enabled or disabled. Disable debounce
if requested debounce time is 0.
2) use below formula for debounce time calculation:
debounce = (DIV_ROUND_UP(debounce, 31) - 1) & 0xFF;
Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Acked-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 89d18e3af8b99481589e07f92fd966ceb86eff5d
Author: Grygorii Strashko <grygorii.strashko@xxxxxx>
Date: Tue Aug 18 14:10:53 2015 +0300
gpio: omap: switch to use platform_get_irq
Switch OMAP GPIO driver to use platform_get_irq(), because
it is not recommened to use platform_get_resource(pdev, IORESOURCE_IRQ,
..)
for requesting IRQ resources any more, as they can be not ready yet
in case of DT-boot.
Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Acked-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit bb8cdf9510d5d2b67126b36747c51d531026215d
Author: Grygorii Strashko <grygorii.strashko@xxxxxx>
Date: Tue Aug 18 14:10:52 2015 +0300
gpio: omap: remove wrong irq_domain_remove usage in probe
The bank->chip.irqdomain is uninitialized at the moment when
irq_domain_remove() is called, so remove this call.
Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Acked-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Tested-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 91d33cfedf181cd9e1230d38e466de2f6697d317
Author: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Date: Mon Aug 17 15:32:16 2015 +0200
pinctrl: at91: Use generic irq_{request,release}_resources()
The at91-specific irq_{request,release}_resources() callbacks are
identical to the generic ones, modulo the bug fix in 5b76e79c77264899
("gpiolib: irqchip: prevent driver unloading if gpio is used as irq
only").
Until commit 8b67a1f0ad1f260f ("gpio: don't override irq_*_resources()
callbacks"), the buggy at91-specific callbacks were never used, though.
Hence drop the at91-specific ones in favor of the generic ones.
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 41d6bb4c890c8db01248b1bdd512a18e7bd29ca3
Author: Grygorii Strashko <grygorii.strashko@xxxxxx>
Date: Mon Aug 17 15:35:24 2015 +0300
gpiolib: add description for gpio irqchip fields in struct gpio_chip
Add missed description for GPIO irqchip fields in struct gpio_chip.
Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 109fdf1572be86aaf681e69b30dc5ada90ce6f35
Author: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 16:13:30 2015 +0300
pinctrl: cherryview: Use raw_spinlock for locking
When running -rt kernel and an interrupt happens on a GPIO line
controlled by
Intel Cherryview/Braswell pinctrl driver we get:
BUG: sleeping function called from invalid context at
kernel/locking/rtmutex.c:917
in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/0
Preemption disabled at:[<ffffffff81092e9f>] cpu_startup_entry+0x17f/0x480
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.5-rt5 #16
...
Call Trace:
<IRQ> [<ffffffff816283c6>] dump_stack+0x4a/0x61
[<ffffffff81077e17>] ___might_sleep+0xe7/0x170
[<ffffffff8162d6cf>] rt_spin_lock+0x1f/0x50
[<ffffffff812e52ed>] chv_gpio_irq_ack+0x3d/0xa0
[<ffffffff810a72f5>] handle_edge_irq+0x75/0x180
[<ffffffff810a3457>] generic_handle_irq+0x27/0x40
[<ffffffff812e57de>] chv_gpio_irq_handler+0x7e/0x110
[<ffffffff810050aa>] handle_irq+0xaa/0x190
...
This is because desc->lock is raw_spinlock and is held when
chv_gpio_irq_ack()
is called by the genirq core. chv_gpio_irq_ack() in turn takes pctrl->lock
which in -rt is an rt-mutex causing might_sleep() rightfully to complain
about
sleeping function called from invalid context.
In order to keep -rt happy but at the same time make sure that register
accesses get serialized, convert the driver to use raw_spinlock instead.
Suggested-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 78e1c896932df5b8bcdff7bf5417d8e72a4d0d6b
Author: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 16:03:17 2015 +0300
pinctrl: baytrail: Use raw_spinlock for locking
The Intel Baytrail pinctrl driver implements irqchip callbacks which are
called with desc->lock raw_spinlock held. In mainline this is fine because
spinlock resolves to raw_spinlock. However, running the same code in -rt
we
get:
BUG: sleeping function called from invalid context at
kernel/locking/rtmutex.c:917
in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/0
Preemption disabled at:[<ffffffff81092e9f>] cpu_startup_entry+0x17f/0x480
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.5-rt5 #13
...
Call Trace:
<IRQ> [<ffffffff816283c6>] dump_stack+0x4a/0x61
[<ffffffff81077e17>] ___might_sleep+0xe7/0x170
[<ffffffff8162d6cf>] rt_spin_lock+0x1f/0x50
[<ffffffff812e3b88>] byt_gpio_clear_triggering+0x38/0x60
[<ffffffff812e3bc1>] byt_irq_mask+0x11/0x20
[<ffffffff810a7013>] handle_level_irq+0x83/0x150
[<ffffffff810a3457>] generic_handle_irq+0x27/0x40
[<ffffffff812e3a5f>] byt_gpio_irq_handler+0x7f/0xc0
[<ffffffff810050aa>] handle_irq+0xaa/0x190
...
This is because in -rt spinlocks are preemptible so taking the driver
private spinlock in irqchip callbacks causes might_sleep() to trigger.
In order to keep -rt happy but at the same time make sure that register
accesses get serialized, convert the driver to use raw_spinlock instead.
Also shorten the critical section a bit in few places.
Suggested-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 26951caf55d73ceb1967b0bf12f6d0b96853508e
Author: Xiong Zhang <xiong.y.zhang@xxxxxxxxx>
Date: Mon Aug 17 15:55:50 2015 +0800
drm/i915/skl: enable DDI-E hotplug
v2: fix one error found by checkpath.pl
v3: Add one ignored break for switch-case. DDI-E hotplug
function doesn't work after updating drm-intel tree,
I checked the code and found this missing which isn't
the root cause for broke DDI-E hp. The broken
DDI-E hp function is fixed by "Adding DDI_E power
well domain".
Signed-off-by: Xiong Zhang <xiong.y.zhang@xxxxxxxxx>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Tested-by: Timo Aaltonen <timo.aaltonen@xxxxxxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 2508a45a924dfa4a5f6e60675aa4732d888134a7
Author: Chen Yu <yu.c.chen@xxxxxxxxx>
Date: Tue Aug 18 23:30:25 2015 +0800
surface pro 3: Add support driver for Surface Pro 3 buttons
Since Surface Pro 3 does not follow the specs of "Windows ACPI Design
Guide for SoC Platform", code in drivers/input/misc/soc_array.c can
not detect these buttons on it. According to bios implementation,
Surface Pro 3 encapsulates these buttons in a device named "VGBI",
with _HID "MSHW0028". When any of the buttons is pressed, a specify
ACPI notification code for this button will be delivered to "VGBI". For
example, if power button is pressed down, ACPI notification code of 0xc6
will be sent by Notify(VGBI, 0xc6).
This patch leverages "VGBI" to distinguish different ACPI notification
code from Power button, Home button, Volume button, then dispatches these
code to input layer. Lid is already covered by acpi button driver, so
there's no need to rewrite.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=84651
Tested-by: Ethan Schoonover <es@xxxxxxxxxxxxxxxxxxx>
Tested-by: Peter Amidon <psa.pub.0@xxxxxxxxxxxxxx>
Tested-by: Donavan Lance <tusklahoma@xxxxxxxxx>
Tested-by: Stephen Just <stephenjust@xxxxxxxxx>
Signed-off-by: Chen Yu <yu.c.chen@xxxxxxxxx>
[dvhart@xxxxxxxxxxxxxxx: Formatting corrections in MAINTAINERS and Intel
(c)]
Signed-off-by: Darren Hart <dvhart@xxxxxxxxxxxxxxx>
commit 8e9d597a37e407476b4de725bef4cb1ad1f5c22c
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Aug 14 12:35:23 2015 +0200
drm/i915: Fix build warning on 32-bit
The gtt.stolen_size field is of type size_t, and so should be printed
using %zu to avoid build warnings on either 32-bit and 64-bit builds.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 5f8b253147c27b8244451ee28aeb3429c5aa2e52
Author: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Date: Mon Aug 24 16:48:44 2015 -0700
drm/i915/skl: Update DDI buffer translation programming.
SKL-Y can now use the same programming for all VccIO values after an
adjustment to I_boost. SKL-U DP table adjustments.
1. Remove SKL Y 0.95V from "SKL H and S" columns in all tables. The
other SKL Y column removes the "0.85V VccIO" so it now applies to all
voltages.
2. DP table changes SKL U 400mV+0db dword 0 value from 2016h to 201Bh.
3. DP table changes SKL U 600mv+0db dword 0 value from 2016h to 201Bh.
4. DP table increases I_boost to level 3 for SKL Y 400mv+9.5db.
v2: Fix compilation warnings as pointed by Paulo.
Reference: Graphics Spec Change r97962
Cc: Arthur Runyan <arthur.j.runyan@xxxxxxxxx>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx>
[Jani: reformatted commit message for shorter lines.]
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit fc0bfacd045a17e385b4272dfe2387ba3a6d8745
Author: Giedrius StatkeviÄ?ius <giedrius.statkevicius@xxxxxxxxx>
Date: Sun Aug 23 14:41:09 2015 +0300
hp-wireless: remove unneeded goto/label in hpwl_init
acpi_bus_register_driver() already returns an appropriate value (0 on
success, and some negative value on error) to be used in __init functions
so the goto/label is redundant in hpwl_init thus remove it and directly
return the value
Signed-off-by: Giedrius StatkeviÄ?ius <giedrius.statkevicius@xxxxxxxxx>
Signed-off-by: Darren Hart <dvhart@xxxxxxxxxxxxxxx>
commit 4c156c21c7948a0be854cbe5914af3181303e529
Author: Mark Yao <mark.yao@xxxxxxxxxxxxxx>
Date: Fri Jun 26 17:14:46 2015 +0800
drm/rockchip: vop: support plane scale
Win_full support 1/8 to 8 scale down/up engine, support
all format scale.
Signed-off-by: Mark Yao <mark.yao@xxxxxxxxxxxxxx>
commit 77faa1619a5ae9ed600b0836bc1eec57bad1895b
Author: Mark Yao <mark.yao@xxxxxxxxxxxxxx>
Date: Mon Jul 20 16:25:20 2015 +0800
drm/rockchip: vop: restore vop registers when resume
The registers will be reset to default values when whole
power domain off, so restore registers from regsbak.
Signed-off-by: Mark Yao <mark.yao@xxxxxxxxxxxxxx>
commit c1998f08587a252734bad42b66b430f126f2385b
Author: Mark Yao <mark.yao@xxxxxxxxxxxxxx>
Date: Fri Jun 26 18:10:32 2015 +0800
drm/rockchip: vop: Default enable win2/3 area0 bit
Win2/3 support multiple area function, but we haven't found
a suitable way to use it yet, so let's just use them as other windows
with only area 0 enabled.
Signed-off-by: Mark Yao <mark.yao@xxxxxxxxxxxxxx>
commit 84c7f8ca43000ee97e556bddbbc4543e2514239d
Author: Mark Yao <mark.yao@xxxxxxxxxxxxxx>
Date: Mon Jul 20 16:16:49 2015 +0800
drm/rockchip: vop: Add yuv plane support
vop support yuv with NV12, NV16 and NV24, only 2 plane yuv.
Signed-off-by: Mark Yao <mark.yao@xxxxxxxxxxxxxx>
commit acf8c3e0a9eb5658e6ac4379cba51dba9b941083
Author: Mark Yao <mark.yao@xxxxxxxxxxxxxx>
Date: Mon Jul 20 16:02:47 2015 +0800
drm/rockchip: vop: Fix window dest start point
Dest start point use crtc_x/y is wrong, crtc_x/y is not equal
to dest.x1/y1 at plane scale.
Signed-off-by: Mark Yao <mark.yao@xxxxxxxxxxxxxx>
commit f1c79abef5bae62aefcadf16917905cb7f98dc19
Author: Mark Yao <mark.yao@xxxxxxxxxxxxxx>
Date: Fri Jun 26 18:07:25 2015 +0800
drm/rockchip: vop: Fix virtual stride calculation
vir_stride need number words of the virtual width, and fb->pitches
save bytes_per_pixel, so just div 4 switch to stride.
Signed-off-by: Mark Yao <mark.yao@xxxxxxxxxxxxxx>
commit a92d5ee8666afcb4abc7686d7b760f0fb7a0c14c
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Wed Aug 26 07:22:49 2015 +0200
ALSA: hda - Fix widget sysfs tree corruption after refresh
When snd_hdac_refresh_widget_sysfs() is called before the first
hda_widget_sysfs_init(), the next call overrides and eventually
fails. This results in unexpected Oops, something like:
BUG: unable to handle kernel NULL pointer dereference at
00000000000000c8
IP: [<ffffffff8180e2a3>] hdmi_chmap_ctl_info+0x23/0x40
The fix is to add a check of the existing sysfs tree. Also, for more
safety, this patch adds the checks of device_is_registered() in
snd-hdac_refresh_wdiget_sysfs(), too.
Fixes: fa4f18b4f402 ('ALSA: hda - Refresh widgets sysfs at probing
Haswell+ HDMI codecs')
Bugizlla: https://bugzilla.kernel.org/show_bug.cgi?id=103431
Reported-by: Andreas Reis <andreas.reis@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit b51aa1cc7807f4dff7b70a762aa6d8814976d706
Author: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Date: Wed Aug 26 10:42:27 2015 +0930
tools/lguest: Clean up include dir
It contains a symlinked header we use; ignore it and clean it up
on 'make clean'.
Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit e523caa601f4a7c2fa1ecd040db921baf7453798
Author: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Date: Wed Aug 26 10:42:26 2015 +0930
tools/lguest: Fix redefinition of struct virtio_pci_cfg_cap
Ours uses a u32 for the data, since we ensure it's always
aligned and it's x86 so it doesn't matter anyway.
lguest.c:128:8: error: redefinition of â??struct virtio_pci_cfg_capâ??
Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Michael S. Tsirkin <mst@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Fixes: 3121bb023e2db ("virtio: define virtio_pci_cfg_cap in header.")
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 7b7d0ca7778d359584859cb5e75965ad34f42533
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 25 12:58:11 2015 -0700
dmaengine: ioatdma: Fix variable array length
Sparse reported:
drivers/dma/ioat/prep.c:637:27: sparse: Variable length array is used.
Assigning a static value for the array.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 5c65cb93a3d066f52a109552572304675d5a52fc
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 25 12:58:05 2015 -0700
dmaengine: ioatdma: fix sparse "error" with prep lock
The prep lock gets acquired in ioat_check_space_lock and released in
ioat_tx_submit_unlock. Setting the annotations so sparse does not freak
out.
drivers/dma/ioat/dma.c:273:30: sparse: context imbalance in
'ioat_tx_submit_unlock' - unexpected unlock
drivers/dma/ioat/dma.c:476:5: sparse: context imbalance in
'ioat_check_space_lock' - wrong count at exit
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 4d112426c3446d94b9bc56396075524b06913b1c
Author: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 24 11:21:15 2015 +0200
dmaengine: hdmac: Add memset capabilities
Just like for the XDMAC, the SoCs that embed the HDMAC don't have any kind
of GPU, and need to accelerate a few framebuffer-related operations
through
their DMA controller.
However, unlike the XDMAC, the HDMAC doesn't have the memset capability
built-in. That can be easily emulated though, by doing a transfer with a
fixed address on the variable that holds the value we want to set.
Signed-off-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 8a4ce226b9061fe3ab04f6db34d4b2ae645b9f65
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Mon Aug 24 13:43:14 2015 +0530
dmaengine: sort the sh Makefile
Acked-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit eeb72a8de8e5471cdce71ea7b2f908e851a73909
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Mon Aug 24 13:43:14 2015 +0530
dmaengine: sort the sh Kconfig
Acked-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit b6fc6072b1268a0025850cd9d3dce25a7be0158d
Author: Ashwin Chaugule <ashwin.chaugule@xxxxxxxxxx>
Date: Wed Aug 5 09:40:31 2015 -0400
PCC: Disable compilation by default
PCC is made selectable only by clients which use it. e.g. CPPC
Default it to disabled so that it is not included accidentally on
platforms which dont use it.
Signed-off-by: Ashwin Chaugule <ashwin.chaugule@xxxxxxxxxx>
Reviewed-by: Al Stone <al.stone@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 1090c3bf81ef12eb22383d4b6627d372ce5115d9
Author: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Date: Wed Aug 26 00:13:16 2015 +0800
nfs42: remove unused declaration
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 19cf6335134d82be792831e14aae9d037d0cb30b
Author: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Date: Wed Aug 26 00:13:15 2015 +0800
nfs42: decode_layoutstats does not need res parameter
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit b635f0901a4404ebc1881eb3fce0fc2f925f6728
Merge: c30ee8b ef63463
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Aug 25 17:01:33 2015 -0700
Merge branch 'dsa-docs'
Florian Fainelli says:
====================
Documentation: dsa
This patch series adds some documentation about DSA as a subsystem as well
as the SF2 driver since it slightly diverges from your average DSA driver
;)
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ef6346386b096549972d5b62f773eafb772682e3
Author: Florian Fainelli <f.fainelli@xxxxxxxxx>
Date: Tue Aug 25 15:33:14 2015 -0700
Documentation: networking: dsa: Add Broadcom SF2 document
Add a document describing the Broadcom Starfigther 2 switch hardware,
its specifics, and how the driver is implemented and its specifics.
Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Reviewed-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 77760e94928f910b745ab8d00298a7c8b5786fb3
Author: Florian Fainelli <f.fainelli@xxxxxxxxx>
Date: Tue Aug 25 15:33:13 2015 -0700
Documentation: networking: add a DSA document
Describe how the DSA subsystem works, its design principles,
limitations, and describe in details how to implement a DSA switch
driver.
Acked-by: Andrew Lunn <andrew@xxxxxxx>
Acked-by: Scott Feldman <sfeldma@xxxxxxxxx>
Reviewed-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4bf011815f2e093c7f60004f4f5683cf40b905b9
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Mon Aug 10 19:56:46 2015 +0300
device property: check fwnode type in to_of_node()
Potentially one of platform can support both ACPI and OF. In that case
when we
call to_of_node() for non-OF fwnode types we will get non-NULL result,
which is
wrong. Check for the type and return a correspondent result.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 7dc59dc938f034c69dcf9080d45b936882b7ffa3
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Mon Aug 10 19:56:48 2015 +0300
device property: attach 'else if' to the proper 'if'
Obviously in the current place the 'else' keyword is redundant, though it
seems
quite correct when we check if nval is in allowed range.
Reattach the condition branch there.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 4f73b0654d8a954540d49bb0a300f31663423db9
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Mon Aug 10 19:56:47 2015 +0300
device property: fallback to pset when gettng one string
The one string as an equivalent to an array of one element. Allow user to
read
one string as a plain string.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 0762ed2ced40bfe648378ef0e1635cf4d3a6fb76
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Aug 25 17:38:25 2015 -0400
NFSv4.1/flexfiles: Allow coalescing of new layout segments and existing
ones
In order to ensure atomicity of updates, we merge the old layout segments
into the new ones, and then invalidate the old ones.
Also ensure that we order the list of layout segments so that
RO segments are preferred over RW.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 03772d2f00313bb22d91b2019cb8e6e91b415653
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Aug 25 08:54:17 2015 -0400
NFSv4.1/pnfs: Allow pNFS device drivers to customise layout segment
insertion
This is needed in order to allow merging of contiguous layout segments,
and also to correct the ordering of layouts for those device drivers that
don't necessarily want to place the read-write layouts first.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit c30ee8b743ab10271823ffdccc71b6acd62f847c
Merge: b8766e4 2724121
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Aug 25 16:28:11 2015 -0700
Merge branch 'rds-more-fixes'
Santosh Shilimkar says:
====================
RDS: Few more fixes
As indicated in the earlier series [1], this is a follow-up series which
addresses few issues around the RDS FMR code. With [1] and the subject
series, now I can run many parallel threads with multiple sockets with
N x N traffic. The stress tests has survived overnight runs.
[1] https://lkml.org/lkml/2015/8/22/127
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 272412141908c40517cc89d5bb2eb074a2ec1474
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Tue Aug 25 12:02:03 2015 -0700
RDS: remove superfluous from rds_ib_alloc_fmr()
Memory allocated for 'ibmr' uses kzalloc_node() which already
initialises the memory to zero. There is no need to do
memset() 0 on that memory.
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ef5217a6e2e60bc3d0679f2652480b99730956fe
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Tue Aug 25 12:02:02 2015 -0700
RDS: flush the FMR pool less often
FMR flush is an expensive and time consuming operation. Reduce the
frequency of FMR pool flush by 50% so that more FMR work gets accumulated
for more efficient flushing.
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ad1d7dc0d79d3dd2c5d2931b13edbd4fe33e5fac
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Tue Aug 25 12:02:01 2015 -0700
RDS: push FMR pool flush work to its own worker
RDS FMR flush operation and also it races with connect/reconect
which happes a lot with RDS. FMR flush being on common rds_wq aggrevates
the problem. Lets push RDS FMR pool flush work to its own worker.
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6116c2030fff91950f68b7fffb5959c91a05aaf6
Author: Wengang Wang <wen.gang.wang@xxxxxxxxxx>
Date: Tue Aug 25 12:02:00 2015 -0700
RDS: fix fmr pool dirty_count
In rds_ib_flush_mr_pool(), dirty_count accounts the clean ones
which is wrong. This can lead to a negative dirty count value.
Lets fix it.
Signed-off-by: Wengang Wang <wen.gang.wang@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3f6b3143031b678a8577df1f24ca977510aefcf5
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Tue Aug 25 12:01:59 2015 -0700
RDS: Fix rds MR reference count in rds_rdma_unuse()
rds_rdma_unuse() drops the mr reference count which it hasn't
taken. Correct way of removing mr is to remove mr from the tree
and then rdma_destroy_mr() it first, then rds_mr_put() to decrement
its reference count. Whichever thread holds last reference will free
the mr via rds_mr_put()
This bug was triggering weird null pointer crashes. One if the trace
for it is captured below.
BUG: unable to handle kernel NULL pointer dereference at
0000000000000104
IP: [<ffffffffa0899471>] rds_ib_free_mr+0x31/0x130 [rds_rdma]
PGD 4366fa067 PUD 4366f9067 PMD 0
Oops: 0000 [#1] SMP
[...]
task: ffff88046da6a000 ti: ffff88046da6c000 task.ti: ffff88046da6c000
RIP: 0010:[<ffffffffa0899471>] [<ffffffffa0899471>]
rds_ib_free_mr+0x31/0x130 [rds_rdma]
RSP: 0018:ffff88046fa43bd8 EFLAGS: 00010286
RAX: 0000000071d38b80 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffff880079e7ff40
RBP: ffff88046fa43bf8 R08: 0000000000000000 R09: 0000000000000000
R10: ffff88046fa43ca8 R11: ffff88046a802ed8 R12: ffff880079e7fa40
R13: 0000000000000000 R14: ffff880079e7ff40 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff88046fa40000(0000)
knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000104 CR3: 00000004366fb000 CR4: 00000000000006e0
Stack:
ffff880079e7fa40 ffff880671d38f08 ffff880079e7ff40 0000000000000296
ffff88046fa43c28 ffffffffa087a38b ffff880079e7fa40 ffff880671d38f10
0000000000000000 0000000000000292 ffff88046fa43c48 ffffffffa087a3b6
Call Trace:
<IRQ>
[<ffffffffa087a38b>] rds_destroy_mr+0x8b/0xa0 [rds]
[<ffffffffa087a3b6>] __rds_put_mr_final+0x16/0x30 [rds]
[<ffffffffa087a492>] rds_rdma_unuse+0xc2/0x120 [rds]
[<ffffffffa08766d3>] rds_recv_incoming_exthdrs+0x83/0xa0 [rds]
[<ffffffffa0876782>] rds_recv_incoming+0x92/0x200 [rds]
[<ffffffffa0895269>] rds_ib_process_recv+0x259/0x320 [rds_rdma]
[<ffffffffa08962a8>] rds_ib_recv_tasklet_fn+0x1a8/0x490 [rds_rdma]
[<ffffffff810dcd78>] ? __remove_hrtimer+0x58/0x90
[<ffffffff810799e1>] tasklet_action+0xb1/0xc0
[<ffffffff81079b52>] __do_softirq+0xe2/0x290
[<ffffffff81079df6>] irq_exit+0xa6/0xb0
[<ffffffff81613915>] do_IRQ+0x65/0xf0
[<ffffffff816118ab>] common_interrupt+0x6b/0x6b
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ba54d3ced958435e1802daf992cfd44c26cd4cb7
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Tue Aug 25 12:01:58 2015 -0700
RDS: fix the dangling reference to rds_ib_incoming_slab
On rds_ib_frag_slab allocation failure, ensure rds_ib_incoming_slab
is not pointing to the detsroyed memory.
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b8766e4ed3e9fc6b27dc3ead029cd307caa926d2
Merge: dafc219 854d2a6
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Aug 25 16:20:38 2015 -0700
Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge
Antonio Quartulli says:
====================
Included changes:
- code restyling and beautification
- use int kernel types instead of C99
- update kereldoc
- prevent potential hlist double deletion of VLAN objects
- fix gw bandwidth calculation
- convert list to hlist when needed
- add lockdep_asserts calls in function with lock requirements
described in kerneldoc
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit dafc21995db9b2ef61a2d613f872a5c565731548
Author: Govindarajulu Varadarajan <_govind@xxxxxxx>
Date: Tue Aug 25 14:15:11 2015 +0530
enic: reduce ioread in devcmd2
posted_index is RO in firmware. We need not do ioread everytime to get
posted index. Store posted index locally.
Signed-off-by: Govindarajulu Varadarajan <_govind@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c5a132a84a692f8d81f3b6959b98bcd959659457
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Aug 25 16:02:02 2015 -0700
clk: tegra: Fix some static checker problems
The latest Tegra clk pull had some problems. Fix them.
drivers/clk/tegra/clk-tegra124.c:1450:6: warning: symbol
'tegra124_clock_assert_dfll_dvco_reset' was not declared. Should it be static?
drivers/clk/tegra/clk-tegra124.c:1466:6: warning: symbol
'tegra124_clock_deassert_dfll_dvco_reset' was not declared. Should it be static?
drivers/clk/tegra/clk-tegra124.c:1476:5: warning: symbol
'tegra124_reset_assert' was not declared. Should it be static?
drivers/clk/tegra/clk-tegra124.c:1486:5: warning: symbol
'tegra124_reset_deassert' was not declared. Should it be static?
drivers/clk/tegra/clk-dfll.c:590 dfll_load_i2c_lut() warn: inconsistent
indenting
drivers/clk/tegra/clk-dfll.c:1448 dfll_build_i2c_lut() warn: unsigned
'td->i2c_lut[0]' is never less than zero.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 6e85d5ad36a26debc23a9a865c029cbe242b2dc8
Author: Corinna Vinschen <vinschen@xxxxxxxxxx>
Date: Mon Aug 24 12:52:39 2015 +0200
r8169: Add values missing in @get_stats64 from HW counters
The r8169 driver collects statistical information returned by
@get_stats64 by counting them in the driver itself, even though many
(but not all) of the values are already collected by tally counters
(TCs) in the NIC. Some of these TC values are not returned by
@get_stats64. Especially the received multicast packages are missing
from /proc/net/dev.
Rectify this by fetching the TCs and returning them from
rtl8169_get_stats64.
The counters collected in the driver obviously disappear as soon as the
driver is unloaded so after a driver is loaded the counters always start
at 0. The TCs on the other hand are only reset by a power cycle. Without
further considerations the values collected by the driver would not match
up against the TC values.
This patch introduces a new function rtl8169_reset_counters which
resets the TCs. Also, since rtl8169_reset_counters shares most of
its code with rtl8169_update_counters, refactor the shared code into
two new functions rtl8169_map_counters and rtl8169_unmap_counters.
Unfortunately chip versions prior to RTL_GIGA_MAC_VER_19 don't allow
to reset the TCs programatically. Therefore introduce an addition to
the rtl8169_private struct and a function rtl8169_init_counter_offsets
to store the TCs at first rtl_open. Use these values as offsets in
rtl8169_get_stats64. Propagate a failure to reset *and* update the
counters up to rtl_open and emit a warning message, if so.
Signed-off-by: Corinna Vinschen <vinschen@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a7c602bf42f943e717eed92165ebfa6dbaba3029
Merge: 1c4b4b0 79cf95c
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Aug 25 15:55:28 2015 -0700
Merge tag 'tegra-for-4.3-clk' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into clk-next
clk: tegra: Changes for v4.3-rc1
This contains the DFLL driver needed to implement CPU frequency scaling
on Tegra.
commit b01d04aa511b78c795dd258bf8689a421a6b4d0c
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Aug 25 15:54:25 2015 -0700
rds: Fix improper gfp_t usage.
>> net/rds/ib_recv.c:382:28: sparse: incorrect type in initializer
(different base types)
net/rds/ib_recv.c:382:28: expected int [signed] can_wait
net/rds/ib_recv.c:382:28: got restricted gfp_t
net/rds/ib_recv.c:828:23: sparse: cast to restricted __le64
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f062bcaa2579af077313e989fc7dec777965a057
Merge: 3e5f206 3ee550f
Author: James Morris <jmorris@xxxxxxxxx>
Date: Wed Aug 26 08:24:23 2015 +1000
Merge tag 'modsign-pkcs7-20150814' of
git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs into ra-next
commit 04e1b7341dc33abe4dd3f761e2e9137701e55684
Author: Shrikrishna Khare <skhare@xxxxxxxxxx>
Date: Mon Aug 24 14:24:11 2015 -0700
MAINTAINERS: update vmxnet3 driver maintainer
Shreyas Bhatewara would no longer maintain the vmxnet3 driver. Taking over
the role of vmxnet3 maintainer.
Signed-off-by: Shrikrishna Khare <skhare@xxxxxxxxxx>
Signed off-by: Shreyas Bhatewara <sbhatewara@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 48e92c44bd73a8bc213560058e6b18e45929526e
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Tue Aug 25 18:36:50 2015 +0200
vxlan: fix multiple inclusion of vxlan.h
The vxlan_get_sk_family inline function was added after the last #endif,
making multiple inclusion of net/vxlan.h fail. Move it to the proper
place.
Reported-by: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Fixes: 705cc62f6728c ("vxlan: provide access function for vxlan socket
address family")
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 081958ebe150dc42a0f50669169c4177786b747e
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 25 10:26:22 2015 -0700
MAINTAINERS: Add VRF entry
Add entry for new VRF device driver.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e252b3d1a1744af1431aca30e091420734c2b012
Author: WANG Cong <xiyou.wangcong@xxxxxxxxx>
Date: Tue Aug 25 10:38:53 2015 -0700
route: fix a use-after-free
This patch fixes the following crash:
general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC
CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.2.0-rc7+ #166
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
task: ffff88010656d280 ti: ffff880106570000 task.ti: ffff880106570000
RIP: 0010:[<ffffffff8182f91b>] [<ffffffff8182f91b>]
dst_destroy+0xa6/0xef
RSP: 0018:ffff880107603e38 EFLAGS: 00010202
RAX: 0000000000000001 RBX: ffff8800d225a000 RCX: ffffffff82250fd0
RDX: 0000000000000001 RSI: ffffffff82250fd0 RDI: 6b6b6b6b6b6b6b6b
RBP: ffff880107603e58 R08: 0000000000000001 R09: 0000000000000001
R10: 000000000000b530 R11: ffff880107609000 R12: 0000000000000000
R13: ffffffff82343c40 R14: 0000000000000000 R15: ffffffff8182fb4f
FS: 0000000000000000(0000) GS:ffff880107600000(0000)
knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 00007fcabd9d3000 CR3: 00000000d7279000 CR4: 00000000000006e0
Stack:
ffffffff82250fd0 ffff8801077d6f00 ffffffff82253c40 ffff8800d225a000
ffff880107603e68 ffffffff8182fb5d ffff880107603f08 ffffffff810d795e
ffffffff810d7648 ffff880106574000 ffff88010656d280 ffff88010656d280
Call Trace:
<IRQ>
[<ffffffff8182fb5d>] dst_destroy_rcu+0xe/0x1d
[<ffffffff810d795e>] rcu_process_callbacks+0x618/0x7eb
[<ffffffff810d7648>] ? rcu_process_callbacks+0x302/0x7eb
[<ffffffff8182fb4f>] ? dst_gc_task+0x1eb/0x1eb
[<ffffffff8107e11b>] __do_softirq+0x178/0x39f
[<ffffffff8107e52e>] irq_exit+0x41/0x95
[<ffffffff81a4f215>] smp_apic_timer_interrupt+0x34/0x40
[<ffffffff81a4d5cd>] apic_timer_interrupt+0x6d/0x80
<EOI>
[<ffffffff8100b968>] ? default_idle+0x21/0x32
[<ffffffff8100b966>] ? default_idle+0x1f/0x32
[<ffffffff8100bf19>] arch_cpu_idle+0xf/0x11
[<ffffffff810b0bc7>] default_idle_call+0x1f/0x21
[<ffffffff810b0dce>] cpu_startup_entry+0x1ad/0x273
[<ffffffff8102fe67>] start_secondary+0x135/0x156
dst is freed right before lwtstate_put(), this is not correct...
Fixes: 61adedf3e3f1 ("route: move lwtunnel state to dst_entry")
Acked-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: Cong Wang <xiyou.wangcong@xxxxxxxxx>
Signed-off-by: Cong Wang <cwang@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d7499160107dd1367cf34873564b522a5516430c
Author: Masanari Iida <standby24x7@xxxxxxxxx>
Date: Mon Aug 24 22:56:54 2015 +0900
net-next: Fix warning while make xmldocs caused by skbuff.c
This patch fix following warnings.
.//net/core/skbuff.c:407: warning: No description found
for parameter 'len'
.//net/core/skbuff.c:407: warning: Excess function parameter
'length' description in '__netdev_alloc_skb'
.//net/core/skbuff.c:476: warning: No description found
for parameter 'len'
.//net/core/skbuff.c:476: warning: Excess function parameter
'length' description in '__napi_alloc_skb'
Signed-off-by: Masanari Iida <standby24x7@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b7a4f7ff7f83bd42ee765f666e6c0a28545bc6d6
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:30:48 2015 +0800
ACPICA: Update version to 20150818
ACPICA commit d93470de8febeecdc20633fde11cb0b200fa773b
Version 20150818.
Link: https://github.com/acpica/acpica/commit/d93470de
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 2e5321cb62ca1b29941d483c21b41f71b4dc8c78
Author: Lv Zheng <lv.zheng@xxxxxxxxx>
Date: Tue Aug 25 10:30:41 2015 +0800
ACPICA: Debugger: Cleanup debugging outputs to dump name path without
trailing underscores
ACPICA commit 51a49c2fb4a73f302a6df2b8ddc1350dd261684d
It is better to use unified ASL path name to interact with the developers.
There are following acpi_ns_build_normalized_pathname() users invoking it
for
debugging purposes (acpiexec test results are attached):
1. acpi_ut_display_init_pathname (acpi_ns_handle_to_pathname):
---------------------------------------------
Initializing Region \_SB.H_EC.ECF2
---------------------------------------------
2. acpi_ns_print_node_pathname (acpi_ns_handle_to_pathname):
---------------------------------------------
- ex \_SB.H_EC._STA
Evaluating \_SB.H_EC._STA
---------------------------------------------
3. acpi_ds_print_node_pathname (acpi_ns_handle_to_pathname):
---------------------------------------------
- level 211b console
- execute \M1
...
**** Exception AE_AML_UNINITIALIZED_ARG during execution of method
[\M1] (Node 009CB6B8)
---------------------------------------------
4. acpi_ex_dump_reference_obj (acpi_ns_handle_to_pathname):
---------------------------------------------
- dump \_TZ.FAN4._PR0
...
[00] 00835E98 [Object Reference] Type [Named Object] 05 00828878
\_TZ.FN04
---------------------------------------------
5. acpi_db_bus_walk (acpi_ns_handle_to_pathname):
---------------------------------------------
- businfo
\_SB.PCI0 Type 6
...
---------------------------------------------
6. acpi_db_walk_and_match_name (acpi_ns_handle_to_pathname):
---------------------------------------------
- find _PR0
\_TZ.FAN4._PR0 Package 002D8DF8 01 Elements 01
---------------------------------------------
7. acpi_db_walk_for_specific_objects (acpi_ns_handle_to_pathname):
---------------------------------------------
- methods
...
\_SB.PCI0._PRT Method 0026D918 01 Args 0 Len
0005 Aml 0026B199
...
---------------------------------------------
8. acpi_db_decode_and_dispaly_object (acpi_get_name):
---------------------------------------------
- gpes
Block 0 - Info 003AC7B0 device_node 003A0E08 [\_GPE] - FADT-defined
GPE block
...
---------------------------------------------
9. acpi_db_display_gpes (acpi_get_name):
---------------------------------------------
- dump \_GPE
Object (003A0E08) Pathname: \_GPE
---------------------------------------------
10.ae_miscellaneous_tests (acpi_get_name):
No output available
This patch cleans up all of the above usages. ACPICA BZ 1178, Lv Zheng.
Linux kernel's ACPICA debugging messages may also be changed.
Link: https://github.com/acpica/acpica/commit/51a49c2f
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit a2352db584d6402c044a07b5b252b7f133ab70cf
Author: Lv Zheng <lv.zheng@xxxxxxxxx>
Date: Tue Aug 25 10:30:34 2015 +0800
ACPICA: Disassembler: Cleanup acpi_gbl_db_opt_verbose acpiexec usage
ACPICA commit 42d7ad7bfb1cfb95183c1386c77509f2036f521d
When acpi_gbl_db_opt_verbose is used in acpi_dm_descending_op() (invoked
by
acpi_dm_disassemble()), it is actually exported by the disassembler but
used
by the debugger to distinguish the output of the disassembler for
different
debugger commands. It is by default TRUE but is set to FALSE for control
method disassembly command - "disassemble". So it's initialization should
be a part of the ACPI_DISASSEMBLER conditioned code. This patch uses
ACPI_INIT_GLOBAL to achieve a clean manner so that when ACPI_DISASSEMBLER
is not defined, ACPI_DEBUGGER conditioned code needn't link to this
option.
Since it is a disassembler exported variable, it is renamed to
acpi_gbl_dm_opt_Verbose in this patch.
As VERBOSE_PRINT() macro has only one user, this patch also removes the
definition of this macro. Lv Zheng.
This patch doesn't affect Linux kernel.
Link: https://github.com/acpica/acpica/commit/42d7ad7b
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 1bdc63bf05096afac4b1e5361417fb730d77dfc7
Author: Lv Zheng <lv.zheng@xxxxxxxxx>
Date: Tue Aug 25 10:30:27 2015 +0800
ACPICA: Disassembler: Cleanup acpi_gbl_db_opt_disasm
ACPICA commit 969989cf7f85e2a2a0cd048cd25fc706246a48a2
This patch cleans up the following global variable -
acpi_gbl_db_opt_disasm:
The setting is used to control the full disassembly feature for iasl. ACPI
debugger (acpiexec) shall have nothing to do with it. Actually, acpiexec
never links to ad_aml_disassemble().
This patch thus renames this global option to acpi_gbl_dm_opt_disasm and
removes all acpiexec and debugger references on it. Lv Zheng.
This patch doesn't affect Linux kernel.
Link: https://github.com/acpica/acpica/commit/969989cf
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit f8fb4c383e7342731b77693edde9c6ea02ab0365
Author: Lv Zheng <lv.zheng@xxxxxxxxx>
Date: Tue Aug 25 10:30:19 2015 +0800
ACPICA: Debugger: Split debugger initialization/termination APIs
ACPICA commit 7a3f22baab000b186779dac64ad71d9776b8f432
It is likely that the debugger is enabled only when a userspace program
explicitly tells a kernel to do so, so it shouldn't be initialized as
early as current implementation.
The only tool requiring ACPI_DEBUGGER is acpiexec, so acpiexec need to
call
the new APIs by itself. And BSD developers may also get notified to invoke
the APIs for DDB enabling. Lv Zheng.
This patch doesn't affect Linux kernel as debugger is currently not
enabled
in the Linux kernel.
Link: https://github.com/acpica/acpica/commit/7a3f22ba
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit cff9406128a4f9b683eb8c52a8864496e7025467
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:30:11 2015 +0800
ACPICA: Header support to improve compatibility with MSVC
ACPICA commit 5b4087fba991d8383046b550bbe22f3d8d9b9c8f
Needed to improve MSVC editor support for symbols.
For Linux kernel, this change is a no-op.
Link: https://github.com/acpica/acpica/commit/5b4087fb
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 47cdf8c692d5a64855a7aff83800d5bc5c925d7c
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:30:00 2015 +0800
ACPICA: Make the max-number-of-loops runtime configurable
ACPICA commit a9d9c2d0c2d077bb3175ec9c252cf0e5da3efd45
Was previously compile-time only.
Add support option for acpiexec.
Link: https://github.com/acpica/acpica/commit/a9d9c2d0
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit e69ab9a99e1d112045dd87902e467daec0d189da
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:29:52 2015 +0800
ACPICA: Debugger: Add option to display namespace summary/counts
ACPICA commit bba222c15c2ce79076eb3a5e9d4d5f7120db8a00
If "Objects" command is invoked with no arguments, the counts
for each object type are displayed.
Linux kernel is not affected by this commit as currently debugger is
not enabled in the Linux kernel.
Link: https://github.com/acpica/acpica/commit/bba222c1
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 25823e784aac78964ada0e49efe2766d2aeb9fa4
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:29:45 2015 +0800
ACPICA: Add additional debug info/statements
ACPICA commit 74094ca9f51e2652a9b5f01722d8640a653cc75a
For _REG methods and module-level code blocks.
For acpiexec, add deletion of module-level blocks in case
of an early abort.
Link: https://github.com/acpica/acpica/commit/74094ca9
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 3c0503dd289eb6658f16d77fa12b3a30a4072be3
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:29:39 2015 +0800
ACPICA: Table handling: Cleanup and update debug output for tools
ACPICA commit 93862bd7a227543bc617d822ef5c4f8a5d68b519
Add output of table OEM ID along with signature to support lots
of SSDTs.
Cleanup use of table pointers.
Link: https://github.com/acpica/acpica/commit/93862bd7
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 93cdafa071bd436596a0501fd43f4fab89c2be78
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:29:33 2015 +0800
ACPICA: acpiexec/acpinames: Support very large number of ACPI tables
ACPICA commit ca3bd4c5cdc39a9009280032adbbc20f34e94c47
Fix a couple of issues with >40 ACPI tables.
Return exit error for acpinames to enable use with BIOS builds.
The new exported function is used by acpinames. For Linux kernel, this
change is a no-op.
Link: https://github.com/acpica/acpica/commit/ca3bd4c5
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 17dd4dcfadffba93cf18652eb16b345526b04ce1
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:29:25 2015 +0800
ACPICA: acpinames: Add new options and wildcard support
ACPICA commit 0ecf5b5a41c3d2e09af48f0fdbc9ae784f631788
- Add wilcard support for input filenames.
- Add -l option to load tables and exit, no display. This is
useful for validation of the namespace during BIOS generation.
- Add -x option for specifying debug level.
Linux kernel is not affected by this commit.
Link: https://github.com/acpica/acpica/commit/0ecf5b5a
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 10ac218e9a1e76e0d3adec8fe2e2f84bbc138759
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:29:17 2015 +0800
ACPICA: Headers: Fix some comments, no functional change
ACPICA commit 539f8c03fe64305725bd85343e42f3b6c42aad14
A couple typos and long lines.
Link: https://github.com/acpica/acpica/commit/539f8c03
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 7484619bff495c30e977dafe2ff735477bd569ff
Author: Lv Zheng <lv.zheng@xxxxxxxxx>
Date: Tue Aug 25 10:29:08 2015 +0800
ACPICA: Tables: Cleanup to reduce FACS globals
ACPICA commit 3f42ba76e2a0453976d3108296d5f656fdf2bd6e
In this patch, FACS table mapping is also tuned a bit so that only the
selected FACS table will be mapped by the OSPM (mapped on demand) and the
FACS related global variables can be reduced. Lv Zheng.
Link: https://github.com/acpica/acpica/commit/3f42ba76
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 8ec3f459073e67e5c6d78507dec693064b3040a2
Author: Lv Zheng <lv.zheng@xxxxxxxxx>
Date: Tue Aug 25 10:29:01 2015 +0800
ACPICA: Tables: Fix global table list issues by removing fixed table
indexes
ACPICA commit c0b38b4c3982c2336ee92a2a14716107248bd941
The fixed table indexes leave holes in the global table list:
1. One hole can be seen when there is only 1 FACS provided by the BIOS.
2. Tow holes can be seen when it is a reduced hardware platform.
The holes do not break OSPMs but have broken ACPI debugger "tables"
command.
Also the "fixed table indexes" mechanism may make the descriptors of the
standard tables installed earlier than DSDT to be overwritten by the
descriptors of the fixed tables. For example, FACP disappears from the
global table list after DSDT is installed.
This patch fixes all above issues by removing the "fixed table indexes"
mechanism which is too complicated to be maintained in a regression safe
manner. After removal, the table loader will determine the indexes of the
fixed tables. Lv Zheng.
Link: https://github.com/acpica/acpica/commit/c0b38b4c
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 92b21a9502ea3a83464aea885b3c65c528b10190
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:28:54 2015 +0800
ACPICA: Update info messages during ACPICA init
ACPICA commit 4ccf8a1cc499ec8f00345f662a5887483980e1dd
Small cleanup of messages.
Link: https://github.com/acpica/acpica/commit/4ccf8a1c
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 2aabfad7c6680178ffa8f02957287178a58a46ca
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:28:47 2015 +0800
ACPICA: Disassembler: Update for new listing mode
ACPICA commit 2ed09bb7619d25f5a5c065c33a8a775a6db3a856
ACPICA commit 2fefacf73825b0ec96bbfc4f70a256735b715d6c
This mode emits AML code along with the ASL code.
A new global was needed to ensure the listing mode is
completely separate from the debugger verbose mode.
Emits the correct AML offset for the AML code.
The -l option now works for both the compiler and disassembler.
Linux kernel is not affected by this commit.
Link: https://github.com/acpica/acpica/commit/2fefacf7
Link: https://github.com/acpica/acpica/commit/2ed09bb7
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 9f41fd8a175ff87ba610fc387a6922b0f49f8e19
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:28:39 2015 +0800
ACPICA: Update parameter validation for data_table_region and load_table
ACPICA commit 51ab555e60b4a3de3cc4a846e86d0de255be441a
Add additional validation for the table signature and
the OEM strings. Eliminates buffer read overrun in data_table_region.
ACPICA BZ 1184.
Link: https://bugs.acpica.org/show_bug.cgi?id=1184
Link: https://github.com/acpica/acpica/commit/51ab555e
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 3534969721ba011b8c2bcb5686819852df7aa971
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:28:32 2015 +0800
ACPICA: Disassembler: Remove duplicate code in _PLD processing.
ACPICA commit 6d9c827b540837b6e54059e17756a06985e4a196
ACPICA BZ 1176.
Link: https://bugs.acpica.org/show_bug.cgi?id=1176
Link: https://github.com/acpica/acpica/commit/6d9c827b
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 4712f71b609d1805b958c0c355b16a995b11ab6e
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date: Tue Aug 25 10:28:26 2015 +0800
ACPICA: Correctly cleanup after a ACPI table load failure
ACPICA commit ed7769e832de6c7ba90615480d916c85fd100422
If a table load fails, delete all namespace objects created by the
table, otherwise these objects will be uninitialized, causing
problems later. This appears to be a very rare problem.
Also handle the unitialized node problem to prevent possible
faults. ACPICA BZ 1185.
Link: https://github.com/acpica/acpica/commit/ed7769e8
Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 79c441ae505ccfaed9d80df95e83fb2573f23f8e
Author: Guillaume Nault <g.nault@xxxxxxxxxxxx>
Date: Mon Aug 24 11:35:30 2015 +0200
ppp: implement x-netns support
Let packets move from one netns to the other at PPP encapsulation and
decapsulation time.
PPP units and channels remain in the netns in which they were
originally created. Only the net_device may move to a different
namespace. Cross netns handling is thus transparent to lower PPP
layers (PPPoE, L2TP, etc.).
PPP devices are automatically unregistered when their netns gets
removed. So read() and poll() on the unit file descriptor will
respectively receive EOF and POLLHUP. Channels aren't affected.
Signed-off-by: Guillaume Nault <g.nault@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit cc7fce80229067890365c1ee196be5d304d36dea
Author: Tomer Barletz <barletz@xxxxxxxxx>
Date: Tue Aug 4 21:00:24 2015 -0700
mtd: blkdevs: fix switch-bool compilation warning
With gcc 5.1 I get:
warning: switch condition has boolean value [-Wswitch-bool]
Signed-off-by: Tomer Barletz <barletz@xxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 542a64c7076565d73eea39057113914e1607db30
Author: Hans de Goede <hdegoede@xxxxxxxxxx>
Date: Sun Aug 23 20:31:38 2015 +0200
net: sun4i-emac: Claim emac sram
Claim the emac sram ourselves, rather then relying on the bootloader
having mapped the sram to the emac controller during boot.
Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2c0027cd54cc3ed856e87d9aeddb6ef00f5f17f4
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Sun Aug 23 08:21:22 2015 -0600
inetpeer: remove dead code
Remove various inlined functions not referenced in the kernel.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5283af899adec1a7765e413e43b27a335fadac5d
Author: Rana Shahout <ranas@xxxxxxxxxxxx>
Date: Sun Aug 23 16:12:14 2015 +0300
net/mlx5e: Avoid accessing NULL pointer at ndo_select_queue
To avoid multiply/division operations on the data path,
we hold a {channel, tc}==>txq mapping table.
We held this mapping table inside the channel object that is
being destroyed upon some configuration operations (e.g MTU change).
So in case ndo_select_queue occurs during such a configuration operation,
it may access a NULL channel pointer, resulting in kernel panic.
To fix this issue we moved the {channel, tc}==>txq mapping table
outside the channel object so that it will be available also
during such configuration operations.
Signed-off-by: Rana Shahout <ranas@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 06bb6f5a69dfc53b79dd5f7afabdcd070a18afbf
Author: RafaÅ? MiÅ?ecki <zajec5@xxxxxxxxx>
Date: Mon Aug 10 21:39:03 2015 +0200
mtd: spi-nor: stop (ab)using struct spi_device_id
Using struct spi_device_id for storing list of flash devices comes from
early SPI NOR framework days. Thanks to the commit 70f3ce0510af ("mtd:
spi-nor: make spi_nor_scan() take a chip type name, not spi_device_id")
we can stop using spi_device_id and just switch to our own struct.
Signed-off-by: RafaÅ? MiÅ?ecki <zajec5@xxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 94c10f0ea303473884f69edd6bbb0cedcf570105
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Aug 25 13:38:50 2015 -0700
ah4: Fix error return in ah_input().
Noticed by Herbert Xu.
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 25105051fde444cac11a2e2599350e5388936428
Author: Julia Lawall <julia.lawall@xxxxxxx>
Date: Sun Aug 23 02:11:21 2015 +0200
ah6: fix error return code
Return a negative error code on failure.
A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
identifier ret; expression e1,e2;
@@
(
if (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret = 0
)
... when != ret = e1
when != &ret
*if(...)
{
... when != ret = e2
when forall
return ret;
}
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Acked-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5c12197939be10c117039aabc06830297fb6d6ee
Author: Julia Lawall <julia.lawall@xxxxxxx>
Date: Sun Aug 23 02:11:16 2015 +0200
mlxsw: fix error return code
Return a negative error code on failure.
A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
identifier ret; expression e1,e2;
@@
(
if (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret = 0
)
... when != ret = e1
when != &ret
*if(...)
{
... when != ret = e2
when forall
return ret;
}
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Acked-by: Jiri Pirko <jiri@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1ef53ebfa9ff5b205604fc781868765e00ae875f
Author: Julia Lawall <julia.lawall@xxxxxxx>
Date: Sun Aug 23 02:11:14 2015 +0200
net: davinci_emac: fix error return code
Propagate error code on failure.
A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
identifier ret; expression e1,e2;
@@
(
if (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret = 0
)
... when != ret = e1
when != &ret
*if(...)
{
... when != ret = e2
when forall
return ret;
}
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 96fd26b97a6b1412e9a302cd11363e28aa9b4ee5
Merge: 43e122b ae05368
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Aug 25 13:35:32 2015 -0700
Merge branch 'rds-assorted-bug-fixes'
Santosh Shilimkar says:
====================
RDS: Assorted bug fixes
We would like to improve RDS upstream support and in that context, I
started playing with it. But run into number of issues including as
basic is RDS IB RDMA doesn't work. As part of the debug, I ended up
creating the $subject series which has bunch of assorted fixes. At
least with this series I can run RDS IB RDMA and other tests
successfully.
Some of these fixes have been done by Chris Meson, Andy Grover and
Zach Brown while at Oracle. There are still more kinks with FMR and
error handling and I plan to address them in a follow up series.
Series generated against Linus's master(v4.2-rc-7) but also applies
against next-next cleanly. Its tested on Oracle hardware with IB
fabric for both bcopy as well as RDMA mode. I don't have access
to iWARP hardware so any testing help on iWARP hardware appreciated.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ae05368afa7ea27fd906477874ed3ebc7df7e53c
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Sat Aug 22 15:45:35 2015 -0700
RDS: check for valid cm_id before initiating connection
Connection could have been dropped while the route is being resolved
so check for valid cm_id before initiating the connection.
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 06e8941e22f5cbaa4051f06d7ac99e3f302f6d48
Author: Mukesh Kacker <mukesh.kacker@xxxxxxxxxx>
Date: Sat Aug 22 15:45:34 2015 -0700
RDS: return EMSGSIZE for oversize requests before processing/queueing
rds_send_queue_rm() allows for the "current datagram" being queued
to exceed SO_SNDBUF thresholds by checking bytes queued without
counting in length of current datagram. (Since sk_sndbuf is set
to twice requested SO_SNDBUF value as a kernel heuristic this
is usually fine!)
If this "current datagram" squeezing past the threshold is itself
many times the size of the sk_sndbuf threshold itself then even
twice the SO_SNDBUF does not save us and it gets queued but
cannot be transmitted. Threads block and deadlock and device
becomes unusable. The check for this datagram not exceeding
SNDBUF thresholds (EMSGSIZE) is not done on this datagram as
that check is only done if queueing attempt fails.
(Datagrams that follow this datagram fail queueing attempts, go
through the check and eventually trip EMSGSIZE error but zero
length datagrams silently fail!)
This fix moves the check for datagrams exceeding SNDBUF limits
before any processing or queueing is attempted and returns EMSGSIZE
early in the rds_sndmsg() code. This change also ensures that all
datagrams get checked for exceeding SNDBUF/sk_sndbuf size limits
and the large datagrams that exceed those limits do not get to
rds_send_queue_rm() code for processing.
Signed-off-by: Mukesh Kacker <mukesh.kacker@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit dfcec251d22bab947d10cf37e9ad67085cf7f097
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Sat Aug 22 15:45:33 2015 -0700
RDS: make sure rds_send_drop_to properly takes the m_rs_lock
rds_send_drop_to() is used during socket tear down to find all the
messages on the socket and flush them . It can race with the
acking code unless it takes the m_rs_lock on each and every message.
This plugs a hole where we didn't take m_rs_lock on any message that
didn't have the RDS_MSG_ON_CONN set. Taking m_rs_lock avoids
double frees and other memory corruptions as the ack code trusts
the message m_rs pointer on a socket that had actually been freed.
We must take m_rs_lock to access m_rs. Because of lock nesting and
rs access, we also need to acquire rs_lock.
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1c3be624f40acd6f2bd0f22ade081ac2467e8617
Author: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Date: Sat Aug 22 15:45:32 2015 -0700
RDS: Don't destroy the rdma id until after we're done using it
During connection resets, we are destroying the rdma id too soon. We can't
destroy it when it is still in use. So lets move rdma_destroy_id() after
we clear the rings.
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5c240fa2ab394af1dbde280e00cc038cbc7f0409
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Sat Aug 22 15:45:31 2015 -0700
RDS: Fix assertion level from fatal to warning
Fix the asserion level since its not fatal and can be hit
in normal execution paths. There is no need to take the
system down.
We keep the WARN_ON() to detect the condition if we get
here with bad pages.
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3049147ca7c8426268433d16d7546a51dede316d
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Sat Aug 22 15:45:30 2015 -0700
RDS: Make sure we do a signaled send for large-send
WR(Work Requests )always generate a WC(Work Completion) with
signaled send. Default RDS ib code is setup for un-signaled
completion. Since RDS connction is persistent, we can end up
sending the data even after large-send when the remote end is
not active(for any reason).
By doing a signaled send at least once per large-send,
we can at least detect the problem in work completion
handler there by avoiding sending more data to
inactive remote.
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4f73113c63bae5cd092c93c2a9835b9d3c7f0b54
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Sat Aug 22 15:45:29 2015 -0700
RDS: Mark message mapped before transmit
rds_send_xmit() marks the rds message map flag after
xmit_[rdma/atomic]() which is clearly wrong. We need
to maintain the ownership between transport and rds.
Also take care of error path.
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0df5f9a68a79f31e608b69a9369d6415a38843e1
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Sat Aug 22 15:45:28 2015 -0700
RDS: add a sock_destruct callback debug aid
This helps to detect the accidental processes/apps trying to destroy
the RDS socket which they are sharing with other processes/apps.
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0c484240210a8c835a216dbca6f1d690e4094a7c
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Sat Aug 22 15:45:27 2015 -0700
RDS: check for congestion updates during rds_send_xmit
Ensure we don't keep sending the data if the link is congested.
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 73ce4317bf983282593aff710b112a7e705620c3
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Sat Aug 22 15:45:26 2015 -0700
RDS: make sure we post recv buffers
If we get an ENOMEM during rds_ib_recv_refill, we might never come
back and refill again later. Patch makes sure to kick krdsd into
helping out.
To achieve this we add RDS_RECV_REFILL flag and update in the refill
path based on that so that at least some therad will keep posting
receive buffers.
Since krdsd and softirq both might race for refill, we decide to
schedule on work queue based on ring_low instead of ring_empty.
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e1f475a738e4c861d8aff84b737a0538680cbe05
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Sat Aug 22 15:45:25 2015 -0700
RDS: don't update ip address tables if the address hasn't changed
If the ip address tables hasn't changed, there is no need to remove
them only to be added back again.
Lets fix it.
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1bc7b863f230e429dd7a06c0956ada7933d69f50
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Sat Aug 22 15:45:24 2015 -0700
RDS: destroy the ib state earlier during shutdown
Destroy ib state early during shutdown. Otherwise we can get callbacks
after the QP isn't really able to handle them.
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 43962dd7ee192299c6e0c6cd7f0a65997308f1f4
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Sat Aug 22 15:45:23 2015 -0700
RDS: always free recv frag as we free its ring entry
We were still seeing rare occurrences of the WARN_ON(recv->r_frag) which
indicates that the recv refill path was finding allocated frags in ring
entries that were marked free. These were usually followed by OOM crashes.
They only seem to be occurring in the presence of completion errors and
connection resets.
This patch ensures that we free the frag as we mark the ring entry free.
This should stop the refill path from finding allocated frags in ring
entries that were marked free.
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1d2e3f396c532b95a37bbee92269f37efe908457
Author: santosh.shilimkar@xxxxxxxxxx <santosh.shilimkar@xxxxxxxxxx>
Date: Sat Aug 22 15:45:22 2015 -0700
RDS: restore return value in rds_cmsg_rdma_args()
In rds_cmsg_rdma_args() 'ret' is used by rds_pin_pages() which returns
number of pinned pages on success. And the same value is returned to the
caller of rds_cmsg_rdma_args() on success which is not intended.
Commit f4a3fc03c1d7 ("RDS: Clean up error handling in rds_cmsg_rdma_args")
removed the 'ret = 0' line which broke RDS RDMA mode.
Fix it by restoring the return value on rds_pin_pages() success
keeping the clean-up in place.
Signed-off-by: Santosh Shilimkar <ssantosh@xxxxxxxxxx>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b96f465035f9fae83c1d8de3e80eecfe6877608c
Author: David Teigland <teigland@xxxxxxxxxx>
Date: Tue Aug 25 12:51:44 2015 -0500
dlm: fix lvb copy for user locks
For a userland lock request, the previous and current
lock modes are used to decide when the lvb should be
copied back to the user. The wrong previous value was
used, so that it always matched the current value.
This caused the lvb to be copied back to the user in
the wrong cases.
Signed-off-by: David Teigland <teigland@xxxxxxxxxx>
commit 0cb850486048ba4f64482a9d3e33dff47df34c79
Author: Oleksij Rempel <linux@xxxxxxxxxxxxxxxx>
Date: Wed Dec 31 13:58:53 2014 +0100
mtd: nand: add Toshiba TC58NVG0S3E to nand_ids table
Add the full description of the Toshiba TC58NVG0S3E NAND chip in the
nand_ids table so that we can later use the NAND ECC info and ONFI timing
mode in controller drivers.
Tested with asm9260_nand driver. [Brian: driver still under review]
Signed-off-by: Oleksij Rempel <linux@xxxxxxxxxxxxxxxx>
Reviewed-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 540d9864e1c5f8d3ca2ecc919e7d8a47e713ec3f
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Aug 25 11:16:13 2015 -0400
NFSv4.1/pnfs: Add sanity check for the layout range returned by the server
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 82714bd1424a88e4bb43813c8a78fbe8f6c5feab
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Aug 25 08:41:24 2015 -0400
NFSv4.1/pnfs Improve the packing of struct pnfs_layout_hdr
Eliminate a couple of holes in the structure, and move the 2 atomics
into the same cacheline.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit e3b1df2dbd7bcda807a94db131fda6c2bbd1480a
Author: kbuild test robot <fengguang.wu@xxxxxxxxx>
Date: Tue Aug 25 11:19:25 2015 +0800
NFSv4.1/flexfile: ff_layout_remove_mirror can be static
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit bbf58bf3488e41f346536aa89d62bdf2fe771128
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 20:39:18 2015 -0400
NFSv4.2/pnfs: Make the layoutstats timer configurable
Allow advanced users to set the layoutstats timer in order to lengthen
or shorten the period between layoutstat transmissions to the server.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 266d12d42ebd2587d3d0e8c4a4e54bfb5ed29543
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 20:03:17 2015 -0400
NFSv4.1/flexfile: Ensure uniqueness of mirrors across layout segments
Keep the full list of mirrors in the struct nfs4_ff_layout_mirror so that
they can be shared among the layout segments that use them.
Also ensure that we send out only one copy of the layoutstats per mirror.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 0b7baf9433d4e0a0c83eecbadc1f035d5370c6dc
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 18:22:28 2015 -0400
NFSv4.1/flexfiles: Remove mirror backpointer to lseg.
When we start sharing mirrors between several lsegs, we won't be able to
keep it.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 28a0d72c6867af307c000e068a6da93ae98bcd0c
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 18:08:30 2015 -0400
NFSv4.1/flexfiles: Add refcounting to struct nfs4_ff_layout_mirror
We do want to share mirrors between layout segments, so add a refcount
to enable that.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit a6970317f2d5f596302d957ae2f5b0d7c8676371
Author: Oleg Drokin <green@xxxxxxxxxxxxxx>
Date: Tue Aug 18 21:04:35 2015 -0400
staging/lustre/o2iblnd: remove references to ib_reg_phsy_mr()
Removed references to ib_reg_phsy_mr() and PMR which was added
to deal with some Chelsio specific scenario, but no longer needed
now.
Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: Amir Shehata <amir.shehata@xxxxxxxxx>
Signed-off-by: Oleg Drokin <oleg.drokin@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 5420401079e152ff68a8024f6a375804b1c21505
Author: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 06:40:00 2015 +0800
NFS41/flexfiles: zero out DS write wcc
We do not want to update inode attributes with DS values.
Cc: stable@xxxxxxxxxxxxxxx # v4.0+
Signed-off-by: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 3976143b063e3c42fe5471d87860f6ae118e0eee
Author: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Date: Fri Aug 21 12:49:44 2015 +0800
NFS41: remove NFS_LAYOUT_ROC flag
If we return delegation before closing, we fail to do roc check
during close because NFS_LAYOUT_ROC is cleared by delegreturn
and it causes layouts to be still hanging around after delegreturn
+ close, which is a voilation against protocol.
Signed-off-by: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 249b2eef647f97164b8bb61f2d9282f227a17992
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 20:43:14 2015 -0500
NFSv4: Add a tracepoint for CB_LAYOUTRECALL
Only support for single file layoutrecall for now.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 7cd148610af9312aa6454395fe174ebfe9496aa1
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 20:07:54 2015 -0500
NFSv4: Add a tracepoint for CB_GETATTR
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 6a463beb9a433d91f3eaf85c2f0ca0aeddf3e0ab
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 15:40:47 2015 -0500
NFSv4.1/pnfs: Add a tracepoint for return-on-close events
Allow tracing of return-on-close.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit aaae3f00d3f67f681a1f3cb7af999e976e8a24ce
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 18:56:07 2015 -0500
NFSv4: Force a post-op attribute update when holding a delegation
If the ctime or mtime or change attribute have changed because
of an operation we initiated, we should make sure that we force
an attribute update. However we do not want to mark the page cache
for revalidation.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v4.0+
commit 804486b19de92449203f95027c2b207d8c5d5c79
Author: Milo Kim <milo.kim@xxxxxx>
Date: Tue Aug 25 14:54:12 2015 +0900
regulator: lp872x: handle error case
If memory allocation gets failed on parsing the DT, then it returns error
'-ENOMEM' explicitly. Then, the driver exists from the _probe().
Signed-off-by: Milo Kim <milo.kim@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit d9ffae15f7b1933c71dfb7c5e8ef61296d2833d7
Author: Milo Kim <milo.kim@xxxxxx>
Date: Tue Aug 25 14:54:11 2015 +0900
regulator: lp872x: use the private data instead of updating I2C device
platform data
Currently, lp872x driver parses the DT and copies values into the
'cl->dev.platform_data' if 'of_node' exists.
This may have architectural issue. Platform data is configurable through
the DT or I2C board info inside the platform area.
However, lp872x driver changes this configuration when it is loaded.
The lp872x driver should get data from the platform side and use the
private
data, 'lp872x->pdata' instead of changing the original platform data.
Signed-off-by: Milo Kim <milo.kim@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 43e122b014c955a33220fabbd09c4b5e4f422c3c
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Fri Aug 21 17:38:02 2015 -0700
tcp: refine pacing rate determination
When TCP pacing was added back in linux-3.12, we chose
to apply a fixed ratio of 200 % against current rate,
to allow probing for optimal throughput even during
slow start phase, where cwnd can be doubled every other gRTT.
At Google, we found it was better applying a different ratio
while in Congestion Avoidance phase.
This ratio was set to 120 %.
We've used the normal tcp_in_slow_start() helper for a while,
then tuned the condition to select the conservative ratio
as soon as cwnd >= ssthresh/2 :
- After cwnd reduction, it is safer to ramp up more slowly,
as we approach optimal cwnd.
- Initial ramp up (ssthresh == INFINITY) still allows doubling
cwnd every other RTT.
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Cc: Neal Cardwell <ncardwell@xxxxxxxxxx>
Cc: Yuchung Cheng <ycheng@xxxxxxxxxx>
Acked-by: Neal Cardwell <ncardwell@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1c4b4b0eb1909010b8ebda1ef208bf3ed62e7487
Author: Georgi Djakov <georgi.djakov@xxxxxxxxxx>
Date: Tue Aug 25 15:27:43 2015 +0300
clk: qcom: Fix MSM8916 prng clock enable bit
Fix the enable bit of the pseudorandom number generator clock.
Reported-by: Stanimir Varbanov <stanimir.varbanov@xxxxxxxxxx>
Fixes: 3966fab8b6ab "clk: qcom: Add MSM8916 Global Clock Controller
support"
Signed-off-by: Georgi Djakov <georgi.djakov@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 4ec3b28c2763e11a423d03810ff0be65f02e635e
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 20 15:06:30 2015 -0700
xfrm: Use VRF master index if output device is enslaved
Directs route lookups to VRF table. Compiles out if NET_VRF is not
enabled. With this patch able to successfully bring up ipsec tunnels
in VRFs, even with duplicate network configuration.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Acked-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Acked-by: Steffen Klassert <steffen.klassert@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6f021c62d64f38092bc2a0c5fe7b81d5e5b21a00
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Fri Aug 21 12:30:00 2015 -0700
tcp: fix slow start after idle vs TSO/GSO
slow start after idle might reduce cwnd, but we perform this
after first packet was cooked and sent.
With TSO/GSO, it means that we might send a full TSO packet
even if cwnd should have been reduced to IW10.
Moving the SSAI check in skb_entail() makes sense, because
we slightly reduce number of times this check is done,
especially for large send() and TCP Small queue callbacks from
softirq context.
As Neal pointed out, we also need to perform the check
if/when receive window opens.
Tested:
Following packetdrill test demonstrates the problem
// Test of slow start after idle
`sysctl -q net.ipv4.tcp_slow_start_after_idle=1`
0.000 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
+0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
+0 bind(3, ..., ...) = 0
+0 listen(3, 1) = 0
+0 < S 0:0(0) win 65535 <mss 1000,sackOK,nop,nop,nop,wscale 7>
+0 > S. 0:0(0) ack 1 <mss 1460,nop,nop,sackOK,nop,wscale 6>
+.100 < . 1:1(0) ack 1 win 511
+0 accept(3, ..., ...) = 4
+0 setsockopt(4, SOL_SOCKET, SO_SNDBUF, [200000], 4) = 0
+0 write(4, ..., 26000) = 26000
+0 > . 1:5001(5000) ack 1
+0 > . 5001:10001(5000) ack 1
+0 %{ assert tcpi_snd_cwnd == 10 }%
+.100 < . 1:1(0) ack 10001 win 511
+0 %{ assert tcpi_snd_cwnd == 20, tcpi_snd_cwnd }%
+0 > . 10001:20001(10000) ack 1
+0 > P. 20001:26001(6000) ack 1
+.100 < . 1:1(0) ack 26001 win 511
+0 %{ assert tcpi_snd_cwnd == 36, tcpi_snd_cwnd }%
+4 write(4, ..., 20000) = 20000
// If slow start after idle works properly, we should send 5 MSS here
(cwnd/2)
+0 > . 26001:31001(5000) ack 1
+0 %{ assert tcpi_snd_cwnd == 10, tcpi_snd_cwnd }%
+0 > . 31001:36001(5000) ack 1
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Cc: Neal Cardwell <ncardwell@xxxxxxxxxx>
Cc: Yuchung Cheng <ycheng@xxxxxxxxxx>
Acked-by: Neal Cardwell <ncardwell@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 20f1f4b5ffb870631bf4a4e7c7ba10e3528ae6a6
Merge: ce52399 3e1d2ee
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 25 14:19:29 2015 -0400
Merge branch 'for-4.3-unified-base' into for-4.3
commit ce52399520e4b97466165737e00c7b528ae8c8f5
Author: Aleksa Sarai <cyphar@xxxxxxxxxx>
Date: Tue Aug 25 12:50:44 2015 +1000
cgroup: pids: fix invalid get/put usage
Fix incorrect usage of css_get and css_put to put a different css in
pids_{cancel_,}attach() than the one grabbed in pids_can_attach(). This
could lead to quite serious memory leakage (and unsafe operations on the
putted css).
tj: minor comment update
Signed-off-by: Aleksa Sarai <cyphar@xxxxxxxxxx>
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
commit 0e7659712836ca59b4735bc5cc94de38698a5e01
Author: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 25 12:43:48 2015 +0100
ASoC: arizona: Poll for FLL clock OK rather than use interrupts
The extcon driver takes the DAPM mutex from within the interrupt thread
in several places, which makes it possible to get into a situation where
the interrupt thread is blocked waiting on the DAPM mutex whilst a DAPM
sequence is running which is attempting to configure the FLL. In this
case the FLL completion can't be completed as as the IRQ handler is
ONE_SHOT, which cause the FLL lock to use the full time out (250mS) and
report that the process timed out.
It is not really practical to make the extcon driver not take the DAPM
mutex from within the interrupt thread, at least not without extensive
modification. So this patch fixes the issue by switching the wait for
the FLL lock to polling. A few fast polls are done first as the FLL
should lock quickly for a good quality reference clock, (indeed it hits
on the first poll on my system) and it will poll every 20mS after that
until it times out.
Signed-off-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit c1713485f9fc06e1f4de9800b43f6486f2527379
Author: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Date: Tue Aug 25 16:03:48 2015 +0800
ASoC: rt5645: Add struct dmi_system_id "Google Celes" for chrome platform
Signed-off-by: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit b1d42598cb654ce63b55ccf27da09dcd914781f3
Author: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Date: Mon Aug 24 20:32:59 2015 +0800
ASoC: rt5645: Add the register RT5645_CHARGE_PUMP to readable check
function
Signed-off-by: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 4aed4c9efb30253483869c58236ab00bdfa45630
Author: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Date: Mon Aug 24 20:32:58 2015 +0800
ASoC: rt5645: Remove the incorrect setting of the JD mode
The patch removes the incorrect setting of the JD mode. It will cause pop
sound in the booting time.
Signed-off-by: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 8db7f56ddf2c4571e33756b70a1a8f492c050449
Author: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Date: Mon Aug 24 20:32:57 2015 +0800
ASoC: rt5645: Modify the jack detection function to prevent the pop sound
while the jack plug in
The patch corrects the sequence of the jack detection. It will prevent the
pop sound while the jack plug in.
Signed-off-by: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 588cd850f5089cb63e031e8d70e9c081b0d97ab2
Author: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Date: Mon Aug 24 20:32:56 2015 +0800
ASoC: rt5645: Modify the headphone depop and calibration function to
prevent the pop sound in the booting time
Remove the original calibration function and modify the depop and
calibration function to prevent the pop sound in the booting time.
Signed-off-by: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit a8cfe8cfd0da4502f5fa924f47c7ba6c7047c722
Author: Chen-Yu Tsai <wens@xxxxxxxx>
Date: Tue Aug 18 15:16:45 2015 +0800
clk: Add missing header for 'bool' definition to clk-conf.h
of_clk_set_defaults uses the type 'bool', but clk-conf.h does not
include its definition.
This results in a compile error when only clk-conf.h is used.
Signed-off-by: Chen-Yu Tsai <wens@xxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 2ce0acf5673e7ee82506e69109876e037e4a64be
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Mon Aug 24 11:45:18 2015 +0800
spi: mediatek: replace *_time name
This patch replaces *_time name in mtk_spi_prepare_transfer().
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 13da5a0b72ea66c74483966ff91718ae0a9c0703
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Mon Aug 24 11:45:17 2015 +0800
spi: mediatek: add PM clk_prepare_enable fail flow
This patch adds PM clk_prepare_enable fail flow.
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 50f8fec2162db918540d0845481f3f6fffc5b033
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Mon Aug 24 11:45:16 2015 +0800
spi: mediatek: replace int with u32, delete TAB and define
MTK_SPI_PAUSE_INT_STATUS marco
this patch replaces int with u32, deletes TAB, and defines
MTK_SPI_PAUSE_INT_STATUS marco.
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit dd69a0a69c9ee3e09da7f3771c1aa420e49464ce
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Mon Aug 24 11:45:15 2015 +0800
spi: mediatek: add linux/io.h include file
mediatek spi driver uses readl/writel, so add linux/io.h,
even so it's implicitly imported by spi/spi.h
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 9205b797dbe519a629267ec8c5766cd973d35063
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Mon Aug 24 21:49:30 2015 +0100
ARM: 8421/1: smp: Collapse arch_cpu_idle_dead() into cpu_die()
The only caller of cpu_die() on ARM is arch_cpu_idle_dead(), so
let's simplify the code by renaming cpu_die() to
arch_cpu_idle_dead(). While were here, drop the __ref annotation
because __cpuinit is gone nowadays.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 1ec6f701707e4e97e451ff8b662360f1262a6c59
Merge: 6be4b0d 2a03c02
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Tue Aug 25 10:16:48 2015 -0700
Merge tag 'v4.3-rockchip32-soc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/soc
Fix for wrong error-codes in rk3288 suspend code.
* tag 'v4.3-rockchip32-soc3' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
ARM: rockchip: pm: Fix PTR_ERR() argument
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 4c80a00388dd7b9d9e7ebf31e62b96c7b74178b8
Merge: f4be3c6 467fb18
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Tue Aug 25 10:15:27 2015 -0700
Merge tag 'v4.3-rockchip32-dts3' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt
Fixes for non-standard and inverted regulator-suspend-properties
on veyron boards.
* tag 'v4.3-rockchip32-dts3' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
ARM: dts: rockchip: correct regulator power states for suspend
ARM: dts: rockchip: correct regulator PM properties
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 7d4d443eb4386d6dbd420fa96303dd8fbc1eefc8
Author: Ben Zhang <benzh@xxxxxxxxxxxx>
Date: Fri Aug 21 21:17:00 2015 -0700
ASoC: rt5677: Allow arbitrary block read/write via SPI
Added rt5677_spi_read() and refactored rt5677_spi_write() so that
an arbitrary block in the DSP address space can be read/written
via SPI. For example, this allows us to load an ELF DSP firmware
with sparse sections, and stream audio samples from DSP ring buffer.
Signed-off-by: Ben Zhang <benzh@xxxxxxxxxxxx>
Acked-by: Oder Chiou <oder_chiou@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit f4d86223771533c68f1a6692d499f7ef0025f733
Author: Jonas Gorski <jogo@xxxxxxxxxxx>
Date: Sun Aug 23 22:49:32 2015 +0200
spi/bcm63xx-hsspi: add support for dual spi read/write
Add support for dual read/writes on spi-bcm63xx-hsspi. This has been
tested with a s25fl129p1 dual read capable spi flash, with a nice speed
improvement:
serial read:
root@OpenWrt:/# time dd if=/dev/mtd4 of=/dev/null bs=8192
2032+0 records in
2032+0 records out
real 0m 4.39s
user 0m 0.00s
sys 0m 1.55s
dual read:
root@OpenWrt:/# time dd if=/dev/mtd4 of=/dev/null bs=8192
2032+0 records in
2032+0 records out
real 0m 3.09s
user 0m 0.00s
sys 0m 1.56s
Signed-off-by: Jonas Gorski <jogo@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 126b16e2ad98c46aa0f53dbf62f71c09ba6b1d99
Author: Mark Rutland <mark.rutland@xxxxxxx>
Date: Thu Jul 23 17:52:43 2015 +0100
Docs: dt: add generic MSI bindings
Currently msi-parent is used in a couple of drivers despite being fairly
underspecified. This patch adds a generic binding for MSIs (including
the existing msi-parent property) enabling the description of platform
devices capable of using MSIs.
While MSIs are primarily distinguished by doorbell and payload, some MSI
controllers (e.g. the GICv3 ITS) also use side-band information
accompanying the write to identify the master which originated the MSI,
to allow for sandboxing. This sideband information is non-probeable and
needs to be described in the DT. Other MSI controllers may have
additional configuration details which need to be described per-master.
This patch adds a generic msi-parent binding document, extending the
de-facto standard with a new (optional) #msi-cells which can be used to
express any per-master configuration and/or sideband data. This is
sufficient to describe non-hotpluggable devices.
For busses where sideband data may be derived from some bus-specific
master ID scheme, other properties will be required to describe the
mapping.
Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>
Acked-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit 7f5dcaf1fdf289767a126a0a5cc3ef39b5254b06
Author: Grant Likely <grant.likely@xxxxxxxxxx>
Date: Sun Jun 7 15:20:11 2015 +0100
drivercore: Fix unregistration path of platform devices
The unregister path of platform_device is broken. On registration, it
will register all resources with either a parent already set, or
type==IORESOURCE_{IO,MEM}. However, on unregister it will release
everything with type==IORESOURCE_{IO,MEM}, but ignore the others. There
are also cases where resources don't get registered in the first place,
like with devices created by of_platform_populate()*.
Fix the unregister path to be symmetrical with the register path by
checking the parent pointer instead of the type field to decide which
resources to unregister. This is safe because the upshot of the
registration path algorithm is that registered resources have a parent
pointer, and non-registered resources do not.
* It can be argued that of_platform_populate() should be registering
it's resources, and they argument has some merit. However, there are
quite a few platforms that end up broken if we try to do that due to
overlapping resources in the device tree. Until that is fixed, we need
to solve the immediate problem.
Cc: Pantelis Antoniou <pantelis.antoniou@xxxxxxxxxxxx>
Cc: Wolfram Sang <wsa@xxxxxxxxxxxxx>
Cc: Rob Herring <robh@xxxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx>
Signed-off-by: Grant Likely <grant.likely@xxxxxxxxxx>
Tested-by: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx>
Tested-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit 3a496b00b6f90c41bd21a410871dfc97d4f3c7ab
Author: David Daney <david.daney@xxxxxxxxxx>
Date: Wed Aug 19 13:17:47 2015 -0700
of/address: Don't loop forever in of_find_matching_node_by_address().
If the internal call to of_address_to_resource() fails, we end up
looping forever in of_find_matching_node_by_address(). This can be
caused by a defective device tree, or calling with an incorrect
matches argument.
Fix by calling of_find_matching_node() unconditionally at the end of
the loop.
Signed-off-by: David Daney <david.daney@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit 068627a5978a885b33f0f49da81860ce78c3ac6f
Author: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Date: Tue Aug 4 15:11:21 2015 +0200
of: Add vendor prefix for JEDEC Solid State Technology Association
Add the "jedec" vendor prefix for the "JEDEC Solid State Technology
Association" (formerly known as the "Joint Electron Device Engineering
Council"), which is already in use in several bindings.
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Acked-by: Brian Norris <computersforpeace@xxxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit 43443ad692cf1d41a90cac2ed7066a10cd67a9c6
Author: Hauke Mehrtens <hauke@xxxxxxxxxx>
Date: Sun Aug 2 19:44:43 2015 +0200
of/platform: add function to populate default bus
When a default bus like the simple-bus should be used someone had to
call of_platform_populate() with the default match table. This match
table was not exported, so it is impossible for code build as a module
to use this. Instead of exporting of_default_bus_match_table, add a new
function which uses this default match table and populates the bus.
Signed-off-by: Hauke Mehrtens <hauke@xxxxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit 5b87af4cca175c4f03f790f2b15be7e4dd436df9
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Tue Aug 25 08:31:17 2015 +0200
regulator: isl9305: Export OF module alias information
The I2C core always reports the MODALIAS uevent as "i2c:<modalias>"
regardless of the mechanism that was used to register the device
(i.e: OF or board code) and the table that is used later to match
the driver with the device (i.e: I2C id table or OF match table).
So drivers needs to export the I2C id table and this be built into
the module or udev won't have the necessary information to autoload
the needed driver module when the device is added.
But this means that OF-only drivers needs to have both OF and I2C id
tables that have to be kept in sync and also the dev node compatible
manufacturer prefix is stripped when reporting the MODALIAS. Which can
lead to issues if two vendors use the same I2C device name for example.
To avoid the above, the I2C core behavior may be changed in the future
to not require an SPI device table for OF-only drivers and report the
OF module alias. So, it's better to also export the OF table even when
is unused now to prevent breaking module loading when the core changes.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 3fba7e23f754a9a6e639b640fa2a393712ffe1b8
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Wed Aug 19 11:02:28 2015 +0100
ARM: uaccess: provide uaccess_save_and_enable() and uaccess_restore()
Provide uaccess_save_and_enable() and uaccess_restore() to permit
control of userspace visibility to the kernel, and hook these into
the appropriate places in the kernel where we need to access
userspace.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 08446b129bbde34665c423d882f857a45b8c3aed
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Tue Aug 25 14:59:15 2015 +0100
ARM: mm: improve do_ldrd_abort macro
Improve the do_ldrd_abort macro code - firstly, it inefficiently checks
for the LDRD encoding by doing a multi-stage test of various bits. This
can be simplified by generating a mask, bitmasking the instruction and
then comparing the result.
Secondly, we want to be able to test the result rather than branching
to do_DataAbort, so remove the branch at the end and rename the macro
to 'teq_ldrd' to reflect it's new usage. teq_ldrd macro returns 'eq'
if the instruction was a LDRD.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 9066b0c318589f47b754a3def4fe8ec4688dc21a
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Aug 25 15:12:26 2015 +0800
drm/amdgpu: fix no sync_wait in copy_buffer
when eviction is happening, if don't handle
dependency, then the fence could be dead off.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 3c62338c26bf2677c8285b406cd769b92ee0dc10
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Thu Aug 20 18:33:59 2015 +0800
drm/amdgpu: fix last_vm_update fence is not effetive for sched fence
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit f38fdfddfaab070e3ff2333a79e45169ee33dc28
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 24 11:35:26 2015 +0800
drm/amdgpu: add priv data to sched
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 84f76ea6b03a766931e5d6d650af5ab980c6c4f4
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 24 12:47:36 2015 +0800
drm/amdgpu: add owner for sched fence
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit c14692f0a728a9d79fb03c7ce521eb07ec0e2b23
Author: Christian König <christian.koenig@xxxxxxx>
Date: Fri Aug 21 15:18:47 2015 +0200
drm/amdgpu: remove entity reference from sched fence
Entity don't live as long as scheduler fences.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 6c859274f363be9dc13f8849bdc59bb64f922f26
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 20 16:12:50 2015 +0200
drm/amdgpu: fix and cleanup amd_sched_entity_push_job
Calling schedule() is probably the worse things we can do.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 87e0a87dabdbe9e1698ef85c620c4110b04992a0
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 20 17:36:28 2015 +0200
drm/amdgpu: remove amdgpu_bo_list_clone
Not used any more.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 3a185a33a2d291883bd1d0691d22901c345b12c9
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 20 17:35:34 2015 +0200
drm/amdgpu: remove the context from amdgpu_job
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 69f7dd652c08bffb267f418ded7b358e74783045
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 20 17:24:40 2015 +0200
drm/amdgpu: remove unused parameters to amd_sched_create
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 1fca766b24d07e2daed1da0f224f5f395c73e32b
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 20 17:09:54 2015 +0200
drm/amdgpu: remove sched_lock
It isn't protecting anything.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit b034b572f2823122d56cd0d235158873f84c7c23
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 20 17:08:25 2015 +0200
drm/amdgpu: remove prepare_job callback
Not used any more.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit d54fdb94b2fd4c989d498f69e8bbf4189fde42ef
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 20 17:03:48 2015 +0200
drm/amdgpu: cleanup a scheduler function name
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit e688b728228b951f41175e3a7c0738708d045969
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 20 17:01:01 2015 +0200
drm/amdgpu: reorder scheduler functions
Keep run queue, entity and scheduler handling together.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit f49565982194d601f4f3a99892d0f3c765aec104
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 20 16:59:38 2015 +0200
drm/amdgpu: fix scheduler thread creation error checking
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit aef4852eed2841892796fb1e9abd7f8468384e62
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 20 14:47:46 2015 +0200
drm/amdgpu: fix entity wakeup race condition
That actually didn't worked at all.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit f85a6dd9ebd1bcaeb2f31cca71537e62606a23c2
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Aug 19 17:37:52 2015 +0200
drm/amdgpu: cleanup entity picking
Cleanup function name, stop checking scheduler ready twice, but
check if kernel thread should stop instead.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 9788ec40322ef40d64f6d4276248f40666dc4505
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Aug 19 17:34:20 2015 +0200
drm/amdgpu: remove some more unused entity members v2
None of them are used any more.
v2: fix type in error message
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit eb98d1c54d1e058f406f3f4acf15684ad26f9676
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 20 17:28:36 2015 +0200
drm/amdgpu: fix user fences when scheduler is enabled
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit f91b3a69418120974c9a416939b903ec86607c52
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 20 14:47:40 2015 +0800
drm/amdgpu: fix fence wait in sync_fence, instead should be in sync_rings
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit c746ba222363d2e0b0316b1c0bda21e2646b66f2
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Aug 19 16:12:15 2015 +0200
drm/amdgpu: rework scheduler submission handling.
Remove active_hw_rq and it's protecting queue_lock, they are unused.
User 32bit atomic for hw_rq_count, 64bits for counting to three is a bit
overkill.
Cleanup the function name and remove incorrect comments.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit ce882e6dc241ab8dded0eeeb33a86482d44a5689
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Aug 19 15:00:55 2015 +0200
drm/amdgpu: remove v_seq handling from the scheduler v2
Simply not used any more. Only keep 32bit atomic for fence sequence
numbering.
v2: trivial rebase
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> (v1)
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx> (v1)
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx> (v1)
commit 4ce9891ee17c6e064cc334e3297f7e992d47f3a6
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Wed Aug 19 16:41:19 2015 +0800
drm/amdgpu: improve sa_bo->fence by kernel fence
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 1aa4051b7f5474cca6009c13868c59d78d06f983
Author: Junwei Zhang <Jerry.Zhang@xxxxxxx>
Date: Wed Aug 19 16:24:19 2015 +0800
drm/amdgpu: modify amdgpu_fence_wait_any() to amdgpu_fence_wait_multiple()
Rename the function and update the related code with this modified
function.
Add the new parameter of bool wait_all.
If wait_all is true, it will return when all fences are signaled or
timeout.
If wait_all is false, it will return when any fence is signaled or
timeout.
Signed-off-by: Junwei Zhang <Jerry.Zhang@xxxxxxx>
Reviewed-by: Monk Liu <monk.liu@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 00133ffbf150bf145a946b3f4ee7031503e9751e
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Thu Aug 13 17:20:21 2015 -0300
pinctrl: imx6ul: Remove .owner field
platform_driver does not need to set an owner as it will be
populated by the driver core.
The semantic patch that makes this change is available
in scripts/coccinelle/api/platform_no_drv_owner.cocci.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 5e22ec019823b0204720e1ad9a5866c638332b3a
Author: Julia Lawall <julia.lawall@xxxxxxx>
Date: Thu Aug 13 17:41:16 2015 +0200
gpio: extraxfs: fix returnvar.cocci warnings
Remove unneeded variable used to store return value.
Generated by: scripts/coccinelle/misc/returnvar.cocci
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Julia Lawall <julia.lawall@xxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 2fe2918fa3294edc9c3d8d1622bb1a07c00463ff
Author: Mike Looijmans <mike.looijmans@xxxxxxxx>
Date: Wed Aug 12 16:22:12 2015 +0200
pinctrl: zynq: Fix typos in smc0_nand_grp and smc0_nor_grp
Group names should be smc0_nand_grp and smc0_nor_grp, otherwise you'll
get errors like this if you try to pinmux them via the devicetree:
zynq-pinctrl 700.pinctrl: invalid group "smc0_nand_grp" for function
"smc0_nand"
Probably a typo while creating these tables.
Signed-off-by: Mike Looijmans <mike.looijmans@xxxxxxxx>
Acked-by: Sören Brinkmann <soren.brinkmann@xxxxxxxxxx>
Acked-by: Moritz Fischer <moritz.fischer@xxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 52293c67f1e7542a6dc61037d83c266e216bef27
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Mon Aug 24 22:46:13 2015 -0400
drm/amdgpu: fix IH ring allocation for bus addresses (v2)
Use pci_alloc_consistent rather than kzalloc since we
need 256 byte aligned memory for the ring buffer.
v2: fix copy paste typo in free function noticed
by Jammy.
bug:
https://bugs.freedesktop.org/show_bug.cgi?id=91749
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit bf433416e67597ba105ece55b3136557874945db
Author: Lars Persson <lars.persson@xxxxxxxx>
Date: Tue Aug 25 11:59:15 2015 +0200
crypto: algif_aead - fix for multiple operations on AF_ALG sockets
The tsgl scatterlist must be re-initialized after each
operation. Otherwise the sticky bits in the page_link will corrupt the
list with pre-mature termination or false chaining.
Signed-off-by: Lars Persson <larper@xxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit df9e21e100a65618b56971ec8da4975eb60e919d
Author: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Date: Mon Aug 24 11:56:02 2015 -0700
crypto: qat - enable legacy VFs
We need to support legacy VFs as well as VFs running on different OSes.
To do so the compatibility check need needs to be relaxed.
This patch moves the logic responsible for VF to PF version and
compatibility checking from adfsriov.c to adf_pf2vf_msg.c,
where it belongs, and changes the logic enable legacy VFs.
Signed-off-by: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 0f74fbf77d457c692e108c91475bb7a46aa6d60c
Author: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Date: Mon Aug 24 07:52:14 2015 -0700
MPI: Fix mpi_read_buffer
Change mpi_read_buffer to return a number without leading zeros
so that mpi_read_buffer and mpi_get_buffer return the same thing.
Signed-off-by: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit a8b9774571d46506a0774b1ced3493b1245cf893
Author: Christian Engelmayer <cengelma@xxxxxx>
Date: Fri Aug 21 23:14:26 2015 +0200
rsi: Fix possible leak when loading firmware
Commit 5d5cd85ff441 ("rsi: Fix failure to load firmware after memory
leak fix and fix the leak") also added a check on the allocation of
DMA-accessible memory that may directly return. In that case the
already allocated firmware data is leaked. Make sure the data is
always freed correctly. Detected by Coverity CID 1316519.
Fixes: 5d5cd85ff441 ("rsi: Fix failure to load firmware after memory leak
fix and fix the leak")
Signed-off-by: Christian Engelmayer <cengelma@xxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 4e70f2144db01f7214ed5846e47abf128fbfb5af
Author: Hante Meuleman <meuleman@xxxxxxxxxxxx>
Date: Thu Aug 20 22:06:08 2015 +0200
brcmfmac: Add support for host platform NVRAM loading.
Host platforms such as routers supported by OpenWRT can
support NVRAM reading directly from internal NVRAM store.
With this patch the nvram load routines will fall back to
this method when there is no nvram file and support is
available in the kernel.
Reviewed-by: Arend Van Spriel <arend@xxxxxxxxxxxx>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@xxxxxxxxxxxx>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@xxxxxxxxxxxx>
Reviewed-by: Daniel (Deognyoun) Kim <dekim@xxxxxxxxxxxx>
Signed-off-by: Hante Meuleman <meuleman@xxxxxxxxxxxx>
Signed-off-by: Arend van Spriel <arend@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit fc7c3ad5251cf76fc78b7f4701e35a0af6375335
Author: Arend van Spriel <arend@xxxxxxxxxxxx>
Date: Thu Aug 20 22:06:07 2015 +0200
brcmfmac: bump highest event number for 4339 firmware
The event mask length is determined by the highest event number
that is specified in the driver. When this length is shorter than
firmware expects setting event mask will fail and device becomes
pretty useless. This issue was reported with bcm4339 firmware that
was recently released.
Reported-by: Pontus Fuchs <pontusf@xxxxxxxxxxxx>
Reviewed-by: Hante Meuleman <meuleman@xxxxxxxxxxxx>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@xxxxxxxxxxxx>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@xxxxxxxxxxxx>
Reviewed-by: Pontus Fuchs <pontusf@xxxxxxxxxxxx>
Signed-off-by: Arend van Spriel <arend@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit b02bf1932a4855dc860ed20cdab94f1ea9b1c56f
Author: Franky Lin <frankyl@xxxxxxxxxxxx>
Date: Thu Aug 20 22:06:06 2015 +0200
brcmfmac: block the correct flowring when backup queue overflow
brcmf_flowring_block blocks the last active flowring under the same
interface instead of the one provided by caller. This could lead to a
dead lock of netif stop if there are more than one flowring under the
interface and the traffic is high enough so brcmf_flowring_enqueue can
not unblock the ring right away.
Reviewed-by: Pieter-Paul Giesberts <pieterpg@xxxxxxxxxxxx>
Reviewed-by: Hante Meuleman <meuleman@xxxxxxxxxxxx>
Signed-off-by: Franky Lin <frankyl@xxxxxxxxxxxx>
Signed-off-by: Arend van Spriel <arend@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 39504a2d21adde4748b5ce8c057e09edf3fe17bb
Author: Arend van Spriel <arend@xxxxxxxxxxxx>
Date: Thu Aug 20 22:06:05 2015 +0200
brcmfmac: make use of cfg80211_check_combinations()
Use cfg80211_check_combinations() so we can bail out early when an
interface add or change results in an invalid combination.
Reviewed-by: Hante Meuleman <meuleman@xxxxxxxxxxxx>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@xxxxxxxxxxxx>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@xxxxxxxxxxxx>
Signed-off-by: Arend van Spriel <arend@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 2bb66a8183d6396babde51e558b1ab35733f275f
Author: Franky Lin <frankyl@xxxxxxxxxxxx>
Date: Thu Aug 20 22:06:04 2015 +0200
brcmfmac: add debugfs entry for msgbuf statistics
Expose ring buffer read/write pointers and other useful statistics
through debugfs.
Reviewed-by: Arend Van Spriel <arend@xxxxxxxxxxxx>
Reviewed-by: Hante Meuleman <meuleman@xxxxxxxxxxxx>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@xxxxxxxxxxxx>
Signed-off-by: Franky Lin <frankyl@xxxxxxxxxxxx>
Signed-off-by: Arend van Spriel <arend@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 0882dda3bcbb51e63c2fd25705ec8541bf86378e
Author: Arend van Spriel <arend@xxxxxxxxxxxx>
Date: Thu Aug 20 22:06:03 2015 +0200
brcmfmac: correct interface combination info
The interface combination provided by brcmfmac did not truly reflect
the combinations supported by driver and/or firmware.
Reviewed-by: Hante Meuleman <meuleman@xxxxxxxxxxxx>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@xxxxxxxxxxxx>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@xxxxxxxxxxxx>
Reviewed-by: Pontus Fuchs <pontusf@xxxxxxxxxxxx>
Signed-off-by: Arend van Spriel <arend@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 50f32e2d1044b1f1658a1e40c8831969a30ca6a1
Author: RafaÅ? MiÅ?ecki <zajec5@xxxxxxxxx>
Date: Thu Aug 20 00:16:42 2015 +0200
brcmfmac: check all combinations when setting wiphy's addresses
Broadcom is working on better reflection of interface combinations. With
upcoming patches we may have 1st combination supporting less interfaces
than others.
To don't run out of addresses check all combinations to find the one
with the greatest max_interfaces value.
Signed-off-by: RafaÅ? MiÅ?ecki <zajec5@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 1642d09fb9b128e8e538b2a4179962a34f38dff9
Author: Adrien Schildknecht <adrien+dev@xxxxxxxxxxx>
Date: Wed Aug 19 17:33:12 2015 +0200
rtlwifi: rtl8192cu: Add new device ID
The v2 of NetGear WNA1000M uses a different idProduct: USB ID 0846:9043
Signed-off-by: Adrien Schildknecht <adrien+dev@xxxxxxxxxxx>
Cc: Stable <stable@xxxxxxxxxxxxxxx>
Acked-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 654e2751c9f00491c4622893de59a21784e39ccf
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Tue Aug 25 14:04:44 2015 +0200
ALSA: ppc: Add missing inclusion of linux/module.h
Otherwise it triggers a compile warning like:
sound/ppc/keywest.c:104:1: warning: data definition has no type or
storage class
sound/ppc/keywest.c:104:1: error: type defaults to 'int' in declaration
of 'MODULE_DEVICE_TABLE' [-Werror=implicit-int]
Fixes: a2bc2af66a5b ('ALSA: ppc: keywest: Export I2C module alias
information')
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Reviewed-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 12ff7288bfed9d6d62186f0dd782b7b5a43670cd
Author: Wu Fengguang <fengguang.wu@xxxxxxxxx>
Date: Sat Aug 15 18:36:37 2015 +0800
rtlwifi: rtl8192ee: fix semicolon.cocci warnings
drivers/net/wireless/rtlwifi/rtl8192ee/phy.c:856:2-3: Unneeded semicolon
drivers/net/wireless/rtlwifi/rtl8192ee/phy.c:492:3-4: Unneeded semicolon
drivers/net/wireless/rtlwifi/rtl8192ee/phy.c:452:3-4: Unneeded semicolon
Remove unneeded semicolon.
Generated by: scripts/coccinelle/misc/semicolon.cocci
CC: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 14250640cd52bf12831799c35502184c4ae8963b
Author: Oleksij Rempel <linux@xxxxxxxxxxxxxxxx>
Date: Fri Aug 14 07:16:39 2015 +0200
ath9k_htc: do ani shortcalibratio if we got -ETIMEDOUT
current code will handle -ETIMEDOUT as success which is probalbly wrong.
According to this comment I assume it is safe to handle -ETIMEDOUT as
false:
drivers/net/wireless/ath/ath9k/calib.c
290 /*
291 * We timed out waiting for the noisefloor to load, probably
due to an
292 * in-progress rx. Simply return here and allow the load
plenty of time
293 * to complete before the next calibration interval. We need
to avoid
294 * trying to load -50 (which happens below) while the
previous load is
295 * still in progress as this can cause rx deafness. Instead
by returning
296 * here, the baseband nf cal will just be capped by our
present
297 * noisefloor until the next calibration timer.
298 */
Since no other error wariants are present, this patch is checking only
for (ret <= 0).
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Oleksij Rempel <linux@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 11c36537056759578f9baae03c4ff9dba95661cc
Merge: 4a89ba0 5865f36
Author: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
Date: Tue Aug 25 14:54:38 2015 +0300
Merge tag 'iwlwifi-next-for-kalle-2015-08-23' of
https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
* new Tx power firmware API
* bump max firmware API to 17
* fix bug in debug prints
* static checker fix
* fix unused defines
* fix command list on newest firmware
commit a2bc2af66a5b656577fc2d71b6c277b73537777e
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Tue Aug 25 08:31:14 2015 +0200
ALSA: ppc: keywest: Export I2C module alias information
The I2C core always reports the MODALIAS uevent as "i2c:<client name"
regardless if the driver was matched using the I2C id_table or the
of_match_table. So the driver needs to export the I2C table and this
be built into the module or udev won't have the necessary information
to auto load the correct module when the device is added.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit dd9d3843755da95f63dd3a376f62b3e45c011210
Author: Jan H. Schönherr <jschoenh@xxxxxxxxx>
Date: Wed Aug 12 21:35:56 2015 +0200
sched: Fix cpu_active_mask/cpu_online_mask race
There is a race condition in SMP bootup code, which may result
in
WARNING: CPU: 0 PID: 1 at kernel/workqueue.c:4418
workqueue_cpu_up_callback()
or
kernel BUG at kernel/smpboot.c:135!
It can be triggered with a bit of luck in Linux guests running
on busy hosts.
CPU0 CPUn
==== ====
_cpu_up()
__cpu_up()
start_secondary()
set_cpu_online()
cpumask_set_cpu(cpu,
to_cpumask(cpu_online_bits));
cpu_notify(CPU_ONLINE)
<do stuff, see below>
cpumask_set_cpu(cpu,
to_cpumask(cpu_active_bits));
During the various CPU_ONLINE callbacks CPUn is online but not
active. Several things can go wrong at that point, depending on
the scheduling of tasks on CPU0.
Variant 1:
cpu_notify(CPU_ONLINE)
workqueue_cpu_up_callback()
rebind_workers()
set_cpus_allowed_ptr()
This call fails because it requires an active CPU; rebind_workers()
ends with a warning:
WARNING: CPU: 0 PID: 1 at kernel/workqueue.c:4418
workqueue_cpu_up_callback()
Variant 2:
cpu_notify(CPU_ONLINE)
smpboot_thread_call()
smpboot_unpark_threads()
..
__kthread_unpark()
__kthread_bind()
wake_up_state()
..
select_task_rq()
select_fallback_rq()
The ->wake_cpu of the unparked thread is not allowed, making a call
to select_fallback_rq() necessary. Then, select_fallback_rq() cannot
find an allowed, active CPU and promptly resets the allowed CPUs, so
that the task in question ends up on CPU0.
When those unparked tasks are eventually executed, they run
immediately into a BUG:
kernel BUG at kernel/smpboot.c:135!
Just changing the order in which the online/active bits are set
(and adding some memory barriers), would solve the two issues
above. However, it would change the order of operations back to
the one before commit 6acbfb96976f ("sched: Fix hotplug vs.
set_cpus_allowed_ptr()"), thus, reintroducing that particular
problem.
Going further back into history, we have at least the following
commits touching this topic:
- commit 2baab4e90495 ("sched: Fix select_fallback_rq() vs
cpu_active/cpu_online")
- commit 5fbd036b552f ("sched: Cleanup cpu_active madness")
Together, these give us the following non-working solutions:
- secondary CPU sets active before online, because active is assumed to
be a subset of online;
- secondary CPU sets online before active, because the primary CPU
assumes that an online CPU is also active;
- secondary CPU sets online and waits for primary CPU to set active,
because it might deadlock.
Commit 875ebe940d77 ("powerpc/smp: Wait until secondaries are
active & online") introduces an arch-specific solution to this
arch-independent problem.
Now, go for a more general solution without explicit waiting and
simply set active twice: once on the secondary CPU after online
was set and once on the primary CPU after online was seen.
set_cpus_allowed_ptr()")
Signed-off-by: Jan H. Schönherr <jschoenh@xxxxxxxxx>
Acked-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Cc: Anton Blanchard <anton@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Joerg Roedel <jroedel@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Matt Wilson <msw@xxxxxxxxxx>
Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Fixes: 6acbfb96976f ("sched: Fix hotplug vs. set_cpus_allowed_ptr()")
Link:
http://lkml.kernel.org/r/1439408156-18840-1-git-send-email-jschoenh@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 4ad79562577a3936b08365260f86eeb83156479f
Merge: c13dcf9 e203db2 6e6cfbc cf27ec9 54e466f 4df4eab 23d3a98 57fb907 7b0ce72
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Aug 25 11:39:50 2015 +0200
Merge branches 'arm/omap', 'arm/msm', 'arm/smmu', 'arm/tegra',
'x86/vt-d', 'x86/amd', 'ppc/pamu' and 'core' into next
commit 4df4eab168c1c4058603be55a3169d4a45779cc0
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Aug 25 10:54:28 2015 +0200
iommu/vt-d: Really use upper context table when necessary
There is a bug in iommu_context_addr() which will always use
the lower context table, even when the upper context table
needs to be used. Fix this issue.
Fixes: 03ecc32c5274 ("iommu/vt-d: support extended root and context
entries")
Reported-by: Xiao, Nan <nan.xiao@xxxxxx>
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 5e9a3fcfa2ca10e3ff76938fe9a12515ffa41003
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Sun Aug 23 10:07:13 2015 +0800
ASoC: tegra: Fix unused variable 'spdif' warning
Fix below build warning:
CC [M] sound/soc/tegra/tegra20_spdif.o
sound/soc/tegra/tegra20_spdif.c: In function
'tegra20_spdif_platform_remove':
sound/soc/tegra/tegra20_spdif.c:361:24: warning: unused variable 'spdif'
[-Wunused-variable]
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Reviewed-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit e0aa3a665782e29cec752ae667c51ed4ee75d11f
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Aug 20 17:39:32 2015 +0100
ARM: entry: ensure that IRQs are enabled when calling syscall_trace_exit()
The audit code looks like it's been written to cope with being called
with IRQs enabled. However, it's unclear whether IRQs should be
enabled or disabled when calling the syscall tracing infrastructure.
Right now, sometimes we call this with IRQs enabled, and other times
with IRQs disabled. Opt for IRQs being enabled for consistency.
Acked-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 3302caddf10ad50710dbb7a94ccbdb3ad5bf1412
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Aug 20 16:13:37 2015 +0100
ARM: entry: efficiency cleanups
Make the "fast" syscall return path fast again. The addition of IRQ
tracing and context tracking has made this path grossly inefficient.
We can do much better if these options are enabled if we save the
syscall return code on the stack - we then don't need to save a bunch
of registers around every single callout to C code.
Acked-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 01e09a28167c338684606b70797422da3bbb6650
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Aug 20 14:22:48 2015 +0100
ARM: entry: get rid of asm_trace_hardirqs_on_cond
There's no need for this macro, it can use a default for the
condition argument.
Acked-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit b64d1f66517a89b9b0f6bd0bca86b05a55a5e742
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Tue Aug 18 23:06:25 2015 +0100
ARM: uaccess: simplify user access assembly
The user assembly for byte and word accesses was virtually identical.
Rather than duplicating this, use a macro instead.
Acked-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 552ef80389ec2567566be1ccc0dd79f08ba32cce
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Mon Aug 24 16:52:30 2015 +0800
ASoC: SPEAr: Convert to use devm_ioremap_resource
Use devm_ioremap_resource() instead of open code.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 5aec892a6ebe5a3e2a006d969b5fab59e6c79f63
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Mon Aug 24 16:49:05 2015 +0800
ASoC: omap-mcbsp: Convert to use devm_ioremap_resource
Use devm_ioremap_resource() instead of open code.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 508a43fdd73072c959f849b4e9eb60a9b523396f
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Mon Aug 24 16:47:36 2015 +0800
ASoC: davinci: Convert to use devm_ioremap_resource
Use devm_ioremap_resource() instead of open code.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit ca30475698696af3a03f6eaee16472ae09d42269
Author: Xiao, Nan <nan.xiao@xxxxxx>
Date: Mon Aug 24 06:22:42 2015 +0000
x86/vt-d: Fix documentation of DRHD
According to "Intel Virtualization Technology for Directed
I/O" specification, DRHD stands for "DMA Remapping Hardware
Unit Definition" , not "DMA Engine Reporting Structure".
Signed-off-by: Nan Xiao <nan.xiao@xxxxxx>
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 39c33704420b147fb7e193a9f406cc8420a1d610
Author: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Date: Mon Aug 24 12:13:31 2015 -0700
drivers/dma/iop-adma: Use dma_alloc_writecombine() kernel-style
dma_alloc_writecombine()'s call and return value check is
tangled in all in one call. Untangle both calls according to
kernel coding style.
Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Acked-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: airlied@xxxxxxxx
Cc: benh@xxxxxxxxxxxxxxxxxxx
Cc: bhelgaas@xxxxxxxxxx
Cc: daniel.vetter@xxxxxxxx
Cc: dmaengine@xxxxxxxxxxxxxxx
Cc: konrad.wilk@xxxxxxxxxx
Cc: luto@xxxxxxxxxxxxxx
Cc: mst@xxxxxxxxxx
Cc: tomi.valkeinen@xxxxxx
Cc: toshi.kani@xxxxxx
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440443613-13696-10-git-send-email-mcgrof@xxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 81bdef04d3bc76fc516ca613fa96061ff27bced9
Author: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Date: Mon Aug 24 12:13:30 2015 -0700
drivers/video/fbdev/vt8623fb: Use arch_phys_wc_add() and pci_iomap_wc()
This driver uses the same area for MTRR as for the ioremap().
Convert the driver from using the x86-specific MTRR code to the
architecture-agnostic arch_phys_wc_add(). It will avoid MTRRs if
write-combining is available. In order to take advantage of that
also ensure the ioremapped area is requested as write-combining.
There are a few motivations for this:
a) Take advantage of PAT when available.
b) Help bury MTRR code away, MTRR is architecture-specific and on
x86 it is being replaced by PAT.
c) Help with the goal of eventually using _PAGE_CACHE_UC over
_PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit
de33c442e titled "x86 PAT: fix performance drop for glx,
use UC minus for ioremap(), ioremap_nocache() and
pci_mmap_page_range()").
The conversion done is expressed by the following Coccinelle
SmPL patch, it additionally required manual intervention to
address all the ifdeffery and removal of redundant things which
arch_phys_wc_add() already addresses such as verbose message
about when MTRR fails and doing nothing when we didn't get an
MTRR.
@ mtrr_found @
expression index, base, size;
@@
-index = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);
+index = arch_phys_wc_add(base, size);
@ mtrr_rm depends on mtrr_found @
expression mtrr_found.index, mtrr_found.base, mtrr_found.size;
@@
-mtrr_del(index, base, size);
+arch_phys_wc_del(index);
@ mtrr_rm_zero_arg depends on mtrr_found @
expression mtrr_found.index;
@@
-mtrr_del(index, 0, 0);
+arch_phys_wc_del(index);
@ mtrr_rm_fb_info depends on mtrr_found @
struct fb_info *info;
expression mtrr_found.index;
@@
-mtrr_del(index, info->fix.smem_start, info->fix.smem_len);
+arch_phys_wc_del(index);
@ ioremap_replace_nocache depends on mtrr_found @
struct fb_info *info;
expression base, size;
@@
-info->screen_base = ioremap_nocache(base, size);
+info->screen_base = ioremap_wc(base, size);
@ ioremap_replace_default depends on mtrr_found @
struct fb_info *info;
expression base, size;
@@
-info->screen_base = ioremap(base, size);
+info->screen_base = ioremap_wc(base, size);
Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Acked-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Antonino Daplas <adaplas@xxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Jingoo Han <jg1.han@xxxxxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
Cc: Lad, Prabhakar <prabhakar.csengg@xxxxxxxxx>
Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Rob Clark <robdclark@xxxxxxxxx>
Cc: Suresh Siddha <sbsiddha@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: airlied@xxxxxxxx
Cc: benh@xxxxxxxxxxxxxxxxxxx
Cc: bhelgaas@xxxxxxxxxx
Cc: dan.j.williams@xxxxxxxxx
Cc: konrad.wilk@xxxxxxxxxx
Cc: linux-fbdev@xxxxxxxxxxxxxxx
Cc: linux-pci@xxxxxxxxxxxxxxx
Cc: mst@xxxxxxxxxx
Cc: toshi.kani@xxxxxx
Cc: vinod.koul@xxxxxxxxx
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440443613-13696-9-git-send-email-mcgrof@xxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 4edcd2ab125506516c7de038f6e0a6d19dcc411d
Author: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Date: Mon Aug 24 12:13:29 2015 -0700
drivers/video/fbdev/s3fb: Use arch_phys_wc_add() and pci_iomap_wc()
This driver uses the same area for MTRR as for the ioremap().
Convert the driver from using the x86-specific MTRR code to the
architecture-agnostic arch_phys_wc_add(). It will avoid MTRRs if
write-combining is available. In order to take advantage of that
also ensure the ioremapped area is requested as write-combining.
There are a few motivations for this:
a) Take advantage of PAT when available.
b) Help bury MTRR code away, MTRR is architecture-specific and on
x86 it is being replaced by PAT.
c) Help with the goal of eventually using _PAGE_CACHE_UC over
_PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit
de33c442e titled "x86 PAT: fix performance drop for glx,
use UC minus for ioremap(), ioremap_nocache() and
pci_mmap_page_range()").
The conversion done is expressed by the following Coccinelle
SmPL patch, it additionally required manual intervention to
address all the ifdeffery and removal of redundant things which
arch_phys_wc_add() already addresses such as verbose message
about when MTRR fails and doing nothing when we didn't get an
MTRR.
@ mtrr_found @
expression index, base, size;
@@
-index = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);
+index = arch_phys_wc_add(base, size);
@ mtrr_rm depends on mtrr_found @
expression mtrr_found.index, mtrr_found.base, mtrr_found.size;
@@
-mtrr_del(index, base, size);
+arch_phys_wc_del(index);
@ mtrr_rm_zero_arg depends on mtrr_found @
expression mtrr_found.index;
@@
-mtrr_del(index, 0, 0);
+arch_phys_wc_del(index);
@ mtrr_rm_fb_info depends on mtrr_found @
struct fb_info *info;
expression mtrr_found.index;
@@
-mtrr_del(index, info->fix.smem_start, info->fix.smem_len);
+arch_phys_wc_del(index);
@ ioremap_replace_nocache depends on mtrr_found @
struct fb_info *info;
expression base, size;
@@
-info->screen_base = ioremap_nocache(base, size);
+info->screen_base = ioremap_wc(base, size);
@ ioremap_replace_default depends on mtrr_found @
struct fb_info *info;
expression base, size;
@@
-info->screen_base = ioremap(base, size);
+info->screen_base = ioremap_wc(base, size);
Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Acked-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Antonino Daplas <adaplas@xxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxxx>
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Jingoo Han <jg1.han@xxxxxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
Cc: Lad, Prabhakar <prabhakar.csengg@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Rickard Strandqvist <rickard_strandqvist@xxxxxxxxxxxxxxxxxx>
Cc: Suresh Siddha <sbsiddha@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: airlied@xxxxxxxx
Cc: benh@xxxxxxxxxxxxxxxxxxx
Cc: bhelgaas@xxxxxxxxxx
Cc: dan.j.williams@xxxxxxxxx
Cc: konrad.wilk@xxxxxxxxxx
Cc: linux-fbdev@xxxxxxxxxxxxxxx
Cc: linux-pci@xxxxxxxxxxxxxxx
Cc: mst@xxxxxxxxxx
Cc: toshi.kani@xxxxxx
Cc: vinod.koul@xxxxxxxxx
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440443613-13696-8-git-send-email-mcgrof@xxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit c823a48ac47f8e0274fa7c8a3befae4bfa8412e3
Author: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Date: Mon Aug 24 12:13:28 2015 -0700
drivers/video/fbdev/arkfb.c: Use arch_phys_wc_add() and pci_iomap_wc()
Convert the driver from using the x86-specific MTRR code to the
architecture-agnostic arch_phys_wc_add(). It will avoid MTRRs if
write-combining is available. In order to take advantage of that
also ensure the ioremapped area is requested as write-combining.
There are a few motivations for this:
a) Take advantage of PAT when available.
b) Help bury MTRR code away, MTRR is architecture-specific and
on x86 it is being replaced by PAT.
c) Help with the goal of eventually using _PAGE_CACHE_UC over
_PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit
de33c442e titled "x86 PAT: fix performance drop for glx,
use UC minus for ioremap(), ioremap_nocache() and
pci_mmap_page_range()").
The conversion done is expressed by the following Coccinelle
SmPL patch, it additionally required manual intervention to
address all the ifdeffery and removal of redundant things which
arch_phys_wc_add() already addresses such as verbose message
about when MTRR fails and doing nothing when we didn't get an
MTRR.
@ mtrr_found @
expression index, base, size;
@@
-index = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);
+index = arch_phys_wc_add(base, size);
@ mtrr_rm depends on mtrr_found @
expression mtrr_found.index, mtrr_found.base, mtrr_found.size;
@@
-mtrr_del(index, base, size);
+arch_phys_wc_del(index);
@ mtrr_rm_zero_arg depends on mtrr_found @
expression mtrr_found.index;
@@
-mtrr_del(index, 0, 0);
+arch_phys_wc_del(index);
@ mtrr_rm_fb_info depends on mtrr_found @
struct fb_info *info;
expression mtrr_found.index;
@@
-mtrr_del(index, info->fix.smem_start, info->fix.smem_len);
+arch_phys_wc_del(index);
@ ioremap_replace_nocache depends on mtrr_found @
struct fb_info *info;
expression base, size;
@@
-info->screen_base = ioremap_nocache(base, size);
+info->screen_base = ioremap_wc(base, size);
@ ioremap_replace_default depends on mtrr_found @
struct fb_info *info;
expression base, size;
@@
-info->screen_base = ioremap(base, size);
+info->screen_base = ioremap_wc(base, size);
Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Acked-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Antonino Daplas <adaplas@xxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxxx>
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
Cc: Lad, Prabhakar <prabhakar.csengg@xxxxxxxxx>
Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Suresh Siddha <sbsiddha@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: airlied@xxxxxxxx
Cc: benh@xxxxxxxxxxxxxxxxxxx
Cc: bhelgaas@xxxxxxxxxx
Cc: dan.j.williams@xxxxxxxxx
Cc: konrad.wilk@xxxxxxxxxx
Cc: linux-fbdev@xxxxxxxxxxxxxxx
Cc: linux-pci@xxxxxxxxxxxxxxx
Cc: mst@xxxxxxxxxx
Cc: toshi.kani@xxxxxx
Cc: vinod.koul@xxxxxxxxx
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440443613-13696-7-git-send-email-mcgrof@xxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 1b3d4200c1e00a3fb5e0aea428de5b07079a37e3
Author: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Date: Mon Aug 24 12:13:27 2015 -0700
PCI: Add pci_iomap_wc() variants
PCI BARs tell us whether prefetching is safe, but they don't say
anything about write combining (WC). WC changes ordering rules
and allows writes to be collapsed, so it's not safe in general
to use it on a prefetchable region.
Add pci_iomap_wc() and pci_iomap_wc_range() so drivers can take
advantage of write combining when they know it's safe.
On architectures that don't fully support WC, e.g., x86 without
PAT, drivers for legacy framebuffers may get some of the benefit
by using arch_phys_wc_add() in addition to pci_iomap_wc(). But
arch_phys_wc_add() is unreliable and should be avoided in
general. On x86, it uses MTRRs, which are limited in number and
size, so the results will vary based on driver loading order.
The goals of adding pci_iomap_wc() are to:
- Give drivers an architecture-independent way to use WC so they can stop
using interfaces like mtrr_add() (on x86, pci_iomap_wc() uses
PAT when available).
- Move toward using _PAGE_CACHE_MODE_UC, not _PAGE_CACHE_MODE_UC_MINUS,
on x86 on ioremap_nocache() (see de33c442ed2a ("x86 PAT: fix
performance drop for glx, use UC minus for ioremap(), ioremap_nocache()
and pci_mmap_page_range()").
Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
[ Move IORESOURCE_IO check up, space out statements for better
readability. ]
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Acked-by: Arnd Bergmann <arnd@xxxxxxxx>
Cc: <roger.pau@xxxxxxxxxx>
Cc: <syrjala@xxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Antonino Daplas <adaplas@xxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Davidlohr Bueso <dbueso@xxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Michael S. Tsirkin <mst@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Cc: Stefan Bader <stefan.bader@xxxxxxxxxxxxx>
Cc: Suresh Siddha <sbsiddha@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Toshi Kani <toshi.kani@xxxxxx>
Cc: Ville Syrjälä <syrjala@xxxxxx>
Cc: Vlastimil Babka <vbabka@xxxxxxx>
Cc: airlied@xxxxxxxx
Cc: benh@xxxxxxxxxxxxxxxxxxx
Cc: dan.j.williams@xxxxxxxxx
Cc: david.vrabel@xxxxxxxxxx
Cc: jbeulich@xxxxxxxx
Cc: konrad.wilk@xxxxxxxxxx
Cc: linux-arch@xxxxxxxxxxxxxxx
Cc: linux-fbdev@xxxxxxxxxxxxxxx
Cc: linux-pci@xxxxxxxxxxxxxxx
Cc: venkatesh.pallipadi@xxxxxxxxx
Cc: vinod.koul@xxxxxxxxx
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440443613-13696-6-git-send-email-mcgrof@xxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit f3adccbd75831f3651ca6e2cbb83f27cd68a27c9
Author: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Date: Mon Aug 24 12:13:26 2015 -0700
drivers/video/fbdev/gxt4500: Use pci_ioremap_wc_bar() to map framebuffer
The driver doesn't use mtrr_add() or arch_phys_wc_add() but
since we know the framebuffer is isolated already on an
ioremap() we can take advantage of write combining for
performance where possible.
In this case there are a few motivations for this:
a) Take advantage of PAT when available.
b) Help with the goal of eventually using _PAGE_CACHE_UC over
_PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit
de33c442e titled "x86 PAT: fix performance drop for glx,
use UC minus for ioremap(), ioremap_nocache() and
pci_mmap_page_range()").
Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Acked-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Antonino Daplas <adaplas@xxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxxx>
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Rob Clark <robdclark@xxxxxxxxx>
Cc: Suresh Siddha <sbsiddha@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: airlied@xxxxxxxx
Cc: benh@xxxxxxxxxxxxxxxxxxx
Cc: bhelgaas@xxxxxxxxxx
Cc: dan.j.williams@xxxxxxxxx
Cc: konrad.wilk@xxxxxxxxxx
Cc: linux-fbdev@xxxxxxxxxxxxxxx
Cc: linux-pci@xxxxxxxxxxxxxxx
Cc: mst@xxxxxxxxxx
Cc: toshi.kani@xxxxxx
Cc: vinod.koul@xxxxxxxxx
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440443613-13696-5-git-send-email-mcgrof@xxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 9e517ac88b2443bebc0499c0b477b155d63648a7
Author: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Date: Mon Aug 24 12:13:25 2015 -0700
drivers/video/fbdev/kyrofb: Use arch_phys_wc_add() and
pci_ioremap_wc_bar()
Convert the driver from using the x86-specific MTRR code to the
architecture-agnostic arch_phys_wc_add(). It will avoid MTRR if
write-combining is available, in order to take advantage of that
also ensure the ioremapped area is requested as write-combining.
There are a few motivations for this:
a) Take advantage of PAT when available
b) Help bury MTRR code away, MTRR is architecture-specific and on
x86 it is being replaced by PAT.
c) Help with the goal of eventually using _PAGE_CACHE_UC over
_PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit
de33c442e titled "x86 PAT: fix performance drop for glx,
use UC minus for ioremap(), ioremap_nocache() and
pci_mmap_page_range()")
The conversion done is expressed by the following Coccinelle
SmPL patch, it additionally required manual intervention to
address all the ifdeffery and removal of redundant things which
arch_phys_wc_add() already addresses such as verbose message
about when MTRR fails and doing nothing when we didn't get an
MTRR.
@ mtrr_found @
expression index, base, size;
@@
-index = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);
+index = arch_phys_wc_add(base, size);
@ mtrr_rm depends on mtrr_found @
expression mtrr_found.index, mtrr_found.base, mtrr_found.size;
@@
-mtrr_del(index, base, size);
+arch_phys_wc_del(index);
@ mtrr_rm_zero_arg depends on mtrr_found @
expression mtrr_found.index;
@@
-mtrr_del(index, 0, 0);
+arch_phys_wc_del(index);
@ mtrr_rm_fb_info depends on mtrr_found @
struct fb_info *info;
expression mtrr_found.index;
@@
-mtrr_del(index, info->fix.smem_start, info->fix.smem_len);
+arch_phys_wc_del(index);
@ ioremap_replace_nocache depends on mtrr_found @
struct fb_info *info;
expression base, size;
@@
-info->screen_base = ioremap_nocache(base, size);
+info->screen_base = ioremap_wc(base, size);
@ ioremap_replace_default depends on mtrr_found @
struct fb_info *info;
expression base, size;
@@
-info->screen_base = ioremap(base, size);
+info->screen_base = ioremap_wc(base, size);
Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Acked-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Antonino Daplas <adaplas@xxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxxx>
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Jingoo Han <jg1.han@xxxxxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Suresh Siddha <sbsiddha@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: airlied@xxxxxxxx
Cc: benh@xxxxxxxxxxxxxxxxxxx
Cc: bhelgaas@xxxxxxxxxx
Cc: dan.j.williams@xxxxxxxxx
Cc: konrad.wilk@xxxxxxxxxx
Cc: linux-fbdev@xxxxxxxxxxxxxxx
Cc: linux-pci@xxxxxxxxxxxxxxx
Cc: mst@xxxxxxxxxx
Cc: toshi.kani@xxxxxx
Cc: vinod.koul@xxxxxxxxx
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440443613-13696-4-git-send-email-mcgrof@xxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit c112709809b2ca1e8ff2841a1958503e548b81e4
Author: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Date: Mon Aug 24 12:13:24 2015 -0700
drivers/video/fbdev/i740fb: Use arch_phys_wc_add() and
pci_ioremap_wc_bar()
Convert the driver from using the x86-specific MTRR code to the
architecture-agnostic arch_phys_wc_add(). It will avoid MTRR if
write-combining is available, in order to take advantage of that
also ensure the ioremapped area is requested as write-combining.
There are a few motivations for this:
a) Take advantage of PAT when available
b) Help bury MTRR code away, MTRR is architecture-specific and
on x86 it is being replaced by PAT.
c) Help with the goal of eventually using _PAGE_CACHE_UC over
_PAGE_CACHE_UC_MINUS on x86 on ioremap_nocache() (see commit
de33c442e titled "x86 PAT: fix performance drop for glx,
use UC minus for ioremap(), ioremap_nocache() and
pci_mmap_page_range()")
The conversion done is expressed by the following Coccinelle
SmPL patch, it additionally required manual intervention to
address all the ifdeffery and removal of redundant things which
arch_phys_wc_add() already addresses such as verbose message
about when MTRR fails and doing nothing when we didn't get an
MTRR.
@ mtrr_found @
expression index, base, size;
@@
-index = mtrr_add(base, size, MTRR_TYPE_WRCOMB, 1);
+index = arch_phys_wc_add(base, size);
@ mtrr_rm depends on mtrr_found @
expression mtrr_found.index, mtrr_found.base, mtrr_found.size;
@@
-mtrr_del(index, base, size);
+arch_phys_wc_del(index);
@ mtrr_rm_zero_arg depends on mtrr_found @
expression mtrr_found.index;
@@
-mtrr_del(index, 0, 0);
+arch_phys_wc_del(index);
@ mtrr_rm_fb_info depends on mtrr_found @
struct fb_info *info;
expression mtrr_found.index;
@@
-mtrr_del(index, info->fix.smem_start, info->fix.smem_len);
+arch_phys_wc_del(index);
@ ioremap_replace_nocache depends on mtrr_found @
struct fb_info *info;
expression base, size;
@@
-info->screen_base = ioremap_nocache(base, size);
+info->screen_base = ioremap_wc(base, size);
@ ioremap_replace_default depends on mtrr_found @
struct fb_info *info;
expression base, size;
@@
-info->screen_base = ioremap(base, size);
+info->screen_base = ioremap_wc(base, size);
Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Acked-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Antonino Daplas <adaplas@xxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Benoit Taine <benoit.taine@xxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxxx>
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Jingoo Han <jg1.han@xxxxxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Rob Clark <robdclark@xxxxxxxxx>
Cc: Suresh Siddha <sbsiddha@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: airlied@xxxxxxxx
Cc: benh@xxxxxxxxxxxxxxxxxxx
Cc: dan.j.williams@xxxxxxxxx
Cc: konrad.wilk@xxxxxxxxxx
Cc: linux-fbdev@xxxxxxxxxxxxxxx
Cc: linux-pci@xxxxxxxxxxxxxxx
Cc: mst@xxxxxxxxxx
Cc: toshi.kani@xxxxxx
Cc: vinod.koul@xxxxxxxxx
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440443613-13696-3-git-send-email-mcgrof@xxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit c43996f4001de629af4a4d6713782e883677e5b9
Author: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Date: Mon Aug 24 12:13:23 2015 -0700
PCI: Add pci_ioremap_wc_bar()
This lets drivers take advantage of PAT when available. It
should help with the transition of converting video drivers over
to ioremap_wc() to help with the goal of eventually using
_PAGE_CACHE_UC over _PAGE_CACHE_UC_MINUS on x86 on
ioremap_nocache(), see:
de33c442ed2a ("x86 PAT: fix performance drop for glx, use UC minus for
ioremap(), ioremap_nocache() and pci_mmap_page_range()")
Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Acked-by: Arnd Bergmann <arnd@xxxxxxxx>
Cc: <syrjala@xxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Antonino Daplas <adaplas@xxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Dave Airlie <airlied@xxxxxxxxxx>
Cc: Davidlohr Bueso <dbueso@xxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Suresh Siddha <sbsiddha@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Toshi Kani <toshi.kani@xxxxxx>
Cc: Ville Syrjälä <syrjala@xxxxxx>
Cc: Vlastimil Babka <vbabka@xxxxxxx>
Cc: airlied@xxxxxxxx
Cc: benh@xxxxxxxxxxxxxxxxxxx
Cc: dan.j.williams@xxxxxxxxx
Cc: konrad.wilk@xxxxxxxxxx
Cc: linux-fbdev@xxxxxxxxxxxxxxx
Cc: linux-pci@xxxxxxxxxxxxxxx
Cc: mst@xxxxxxxxxx
Cc: vinod.koul@xxxxxxxxx
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440443613-13696-2-git-send-email-mcgrof@xxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 8d58b66ed2b000f27658c88a4ed70e8042e86a58
Merge: 13fe86f4 c13dcf9
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Tue Aug 25 09:59:19 2015 +0200
Merge tag 'v4.2-rc8' into x86/mm, before applying new changes
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 13fe86f465b72fc9328d4f5ebc33223c011852ae
Author: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Date: Mon Aug 24 19:34:55 2015 -0400
x86/mm: Make kernel/check.c explicitly non-modular
The Kconfig currently controlling compilation of this code is:
arch/x86/Kconfig:config X86_CHECK_BIOS_CORRUPTION
arch/x86/Kconfig: bool "Check for low memory corruption"
...meaning that it currently is not being built as a module by
anyone.
Lets remove the couple traces of modularity so that when reading
the code there is no doubt it is builtin-only.
Since module_init translates to device_initcall in the
non-modular case, the init ordering remains unchanged with this
commit.
Signed-off-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440459295-21814-4-git-send-email-paul.gortmaker@xxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 8f45fe441a9836011672436ef007654969b28ccc
Author: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Date: Mon Aug 24 19:34:54 2015 -0400
x86/mm/pat: Make mm/pageattr[-test].c explicitly non-modular
The file pageattr.c is obj-y and it includes pageattr-test.c
based on CPA_DEBUG (a bool), meaning that no code here is
currently being built as a module by anyone.
Lets remove the couple traces of modularity so that when reading
the code there is no doubt it is builtin-only.
Since module_init translates to device_initcall in the
non-modular case, the init ordering remains unchanged with this
commit.
Signed-off-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440459295-21814-3-git-send-email-paul.gortmaker@xxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit e971aa2cbac02363a29e9358de3b688001191ffd
Author: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Date: Mon Aug 24 19:34:53 2015 -0400
x86/platform: Make atom/pmc_atom.c explicitly non-modular
The Kconfig currently controlling compilation of this code is:
config PMC_ATOM
def_bool y
...meaning that it currently is not being built as a module by
anyone.
Lets remove the couple traces of modularity so that when reading
the driver there is no doubt it is builtin-only.
Since module_init() translates to device_initcall() in the
non-modular case, the init ordering remains unchanged with this
commit.
We leave some tags like MODULE_AUTHOR() for documentation
purposes.
Also note that MODULE_DEVICE_TABLE() is a no-op for non-modular
code. We correct a comment that indicates the data was only used
by that macro, as it actually is used by the code directly.
Signed-off-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440459295-21814-2-git-send-email-paul.gortmaker@xxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit f612a7b1a7f1b5139f228724ce340aac24720591
Merge: 9b9412d 12d560f
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Tue Aug 25 09:44:49 2015 +0200
Merge branch 'for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull RCU cleanup from Paul E. McKenney:
"Privatize smp_mb__after_unlock_lock(). This commit moves the
definition of smp_mb__after_unlock_lock() to kernel/rcu/tree.h,
in recognition of the fact that RCU is the only thing using
this, that nothing else is likely to use it, and that it is
likely to go away completely."
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 33fef662d20a8a98bafa6b2430b845def30f616a
Author: Sasha Levin <sasha.levin@xxxxxxxxxx>
Date: Tue Aug 25 01:19:45 2015 -0400
tools/liblockdep: Use the rbtree header provided by common tools headers
Recent changes to rbtree.h may break compilation. There is no
reason to use a liblockdep specific header to begin with, so
we'll use the one shared with all other tools/.
Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440479985-6696-3-git-send-email-sasha.levin@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 62b989de598c486df65a14dfd9bb4a9953c75568
Author: Sasha Levin <sasha.levin@xxxxxxxxxx>
Date: Tue Aug 25 01:19:44 2015 -0400
tools/liblockdep: Correct macro for WARN
As Peter Zijlstra pointed out, the varargs for WARN() are
optional, so we need to correctly handle the case where they
don't exist.
This would cause a compilation error.
Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440479985-6696-2-git-send-email-sasha.levin@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 92e25fd9be82a37247e587415ff9a9e773008d56
Author: Sasha Levin <sasha.levin@xxxxxxxxxx>
Date: Tue Aug 25 01:19:43 2015 -0400
tools: Restore export.h
Commit 3f735377b ("tools: Copy lib/rbtree.c to tools/lib/") has
removed export.h, which was still in use by liblockdep. Restore
it.
Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440479985-6696-1-git-send-email-sasha.levin@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 13d20b3b618adc43168b034792eec57063b5ec6f
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Tue Aug 25 08:31:12 2015 +0200
backlight: tosa: Export I2C module alias information
The I2C core always reports the MODALIAS uevent as "i2c:<modalias>"
regardless of the mechanism that was used to register the device
(i.e: OF or board code) and the table that is used later to match
the driver with the device (i.e: I2C id table or OF match table).
So drivers needs to export the I2C id table and this be built into
the module or udev won't have the necessary information to autoload
the needed driver module when the device is added.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit 85463d8ed1ffae0eb0bd070e400f33918a6696ef
Author: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed Jul 1 12:08:31 2015 +0200
backlight: lp8788_bl: Delete a check before backlight_device_unregister()
The backlight_device_unregister() function tests whether its argument
is NULL and then returns immediately. Thus the test around the call is
not needed.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Acked-by: Jingoo Han <jingoohan1@xxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit 047ffbb27115b57759767145803b752518399d90
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Mon Aug 17 15:59:17 2015 +0800
backlight: sky81452: Remove unneeded use of IS_ERR_VALUE() macro
IS_ERR_VALUE() makes sense only *if* there could be valid values in
negative error range.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit 7ddbc2423c3301280b883bbb04b998203f30312c
Author: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Date: Tue Jul 21 17:44:49 2015 -0700
backlight: pm8941-wled: Move PM8941 WLED driver to backlight
The Qualcomm PM8941 WLED block is used for backlight and should therefor
be in the backlight framework and not in the LED framework. This moves
the driver and adapts to the backlight api instead.
Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Tested-by: Rob Clark <robdclark@xxxxxxxxx>
Acked-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
Acked-by: Jingoo Han <jingoohan1@xxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit fe009175ae3ec3724c1414440e22a1d32d806ec5
Author: Milo Kim <milo.kim@xxxxxx>
Date: Mon Jul 20 15:45:38 2015 +0900
backlight: lp855x: Use private data for regulator control
LP855x backlight device can be enabled by external VDD input. The
'supply' data is used for this purpose. It's kind of private data
which runs internally, so there is no reason to expose to the
platform data.
And devm_regulator_get() is moved from _parse_dt() to _probe().
Regulator consumer(lp855x) can control regulator not only from DT
but also from platform data configuration in a source file such
like board-*.c.
Signed-off-by: Milo Kim <milo.kim@xxxxxx>
Acked-by: Sean Paul <seanpaul@xxxxxxxxxxxx>
Acked-by: Jingoo Han <jingoohan1@xxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit db56176025cee5e242dfeed5f4e304d095d29fa3
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Tue Aug 25 17:23:36 2015 +1000
Revert "drm/atomic: Call ww_acquire_done after check phase is complete"
This reverts commit 992cbf19b32900efa17850b9fa0031fd623edd4d.
Until we make fbdev layer atomic we can't call this.
Requested-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx?
Acked-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit f755d114cba98708932cba89d8c98c4ab89a83b0
Author: kbuild test robot <fengguang.wu@xxxxxxxxx>
Date: Sun Aug 23 00:30:19 2015 +0800
ASoC: cs4349: fix platform_no_drv_owner.cocci warnings
sound/soc/codecs/cs4349.c:389:3-8: No need to set .owner here. The core
will do it.
Remove .owner field if calls are used which set it automatically
Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci
CC: Tim Howe <tim.howe@xxxxxxxxxx>
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 9dcc144b1f91c4fe33422518e401e9c624e2c64f
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Tue Aug 25 08:52:55 2015 +0200
ALSA: hda - Refresh sysfs at snd_hda_codec_update_widgets()
In the commit [fa4f18b4f402: ALSA: hda - Refresh widgets sysfs at
probing Haswell+ HDMI codecs], snd_hdac_refresh_widget_sysfs() is
explicitly called in the codec driver. But this results in refreshing
twice, as snd_hdac_refresh_widget_sysfs() itself calls
snd_hdac_refresh_widgets() function.
Instead, we can replace the call in snd_hda_codec_update_widgets()
with snd_hdac_refresh_widget_sysfs(). This also fixes the missing
sysfs update for ca0132, too.
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit c4a91e173ac671e81ea6fc9d0951b7527e2ae13d
Merge: 4308c9b c7cd0ef
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Tue Aug 25 08:01:41 2015 +0200
Merge branch 'for-linus' into for-next
commit 5f05586c609dfc737e2e00c757a51c7dbb415e51
Author: Ashwin Chaugule <ashwin.chaugule@xxxxxxxxxx>
Date: Wed Aug 5 09:40:26 2015 -0400
ACPI: Decouple ACPI idle and ACPI processor drivers
This patch introduces a new Kconfig symbol, ACPI_PROCESSOR_IDLE,
which is auto selected by architectures which support the ACPI
based C states for CPU Idle management.
The processor_idle driver in its present form contains declarations
specific to X86 and IA64. Since there are no reasonable defaults
for other architectures e.g. ARM64, the driver is selected only for
X86 or IA64.
This helps in decoupling the ACPI processor_driver from the ACPI
processor_idle driver which is useful for the upcoming alternative
patchwork for controlling CPU Performance (CPPC) and CPU Idle (LPI).
Signed-off-by: Ashwin Chaugule <ashwin.chaugule@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 239708a3af44064366f1af0eea02dc1e8991c11b
Author: Ashwin Chaugule <ashwin.chaugule@xxxxxxxxxx>
Date: Wed Aug 5 09:40:25 2015 -0400
ACPI: Split out ACPI PSS from ACPI Processor driver
The ACPI processor driver is currently tied too closely
to the ACPI P-states (PSS) and other related constructs
for controlling CPU performance.
The newer ACPI specification (v5.1 onwards) introduces
alternative methods to PSS. These new mechanisms are
described within each ACPI Processor object and so they
need to be scanned whenever a new Processor object is detected.
This patch introduces a new Kconfig symbol to allow for
finer configurability among the two options for controlling
performance states. There is no change in functionality and
the option is auto-selected by the architectures which support it.
A future commit will introduce support for CPPC: A newer method of
controlling CPU performance. The OS is not expected to support
CPPC and PSS at the same time, so the Kconfig option lets us make
the two mutually exclusive at compile time.
Signed-off-by: Ashwin Chaugule <ashwin.chaugule@xxxxxxxxxx>
[ rjw: Changelog ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit d3c68f218f927bd4b14b586ea2dcecee54cf09ad
Author: Ashwin Chaugule <ashwin.chaugule@xxxxxxxxxx>
Date: Wed Aug 5 09:40:24 2015 -0400
PCC: Initialize PCC Mailbox earlier at boot
This change initializes the PCC Mailbox earlier than
the ACPI processor driver. This enables drivers introduced
in follow up patches (e.g. CPPC) to be probed via the ACPI
processor driver interface. The CPPC probe requires the PCC
channel to be initialized for it to query each CPUs performance
capabilities.
Signed-off-by: Ashwin Chaugule <ashwin.chaugule@xxxxxxxxxx>
Reviewed-by: Al Stone <al.stone@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 3277b4ea216e5cd7d3f6095ff40f1a9e574f37b3
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 17:28:46 2015 +0300
ACPI / osl: replace custom implementation of readq / writeq
The readq() and writeq() helpers are available in the
asm-generic/io-64-nonatomic-hi-lo.h and
asm-generic/io-64-nonatomic-lo-hi.h
headers. Replace custom implementation by the generic helpers.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 02b771b64b73226052d6e731a0987db3b47281e9
Author: Lv Zheng <lv.zheng@xxxxxxxxx>
Date: Wed Aug 12 11:12:02 2015 +0800
ACPI / EC: Fix an issue caused by the serialized _Qxx evaluations
It is proven that Windows evaluates _Qxx handlers in a parallel way. This
patch follows this fact, splits _Qxx evaluations from the NOTIFY queue to
form a separate queue, so that _Qxx evaluations can be queued up on
different CPUs rather than being queued up on a CPU0 bound queue.
Event handling related callbacks are also renamed and sorted in this
patch.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=94411
Reported-and-tested-by: Gabriele Mazzotta <gabriele.mzt@xxxxxxxxx>
Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
commit 70b33a7466baac62103e04c916b8915665b79d80
Merge: aa49338 f79af0b
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Tue Aug 25 10:13:35 2015 +1000
Merge branch 'xfs-misc-fixes-for-4.3-3' into for-next
commit f79af0b9090895520c69fbe1939184c4f8ed8426
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Tue Aug 25 10:05:13 2015 +1000
xfs: fix non-debug build warnings
There seem to be a couple of new set-but-unused build warnings
that gcc 4.9.3 is now warning about. These are not regressions, just
the compiler being more picky.
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 2ccf4a9b18868b0900072e6d5d15a04254a07345
Author: Eric Sandeen <sandeen@xxxxxxxxxx>
Date: Tue Aug 25 10:05:13 2015 +1000
xfs: collapse allocsize and biosize mount option handling
The allocsize and biosize mount options are handled identically,
other than allocsize accepting suffixes. suffix_kstrtoint handles
bare numbers just fine too, so these can be collapsed.
Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 037542345a82aaaa228ec280fe6ddff1568d169f
Author: Jan Kara <jack@xxxxxxxx>
Date: Tue Aug 25 10:05:13 2015 +1000
xfs: Fix file type directory corruption for btree directories
Users have occasionally reported that file type for some directory
entries is wrong. This mostly happened after updating libraries some
libraries. After some debugging the problem was traced down to
xfs_dir2_node_replace(). The function uses args->filetype as a file type
to store in the replaced directory entry however it also calls
xfs_da3_node_lookup_int() which will store file type of the current
directory entry in args->filetype. Thus we fail to change file type of a
directory entry to a proper type.
Fix the problem by storing new file type in a local variable before
calling xfs_da3_node_lookup_int().
cc: <stable@xxxxxxxxxxxxxxx> # 3.16 - 4.x
Reported-by: Giacomo Comes <comes@xxxxxxxx>
Signed-off-by: Jan Kara <jack@xxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit b6a9947efdbe0c9135d94b26b2f912f5b0b9dc45
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Tue Aug 25 10:05:13 2015 +1000
xfs: lockdep annotations throw warnings on non-debug builds
SO, now if we enable lockdep without enabling CONFIG_XFS_DEBUG,
the lockdep annotations throw a warning because the assert that uses
the lockdep define is not built in:
fs/xfs/xfs_inode.c:367:1: warning: 'xfs_lockdep_subclass_ok' defined but
not used [-Wunused-function]
xfs_lockdep_subclass_ok(
So now we need to create an ifdef mess to sort this all out, because
we need to handle all the combinations of CONFIG_XFS_DEBUG=[y|n],
CONFIG_XFS_WARNING=[y|n] and CONFIG_LOCKDEP=[y|n] appropriately.
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit c184f855c483428027d6ec937e4a9d5f15b2cbad
Author: Jan Kara <jack@xxxxxxxx>
Date: Tue Aug 25 10:05:13 2015 +1000
xfs: Fix uninitialized return value in xfs_alloc_fix_freelist()
xfs_alloc_fix_freelist() can sometimes jump to out_agbp_relse
without ever setting value of 'error' variable which is then
returned. This can happen e.g. when pag->pagf_init is set but AG is
for metadata and we want to allocate user data.
Fix the problem by initializing 'error' to 0, which is the desired
return value when we decide to skip this group.
CC: xfs@xxxxxxxxxxx
Coverity-id: 1309714
Signed-off-by: Jan Kara <jack@xxxxxxxx>
Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit e3ee276a5a62a1cd06de46aa0c808000d3fef00e
Author: Nicolas Pitre <nicolas.pitre@xxxxxxxxxx>
Date: Tue Jul 28 19:43:20 2015 -0400
drivers/clk: appropriate __init annotation for const data
Init data marked const should be annotated with __initconst for
correctness and not __initdata. This also fixes LTO builds that
otherwise fail with section mismatch errors.
Signed-off-by: Nicolas Pitre <nico@xxxxxxxxxx>
Signed-off-by: Michael Turquette <mturquette@xxxxxxxxxxxx>
[sboyd@xxxxxxxxxxxxxx: Dropped hunks that moved const char *
arrays to const char * const]
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 10897370345b792c00ccba6aa7ea86ae6bfa2c7a
Author: Heiko Stuebner <heiko@xxxxxxxxx>
Date: Wed Aug 19 15:06:55 2015 +0200
clk: rockchip: register pll mux before pll itself
The structure is xin24m -> pll -> pll-mux (xin24m,pll,xin32k). The pll
does have an init callback to make sure the boot-selected frequency is
using the expected pll settings and resets the same frequency using
the values provided in the driver if necessary.
The setting itself also involves remuxing the pll-mux temporarily to
the xin24m source to let the new pll rate settle. Until now this worked
flawlessly, even when it had the flaw of accessing the mux settings
before the mux actually got registered.
With the recent clock-core conversions this flaw became apparent in
null pointer dereference in
[<c03fc400>] (clk_hw_get_num_parents) from [<c0400df0>]
(clk_mux_get_parent+0x14/0xc8)
[<c0400ddc>] (clk_mux_get_parent) from [<c040246c>]
(rockchip_rk3066_pll_set_rate+0xd8/0x320)
So to fix that, simply register the pll-mux before the pll, so that
it will be fully initialized when the pll clock executes its init-
callback and possibly touches the pll-mux clock.
Signed-off-by: Heiko Stuebner <heiko@xxxxxxxxx>
Signed-off-by: Michael Turquette <mturquette@xxxxxxxxxxxx>
commit 67c9a1b5dadf05e22d7e2d32604fb2b21bf3f666
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Thu Jul 30 15:20:00 2015 +0200
clk: add bindings for the Ux500 clocks
These Ux500 clocks have been around for years and were never
properly documented. Add the proper binding documentation.
Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Acked-by: Michael Turquette <mturquette@xxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 5dc0fe199b358966021b015c71ca4049d0f42aa6
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Thu Jul 30 15:19:25 2015 +0200
clk/ARM: move Ux500 PRCC bases to the device tree
The base addresses for the Ux500 PRCC controllers are hardcoded,
let's move them to the clock node in the device tree and delete
the constants.
Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Acked-by: Olof Johansson <olof@xxxxxxxxx>
Acked-by: Michael Turquette <mturquette@xxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit c660b2ebb25be5668a4ed333539f34b05841e17a
Author: Dong Aisheng <aisheng.dong@xxxxxxxxxxxxx>
Date: Tue Jul 28 21:19:41 2015 +0800
clk: remove duplicated code with __clk_set_parent_after
__clk_set_parent_after() actually used the second argument then we
could put this duplicate logic in there and call it with a different
order of arguments in the success vs. error paths in this function.
Cc: Mike Turquette <mturquette@xxxxxxxxxx>
Suggested-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Signed-off-by: Dong Aisheng <aisheng.dong@xxxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 836ee0f7d95c3feb742bd4b3a02fea3fe75bdef3
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Wed Aug 12 11:42:23 2015 -0700
clk: Convert __clk_get_name(hw->clk) to clk_hw_get_name(hw)
Use the provider based method to get a clock's name so that we
can get rid of the clk member in struct clk_hw one day. Mostly
converted with the following coccinelle script.
@@
struct clk_hw *E;
@@
-__clk_get_name(E->clk)
+clk_hw_get_name(E)
Acked-by: Heiko Stuebner <heiko@xxxxxxxxx>
Cc: Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx>
Cc: Tomasz Figa <tomasz.figa@xxxxxxxxx>
Cc: Peter De Schrijver <pdeschrijver@xxxxxxxxxx>
Cc: Prashant Gaikwad <pgaikwad@xxxxxxxxxx>
Cc: Stephen Warren <swarren@xxxxxxxxxxxxx>
Acked-by: Thierry Reding <treding@xxxxxxxxxx>
Cc: Thierry Reding <thierry.reding@xxxxxxxxx>
Cc: Alexandre Courbot <gnurou@xxxxxxxxx>
Cc: Tero Kristo <t-kristo@xxxxxx>
Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@xxxxxxxxx>
Acked-by: Andrew Bresticker <abrestic@xxxxxxxxxxxx>
Cc: Ezequiel Garcia <ezequiel.garcia@xxxxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Kevin Cernekee <cernekee@xxxxxxxxxxxx>
Acked-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Cc: Ulrich Hecht <ulrich.hecht+renesas@xxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-rockchip@xxxxxxxxxxxxxxxxxxx
Cc: linux-samsung-soc@xxxxxxxxxxxxxxx
Cc: linux-tegra@xxxxxxxxxxxxxxx
Cc: linux-omap@xxxxxxxxxxxxxxx
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit e7df6f6e21883d7e8b3ad4641c911da8314ef283
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Wed Aug 12 13:04:56 2015 -0700
clk: Constify clk_hw argument to provider APIs
We don't modify the clk_hw argument in these functions, so it's
safe to mark it as const.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit c1628a2c416da947f5afac615d53189250fa49cb
Author: Leo Yan <leo.yan@xxxxxxxxxx>
Date: Tue Aug 4 15:27:28 2015 +0800
clk: Hi6220: add stub clock driver
On Hi6220, there have some clocks which can use mailbox channel to send
messages to power controller to change frequency; this includes CPU, GPU
and DDR clocks.
For dynamic frequency scaling, firstly need write the frequency value to
SRAM region, and then send message to mailbox to trigger power controller
to handle this requirement. This driver will use syscon APIs to pass SRAM
memory region and use common mailbox APIs for channels accessing.
This init driver will support cpu frequency change firstly.
Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 832446e8aaaeaf9365da18f95f01a42e6da27279
Author: Leo Yan <leo.yan@xxxxxxxxxx>
Date: Tue Aug 4 15:27:27 2015 +0800
dt-bindings: clk: Hi6220: Document stub clock driver
Document the new compatible for stub clock driver which is used for CPU
and DDR's dynamic frequency scaling.
Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 7e2a51e0cf75028888e5c670b3a3963e1716bdff
Author: Leo Yan <leo.yan@xxxxxxxxxx>
Date: Tue Aug 4 15:27:26 2015 +0800
dt-bindings: arm: Hi6220: add doc for SRAM controller
Document "hisilicon,hi6220-sramctrl" for SRAM controller.
Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit b32a7cc63bee7bffbd61f88b157b78a9b2101de0
Author: Guo Zeng <guo.zeng@xxxxxxx>
Date: Tue Aug 4 14:45:32 2015 +0000
clk: atlas7: fix pll missed divide NR in fraction mode
PLL VCO frequency is given by Fvco = Fref * 2 * NF / NR
in integer-N mode, or by Fvco = Fref * SSN / NR in Spread
Spectrum (fractional-N) mode. Thus fix the missing part
of NR
Signed-off-by: Guo Zeng <guo.zeng@xxxxxxx>
Signed-off-by: Barry Song <Baohua.Song@xxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit cf8709eabc07c4681eb0bfd63139142c9bef8b59
Author: Guo Zeng <guo.zeng@xxxxxxx>
Date: Tue Aug 4 14:45:31 2015 +0000
clk: atlas7: fix bit field and its root clk for coresight_tpiu
bit4 thcpum_cpudiv4_clken r/w
thcpum_cpudiv4_clk clock enable (default: 1)
Root clock CPU_CLK must be enabled for this clock to be enabled
bit3 coresight_tpiu_clken r/w
coresight_tpiu_clk clock enable (default: 0)
Root clock TPIU_CLK must be enabled for this clock to be enabled
Signed-off-by: Guo Zeng <guo.zeng@xxxxxxx>
Signed-off-by: Barry Song <Baohua.Song@xxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit d1ccbddd090b74b8027727cb543b9c23d7f0f23e
Author: Yibo Cai <yibo.cai@xxxxxxx>
Date: Tue Aug 4 14:45:29 2015 +0000
clk: atlas7: replace dto resolution magic number by macro
Signed-off-by: Yibo Cai <yibo.cai@xxxxxxx>
Signed-off-by: Barry Song <Baohua.Song@xxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 6132e89aef51df044246b5aef822144217794ae1
Author: Yibo Cai <yibo.cai@xxxxxxx>
Date: Tue Aug 4 14:45:28 2015 +0000
clk: atlas7: fix integer overflow in dto rate calculation
I cannot believe that I spend quite a lot time in finding this bug.
It seems a pitfall people tend to fall in.
In "int64 = int32 * int32", conversion from 32-bits to 64-bits comes
after the multiplication. So this statement may not work as expected.
Signed-off-by: Yibo Cai <yibo.cai@xxxxxxx>
Signed-off-by: Barry Song <Baohua.Song@xxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit b1062298fea59dca23cdbcafaa5bed79c273d88f
Author: Guo Zeng <guo.zeng@xxxxxxx>
Date: Tue Aug 4 14:45:27 2015 +0000
clk: atlas7: export mux clks so that consumers can get them
this patch makes mux clks can be referenced by device drivers.
Signed-off-by: Guo Zeng <guo.zeng@xxxxxxx>
Signed-off-by: Barry Song <Barry.Song@xxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 3922107c796164560b797ae8dece697b5b5e4c24
Author: Guo Zeng <Guo.Zeng@xxxxxxx>
Date: Tue Aug 4 14:45:26 2015 +0000
clk: atlas7: add lost pwm unit clks
Signed-off-by: Guo Zeng <Guo.Zeng@xxxxxxx>
Signed-off-by: Barry Song <Baohua.Song@xxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 34d5003bfba44a73fe9fbcf75e1d41d130d59bd1
Author: Dinh Nguyen <dinguyen@xxxxxxxxxxxxxxxxxxxxx>
Date: Fri Jul 24 22:30:18 2015 -0500
clk: socfpga: Add a second parent option for the dbg_base_clk
The debug base clock can be bypassed from the main PLL to the OSC1 clock.
The bypass register is the staysoc1(0x10) register that is in the clock
manager.
This patch adds the option to get the correct parent for the debug base
clock.
Signed-off-by: Dinh Nguyen <dinguyen@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 0f350f063eb62212a701a512f74e63ae4714441c
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Thu Jul 30 15:19:12 2015 +0200
clk: ux500: delete the non-DT U8500 clock implementation
This code is unused and not coming back. Let's kill it off.
Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit fc4a05d4b0eb1a0110ef11201bf563cd4b53fbce
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jun 25 17:24:15 2015 -0700
clk: Remove unused provider APIs
Remove these APIs now that we've converted all users to the
replacement struct clk_hw based versions.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 44f22a5d671ad8b3bcef7a72059fe1c00139e199
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Fri Aug 7 16:32:34 2015 -0700
clk: si5351: Convert __clk_get_name() to clk_hw_get_name()
This driver uses __clk_get_name() when it's dealing with struct
clk_hw pointers. Use the simpler form so that we can get rid of
the clk member in struct clk_hw one day.
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@xxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 203e118bd58c48905a82b4161db5441e5c5041f2
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
drm/msm/dsi: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Cc: Wentao Xu <wentaox@xxxxxxxxxxxxxx>
Cc: Rob Clark <robdclark@xxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 62f477119834d912a8471e775d2aeaca0166ab29
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: versatile: Switch to assigned clock parents
We're removing struct clk from the clk provider API. This code is
calling the consumer APIs to change the parent to a 1 MHz fixed
rate clock for each of the clocks that the driver provides. Move
to using the assigned-clock-parents DT property for this instead.
Because this is an ABI break, detect if the property is missing
and fall back to setting the parent explicitly before the clocks
are registered.
Acked-by: Pawel Moll <pawel.moll@xxxxxxx>
Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
Tested-by: Sudeep Holla <sudeep.holla@xxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 32ecaf89bdfd842c9669b3f38ff82907e3cd60d0
Author: Pawel Moll <pawel.moll@xxxxxxx>
Date: Thu Aug 6 16:05:13 2015 +0100
clk: versatile: Add SP810 device tree bindings document
Signed-off-by: Pawel Moll <pawel.moll@xxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit a53ad8ef3dccb0c5482c60a3f6b8c0cbd498efe5
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: ti: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Acked-by: Tero Kristo <t-kristo@xxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 5cdb1dc50be615aa26f8952e4b6f67b483849e97
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: tegra: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Cc: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
Cc: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 1b14afa64d2ef36f228e9540664586fd7ad67a81
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: sunxi: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Cc: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
Cc: "Emilio López" <emilio@xxxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit b73d616d5bd0bb94b3fe1374edad05253fe3684f
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: spear: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit b17dbff418f62e87fdb3d683d532c139c4f1bf31
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: sirf: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Cc: Barry Song <Baohua.Song@xxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 0454159fa91b91c0baa63ded5ce425a8519a9613
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: samsung: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Cc: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Acked-by: Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx>
Cc: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Cc: Kukjin Kim <kgene.kim@xxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 4c34875059fa025be671108de1b0993cc14c9256
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: rockchip: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Reviewed-by: Heiko Stuebner <heiko@xxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit ac269395cdd80b9b088d9b5306015bd4b8bc176d
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: qcom: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 17ae4b40b475e2de5a0b0b475539624b7162a931
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: stm32f4: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Cc: Daniel Thompson <daniel.thompson@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit eca61c9ff2588e1df373e61078e1874976315839
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: mvebu: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs. This also
removes a clk_get() in this driver that can just as easily use
of_clk_get_parent_name() instead.
Cc: Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx>
Cc: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit aef28cb6b3b22fb5a6718650340d2efcfe10dd20
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: mmp: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Cc: Chao Xie <chao.xie@xxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 2f508a955a671e095d5c8a629de1c8c32bc420c2
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: Convert basic types to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 6f220c22438ab846c824a042746a54058cf22af7
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: bcm: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Reviewed-by: Alex Elder <elder@xxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit d0979335c329bad3b924b9d74fd0b86d57815c8f
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
clk: at91: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Acked-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 617b8272a63c9f60bd4b1e33d56318402b0b84be
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
MIPS: alchemy: Convert to clk_hw based provider APIs
We're removing struct clk from the clk provider API, so switch
this code to using the clk_hw based provider APIs.
Cc: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Linux-MIPS <linux-mips@xxxxxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 7819189779aab580145edcc94771cb8dd10485a3
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jul 30 17:20:57 2015 -0700
ARM: OMAP: Convert __clk_get_rate() to provider/consumer APIs
We're removing struct clk from the clk provider API, so switch to
clk_get_rate() and clk_hw_get_rate() here appropriately.
Acked-by: Tero Kristo <t-kristo@xxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit b137b4507c55f2aa80aed03c56c28dd34d35c619
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Mon Jul 20 17:23:54 2015 -0700
clk: ti: Remove CLK_IS_BASIC check
This code is never called with a basic clock type, so the check
here is not doing anything useful and is blocking the removal of
__clk_get_flags(). Remove the check so we can delete the
__clk_get_flags() API.
Acked-by: Tero Kristo <t-kristo@xxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 98d8a60eccee74165793379f1f8a3b1cef3131c7
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Mon Jun 29 16:56:30 2015 -0700
clk: Convert __clk_get_flags() to clk_hw_get_flags()
Mostly converted with the following snippet:
@@
struct clk_hw *E;
@@
-__clk_get_flags(E->clk)
+clk_hw_get_flags(E)
Acked-by: Tero Kristo <t-kristo@xxxxxx>
Cc: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
Cc: Max Filippov <jcmvbkbc@xxxxxxxxx>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@xxxxxxxxx>
Cc: Daniel Thompson <daniel.thompson@xxxxxxxxxx>
Cc: Coquelin <mcoquelin.stm32@xxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 497295afb5ab070211a9963c80a89bc6fbfd6197
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jun 25 16:53:23 2015 -0700
clk: Replace __clk_get_num_parents with clk_hw_get_num_parents()
Mostly converted with the following semantic patch:
@@
struct clk_hw *E;
@@
-__clk_get_num_parents(E->clk)
+clk_hw_get_num_parents(E)
Acked-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Cc: Chao Xie <chao.xie@xxxxxxxxxxx>
Cc: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Cc: Javier Martinez Canillas <javier.martinez@xxxxxxxxxxxxxxx>
Cc: Tomasz Figa <tomasz.figa@xxxxxxxxx>
Cc: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
Cc: "Emilio López" <emilio@xxxxxxxxxxxxx>
Acked-by: Tero Kristo <t-kristo@xxxxxx>
Cc: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Acked-by: Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 1a9c069cb2d28bb72fefee509e0d26f92d7f7166
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Thu Jun 25 15:55:14 2015 -0700
clk: Add clk_hw_*() APIs for use by clk providers
clk providers shouldn't need to use the consumer APIs (clk.h).
Add provider APIs to replace the __clk_*() APIs that take a
struct clk_hw as their first argument instead of a struct clk.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
commit 13ec7297e5331f2754d7629a068c619c41f20e56
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Mon Aug 24 17:40:45 2015 +0800
f2fs: fix to release inode correctly
In following call stack, if unfortunately we lose all chances to truncate
inode page in remove_inode_page, eventually we will add the nid allocated
previously into free nid cache, this nid is with NID_NEW status and with
NEW_ADDR in its blkaddr pointer:
- f2fs_create
- f2fs_add_link
- __f2fs_add_link
- init_inode_metadata
- new_inode_page
- new_node_page
- set_node_addr(, NEW_ADDR)
- f2fs_init_acl failed
- remove_inode_page failed
- handle_failed_inode
- remove_inode_page failed
- iput
- f2fs_evict_inode
- remove_inode_page failed
- alloc_nid_failed cache a nid with valid blkaddr: NEW_ADDR
This may not only cause resource leak of previous inode, but also may
cause
incorrect use of the previous blkaddr which is located in NO.nid node
entry
when this nid is reused by others.
This patch tries to add this inode to orphan list if we fail to truncate
inode, so that we can obtain a second chance to release it in orphan
recovery flow.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 854d2a63de86a769db4dbed75b660f544b3c0c7a
Author: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Date: Fri Jul 17 22:25:59 2015 +0800
batman-adv: beautify supported routing algorithm list
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 87b40f534d2a266eec55a897e9a93f3b022c901d
Author: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Date: Fri Jul 17 10:03:42 2015 +0200
batman-adv: Fix conditional statements indentation
commit 29b9256e6631 ("batman-adv: consider outgoing interface in OGM
sending") incorrectly indented the interface check code.
Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 5274cd68d744b4bc59b32d87cbde70803130eb3f
Author: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Date: Sun Jun 21 14:45:15 2015 +0200
batman-adv: Add lockdep_asserts for documented external locks
Some functions already have documentation about locks they require inside
their kerneldoc header. These can be directly tested during runtime using
the lockdep asserts.
Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 2c72d655b04450056566bcbfe89c2427376b60b4
Author: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Date: Sun Jun 21 14:45:14 2015 +0200
batman-adv: Annotate deleting functions with external lock via lockdep
Functions which use (h)list_del* are requiring correct locking when they
operate on global lists. Most of the time the search in the list and the
delete are done in the same function. All other cases should have it
visible that they require a special lock to avoid race conditions.
Lockdep asserts can be used to check these problem during runtime when the
lockdep functionality is enabled.
Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 7c26a53ba5e7e4bf2be3cb93f2fffaefccff2e3b
Author: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Date: Sun Jun 28 22:16:06 2015 +0800
batman-adv: convert bat_priv->tt.req_list to hlist
Since the list's tail is never accessed using a double linked list head
wastes memory.
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 0b8336f5fc26f263821534d7a9a3633748692207
Author: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Date: Sun Jun 21 19:40:09 2015 +0200
batman-adv: Fix gw_bandwidth calculation on 32 bit systems
The TVLV for the gw_bandwidth stores everything as u32. But the
gw_bandwidth reads the signed long which limits the maximum value to
(2 ** 31 - 1) on systems with 4 byte long. Also the input value is always
converted from either Mibit/s or Kibit/s to 100Kibit/s. This reduces the
values even further when the user sets it via the default unit Kibit/s. It
may even cause an integer overflow and end up with a value the user never
intended.
Instead read the values as u64, check for possible overflows, do the unit
adjustments and then reduce the size to u32.
Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 77927b7d9dd6c9c5f59f0f49c76cda54b908090e
Author: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Date: Sun Jun 21 14:42:49 2015 +0200
batman-adv: Return EINVAL on invalid gw_bandwidth change
Invalid speed settings by the user are currently acknowledged as correct
but not stored. Instead the return of the store operation of the file
"gw_bandwidth" should indicate that the given value is not acceptable.
Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit a121048a89f8186fa2c8388d5b41528466013857
Author: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Date: Mon Jun 22 00:30:23 2015 +0800
batman-adv: prevent potential hlist double deletion
The hlist_del_rcu() call in batadv_tt_global_size_mod() does not check
if the element still is part of the list prior to deletion. The atomic
list counter should prevent the worst but converting to
hlist_del_init_rcu() ensures the element can't be deleted more than
once.
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit d0fa4f3f5b0419a016ff27eea2fa615e4c0d1713
Author: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Date: Mon Jun 22 00:30:22 2015 +0800
batman-adv: convert orig_node->vlan_list to hlist
Since the list's tail is never accessed using a double linked list head
wastes memory.
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 2bdd1888f147576fb870a926a4d015305b5bbeee
Author: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Date: Thu Jun 18 18:53:19 2015 +0200
batman-adv: Remove batadv_ types forward declarations
main.h is included in every file and is the only way to access types.h.
This makes forward declarations for all types defined in types.h
unnecessary.
Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 383b863620aa5127200bff591f7465d593290997
Author: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Date: Thu Jun 18 16:24:24 2015 +0800
batman-adv: rename batadv_new_tt_req_node to batadv_tt_req_node_new
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 433ff98f3f1d6baa56e23f6b50370a5ab16c0e66
Author: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Date: Thu Jun 18 16:11:07 2015 +0800
batman-adv: update kernel doc of batadv_tt_global_del_orig_entry()
The updated kernel doc & additional comment shall prevent accidental
copy & paste errors or calling the function without the required
precautions.
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 4f248cff9e21720bd5f057661f752fba067f3779
Author: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Date: Tue Jun 9 20:50:49 2015 +0200
batman-adv: Remove multiple assignment per line
The Linux CodingStyle disallows multiple assignments in a single line.
(see chapter 1)
Reported-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 34473822da06510d708087bb76d9ad757ac09567
Author: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Date: Sun May 31 10:10:20 2015 +0200
batman-adv: Fix kerneldoc over 80 column lines
Kerneldoc required single line documentation in the past (before 2009).
Therefore, the 80 columns limit per line check of checkpatch was disabled
for kerneldoc. But kerneldoc is not excluded anymore from it and
checkpatch
now enabled the check again.
Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 6b5e971a282c0e7b18b47823103d695352b5a3c2
Author: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Date: Tue May 26 18:34:26 2015 +0200
batman-adv: Replace C99 int types with kernel type
(s|u)(8|16|32|64) are the preferred types in the kernel. The use of the
standard C99 types u?int(8|16|32|64)_t are objected by some people and
even
checkpatch now warns about using them.
Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 82bb70c599d81e6b2535f887b02e1719cc4856ac
Merge: 2e5e8fd bd6906e
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Mon Aug 24 23:10:02 2015 +0200
Merge branch 'turbostat' of
https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux into pm-tools
Pull turbostat changes for v4.3 from Len Brown.
* 'turbostat' of
https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
tools/power turbostat: fix typo on DRAM column in Joules-mode
tools/power turbostat: fix parameter passing for forked command
tools/power turbostat: dump CONFIG_TDP
tools/power turbostat: cpu0 is no longer hard-coded, so update output
tools/power turbostat: update turbostat(8)
commit c75b89ebff52f758e2559664b2ae3ceed410da30
Merge: c13dcf9 493f133
Author: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Date: Mon Aug 24 23:09:17 2015 +0200
Merge branch 'cpuidle' of
https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux into pm-cpuidle
Pull intel_idle changes for v4.3 from Len Brown.
* 'cpuidle' of https://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
intel_idle: Skylake Client Support
intel_idle: allow idle states to be freeze-mode specific
commit 56fff0a01fa056502a28d67cb5a2714d64780415
Merge: 4a89ba0 786eec2
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 24 14:06:37 2015 -0700
Merge branch 'fjes'
Taku Izumi says:
====================
FUJITSU Extended Socket network device driver
This patchsets adds FUJITSU Extended Socket network device driver.
Extended Socket network device is a shared memory based high-speed
network interface between Extended Partitions of PRIMEQUEST 2000 E2
series.
You can get some information about Extended Partition and Extended
Socket by referring the following manual.
http://globalsp.ts.fujitsu.com/dmsp/Publications/public/CA92344-0537.pdf
3.2.1 Extended Partitioning
3.2.2 Extended Socke
v2.2 -> v3:
- Fix up according to David's comment (No functional change)
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 786eec27cbb1713caf3b33538a877a21e779d3bc
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:38 2015 +0900
fjes: ethtool support
This patch adds implementation for ethtool support.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit cb79eaaec4c1046e4b3d55c27aee48774c5ff936
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:37 2015 +0900
fjes: handle receive cancellation request interrupt
This patch adds implementation of handling IRQ
of other receiver's receive cancellation request.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b5a9152d993a4f08d6e08ac0dde3a09993dc9c45
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:36 2015 +0900
fjes: epstop_task
This patch adds epstop_task.
This task is used to process other receiver's
cancellation request.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 785f28e061a870eba937cb2a860cbcf631f5ebb0
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:35 2015 +0900
fjes: update_zone_task
This patch adds update_zone_task.
Zoning information can be changed by user.
This task is used to monitor if zoning information is
changed or not.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8fc4cadb98c6a0f1eecde678271fcc957258af3e
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:34 2015 +0900
fjes: unshare_watch_task
This patch adds unshare_watch_task.
Shared buffer's status can be changed into unshared.
This task is used to monitor shared buffer's status.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ff5b42103227c01c4082f27b06a43758efbf5ab8
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:33 2015 +0900
fjes: force_close_task
This patch adds force_close_task.
This task is used to close network device forcibly.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8edb62a8131ca5b5ecbb29e45d812d9583585afb
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:32 2015 +0900
fjes: interrupt_watch_task
This patch adds interrupt_watch_task.
This task is used to prevent delay of interrupts.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3e3fedda31798cff2cb5358e15263b8799c1e72c
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:31 2015 +0900
fjes: net_device_ops.ndo_vlan_rx_add/kill_vid
This patch adds net_device_ops.ndo_vlan_rx_add_vid and
net_device_ops.ndo_vlan_rx_kill_vid callback.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4393e767aee706944dbdf3aa91810a0c981b6710
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:30 2015 +0900
fjes: net_device_ops.ndo_tx_timeout
This patch adds net_device_ops.ndo_tx_timeout callback.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b9e23a67d52f956d75e6327a7fccbb53fbdc540b
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:29 2015 +0900
fjes: net_device_ops.ndo_change_mtu
This patch adds net_device_ops.ndo_change_mtu.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 879bc9a3ea3b9015833b53f6ec114bb602a663a8
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:28 2015 +0900
fjes: net_device_ops.ndo_get_stats64
This patch adds net_device_ops.ndo_get_stats64 callback.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 265859309a761b4eec36620b324c9eb27a3cfee1
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:27 2015 +0900
fjes: NAPI polling function
This patch adds NAPI polling function and receive related work.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ac63b947085d8297bed10063cdf1ed6374d04b73
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:26 2015 +0900
fjes: tx_stall_task
This patch adds tx_stall_task.
When receiver's buffer is full, sender stops
its tx queue. This task is used to monitor
receiver's status and when receiver's buffer
is avairable, it resumes tx queue.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b772b9dc63df0ca8a750ceac9ab356376022f0b6
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:25 2015 +0900
fjes: raise_intr_rxdata_task
This patch add raise_intr_rxdata_task.
Extended Socket Network Device is shared memory
based, so someone's transmission denotes other's
reception. In order to notify receivers, sender
has to raise interruption of receivers.
raise_intr_rxdata_task does this work.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9acf51cbf73de8952e3df75200d7a7755c16d0f6
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:24 2015 +0900
fjes: net_device_ops.ndo_start_xmit
This patch adds net_device_ops.ndo_start_xmit callback,
which is called when sending packets.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e5d486dcaa45dd365970c09395ae24df5a0e3f77
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:23 2015 +0900
fjes: net_device_ops.ndo_open and .ndo_stop
This patch adds net_device_ops.ndo_open and .ndo_stop
callback. These function is called when network device
activation and deactivation.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7950e6c5da55715debef9fa06b5ac87fb3eb4355
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:22 2015 +0900
fjes: buffer address regist/unregistration routine
This patch adds buffer address regist/unregistration routine.
This function is mainly invoked when network device's
activation (open) and deactivation (close)
in order to retist/unregist shared buffer address.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3bb025d4f756049d297f2bed605241d4d43a15fe
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:21 2015 +0900
fjes: ES information acquisition routine
This patch adds ES information acquisition routine.
ES information can be retrieved issuing information
request command. ES information includes which
receiver is same zone.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2fcbca687702163ae3a37ec4eac5905d6f119296
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:20 2015 +0900
fjes: platform_driver's .probe and .remove routine
This patch implements platform_driver's .probe and .remove
routine, and also adds board specific private data structure.
This driver registers net_device at platform_driver's .probe
routine and unregisters net_device at its .remove routine.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a18aaec21ec8f4d2a4e09ad590437777a1ebf691
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:19 2015 +0900
fjes: Hardware cleanup routine
This patch adds hardware cleanup routine to be
invoked at driver's .remove routine.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8cdc3f6c5d22dd059fe8127be7b5cae113e79afb
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:18 2015 +0900
fjes: Hardware initialization routine
This patch adds hardware initialization routine to be
invoked at driver's .probe routine.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 658d439b22924796d00f03282135a356f47cc64e
Author: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Date: Fri Aug 21 17:29:17 2015 +0900
fjes: Introduce FUJITSU Extended Socket Network Device driver
This patch adds the basic code of FUJITSU Extended Socket
Network Device driver.
When "PNP0C02" is found in ACPI DSDT, it evaluates "_STR"
to check if "PNP0C02" is for Extended Socket device driver
and retrieves ACPI resource information. Then creates
platform_device.
Signed-off-by: Taku Izumi <izumi.taku@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9d1bf02ac3d41367896b38793db6f8f30bb9a295
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:34:00 2015 +0300
perf tools: Update Intel PT documentation
Update Intel PT documentation to describe new features.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-26-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 7eacca3ebb03a4ee7bb41284aafeb19a54242621
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:59 2015 +0300
perf tools: Add Intel PT support for decoding TRACESTOP packets
A TRACESTOP packet is produced when an Intel PT trace enters a defined
region of the address space at which point the tracing stops.
This patch just adds decoder support.
Support for specifying TRACESTOP regions is left until later.
For details refer to the June 2015 or later Intel 64 and IA-32
Architectures SDM Chapter 36 Intel Processor Trace.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-25-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 0de802abd14abdf8cbbba28b421a1a00fa0939d5
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:58 2015 +0300
perf tools: Add Intel PT support for using CYC packets
CYC packets are a new Intel PT feature.
CYC packets provide even finer grain timestamp information than MTC and
TSC packets. A CYC packet contains the number of CPU cycles since the
last CYC packet. Unlike MTC and TSC packets, CYC packets are only sent
when another packet is also sent.
Support for this feature is indicated by:
/sys/bus/event_source/devices/intel_pt/caps/psb_cyc
which contains "1" if the feature is supported and "0" otherwise.
CYC packets can be requested using a PMU config term e.g. perf record -e
intel_pt/cyc/u sleep 1
The frequency of CYC packets can also be specified. e.g. perf record -e
intel_pt/cyc,cyc_thresh=2/u sleep 1
CYC packets are not requested by default.
Valid cyc_thresh values are given by:
/sys/bus/event_source/devices/intel_pt/caps/cycle_thresholds
which contains a hexadecimal value, the bits of which represent valid
values e.g. bit 2 set means value 2 is valid.
The value represents the minimum number of CPU cycles that must have
passed before a CYC packet can be sent. The number of CPU cycles is:
2 ^ (value - 1)
e.g. value 4 means 8 CPU cycles must pass before a CYC packet can be
sent. Note a CYC packet is still only sent when another packet is sent,
not at, e.g. every 8 CPU cycles.
If an invalid value is entered, the error message will give a list of
valid values e.g.
$ perf record -e intel_pt/cyc,cyc_thresh=15/u uname
Invalid cyc_thresh for intel_pt. Valid values are: 0-12
tools/perf/Documentation/intel-pt.txt is updated in a later patch as
there are a number of new features being added.
For more information refer to the June 2015 or later Intel 64 and IA-32
Architectures SDM Chapter 36 Intel Processor Trace.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-24-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit cc33618619cefc6d730cca3bb8e15311016a4da7
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:57 2015 +0300
perf tools: Add Intel PT support for decoding CYC packets
CYC packets provide even finer grain timestamp information than MTC and
TSC packets. A CYC packet contains the number of CPU cycles since the
last CYC packet.
This patch just adds decoder support. The CPU frequency can be related
to TSC using the Maximum Non-Turbo Ratio in combination with the CBR
(core-to-bus ratio) packet. However more accuracy is achieved by simply
interpolating the number of cycles between other timing packets like MTC
or TSC. This patch takes the latter approach.
Support for a default value and validation of values is provided by a
later patch. Also documentation is updated in a separate patch.
For details refer to the June 2015 or later Intel 64 and IA-32
Architectures SDM Chapter 36 Intel Processor Trace.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-23-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit b45fc0bfaf4a0b60ce2deda222f8ef2a23b89a5f
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:56 2015 +0300
perf tools: Add Intel PT support for using MTC packets
MTC packets are a new Intel PT feature.
MTC packets provide finer grain timestamp information than TSC packets.
Support for this feature is indicated by:
/sys/bus/event_source/devices/intel_pt/caps/mtc
which contains "1" if the feature is supported and "0" otherwise.
MTC packets can be requested using a PMU config term e.g. perf record -e
intel_pt/mtc/u sleep 1
The frequency of MTC packets can also be specified. e.g. perf record -e
intel_pt/mtc,mtc_period=2/u sleep 1
The default value is 3 or the nearest lower value that is supported. 0
is always supported.
Valid values are given by:
/sys/bus/event_source/devices/intel_pt/caps/mtc_periods
which contains a hexadecimal value, the bits of which represent valid
values e.g. bit 2 set means value 2 is valid.
The value is converted to the MTC frequency as:
CTC-frequency / (2 ^ value)
e.g. value 3 means one eighth of CTC-frequency
Where CTC is the hardware crystal clock, the frequency of which can be
related to TSC via values provided in cpuid leaf 0x15.
If an invalid value is entered, the error message will give a list of
valid values e.g.
$ perf record -e intel_pt/mtc_period=15/u uname
Invalid mtc_period for intel_pt. Valid values are: 0,3,6,9
tools/perf/Documentation/intel-pt.txt is updated in a later patch as
there are a number of new features being added.
For more information refer to the June 2015 or later Intel 64 and IA-32
Architectures SDM Chapter 36 Intel Processor Trace.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-22-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 79b58424b821c651a4b4df9018a14684e3670f42
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:55 2015 +0300
perf tools: Add Intel PT support for decoding MTC packets
MTC packets provide finer grain timestamp information than TSC packets.
MTC packets record time using the hardware crystal clock (CTC) which is
related to TSC packets using a TMA packet.
This patch just adds decoder support.
Support for a default value and validation of values is provided by a
later patch. Also documentation is updated in a separate patch.
For details refer to the June 2015 or later Intel 64 and IA-32
Architectures SDM Chapter 36 Intel Processor Trace.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-21-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 11fa7cb86b56d3610043ba2ac6cbd81feab4b7c4
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:54 2015 +0300
perf tools: Pass Intel PT information for decoding MTC and CYC
Record additional information in the AUXTRACE_INFO event in preparation
for decoding MTC and CYC packets. Pass the information to the decoder.
The AUXTRACE_INFO record can be extended by using the size to indicate
the presence of new members.
The additional information includes PMU config bit positions and the TSC
to CTC (hardware crystal clock) ratio needed to decode MTC packets.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-20-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 3d49807870f08d6f3406b77efd94bb3788372162
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:53 2015 +0300
perf tools: Add new Intel PT packet definitions
New features have been added to Intel PT which include a number of new
packet definitions.
This patch adds packet definitions for new packets: TMA, MTC, CYC, VMCS,
TRACESTOP and MNT. Also another bit in PIP is defined.
This patch only adds support for the definitions. Later patches add
support for decoding TMA, MTC, CYC and TRACESTOP which is where those
packets are explained.
VMCS and the newly defined bit in PIP are used with virtualization which
is not supported yet. MNT is a maintenance packet which the decoder
should ignore.
For details, refer to the June 2015 or later Intel 64 and IA-32
Architectures SDM Chapter 36 Intel Processor Trace.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-19-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit bc9b6bf07c8b3f4e85509f9b3a552c86e567b4ae
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:52 2015 +0300
perf tools: Add Intel PT support for PSB periods
The PSB packet is a synchronization packet that provides a starting
point for decoding or recovery from errors.
This patch adds support for a new Intel PT feature that allows the
frequency of PSB packets to be specified.
Support for this feature is indicated by
/sys/bus/event_source/devices/intel_pt/caps/psb_cyc which contains "1"
if the feature is supported and "0" otherwise.
The PSB period can be specified as a PMU config term e.g. perf record -e
intel_pt/psb_period=2/u sleep 1
The default value is 3 or the nearest lower value that is supported. 0
is always supported.
Valid values are given by:
/sys/bus/event_source/devices/intel_pt/caps/psb_periods
which contains a hexadecimal value, the bits of which represent valid
values e.g. bit 2 set means value 2 is valid.
The value is converted to the approximate number of trace bytes between
PSB packets as:
2 ^ (value + 11)
e.g. value 3 means 16KiB bytes between PSBs
If an invalid value is entered, the error message will give a list of
valid values e.g.
$ perf record -e intel_pt/psb_period=15/u uname
Invalid psb_period for intel_pt. Valid values are: 0-5
tools/perf/Documentation/intel-pt.txt is updated in a later patch as
there are a number of new features being added.
For more information about PSB periods refer to the Intel 64 and IA-32
Architectures SDM Chapter 36 Intel Processor Trace from June 2015 or
later.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-18-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 2a21d03686881331b0af0471588674e7e896eeb2
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:48 2015 +0300
perf tools: Fix Intel PT 'instructions' sample period
The period on synthesized 'instructions' samples was being set to a
fixed value, whereas the correct value is the number of instructions
since the last sample, which is a value that the decoder can provide.
So do it that way.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-14-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit f8bcbe62acd0e1ce9004b83e98a4af87ae385dcf
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Sat Aug 8 10:44:10 2015 +0200
lib: scatterlist: add sg splitting function
Sometimes a scatter-gather has to be split into several chunks, or sub
scatter lists. This happens for example if a scatter list will be
handled by multiple DMA channels, each one filling a part of it.
A concrete example comes with the media V4L2 API, where the scatter list
is allocated from userspace to hold an image, regardless of the
knowledge of how many DMAs will fill it :
- in a simple RGB565 case, one DMA will pump data from the camera ISP
to memory
- in the trickier YUV422 case, 3 DMAs will pump data from the camera
ISP pipes, one for pipe Y, one for pipe U and one for pipe V
For these cases, it is necessary to split the original scatter list into
multiple scatter lists, which is the purpose of this patch.
The guarantees that are required for this patch are :
- the intersection of spans of any couple of resulting scatter lists is
empty.
- the union of spans of all resulting scatter lists is a subrange of
the span of the original scatter list.
- streaming DMA API operations (mapping, unmapping) should not happen
both on both the resulting and the original scatter list. It's either
the first or the later ones.
- the caller is reponsible to call kfree() on the resulting
scatterlists.
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 91f15fb30c77d4a0d0d9b97e5cec647650853145
Author: Zhang Rui <rui.zhang@xxxxxxxxx>
Date: Mon Aug 24 15:27:11 2015 -0500
PCI: Disable async suspend/resume for JMicron multi-function SATA/AHCI
On multi-function JMicron SATA/PATA/AHCI devices, the PATA controller at
function 1 doesn't work if it is powered on before the SATA controller at
function 0. The result is that PATA doesn't work after resume, and we
print messages like this:
pata_jmicron 0000:02:00.1: Refused to change power state, currently in
D3
irq 17: nobody cared (try booting with the "irqpoll" option)
Async resume was introduced in v3.15 by 76569faa62c4 ("PM / sleep:
Asynchronous threads for resume_noirq"). Prior to that, we powered on
the functions in order, so this problem shouldn't happen.
e6b7e41cdd8c ("ata: Disabling the async PM for JMicron chip 363/361")
solved the problem for JMicron 361 and 363 devices. With async suspend
disabled, we always power on function 0 before function 1.
Barto then reported the same problem with a JMicron 368 (see comment #57
in
the bugzilla).
Rather than extending the blacklist piecemeal, disable async suspend for
all JMicron multi-function SATA/PATA/AHCI devices.
This quirk could stay in the ahci and pata_jmicron drivers, but it's
likely
the problem will occur even if pata_jmicron isn't loaded until after the
suspend/resume. Making it a PCI quirk ensures that we'll preserve the
power-on order even if the drivers aren't loaded.
[bhelgaas: changelog, limit to multi-function, limit to IDE/ATA]
Link: https://bugzilla.kernel.org/show_bug.cgi?id=81551
Reported-and-tested-by: Barto <mister.freeman@xxxxxxxxxxx>
Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
CC: stable@xxxxxxxxxxxxxxx # v3.15+
commit 5c9ce1e644c1919ac4bff4394a4c372f47a89b4e
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Mon Aug 24 17:16:22 2015 -0300
perf ordered_events: Clear the progress bar at the end of a flush
We were depending on the next screen operation after a flush() being
one that would redraw the whole screen so that the progress bar would
be overwritten, when that didn't happen a screen artifact of, say, a
error dialog window would be overlaid on top of the progress bar, fix
it by calling ui_browser__finish(), that now has a TUI implementation.
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-el0fyw6duemnx62lydjzhs8c@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit e324c4dc4a5991d5b1171f434884a4026345e4b4
Author: Shenwei Wang <shenwei.wang@xxxxxxxxxxxxx>
Date: Mon Aug 24 14:04:15 2015 -0500
irqchip/imx-gpcv2: IMX GPCv2 driver for wakeup sources
IMX7D contains a new version of GPC IP block (GPCv2). It has two major
functions: power management and wakeup source management.
When the system is in WFI (wait for interrupt) mode, the GPC block
will be the first block on the platform to be activated and signaled.
In normal wait mode during cpu idle, the system can be woken up by any
enabled interrupts. In standby or suspend mode, the system can only be
wokem up by the pre-defined wakeup sources.
Based-on-patch-by: Anson Huang <b20788@xxxxxxxxxxxxx>
Signed-off-by: Shenwei Wang <shenwei.wang@xxxxxxxxxxxxx>
Cc: <linux-arm-kernel@xxxxxxxxxxxxxxxxxxx>
Cc: <shawn.guo@xxxxxxxxxx>
Cc: <jason@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440443055-7291-1-git-send-email-shenwei.wang@xxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 4a89ba04ecc6377696e4e26c1abc1cb5764decb9
Author: Loganaden Velvindron <logan@xxxxxxxxxxxx>
Date: Thu Aug 20 19:22:18 2015 -0700
3c59x: Add BQL support for 3c59x ethernet driver.
This BQL patch is based on work done by Tino Reichardt.
Tested on 0000:05:00.0: 3Com PCI 3c905C Tornado at ffffc90000e6e000 by
running
Flent several times.
Signed-off-by: Loganaden Velvindron <logan@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1e259ad4a25e37eb298bb5772b9a51e70bed7782
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Mon Aug 24 16:18:26 2015 -0300
perf ui tui progress: Implement the ui_progress_ops->finish() method
So that we can erase the progress bar after we're done with it, avoiding
things like:
-------------------------------------------------------------------
â??â??Error:â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??
â??Can't annotate unmapped_area_topdown:
â??
â??
â??
â??No vmlinux file with build id
a826726b5ddacfab1f0bade868f1a79â??
â??was found in the path.
â??
â??
â??
â??Note that annotation using /proc/kcore requires
CAP_SYS_RAWIOâ??
â??Processinâ??
â??â??â??â??
â?? â??Please use:
â?? â??
â??â??â??â??â??â??â??â??â??â??â??
â??â??â??â??
â?? perf buildid-cache -vu vmlinux
â??
â??
â??
â??or:
â??
â??
â??
â?? --vmlinux vmlinux
â??
â??
â??
â??
â??
â??Press any key...
â??
â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??â??
Can't annotate unmapped_area_topdown:
-------------------------------------------------------------------
I.e. that finished progress bar behind the error window. It is not a
problem when we end up redrawing the whole screen, but its ugly when
we present such error windows, provide a TUI method so that code like
the above may avoid this situation, as will be done with the annotation
code in the next cset.
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-qvktnojzwwe37pweging058t@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 2fc32c92593dd7900c0635398800214733b8b397
Merge: f0d9ac7 d3f4caa 8d1ceb5 68ebb7c
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Mon Aug 24 14:15:05 2015 -0500
Merge branches 'pci/host-dra7xx', 'pci/host-imx6' and 'pci/host-spear'
into next
* pci/host-dra7xx:
PCI: dra7xx: Remove unneeded use of IS_ERR_VALUE()
* pci/host-imx6:
PCI: imx6: Simplify a trivial if-return sequence
* pci/host-spear:
PCI: spear: Use BUG_ON() instead of condition followed by BUG()
commit 534fcb3bdaab801636d2146079462f7fdf52be0a
Author: Michele Curti <michele.curti@xxxxxxxxx>
Date: Mon Aug 24 10:49:29 2015 -0700
Input: elan_i2c - enable ELAN0100 acpi panels
Enable ELAN0100 touchpad driver, found on a Asus X205TA laptop, to
gai 2,3 fingers tap and 2 fingers scroll.
Signed-off-by: Michele Curti <michele.curti@xxxxxxxxx>
Reviewed-by: Duson Lin <dusonlin@xxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 4ea14a53d8f881034fa9e186653821c4e3d9a8fb
Author: Peng Fan <van.freenix@xxxxxxxxx>
Date: Mon Aug 24 10:42:25 2015 -0700
Input: gpio-keys - report error when disabling unsupported key
When trying to disable a key that is not supported by the device we should
report error, not do nothing and report success:
root@yocto:/sys/devices/soc0/gpio-keys# cat keys
114-116
root@yocto:/sys/devices/soc0/gpio-keys# echo 77 > keys
root@yocto:/sys/devices/soc0/gpio-keys#
We want 'echo 77 > keys' to report an error, but silence to give us an
illusion that all is 'ok'.
Signed-off-by: Peng Fan <van.freenix@xxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit ff89de6ba1d41ad4dea2c59531c5b4038ae43e8c
Author: Julia Lawall <Julia.Lawall@xxxxxxx>
Date: Mon Aug 24 10:51:04 2015 -0700
Input: sur40 - fix error return code
Propagate error code on failure, or upper layers will be confused by
returned 0 (success) code.
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 0fe0965e63c80dbc4bb005253ecff3494cbefc04
Author: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Date: Fri Aug 21 15:19:06 2015 +0600
Documentation/x86: Rename IRQSTACKSIZE to IRQ_STACK_SIZE
The IRQSTACKSIZE was renamed to the IRQ_STACK_SIZE in the
(26f80bd6a9 x86-64: Convert irqstacks to per-cpu) commit,
but it still named IRQSTACKSIZE in the documentation. This
patch fixes this.
Signed-off-by: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
commit 61a88a76b43ce35254415821047aeefde3f656a9
Author: Nan Xiao <xiaonan830818@xxxxxxxxx>
Date: Thu Aug 20 18:17:10 2015 +0800
Documentation/Intel-IOMMU.txt: Modify definition of DRHD
Hi all,
According to "Intel Virtualization Technology for Directed I/O"
specification,
DRHD stands for "DMA Remapping Hardware Unit Definition" , not "DMA
Engine Reporting Structure".
Signed-off-by: Nan Xiao <nan@xxxxxxxxxxxxxxx>
commit b17f29646dfabe147a7a4d54cc628e8046be3761
Merge: 54cf7be 92b78af
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 24 10:34:40 2015 -0700
Merge branch 'ila-precompute'
Tom Herbert says:
====================
ila: Precompute checksums
This patch set:
- Adds argument ot LWT build_state that holds a pointer to the fib
configuration being applied to the new route
- Adds support in ILA to precompute checksum difference for
performance optimization
v2:
- Move return argument in build_state to end of arguments
v3:
- Update the signature for ip6_tun_build_state()
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 92b78aff855a4815afe5311e3473ec829d3f2a9e
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 09:45:42 2015 -0700
ila: Precompute checksum difference for translations
In the ILA build state for LWT compute the checksum difference to apply
to transport checksums that include the IPv6 pseudo header. The
difference is between the route destination (from fib6_config) and the
locator to write.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 127eb7cd3c210afead788991a30950a9e36759ea
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 09:45:41 2015 -0700
lwt: Add cfg argument to build_state
Add cfg and family arguments to lwt build state functions. cfg is a void
pointer and will either be a pointer to a fib_config or fib6_config
structure. The family parameter indicates which one (either AF_INET
or AF_INET6).
LWT encpasulation implementation may use the fib configuration to build
the LWT state.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e4144fe5d47c91c92d36cdbd5f31ed8d6e3a57ab
Author: Mario Carrillo <mario.alfredo.c.arevalo@xxxxxxxxx>
Date: Mon Aug 24 09:33:09 2015 -0500
docs: update HOWTO for 3.x -> 4.x versioning
The HOWTO document needed updating for the new kernel versioning.
Signed-off-by: Mario Carrillo <mario.alfredo.c.arevalo@xxxxxxxxx>
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
commit b01548919c33767bc457390fa3c41aedc273bfff
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Mon Aug 24 17:39:42 2015 +0800
f2fs: handle f2fs_truncate error correctly
This patch fixes to return error number of f2fs_truncate, so that we
can handle the error correctly in callers.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 4ec17d688d74b6b7cb10043c57ff4818cde2b0ca
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Mon Aug 24 17:36:25 2015 +0800
f2fs: avoid unneeded initializing when converting inline dentry
When converting inline dentry, we will zero out target dentry page before
duplicating data of inline dentry into target page, it become overhead
since inline dentry size is not small.
So this patch tries to remove unneeded initializing in the space of target
dentry page.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 6a6788576dac56135bf98ad974a038b0afb1a499
Author: Zhang Zhen <zhenzhang.zhang@xxxxxxxxxx>
Date: Mon Aug 24 10:41:32 2015 +0800
f2fs: atomically set inode->i_flags
According to commit 5f16f3225b06 ("ext4: atomically set inode->i_flags in
ext4_set_inode_flags()").
Signed-off-by: Zhang Zhen <zhenzhang.zhang@xxxxxxxxxx>
Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit f7409d0fae7a02ea6c8195f75ad73866d5dea617
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Fri Aug 21 23:37:18 2015 -0700
f2fs: fix wrong pointer access during try_to_free_nids
If we release the lock in list_for_each_entry_safe, we can lose the tmp
pointer by alloc_nid.
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 80c545055dc7c1f7f487176fe0aac17896a4b7af
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Thu Aug 20 08:51:56 2015 -0700
f2fs: use __GFP_NOFAIL to avoid infinite loop
__GFP_NOFAIL can avoid retrying the whole path of kmem_cache_alloc and
bio_alloc.
And, it also fixes the use cases of GFP_ATOMIC correctly.
Suggested-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit c0b4dffbc529244d3e4e3bd392f2bffa2d8531a7
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Mon Aug 24 13:33:14 2015 -0300
perf annotate: Reset the dso find_symbol cache when removing symbols
The 'annotate' tool does some filtering in the entries in a DSO but
forgot to reset the cache done in dso__find_symbol(), cauxing a SEGV:
[root@zoo ~]# perf annotate netlink_poll
perf: Segmentation fault
-------- backtrace --------
perf[0x526ceb]
/lib64/libc.so.6(+0x34960)[0x7faedfbe0960]
perf(rb_erase+0x223)[0x499d63]
perf[0x4213e9]
perf[0x4bc123]
perf[0x4bc621]
perf[0x4bf26b]
perf[0x4bc855]
perf(perf_session__process_events+0x340)[0x4bddc0]
perf(cmd_annotate+0x6bb)[0x421b5b]
perf[0x479063]
perf(main+0x60a)[0x42098a]
/lib64/libc.so.6(__libc_start_main+0xf0)[0x7faedfbcbfe0]
perf[0x420aa9]
[0x0]
[root@zoo ~]#
Fix it by reseting the find cache when removing symbols.
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Fixes: b685ac22b436 ("perf symbols: Add front end cache for DSO symbol
lookup")
Link: http://lkml.kernel.org/n/tip-b2y9x46y0t8yem1ive41zqyp@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit cebb053bd144d88a4c24b14dd8ac775d8e5972d5
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Aug 1 15:50:44 2014 +0200
of: Add vendor prefix for Sharp Corporation
Use "sharp" as the vendor prefix for Sharp Corporation in device
tree compatible strings.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
[robh: fix name to Sharp Corporation]
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
commit d179e22762fd38414c4108acedd5feca4cf7e0d8
Author: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Date: Fri Jul 24 14:18:46 2015 +0900
kbuild: fixdep: drop meaningless hash table initialization
The clear_config() is called just once at the beginning of this
program, but the global variable hashtab[] is already zero-filled
at the start-up.
Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit d721109611fb94aff53c2397859046e5f92f55ae
Author: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Date: Fri Jul 24 14:18:45 2015 +0900
kbuild: fixdep: optimize code slightly
If the target string matches "CONFIG_", move the pointer p
forward. This saves several 7-chars adjustments.
Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 5a688c455066c21c133bc8ffa7b11f8c66b7fe0b
Author: Matt Redfearn <matt.redfearn@xxxxxxxxxx>
Date: Thu Aug 20 11:30:32 2015 +0100
mfd: jz4740-adc: Init mask cache in generic IRQ chip
The mask cache must be initialised in the generic IRQ chip,
otherwise enabling one channel will actually enable all
channels when the empty mask cache is written.
Signed-off-by: Matt Redfearn <matt.redfearn@xxxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit a78ea195f77a8ed2c5f3108a8cdb9a26ebd474d8
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 09:07:22 2015 +0200
mfd: cros_ec: spi: Add OF match table
The Documentation/devicetree/bindings/mfd/cros-ec.txt DT binding doc lists
"google,cros-ec-spi" as a compatible string but the corresponding driver
does not have an OF match table. Add the table to the driver so the SPI
core can do an OF style match.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit 1e955bece28f0f464c2db03c7e12951cea65fab6
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 09:07:25 2015 +0200
mfd: stmpe: Add OF match table
The Documentation/devicetree/bindings/mfd/stmpe.txt DT binding doc lists
"st,stmpe[610|801|811|1601|2401|2403]" as valid compatible strings but
the corresponding driver does not have an OF match table. Add the table
to the driver so the SPI core can do an OF style match.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit aa60a8391337aa0f14ed890b237f5b8e6cadfbbf
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 10:47:21 2015 +0200
mfd: max77686: Split out regulator part from the DT binding
The Maxim MAX77686 PMIC is a multi-function device with regulators,
clocks and a RTC. The DT bindings for the clocks are in a separate
file but the bindings for the regulators are inside the mfd part.
To make it consistent with the clocks portion of the binding and
because is more natural to look for regulator bindings under the
bindings/regulator sub-directory, split the regulator portion of
the DT binding and add it as a separate file.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit 00f1493e9e0c875f16623bdb088108ada6e7647e
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 10:47:20 2015 +0200
mfd: Add DT binding for Maxim MAX77802 IC
The MAX77802 is a chip that contains regulators, 2 32kHz clocks,
a RTC and an I2C interface to program the individual components.
The are already DT bindings for the regulators and clocks and
these reference to a bindings/mfd/max77802.txt file, that didn't
exist, for the details about the PMIC.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit 00d689169dd088257de7ed218ff2c638bc5ad3b5
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 10:47:19 2015 +0200
mfd: max77686: Use a generic name for the PMIC node in the example
The ePAPR standard says that: "the name of a node should be somewhat
generic, reflecting the function of the device and not its precise
programming model."
So, change the max77686 binding document example to use a generic
node name instead of using the chip's name.
Suggested-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit 89bd794cf60760ef053d3694c6749f651c034e02
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Mon Aug 24 10:47:18 2015 +0200
mfd: max77686: Don't suggest in binding to use a deprecated property
The regulator-compatible property from the regulator DT binding was
deprecated. But the max77686 DT binding doc still suggest to use it
instead of the regulator node name's which is the correct approach.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit b9124a523017a53cce071451f5c38a0b77761534
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 13:19:53 2015 +0200
mfd: Add MFD_CROS_EC dependencies
The MFD_CROS_EC symbol select CHROME_PLATFORMS and CROS_EC_PROTO but
that caused a Kconfig unmet direct dependencies warning since these
symbols could only be selected for X86 || ARM.
The fix it, the CHROME_PLATFORMS dependencies were relexed on commit
d12bbcd3ea44 ("platform/chrome: Don't make CHROME_PLATFORMS depends
on X86 || ARM") but that was found to be wrong and the correct fix
is to add the needed dependencies to the MFD_CROS_EC config symbol.
There are only x86 and ARM based Chromebooks so to avoid showing up
the config option on unsupported platforms, make the symbol depend on
these architectures. Also add a || COMPILE_TEST so it can have build
coverage on other platforms.
Suggested-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit da935c0b6eeeac16de0a82cc1152fb0a9b5a11ef
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 13:19:56 2015 +0200
mfd: cros_ec: Remove CROS_EC_PROTO dependency for SPI and I2C drivers
The ChromeOS EC SPI and I2C transport drivers depends on CROS_EC_PROTO
but MFD_CROS_EC select CROS_EC_PROTO instead. Mixing select and depends
on is bad practice as it may lead to circular Kconfig dependencies.
Since these drivers already depend on MFD_CROS_EC and that config option
already selects CROS_EC_PROTO, there is no need to make them explicitly
depend on CROS_EC_PROTO since that dependency is already met.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
commit 55e8dba1acc2e3e9d77226c3b08b25a02a0e3a3a
Author: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Date: Sat Aug 22 08:29:30 2015 -0700
crypto: qat - silence a static checker warning
Add range check for ring number.
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 73613a8159ddbf5a9ead0c03174458fa8210bdf7
Author: Leonidas Da Silva Barbosa <leosilva@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 21 17:27:43 2015 -0300
crypto: vmx - Fixing opcode issue
In build time vadduqm opcode is not being mapped
correctly.
Adding a new map in ppc-xlate to do this.
Signed-off-by: Leonidas S Barbosa <leosilva@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 9c4f9733e26f0d6977096fcafe71ea2ba9f0cd7c
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Fri Aug 21 13:52:00 2015 -0300
crypto: caam - Use the preferred style for memory allocations
"The preferred form for passing a size of a struct is the following:
p = kmalloc(sizeof(*p), ...);
....
The preferred form for allocating a zeroed array is the following:
p = kcalloc(n, sizeof(...), ...); "
,so do as suggested.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Reviewed-by: Horia Geant? <horia.geanta@xxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit a3c09550f0cbd9965e44a2dc62c85ff5db91f8ff
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Fri Aug 21 13:51:59 2015 -0300
crypto: caam - Propagate the real error code in caam_probe
Instead of propagating a 'fake' error code, just propagate the real
one in the case of caam_drv_identify_clk() failure.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Reviewed-by: Horia Geant? <horia.geanta@xxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 31f44d150791c3fe923399a1159320acc4a9b3b4
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Fri Aug 21 13:51:58 2015 -0300
crypto: caam - Fix the error handling in caam_probe
In the error path we should disable the resources that were previously
acquired, so fix the error handling accordingly.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Reviewed-by: Horia Geant? <horia.geanta@xxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 9f587fa29f7e8ed6b8885cff51a51ace3ad85152
Author: Horia Geant? <horia.geanta@xxxxxxxxxxxxx>
Date: Fri Aug 21 18:53:20 2015 +0300
crypto: caam - fix writing to JQCR_MS when using service interface
Most significant part of JQCR (Job Queue Control Register) contains
bits that control endianness: ILE - Immediate Little Endian,
DWS - Double Word Swap.
The bits are automatically set by the Job Queue Controller HW.
Unfortunately these bits are cleared in SW when submitting descriptors
via the register-based service interface.
>From LS1021A:
JQCR_MS = 08080100 - before writing: ILE | DWS | SRC (JR0)
JQCR_MS = 30000100 - after writing: WHL | FOUR | SRC (JR0)
This would cause problems on little endian caam for descriptors
containing immediata data or double-word pointers.
Currently there is no problem since the only descriptors ran through
this interface are the ones that (un)instantiate RNG.
Signed-off-by: Horia Geant? <horia.geanta@xxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 27d868b5e6cfaee4fec66b388e4085ff94050fa7
Author: Keith Busch <keith.busch@xxxxxxxxx>
Date: Mon Aug 24 08:48:16 2015 -0500
PCI: Set MPS to match upstream bridge
Firmware typically configures the PCIe fabric with a consistent Max
Payload
Size setting based on the devices present at boot. A hot-added device
typically has the power-on default MPS setting (128 bytes), which may not
match the fabric.
The previous Linux default, in the absence of any "pci=pcie_bus_*"
options,
was PCIE_BUS_TUNE_OFF, in which we never touch MPS, even for hot-added
devices.
Add a new default setting, PCIE_BUS_DEFAULT, in which we make sure every
device's MPS setting matches the upstream bridge. This makes it more
likely that a hot-added device will work in a system with optimized MPS
configuration.
Note that if we hot-add a device that only supports 128-byte MPS, it still
likely won't work because we don't reconfigure the rest of the fabric.
Booting with "pci=pcie_bus_peer2peer" is a workaround for this because it
sets MPS to 128 for everything.
[bhelgaas: changelog, new default, rework for pci_configure_device() path]
Tested-by: Keith Busch <keith.busch@xxxxxxxxx>
Tested-by: Jordan Hargrave <jharg93@xxxxxxxxx>
Signed-off-by: Keith Busch <keith.busch@xxxxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Acked-by: Yinghai Lu <yinghai@xxxxxxxxxx>
commit 5166c20ef95be89d10ffe0140e74df5cf26e9786
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Mon Aug 24 13:35:51 2015 +0100
arm64: makefile: fix perf_callchain.o kconfig dependency
Commit 4b3dc9679cf7 ("arm64: force CONFIG_SMP=y and remove redundant
#ifdefs") incorrectly resolved a conflict on arch/arm64/kernel/Makefile
which resulted in a partial revert of 52da443ec4d0 ("arm64: perf: factor
out callchain code"), leading to perf_callchain.o depending on
CONFIG_HW_PERF_EVENTS instead of CONFIG_PERF_EVENTS.
This patch restores the kconfig dependency for perf_callchain.o.
Reported-by: Mark Rutland <mark.rutland@xxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit a4a9a8cb3248b3b48a6049acaeaf23d4ad3712b9
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Tue Aug 18 12:12:19 2015 +0300
i2c: xgene-slimpro: dma_mapping_error() doesn't return an error code
The dma_mapping_error() function returns true if there is an error, it
doesn't return an error code. We should return -ENOMEM.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Reviewed-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxx
commit 480b141abf7ffe630016dd4ced0fc57f105a05a9
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 13:19:57 2015 +0200
i2c: Replace I2C_CROS_EC_TUNNEL dependency
The ChromeOS EC tunnel I2C bus driver depend on CROS_EC_PROTO but
MFD_CROS_EC select CROS_EC_PROTO instead. Mixing select and depends
on is bad practice as it may lead to circular Kconfig dependencies.
Since the platform device that is matched with the I2C bus driver
is registered by the ChromeOS EC mfd driver, I2C_CROS_EC_TUNNEL
really depends on MFD_CROS_EC. And because this config option
selects CROS_EC_PROTO, that dependency is met as well. So make the
driver to depend on MFD_CROS_EC instead of CROS_EC_PROTO.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit 2cd9fbd0ed5ef12bf550c06126ebbe720574fc0e
Author: Irina Tirdea <irina.tirdea@xxxxxxxxx>
Date: Wed Aug 12 17:31:34 2015 +0300
eeprom: at24: use i2c_smbus_read_i2c_block_data_or_emulated
For i2c busses that support only SMBUS extensions, the eeprom at24
driver reads data from the device using the SMBus block, word or byte
read protocols depending on availability.
Replace the block read emulation from the driver with the
i2c_smbus_read_i2c_block_data_or_emulated call from i2c core.
Signed-off-by: Irina Tirdea <irina.tirdea@xxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit 01eef96e37d77cd89156e5f51aab81a9d5c96539
Author: Irina Tirdea <irina.tirdea@xxxxxxxxx>
Date: Wed Aug 12 17:31:33 2015 +0300
i2c: core: Add support for best effort block read emulation
There are devices that need to handle block transactions
regardless of the capabilities exported by the adapter.
For performance reasons, they need to use i2c read blocks
if available, otherwise emulate the block transaction with word
or byte transactions.
Add support for a helper function that would read a data block
using the best transfer available: I2C_FUNC_SMBUS_READ_I2C_BLOCK,
I2C_FUNC_SMBUS_READ_WORD_DATA or I2C_FUNC_SMBUS_READ_BYTE_DATA.
Signed-off-by: Irina Tirdea <irina.tirdea@xxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit 3f9c37a0c9a59db97ca5712eca7838b842949047
Author: Joachim Eastwood <manabian@xxxxxxxxx>
Date: Sun Aug 16 20:10:16 2015 +0200
i2c: lpc2k: add driver
Add support for the I2C controller found on several NXP devices
including LPC2xxx, LPC178x/7x and LPC18xx/43xx. The controller
is implemented as a state machine and the driver act upon the
state changes when the bus is accessed.
The I2C controller supports master/slave operation, bus
arbitration, programmable clock rate, and speeds up to 1 Mbit/s.
Signed-off-by: Joachim Eastwood <manabian@xxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit b3fdd32799d834e2626fae087906e886037350c6
Author: York Sun <yorksun@xxxxxxxxxxxxx>
Date: Mon Aug 17 11:53:48 2015 -0700
i2c: mux: Add register-based mux i2c-mux-reg
Based on i2c-mux-gpio driver, similarly the register-based mux
switch from one bus to another by setting a single register.
The register can be on PCIe bus, local bus, or any memory-mapped
address. The endianness of such register can be specified in device
tree if used, or in platform data.
Signed-off-by: York Sun <yorksun@xxxxxxxxxxxxx>
Acked-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit 7a59b00a0906945f7fe25a10332ac0820491a0c3
Author: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Date: Sat Aug 8 13:35:18 2015 +0200
i2c: dt: describe generic bindings
Start a new file which describes the generic bindings used for I2C with
device tree. So we have a central place to look for them, increase
visibility of them, and hopefully reduce the amount of custom properties
introduced.
Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Vaibhav Hiremath <vaibhav.hiremath@xxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit c6909d6f6f1082b8bb4c1b0ef3460a005c9dcb4d
Author: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 5 21:12:54 2015 +0200
i2c: slave: print warning if slave flag not set
Address collisions will be rare, but we should let the user know that
slaves have their own address space nonetheless.
Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit cfa0327b0d03091e0c47249c080e50e287be762d
Author: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Jul 27 14:03:38 2015 +0200
i2c: support 10 bit and slave addresses in sysfs 'new_device'
We now have seperate address spaces for 10 bit and we-are-slave clients.
Update the sysfs device instantiation method to support these types by
accepting the address offsets that are assigned to the extra address
spaces. Update the documentation, too.
Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit 9bccc70a127cfe2a13e34d6b6e7300caae113f8f
Author: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Jul 17 14:48:56 2015 +0200
i2c: take address space into account when checking for used addresses
It is not enough to compare the plain address value, we also need to
check the flags enabling a different address space. E.g. it is valid to
have address 0x50 as a 7-bit address and 0x050 as 10-bit address on the
same bus. Same for addresses when we are the slave.
Tested-by: Andrey Danin <danindrey@xxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit b4e2f6ac1281cd3e066919cc762eef4924e9fcc5
Author: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Date: Tue May 19 21:04:40 2015 +0200
i2c: apply DT flags when probing
Check for slave and 10-bit flags when probing and mark the client when
found. Improve the address validity check, too
Tested-by: Andrey Danin <danindrey@xxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit c4019b7040eaf88f440ce5212e055a4f19b1b541
Author: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Jul 17 12:50:06 2015 +0200
i2c: make address check indpendent from client struct
We want to use this function with struct boardinfo soon, so let's just
pass the parameters really needed. We also extend the type of addr, so
more types can be input. Remove a superfluous dangling comment while
here.
Tested-by: Andrey Danin <danindrey@xxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit 66be6056eba80690bb7fa3d983c21494e1950bea
Author: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Jul 17 12:43:22 2015 +0200
i2c: rename address check functions
The current naming is based on the arguments of the functions and not on
what they do. Even I as the maintainer find this confusing, so let's
rename them to something more descriptive.
Tested-by: Andrey Danin <danindrey@xxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit da899f55b359225f85e154765baaddb13ec436ca
Author: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Date: Mon May 18 21:09:12 2015 +0200
i2c: apply address offset for slaves, too
We want a separate address range for being an I2C slave. Add an offset
of 0x1000, so it can be combined with ten bit addresses as well. Add a
separate function to create the address value, we will need it later in
other places.
Tested-by: Andrey Danin <danindrey@xxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit c5ebb387f4e6b2dd7c74d71caf7b696834d0c887
Author: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Date: Tue May 19 17:44:31 2015 +0200
i2c: add a flag to mark clients as slaves
And update indentation with one more tab, sigh...
Tested-by: Andrey Danin <danindrey@xxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit f5005f7835e0da9ea6f203f8acc356bef9b331da
Author: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Date: Tue May 19 17:40:55 2015 +0200
dt-bindings: add header for generic I2C flags in bindings
Tested-by: Andrey Danin <danindrey@xxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
commit c9b57724b38d4c1555ee49418be3d76801e3327c
Author: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>
Date: Fri Aug 21 10:18:08 2015 -0400
HID: quirks: add QUIRK_NOGET for an other TPV touchscreen
Looks like 0x8882 needs the same quirk than 0x8883.
Given that both devices claim they are "TPV OpticalTouchScreen" rename
the 0x8883 to add its PID in the #define.
Reported-by: Blaine Lee <blaine.j.lee@xxxxxxxxxxxxx>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>
Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
commit 2a03c025fdea25a491c359b31d8a8c8d452b06d0
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Thu Aug 13 23:43:19 2015 -0300
ARM: rockchip: pm: Fix PTR_ERR() argument
PTR_ERR should access the value just tested by IS_ERR.
The semantic patch that makes this change is available
in scripts/coccinelle/tests/odd_ptr_err.cocci.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Reviewed-by: Matthias Brugger <matthias.bgg@xxxxxxxxx>
Signed-off-by: Heiko Stuebner <heiko@xxxxxxxxx>
commit 0df9d2eae5e1092b07eaab6b989c2ff14115cab5
Author: Takeshi Kihara <takeshi.kihara.df@xxxxxxxxxxx>
Date: Mon Jul 20 01:39:59 2015 +0900
mmc: tmio: Fix timeout value for command request
Fix the problem which timeout occurs at the time of command request with
several cards.
The timeout value was insufficient as a verification of several cards,
so it was changed 5 seconds from 2 seconds.
Signed-off-by: Takeshi Kihara <takeshi.kihara.df@xxxxxxxxxxx>
Signed-off-by: Yoshihiro Kaneko <ykaneko0929@xxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 05c441efcc9796dd27451b9d87f5b22b8ebcdb2b
Author: ludovic.desroches@xxxxxxxxx <ludovic.desroches@xxxxxxxxx>
Date: Wed Jul 29 16:22:48 2015 +0200
MAINTAINERS: add entry for Atmel sdhci-of-at91 driver
Add an entry for Atmel SDMMC device.
Signed-off-by: Ludovic Desroches <ludovic.desroches@xxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit bb5f8ea4d5149f3dec6f7cd24c040c52bfc0cdbd
Author: ludovic.desroches@xxxxxxxxx <ludovic.desroches@xxxxxxxxx>
Date: Wed Jul 29 16:22:47 2015 +0200
mmc: sdhci-of-at91: introduce driver for the Atmel SDMMC
Introduce driver for he Atmel SDMMC available on sama5d2. It is a sdhci
compliant controller.
Signed-off-by: Ludovic Desroches <ludovic.desroches@xxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 5497159c460fadf0d8190b6ef144ec22fa26aa6b
Author: ludovic.desroches@xxxxxxxxx <ludovic.desroches@xxxxxxxxx>
Date: Wed Jul 29 16:22:46 2015 +0200
mmc: sdhci: switch from programmable clock mode to divided one if needed
In programmable mode, if the clock frequency is too high, the divider
can be too small to meet the clock frequency requirement especially to
init the SD card. In this case, switch to the divided clock mode.
Signed-off-by: Ludovic Desroches <ludovic.desroches@xxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 34ba2c4247e5c4b1542b1106e156af324660c4f0
Author: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Date: Tue Aug 18 10:34:42 2015 +0100
arm64: set MAX_MEMBLOCK_ADDR according to linear region size
The linear region size of a 39-bit VA kernel is only 256 GB, which
may be insufficient to cover all of system RAM, even on platforms
that have much less than 256 GB of memory but which is laid out
very sparsely.
So make sure we clip the memory we will not be able to map before
installing it into the memblock memory table, by setting
MAX_MEMBLOCK_ADDR accordingly.
Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Tested-by: Stuart Yoder <stuart.yoder@xxxxxxxxxxxxx>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit 8eafeb48022816513abc4f440bdad4c350fe81a3
Author: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Date: Tue Aug 18 10:34:41 2015 +0100
of/fdt: make memblock maximum physical address arch configurable
When parsing the memory nodes to populate the memblock memory
table, we check against high and low limits and clip any memory
that exceeds either one of them.
However, for arm64, the high limit of (phys_addr_t)~0 is not very
meaningful, since phys_addr_t is 64 bits (i.e., no limit) but there
may be other constraints that limit the memory ranges that we can
support.
So rename MAX_PHYS_ADDR to MAX_MEMBLOCK_ADDR (for clarity) and only
define it if the arch does not supply a definition of its own.
Acked-by: Rob Herring <robh@xxxxxxxxxx>
Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Tested-by: Stuart Yoder <stuart.yoder@xxxxxxxxxxxxx>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit 5d3c2c352998fdefdc62795249cfc7311cf36df9
Author: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Date: Sun Aug 23 14:24:44 2015 +0100
arm64: Fix source code file path in comments
Architecture specific code for i386 and x86_64 was unified and merged to
the arch/x86. This patch fix old path of x86 architecture in a comment
from the arch/arm64/include/asm/fixmap.h.
Signed-off-by: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit 5b9eaa5659b32cf6c85a492d2e3bfa7a3a413144
Author: Ben Hutchings <ben.hutchings@xxxxxxxxxxxxxxx>
Date: Tue Jun 30 17:53:59 2015 +0100
pinctrl: sh-pfc: Implement pinconf power-source param for voltage
switching
The pfc in the R8A7790 (and probably others in the R-Car gen 2 family)
supports switching SDHI signals between 3.3V and 1.8V nominal voltage,
and the SD driver should do that when switching to and from UHS modes.
Add a flag for pins that have configurable I/O voltage and SoC
operations to get and set the nominal voltage. Implement the pinconf
power-source parameter using these operations.
Signed-off-by: Ben Hutchings <ben.hutchings@xxxxxxxxxxxxxxx>
Acked-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 6c310c46efeae99a1569947b8c60d4aab36bd61c
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Mon Aug 24 13:43:14 2015 +0530
dmaengine: sort the dw Kconfig
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 3c21619077beb40ae3e49eb868798377e69dd940
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Mon Aug 24 13:43:14 2015 +0530
dmaengine: sort the Kconfig
dmaengine Kconfig grew over the years, unfortunately without any
order to it. So order by core, driver and client sections, and
sort these sections alphabetically
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 7e97229b3920568067feefc8b49a98534c1a908c
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Mon Aug 24 13:43:14 2015 +0530
dmaengine: sort the makefile
dmaengine makefile grew over the years, unfortunately without any
order to it. So order by core, dmatest and driver sections and
sort these sections alphabetically
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit e2d6cf7f3696c87546f7fefe9bac79ee09db4bef
Author: David Weinehall <david.weinehall@xxxxxxxxxxxxxxx>
Date: Fri Aug 21 16:52:01 2015 +0300
drm/i915: Allow parsing of variable size child device entries from VBT
VBT version 196 increased the size of common_child_dev_config. The
parser code assumed that the size of this structure would not change.
The modified code now copies the amount needed based on the VBT version,
and emits a debug message if the VBT version is unknown (too new); since
the struct config block won't shrink in newer versions it should be
harmless to copy the maximum known size in such cases, so that's what we
do, but emitting the warning is probably sensible anyway.
In the longer run it might make sense to modify the parser code to use a
version/feature mapping, rather than hardcoding things like this, but
for now the variants are fairly manageable.
This fixes a regression introduced in
commit 75067ddecf21271631bc018d2fb23ddd09b66aae
Author: Antti Koskipaa <antti.koskipaa@xxxxxxxxxxxxxxx>
Date: Fri Jul 10 14:10:55 2015 +0300
drm/i915: Per-DDI I_boost override
since that commit changed the child device config size without updating
the checks and memcpy.
v2: Stricter size checks
v3 by Jani:
- Keep the checks strict, and warnigns verbose, but keep going anyway.
- Take care to copy the max amount of child device config we can.
- Fix the messages.
Signed-off-by: David Weinehall <david.weinehall@xxxxxxxxxxxxxxx>
Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit af7080f555e556094762c03c31cabdbe072b16b6
Author: Thulasimani,Sivakumar <sivakumar.thulasimani@xxxxxxxxx>
Date: Tue Aug 18 11:07:59 2015 +0530
drm/i915: fix link rates reported for SKL
This patch fixes the bug that SKL SKUs before B0 might return
HBR2 as supported even though it is not supposed to be enabled
on such platforms.
v2: optimize if else condition (Jani)
Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Signed-off-by: Sivakumar Thulasimani <sivakumar.thulasimani@xxxxxxxxx>
[Jani: minor whitespace fix.]
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 6cc38acaaa995ad229447d87a3c5a181ba0cc161
Author: Jani Nikula <jani.nikula@xxxxxxxxx>
Date: Tue Aug 18 14:28:55 2015 +0300
drm/i915: fix VBT parsing for SDVO child device mapping
commit 75067ddecf21271631bc018d2fb23ddd09b66aae
Author: Antti Koskipaa <antti.koskipaa@xxxxxxxxxxxxxxx>
Date: Fri Jul 10 14:10:55 2015 +0300
drm/i915: Per-DDI I_boost override
increased size of union child_device_config without taking into account
the size check in parse_sdvo_device_mapping(). Switch the function over
to using the legacy struct only.
Fixes: 75067ddecf21 ("drm/i915: Per-DDI I_boost override")
Cc: Antti Koskipaa <antti.koskipaa@xxxxxxxxxxxxxxx>
Cc: David Weinehall <david.weinehall@xxxxxxxxxxxxxxx>
Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Tested-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
commit 3732ce72b45a2a145803558758821bf198751276
Merge: e829d7e c13dcf9
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Aug 24 16:36:42 2015 +1000
Merge tag 'v4.2-rc8' into drm-next
Linux 4.2-rc8
Backmerge required for Intel so they can fix their -next tree up properly.
commit 54cf7be992fe86571a3f07b96446cd5334b014ab
Author: Shaohui Xie <Shaohui.Xie@xxxxxxxxxxxxx>
Date: Fri Aug 21 15:29:29 2015 +0800
net: phy: add interrupt support for aquantia phy
By implementing config_intr & ack_interrupt, now the phy can support
link connect/disconnect interrupt.
Signed-off-by: Shaohui Xie <Shaohui.Xie@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 50e48bd0673180311874d0c1bd88505eefd75c4e
Author: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Date: Wed Aug 12 13:14:59 2015 +0600
m68k/coldfire: use PFN_DOWN macro
Replace ((x) >> PAGE_SHIFT) with the predefined PFN_DOWN macro.
Signed-off-by: Alexander Kuleshov <kuleshovmail@xxxxxxxxx>
Signed-off-by: Greg Ungerer <gerg@xxxxxxxxxxx>
commit 5bbc08fb0f1457ceef388739b48c72675246639c
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Thu Jul 16 16:56:20 2015 +0530
m68k/coldfire/pit: Migrate to new 'set-state' interface
Migrate m68k driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
We weren't doing anything in ->set_mode(RESUME) and so tick_resume()
isn't implemented.
Cc: Greg Ungerer <gerg@xxxxxxxxxxx>
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: linux-m68k@xxxxxxxxxxxxxxxxxxxx
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Greg Ungerer <gerg@xxxxxxxxxxx>
commit e829d7ef9f17d7b84d4c3d110ecd4b7b2bcba865
Author: Mathieu Larouche <mathieu.larouche@xxxxxxxxxx>
Date: Fri Aug 21 09:24:13 2015 -0400
drm/mgag200: Add support for a new rev of G200e
- Added PLL algorithm for a new rev of G200e
- Removed the bandwidth limitation for the new G200e
Signed-off-by: Mathieu Larouche <mathieu.larouche@xxxxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit 6d857c18aefdec782ba1db578a390fbac5145107
Author: Mathieu Larouche <mathieu.larouche@xxxxxxxxxx>
Date: Fri Aug 21 09:24:05 2015 -0400
drm/mgag200: Add support for a new G200eW3 chipset
- Added support for the new deviceID for G200eW3
- Added PLL algorithm for the G200eW3
- Added some initialization code for G200eW3
Signed-off-by: Mathieu Larouche <mathieu.larouche@xxxxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit d9893d1351e11f565940df6cd6f9bf13aac27a3a
Merge: 751a587 29e7692
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sun Aug 23 20:42:57 2015 -0700
Merge tag 'nfc-next-4.3-1' of
git://git.kernel.org/pub/scm/linux/kernel/git/sameo/nfc-next
Samuel Ortiz says:
====================
NFC 4.3 pull request
This is the NFC pull request for 4.3.
With this one we have:
- A new driver for Samsung's S3FWRN5 NFC chipset. In order to
properly support this driver, a few NCI core routines needed
to be exported. Future drivers like Intel's Fields Peak will
benefit from this.
- SPI support as a physical transport for STM st21nfcb.
- An additional netlink API for sending replies back to userspace
from vendor commands.
- 2 small fixes for TI's trf7970a
- A few st-nci fixes.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 751a587ac9f9a8bf314590fbac32d9e418060c5a
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Fri Aug 21 12:41:14 2015 +0200
route: fix breakage after moving lwtunnel state
__recnt and related fields need to be in its own cacheline for performance
reasons. Commit 61adedf3e3f1 ("route: move lwtunnel state to dst_entry")
broke that on 32bit archs, causing BUILD_BUG_ON in dst_hold to be
triggered.
This patch fixes the breakage by moving the lwtunnel state to the end of
dst_entry on 32bit archs. Unfortunately, this makes it share the cacheline
with __refcnt and may affect performance, thus further patches may be
needed.
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Fixes: 61adedf3e3f1 ("route: move lwtunnel state to dst_entry")
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 31fbde9967330404175a06df15bdb24d671d4475
Merge: c5f98b5 7a4b6c8
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sun Aug 23 16:28:18 2015 -0700
Merge tag 'linux-can-next-for-4.3-20150820' of
git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
Marc Kleine-Budde says:
====================
this is a pull request of a two patches for net-next.
The first patch is by Nik Nyby and fixes a typo in a function name. The
second patch by Lucas Stach demotes register output to debug level.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c5f98b5669b875564f992e1398f5a4407dba8b07
Merge: 7f629be 2be80c2
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sun Aug 23 16:14:46 2015 -0700
Merge branch 'tipc-failover-fixes'
Jon Maloy says:
====================
tipc: fix link failover/synch problems
We fix three problems with the new link failover/synch implementation,
which was introduced earlier in this release cycle. They are all related
to situations where there is a very short interval between the disabling
and enabling of interfaces.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2be80c2d87de789550982e74a11e9f9ff5940845
Author: Jon Paul Maloy <jon.maloy@xxxxxxxxxxxx>
Date: Thu Aug 20 02:12:56 2015 -0400
tipc: fix stale link problem during synchronization
Recent changes to the link synchronization means that we can now just
drop packets arriving on the synchronizing link before the synch point
is reached. This has lead to significant simplifications to the
implementation, but also turns out to have a flip side that we need
to consider.
Under unlucky circumstances, the two endpoints may end up
repeatedly dropping each other's packets, while immediately
asking for retransmission of the same packets, just to drop
them once more. This pattern will eventually be broken when
the synch point is reached on the other link, but before that,
the endpoints may have arrived at the retransmission limit
(stale counter) that indicates that the link should be broken.
We see this happen at rare occasions.
The fix for this is to not ask for retransmissions when a link is in
state LINK_SYNCHING. The fact that the link has reached this state
means that it has already received the first SYNCH packet, and that it
knows the synch point. Hence, it doesn't need any more packets until the
other link has reached the synch point, whereafter it can go ahead and
ask for the missing packets.
However, because of the reduced traffic on the synching link that
follows this change, it may now take longer to discover that the
synch point has been reached. We compensate for this by letting all
packets, on any of the links, trig a check for synchronization
termination. This is possible because the packets themselves don't
contain any information that is needed for discovering this condition.
Reviewed-by: Ying Xue <ying.xue@xxxxxxxxxxxxx>
Signed-off-by: Jon Maloy <jon.maloy@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5ae2f8e6857968d6dddbd3879ed0a32b860e02d1
Author: Jon Paul Maloy <jon.maloy@xxxxxxxxxxxx>
Date: Thu Aug 20 02:12:55 2015 -0400
tipc: interrupt link synchronization when a link goes down
When we introduced the new link failover/synch mechanism
in commit 6e498158a827fd515b514842e9a06bdf0f75ab86
("tipc: move link synch and failover to link aggregation level"),
we missed the case when the non-tunnel link goes down during the link
synchronization period. In this case the tunnel link will remain in
state LINK_SYNCHING, something leading to unpredictable behavior when
the failover procedure is initiated.
In this commit, we ensure that the node and remaining link goes
back to regular communication state (SELF_UP_PEER_UP/LINK_ESTABLISHED)
when one of the parallel links goes down. We also ensure that we don't
re-enter synch mode if subsequent SYNCH packets arrive on the remaining
link.
Reviewed-by: Ying Xue <ying.xue@xxxxxxxxxxxxx>
Signed-off-by: Jon Maloy <jon.maloy@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 17b2063077a7478e5fd3c34b04a059dbb8474638
Author: Jon Paul Maloy <jon.maloy@xxxxxxxxxxxx>
Date: Thu Aug 20 02:12:54 2015 -0400
tipc: eliminate risk of premature link setup during failover
When a link goes down, and there is still a working link towards its
destination node, a failover is initiated, and the failed link is not
allowed to re-establish until that procedure is finished. To ensure
this, the concerned link endpoints are set to state LINK_FAILINGOVER,
and the node endpoints to NODE_FAILINGOVER during the failover period.
However, if the link reset is due to a disabled bearer, the corres-
ponding link endpoint is deleted, and only the node endpoint knows
about the ongoing failover. Now, if the disabled bearer is re-enabled
during the failover period, the discovery mechanism may create a new
link endpoint that is ready to be established, despite that this is not
permitted. This situation may cause both the ongoing failover and any
subsequent link synchronization to fail.
In this commit, we ensure that a newly created link goes directly to
state LINK_FAILINGOVER if the corresponding node state is
NODE_FAILINGOVER. This eliminates the problem described above.
Furthermore, we tighten the criteria for which packets are allowed
to end a failover state in the function tipc_node_check_state().
By checking that the receiving link is up and running, instead of just
checking that it is not in failover mode, we eliminate the risk that
protocol packets from the re-created link may cause the failover to
be prematurely terminated.
Reviewed-by: Ying Xue <ying.xue@xxxxxxxxxxxxx>
Signed-off-by: Jon Maloy <jon.maloy@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7f629be158a93e1b8f882c13c098d043f68cad9c
Merge: 1728369 4149379
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sun Aug 23 16:08:54 2015 -0700
Merge branch 'nps_enet_fixes'
Noam Camus says:
====================
*** nps_enet fixups ***
Change v2
TX done is handled back with NAPI poll.
Change v1
This patch set is a bunch of fixes to make nps_enet work correctly with
all platforms, i.e. real device, emulation system, and simulation system.
The main trigger for this patch set was that in our emulation system
the TX end interrupt is "edge-sensitive" and therefore we cannot use the
cause register since it is not sticky.
Also:
TX is handled during HW interrupt context and not NAPI job.
race with TX done was fixed.
added acknowledge for TX when device is "level sensitive".
enable drop of control frames which is not needed for regular usage.
So most of this patch set is about TX handling, which is now more
complete.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 41493795a4c18170fdf27c0373d386b4039b24df
Author: Noam Camus <noamc@xxxxxxxxxx>
Date: Thu Aug 20 08:00:05 2015 +0300
NET: nps_enet: minor namespace cleanup
We define buf_int_enable in the minimal namespace it is used.
Signed-off-by: Noam Camus <noamc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3d99b74ab3c4b7e529d5820ccadabfb81085f020
Author: Noam Camus <noamc@xxxxxxxxxx>
Date: Thu Aug 20 08:00:04 2015 +0300
NET: nps_enet: TX done acknowledge.
This is needed for when TX done interrupt is in
"level mode".
For example it is true for some simulators of this device.
Signed-off-by: Noam Camus <noamc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit de6715677aaa5e9ed27dab1f6ca6597b74a3f7bc
Author: Noam Camus <noamc@xxxxxxxxxx>
Date: Thu Aug 20 08:00:03 2015 +0300
NET: nps_enet: drop control frames
We set controller to drop control frames and not trying
to pass them on. This is only needed for debug reasons.
Signed-off-by: Noam Camus <noamc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 93fcf83eb953d9ca2d3c51ff7f87095f0dd43511
Author: Noam Camus <noamc@xxxxxxxxxx>
Date: Thu Aug 20 08:00:02 2015 +0300
NET: nps_enet: TX done race condition
We need to set tx_skb pointer before send frame.
If we receive interrupt before we set pointer we will try
to free SKB with wrong pointer.
Now we are sure that SKB pointer will never be NULL during
handling TX done and check is removed.
Signed-off-by: Noam Camus <noamc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0dd20f3ce04e75521bd3f9867ecbc852ab348912
Author: Noam Camus <noamc@xxxxxxxxxx>
Date: Thu Aug 20 08:00:01 2015 +0300
NET: nps_enet: replace use of cause register
When interrupt is received we read directly from control
register for RX/TX instead of reading cause register
since this register fails to indicate TX done when
TX interrupt is "edge mode".
Signed-off-by: Noam Camus <noamc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1728369e8c57f27e0374f4702cbfdb9196bc586b
Merge: 9a873c7 2701366
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Sun Aug 23 15:59:57 2015 -0700
Merge branch 'gro_tunnels'
Tom Herbert says:
====================
gro: Fixes for tunnels and GRO
This patch set addresses some issue related to tunneling and GRO:
- Fix remote checksum offload to properly deal with frag0 in GRO.
- Add support for GRO at VXLAN tunnel (call gro_cells)
Testing: Ran one netperf TCP_STREAM to highlight impact of different
configurations:
GUE
Zero UDP checksum
4628.42 MBps
UDP checksums enabled
6800.51 MBps
UDP checksums and remote checksum offload
7663.82 MBps
UDP checksums and remote checksum offload using no-partial
7287.25 MBps
VXLAN
Zero UDP checksum
4112.02
UDP checksums enabled
6785.80 MBps
UDP checksums and remote checksum offload
7075.56 MBps
v2:
- Drop "gro: Pull headers into skb head for 1st skb in gro list"
from patch set
- In vxlan_remcsum and gue_remcsum return immediately if remcsum
processing was already done
- Add gro callbacks for sit offload
- Use WARN_ON_ONCE if we get a GUE protocol that does not have
GRO offload support
v3:
- Don't restore gro callbacks for sit offload
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 270136613bf7306e2b83457628e2b2f6c6be3989
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 17:07:34 2015 -0700
fou: Do WARN_ON_ONCE in gue_gro_receive for bad proto callbacks
Do WARN_ON_ONCE instead of WARN_ON in gue_gro_receive when the offload
callcaks are bad (either don't exist or gro_receive is not specified).
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 58ce31cca1ffe057f4744c3f671e3e84606d3d4a
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 17:07:33 2015 -0700
vxlan: GRO support at tunnel layer
Add calls to gro_cells infrastructure to do GRO when receiving on a
tunnel.
Testing:
Ran 200 netperf TCP_STREAM instance
- With fix (GRO enabled on VXLAN interface)
Verify GRO is happening.
9084 MBps tput
3.44% CPU utilization
- Without fix (GRO disabled on VXLAN interface)
Verified no GRO is happening.
9084 MBps tput
5.54% CPU utilization
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b7fe10e5ebac2a3f37e95535e616494b65fa020f
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 17:07:32 2015 -0700
gro: Fix remcsum offload to deal with frags in GRO
The remote checksum offload GRO did not consider the case that frag0
might be in use. This patch fixes that by accessing headers using the
skb_gro functions and not saving offsets relative to skb->head.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9a873c71e91cabf4c10fd9bbd8358c22deaf6c9e
Author: Chas Williams <3chas3@xxxxxxxxx>
Date: Wed Aug 19 19:14:20 2015 -0400
net/xen-netfront: only clean up queues if present
If you simply load and unload the module without starting the interfaces,
the queues are never created and you get a bad pointer dereference.
Signed-off-by: Chas Williams <3chas3@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f5117ce4f6a16fa2a02ceff9c337cfffca8b75f2
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 18:54:55 2015 -0400
net: dsa: mv88e6xxx: set 802.1Q mode to Fallback
The current Secure port mode requires the port-based VLANs to also be
valid in the 802.1Q VLAN Table Unit. The current hardware bridging
support only configures the port-based VLANs, thus is broken.
A new patchset is required to adapt the hardware bridging code to fully
support the Secure port mode.
In the meantime, change the 802.1Q mode of every ports to Fallback,
which filtering is more permissive, and doesn't add this restriction to
handle port-based and tagged-based VLANs.
Fixes: 8efdda4a1b60 ("net: dsa: mv88e6xxx: use port 802.1Q mode Secure")
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f007492964c125cb3e88a51ba2e50c3b44d33ae0
Author: Jonathan Corbet <corbet@xxxxxxx>
Date: Sun Aug 23 13:35:23 2015 -0600
kernel-doc: ignore unneeded attribute information
The kernel-doc script gets confused by __attribute__(()) strings in
structures, so just clean the out. Also ignore the CRYPTO_MINALIGN_ATTR
macro used in the crypto subsystem.
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
commit b5ac1fb2717e48177d3f73f9e4c9b556c0a24c6b
Author: Vincent Bernat <vincent@xxxxxxxxx>
Date: Sat Aug 15 14:07:44 2015 +0200
9p: fix return code of read() when count is 0
When reading 0 bytes from an empty file on a 9P filesystem, the return
code of read() was not 0 as expected due to an unitialized err variable.
Tested with this simple program:
#include <assert.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, const char **argv)
{
assert(argc == 2);
char buffer[256];
int fd = open(argv[1], O_RDONLY|O_NOCTTY);
assert(fd >= 0);
assert(read(fd, buffer, 0) == 0);
return 0;
}
Signed-off-by: Vincent Bernat <vincent@xxxxxxxxx>
Signed-off-by: Eric Van Hensbergen <ericvh@xxxxxxxxx>
commit cb9af418598b8f388844e1849014c689a048ce54
Author: Fabian Frederick <fabf@xxxxxxxxx>
Date: Fri Jun 5 19:09:35 2015 +0200
9p: remove unused option Opt_trans
Commit 8a0dc95fd976
("9p: transport API reorganization")
removed Opt_trans in tokens not in enum.
Signed-off-by: Fabian Frederick <fabf@xxxxxxxxx>
Signed-off-by: Eric Van Hensbergen <ericvh@xxxxxxxxx>
commit 25cf68da08389bb107e5cba2cbfb3b6e4a246095
Author: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Date: Fri Aug 21 16:27:49 2015 -0400
drivers/dma: make mv_xor.c driver explicitly non-modular
The Kconfig for this driver is currently:
config MV_XOR
bool "Marvell XOR engine support"
...meaning that it currently is not being built as a module by anyone.
Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.
Since module_init translates to device_initcall in the non-modular
case, the init ordering remains unchanged with this commit.
We leave some tags like MODULE_AUTHOR for documentation purposes.
Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
Cc: dmaengine@xxxxxxxxxxxxxxx
Signed-off-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 0e3b67b348b838d519b5d9ff30261f471d6371f2
Author: Lars-Peter Clausen <lars@xxxxxxxxxx>
Date: Thu Aug 20 17:39:13 2015 +0200
dmaengine: Add support for the Analog Devices AXI-DMAC DMA controller
Add support for the Analog Devices AXI-DMAC DMA controller. This
controller
is a soft peripheral that can be instantiated in a FPGA and is often used
in Analog Devices' reference designs for FPGA platforms.
The peripheral has various configuration options that can be selected at
synthesis time and influence the supported features of the instantiated
peripheral, those options are represented as device-tree properties to
allow the driver to behave accordingly.
The peripheral has a zero latency architecture, which means it is possible
to switch from one to the next descriptor without any delay. This is
archived by having a internal queue which can hold multiple descriptors.
The driver supports this, which means it will submit new descriptors
directly to the hardware until the queue is full and not wait for a
descriptor to complete before the next one is submitted. Interrupts are
used for the descriptor queue flow control.
Currently the driver supports SG, cyclic and interleaved slave DMA.
Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 43bcad2bb485f053661e5cfe306c34178c6651c7
Author: Lars-Peter Clausen <lars@xxxxxxxxxx>
Date: Thu Aug 20 17:39:12 2015 +0200
devicetree: Add bindings documentation for Analog Devices AXI-DMAC
Add the devicetree descriptor for the Analog Devices AXI-DMAC DMA
controller. This is a soft peripheral used in FPGAs and the bindings
describe how it is connected to the system (clock, interrupt, memory map)
as well as the configuration options that were used when the peripheral
was
instantiated.
Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit b2b48ac4c584ae31eb23ad1f86964cc6e52eaa54
Merge: 76891cc ed9c87b
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Sun Aug 23 18:54:39 2015 +0530
Merge branch 'topic/zxdma' into for-linus
commit 76891cc8c4930e21b9bce226524f1b57756bc25e
Merge: 59b0fbd 28eb232
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Sun Aug 23 18:54:31 2015 +0530
Merge branch 'topic/ti-xbar' into for-linus
commit 59b0fbdf15900abc57bd90f1cca1f6ff28b470c0
Merge: 005ce70 35ca0ee
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Sun Aug 23 18:54:22 2015 +0530
Merge branch 'topic/at_xdmac' into for-linus
commit 47edb65178cb7056c2eea0b6c41a7d8c84547192
Author: Andy Lutomirski <luto@xxxxxxxxxx>
Date: Thu Jul 23 12:14:40 2015 -0700
x86/asm/msr: Make wrmsrl() a function
As of cf991de2f614 ("x86/asm/msr: Make wrmsrl_safe() a
function"), wrmsrl_safe is a function, but wrmsrl is still a
macro. The wrmsrl macro performs invalid shifts if the value
argument is 32 bits. This makes it unnecessarily awkward to
write code that puts an unsigned long into an MSR.
To make this work, syscall_init needs tweaking to stop passing
a function pointer to wrmsrl.
Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Brian Gerst <brgerst@xxxxxxxxx>
Cc: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Willy Tarreau <w@xxxxxx>
Link:
http://lkml.kernel.org/r/690f0c629a1085d054e2d1ef3da073cfb3f7db92.1437678821.git.luto@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 5865f3658ba37c54e346b0fdee08a1c7a152681b
Author: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
Date: Sun Aug 23 12:54:16 2015 +0300
iwlwifi: mvm: bump firmware API to 17
The driver is now able to handle -17.ucode.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 4308c9b083fbab1a442e68a03de099841791df27
Author: Jeeja KP <jeeja.kp@xxxxxxxxx>
Date: Sun Aug 23 11:52:51 2015 +0530
ALSA: hdac: Add snd_hdac_get_hdac_stream()
Add a helper to find the stream using stream tag and direction.
This is useful for drivers to query stream based on stream tag
and direction, fox example while downloading FW thru DSP loader
code
Signed-off-by: Jeeja KP <jeeja.kp@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 54d1d2f5f0886f7c31512c83a6ed87bbcd0d2b3a
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Sun Aug 23 11:52:50 2015 +0530
ALSA: hdac: fix the spbmaxfifo API
spbmaxfifo API is actually a query function not a set function so
name it snd_hdac_ext_stream_get_spbmaxfifo()
Reported-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit e57690b1aeb208642d00f9b378830b26c9585caf
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Sun Aug 23 11:52:49 2015 +0530
ALSA: hdac: Fix size allocation for ext device allocation
While creating hdac_ext_device, we used hdev for sizeof insteadof
edev, which resulted in eventual crash of the system Fix the size
here
Fixes: a512f5611646 ('ALSA: hdac: add hdac extended device')
Reported-by: Subhransu S. Prusty <subhransu.s.prusty@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit da03f0296c0c122cb91ed3c87a7efa4ea5127f22
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date: Tue Aug 18 15:15:36 2015 +0200
iwlwifi: mvm: support new TX power command
Add support for the new (bigger) TX power command. This doesn't
actually take advantage of the new capabilities (to set per-chain
TX power limits) but makes the code compatible with newer firmware
images expecting the larger command.
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit a7b3bc91c5b0a6a7eecfd33ac71e266c6fe897f8
Author: Ayala Beker <ayala.beker@xxxxxxxxx>
Date: Thu Aug 20 04:00:38 2015 +0300
iwlwifi: mvm: split debug message to avoid exceeding 110 characters
split long debug messages that may result warning in tracing.
Fixes: 1a84e7716086 ("iwlwifi: mvm: add debug info to schedule scan
complete message.")
Signed-off-by: Ayala Beker <ayala.beker@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 32c93a7057d600a06f96ff8997da1fadca65795a
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date: Wed Aug 19 16:51:33 2015 +0200
iwlwifi: correctly size command string arrays
The command string array is assumed to be indexable by a full u8, so it
must have 256 entries (0-255), not just 255. A recent firmware change
(apparently) started using the command 0xff for a notification to the
host, causing the driver to crash in debug message/tracing code.
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit ba537f98b5296cdb08ea98c23963201b3db14ed9
Author: Sara Sharon <sara.sharon@xxxxxxxxx>
Date: Wed Aug 19 16:29:31 2015 +0300
iwlwifi: mvm: update wakeup reason enum
when waking from d0i3 there is a wakeup reason.
Enum in driver is not up to date with FW api - fix it.
Signed-off-by: Sara Sharon <sara.sharon@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 8e8114dee2a9a767ca8abc1c2d6a94a3ca5d4c7f
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Fri Aug 21 11:48:21 2015 +0300
iwlwifi: mvm: catch underflow error earlier
My static checker complains that we don't check for underflows in
iwl_dbgfs_fw_dbg_conf_write(). This is harmless because we have a
sanity check in iwl_mvm_start_fw_dbg_conf(), but we may as well make
this unsigned and silence the underflow warning.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit d071c833a0d30e7aae0ea565d92ef83c79106d6f
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 19:39:38 2015 -0300
[media] dvbdev: document most of the functions/data structs
Document the most relevant functions and data structs for
developers that are working with the DVB subsystem.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit e3dbc572fe11a5231568e106fa3dcedd1d1bec0f
Merge: ce8c669 c63517c
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Sat Aug 22 14:57:59 2015 -0700
Merge tag 'signed-kvm-ppc-next' of git://github.com/agraf/linux-2.6 into
kvm-queue
Patch queue for ppc - 2015-08-22
Highlights for KVM PPC this time around:
- Book3S: A few bug fixes
- Book3S: Allow micro-threading on POWER8
commit ce8c669e446371c1eb21b0566f6dfcb70ef3a435
Merge: bc0195a 054167b
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Sat Aug 22 14:53:22 2015 -0700
Merge tag 'kvm-arm-for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-queue
KVM/ARM changes for 4.3
- Full debug support for arm64
- Active state switching for timer interrupts
- Lazy FP/SIMD save/restore for arm64
- Generic ARMv8 target
commit 35848bf0aa6ba677458adfbde49ef73d10c9f381
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 14:20:25 2015 -0300
[media] dvb_frontend.h: document the struct dvb_frontend
That struct is used on every DVB Front End driver, as it
contains what's needed to register/use a frontend at the
Kernel.
Document it.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit a3cccb2411a634b751771596bf21afc2d2bd5990
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 14:10:31 2015 -0300
[media] dvb-frontend.h: document struct dtv_frontend_properties
Most of the parameters here are already well defined at
the userspace documentation. Yet, it is good to add some
documentation, for the developers to be sure that they
are the same as the ones at userspace API.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 0cfcc493a50ef6d8b2ceda3390be0306f319ed18
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 13:28:02 2015 -0300
[media] dvb-frontend.h: document struct dvb_frontend_ops
This is one of the most important functions of the DVB
frontend, containing the logic needed to set the parameters
at the demux and to send commands via SEC.
Document it.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 27460adc07a3f84e671dec71ac553818d5988003
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 12:48:09 2015 -0300
[media] dvb: Use DVBFE_ALGO_HW where applicable
The dvb_frontend.c core defines a FE_ALGO_HW symbol that it is
never used. Also, both cx24123 returns 1 to get_algo() callback
instead of using DVBFE_ALGO_HW.
Probably, those are some left overs from some code cleanup.
Let's stop returning magic numbers and use the proper macro
value.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 0bf6cd7bc5d6751386d5f092e8d3fd2537aac954
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 11:35:50 2015 -0300
[media] dvb_frontend.h: document struct analog_demod_ops
Add documentation for struct analog_demod_info and
struct analog_demod_ops.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 465291a0eba9662a2ec597b96881dd92b034c30c
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 11:13:37 2015 -0300
[media] dvb_frontend.h: Document struct dvb_tuner_ops
The struct dvb_tuner_ops contains lots of callbacks used
by tuners. Document them.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 1a77763428c7647e74347c1c5760440fe0cd0aea
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 09:58:26 2015 -0300
[media] Docbook: Document struct analog_parameters
That struct inside dvb-frontend.h stores some parameters
from V4L2 API (videodev2.h), in order to be used by the
hybrid analog/digital TV tuners.
Document it.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 0c68b1ce850592fb5812e425cba6ab92951955a4
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 09:48:57 2015 -0300
[media] dvb_frontend.h: get rid of dvbfe_modcod
This enum is not used anymore, as drivers use the
modulation definitions from the public API. It is probably
a left over from some DVB core cleanup.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 8bcbc2f32e3388c6b899fd8c662be471ef609b2a
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 09:48:05 2015 -0300
[media] add documentation for struct dvb_tuner_info
Despite being used everywhere at DVB frontends, the
struct dvb_tuner_info were never documented.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit d6e9b704d9553ee9d54baddcc6d9b63a4574f272
Author: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Date: Sat Aug 22 09:04:50 2015 +0530
ata: pata_arasam_cf: Use devm_clk_get
This patch introduces the use of managed resource function
devm_clk_get instead of clk_get and removes corresponding call
to clk_put in the remove function.
To be compatible with the change various gotos are replaced with
direct returns, and unneeded label is dropped.
Signed-off-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
commit 5839a5506de30c23d4cfaf49755cd294f5c48368
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Aug 21 22:05:58 2015 +0300
perf tools: Fix tarball build broken by pt/bts
Fix some include paths and add missing inat_types.h.
Reported-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link: http://lkml.kernel.org/r/55D77696.60102@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 69786cdb379bbc6eab14cf2393c1abd879316e85
Author: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Date: Thu Aug 13 08:37:24 2015 +0300
x86/kasan, mm: Introduce generic kasan_populate_zero_shadow()
Introduce generic kasan_populate_zero_shadow(shadow_start,
shadow_end). This function maps kasan_zero_page to the
[shadow_start, shadow_end] addresses.
This replaces x86_64 specific populate_zero_shadow() and will
be used for ARM64 in follow on patches.
The main changes from original version are:
* Use p?d_populate*() instead of set_p?d()
* Use memblock allocator directly instead of vmemmap_alloc_block()
* __pa() instead of __pa_nodebug(). __pa() causes troubles
iff we use it before kasan_early_init(). kasan_populate_zero_shadow()
will be used later, so we ok with __pa() here.
Signed-off-by: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: Alexander Potapenko <glider@xxxxxxxxxx>
Cc: Alexey Klimov <klimov.linux@xxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: David Keitel <dkeitel@xxxxxxxxxxxxxx>
Cc: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Yury <yury.norov@xxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-mm@xxxxxxxxx
Link:
http://lkml.kernel.org/r/1439444244-26057-3-git-send-email-ryabinin.a.a@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 920e277e17f12870188f4564887a95ae9ac03e31
Author: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Date: Thu Aug 13 08:37:23 2015 +0300
x86/kasan: Define KASAN_SHADOW_OFFSET per architecture
Current definition of KASAN_SHADOW_OFFSET in
include/linux/kasan.h will not work for upcomming arm64, so move
it to the arch header.
Signed-off-by: Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx>
Cc: Alexander Potapenko <glider@xxxxxxxxxx>
Cc: Alexey Klimov <klimov.linux@xxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
Cc: David Keitel <dkeitel@xxxxxxxxxxxxxx>
Cc: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Rik van Riel <riel@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Cc: Yury <yury.norov@xxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-mm@xxxxxxxxx
Link:
http://lkml.kernel.org/r/1439444244-26057-2-git-send-email-ryabinin.a.a@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit b466bdb614823aaaa7188e85516177d2850f4782
Author: Huang Rui <ray.huang@xxxxxxx>
Date: Mon Aug 10 12:19:54 2015 +0200
x86/asm/delay: Introduce an MWAITX-based delay with a configurable timer
MWAITX can enable a timer and a corresponding timer value
specified in SW P0 clocks. The SW P0 frequency is the same as
TSC. The timer provides an upper bound on how long the
instruction waits before exiting.
This way, a delay function in the kernel can leverage that
MWAITX timer of MWAITX.
When a CPU core executes MWAITX, it will be quiesced in a
waiting phase, diminishing its power consumption. This way, we
can save power in comparison to our default TSC-based delays.
A simple test shows that:
$ cat /sys/bus/pci/devices/0000\:00\:18.4/hwmon/hwmon0/power1_acc
$ sleep 10000s
$ cat /sys/bus/pci/devices/0000\:00\:18.4/hwmon/hwmon0/power1_acc
Results:
* TSC-based default delay: 485115 uWatts average power
* MWAITX-based delay: 252738 uWatts average power
Thus, that's about 240 milliWatts less power consumption. The
test method relies on the support of AMD CPU accumulated power
algorithm in fam15h_power for which patches are forthcoming.
Suggested-by: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Suggested-by: Borislav Petkov <bp@xxxxxxx>
Suggested-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Signed-off-by: Huang Rui <ray.huang@xxxxxxx>
[ Fix delay truncation. ]
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Aaron Lu <aaron.lu@xxxxxxxxx>
Cc: Andreas Herrmann <herrmann.der.user@xxxxxxxxx>
Cc: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@xxxxxxx>
Cc: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Cc: Frédéric Weisbecker <fweisbec@xxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Hector Marco-Gisbert <hecmargi@xxxxxx>
Cc: Jacob Shin <jacob.w.shin@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: John Stultz <john.stultz@xxxxxxxxxx>
Cc: Len Brown <lenb@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Cc: Rafael J. Wysocki <rjw@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Li <tony.li@xxxxxxx>
Link:
http://lkml.kernel.org/r/1438744732-1459-3-git-send-email-ray.huang@xxxxxxx
Link:
http://lkml.kernel.org/r/1439201994-28067-4-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit f96756746c7909de37db3d03ac5fd5cfb2757f38
Author: Huang Rui <ray.huang@xxxxxxx>
Date: Mon Aug 10 12:19:53 2015 +0200
x86/asm: Add MONITORX/MWAITX instruction support
AMD Carrizo processors (Family 15h, Models 60h-6fh) added a new
feature called MWAITX (MWAIT with extensions) as an extension to
MONITOR/MWAIT.
This new instruction controls a configurable timer which causes
the core to exit wait state on timer expiration, in addition to
"normal" MWAIT condition of reading from a monitored VA.
Compared to MONITOR/MWAIT, there are minor differences in opcode
and input parameters:
MWAITX ECX[1]: enable timer if set
MWAITX EBX[31:0]: max wait time expressed in SW P0 clocks ==
TSC. The software P0 frequency is the same as the TSC frequency.
MWAIT MWAITX
opcode 0f 01 c9 | 0f 01 fb
ECX[0] value of RFLAGS.IF seen by instruction
ECX[1] unused/#GP if set | enable timer if set
ECX[31:2] unused/#GP if set
EAX unused (reserve for hint)
EBX[31:0] unused | max wait time (SW P0 ==
TSC)
MONITOR MONITORX
opcode 0f 01 c8 | 0f 01 fa
EAX (logical) address to monitor
ECX #GP if not zero
Max timeout = EBX/(TSC frequency)
Signed-off-by: Huang Rui <ray.huang@xxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Aaron Lu <aaron.lu@xxxxxxxxx>
Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Cc: Andreas Herrmann <herrmann.der.user@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Dirk Brandewie <dirk.j.brandewie@xxxxxxxxx>
Cc: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Cc: Frédéric Weisbecker <fweisbec@xxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: John Stultz <john.stultz@xxxxxxxxxx>
Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
Cc: Len Brown <lenb@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <bitbucket@xxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Rafael J. Wysocki <rjw@xxxxxxxxxxxxx>
Cc: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Li <tony.li@xxxxxxx>
Link:
http://lkml.kernel.org/r/1439201994-28067-3-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit b9de1726b52d0c1dc07d90fd6a63fca49ea8b5b9
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 09:47:04 2015 -0300
[media] dvb_frontend: document dvb_frontend_tune_settings
Add Documentation for dvb_frontend_tune_settings struct.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 04ffb9c126d6d887b08b68bbe0c0842ec9def78d
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 09:22:25 2015 -0300
[media] DocBook: Better organize media devices
Instead of putting all media devices on a flat structure,
split them on 4 types, just like we do with the userspace API:
Video2Linux devices
Digital TV (DVB) devices
Remote Controller devices
Media Controller devices
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 98d00bd7a2477ffce8010458938425095345f470
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 09:04:46 2015 -0300
[media] v4l2-mediabus: Add to DocBook
Fix the format of the comments and add to DocBook.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit b6836a6fbc4b7e35679bf7bb8b54bad294ae0b10
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 09:01:58 2015 -0300
[media] videobuf2-memops.h: add to device-drivers DocBook
The comment metadata was wrong:
Warning(.//include/media/videobuf2-memops.h:25): cannot understand
function prototype: 'struct vb2_vmarea_handler '
Warning(.//include/media/videobuf2-memops.h): no structured comments found
Fix and add to DocBook.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit d78757e780f1845dd5c9615169f7401c7d0d1a66
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 08:57:02 2015 -0300
[media] videobuf2-core: Add it to device-drivers DocBook
Most of the stuff at videobuf2-core are ok for adding it to
DocBook.
Two notes here:
1) As videobuf2-core will be soon be changed, better to
not spend too much efforts right now, as things will
change soon;
2) struct vb2_queue has a number of private elements that are
documented. As Kernel nano documentation format handles
"private:" arguments, we need to put them on a separate
comment block or to remove. Keeping the comments is
obviously better ;)
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 506bb54bdb0898e046e62751d761a5592966a637
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 08:36:13 2015 -0300
[media] v4l-dv-timings.h: Add to device-drivers DocBook
There are already markups for documentation at v4l-dv-timings.h,
however, they're not properly formatted.
Convert them to the right format and add this file to
the device-drivers DocBook.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit b6fce850d9fa46eefdaa7ef28ac1f3fce7c803d2
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 08:28:39 2015 -0300
[media] v4l2-event.h: fix comments and add to DocBook
The comments there are good enough for DocBook, however they're
using a wrong format. Fix and add to device-drivers.xml.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 7dc879190f55f4ecb12c754fb0f11a596e478fd1
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 08:22:03 2015 -0300
[media] v4l2-ctrls.h: Document a few missing arguments
Warning(.//include/media/v4l2-ctrls.h:217): No description found for
parameter 'p_new'
Warning(.//include/media/v4l2-ctrls.h:217): No description found for
parameter 'p_cur'
Warning(.//include/media/v4l2-ctrls.h:217): Excess
struct/union/enum/typedef member 'val64' description in 'v4l2_ctrl'
Warning(.//include/media/v4l2-ctrls.h:314): No description found for
parameter 'qmenu_int'
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 276ce3a860d3c119e472abcfa75351c703f8722f
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 08:21:10 2015 -0300
[media] v4l2-ctls: don't document v4l2_ctrl_fill()
This is an obsolete function that has several missing
arguments:
Warning(.//include/media/v4l2-ctrls.h:340): No description found for
parameter 'id'
Warning(.//include/media/v4l2-ctrls.h:340): No description found for
parameter 'name'
Warning(.//include/media/v4l2-ctrls.h:340): No description found for
parameter 'type'
Warning(.//include/media/v4l2-ctrls.h:340): No description found for
parameter 'min'
Warning(.//include/media/v4l2-ctrls.h:340): No description found for
parameter 'max'
Warning(.//include/media/v4l2-ctrls.h:340): No description found for
parameter 'step'
Warning(.//include/media/v4l2-ctrls.h:340): No description found for
parameter 'def'
Warning(.//include/media/v4l2-ctrls.h:340): No description found for
parameter 'flags'
However, this is an obsolete function that should be
removed soon. And are not meant to be used anymore. So,
instead of documenting those stuff, let's just make
DocBook to not handle it, by replacing "/**" by "/*".
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 8c2721d57a4bac055ae7bb1874a13a928277d5ff
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 08:03:49 2015 -0300
[media] v4l2-ctrls.h: add to device-drivers DocBook
The comments there are using a wrong format. Due to that,
DocBook were unable to parse it.
Fix the tags format, and add it to device-drivers.xml.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 2a86e373e0cf926f5cb41725f1b0ce3874e7b1cf
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 07:38:51 2015 -0300
[media] DocBook: add dvb_ringbuffer.h to documentation
There are already some comments at dvb_ringbuffer.h that are ready
for DocBook, although not properly formatted.
Convert them, fix some issues and add this file to
the device-drivers DocBook.
While here, put multi-line comments on the right format.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit e08bb6f79fa0b9bf94ea44a306d1528172d788af
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 07:37:28 2015 -0300
[media] DocBook: add dvb_math.h to documentation
There are already some comments at dvb_math.h that are ready
for DocBook, although not properly formatted.
Convert them, fix some issues and add this file to
the device-drivers DocBook.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 4f1c1868e8d4e493d66b8e11eebbc95abdbaf444
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 07:19:20 2015 -0300
[media] DocBook: add dvb_frontend.h to documentation
There are already some comments at dvb_frontend.h that are ready
for DocBook, although not properly formatted.
Convert them, and add this file to the device-drivers DocBook.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit f47f966fbe0aaff4ebbdb83d95acdfa5d3c20477
Author: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Date: Sun Jul 19 22:53:52 2015 +0530
cxl: Remove use of macro DEFINE_PCI_DEVICE_TABLE
Macro DEFINE_PCI_DEVICE_TABLE is deprecated. So, here use
struct pci_device_id instead of DEFINE_PCI_DEVICE_TABLE with
the goal of getting rid of this macro completely.
The Coccinelle semantic patch that performs this transformation
is as follows:
@@
identifier a;
declarer name DEFINE_PCI_DEVICE_TABLE;
initializer i;
@@
- DEFINE_PCI_DEVICE_TABLE(a)
+ const struct pci_device_id a[]
= i;
Signed-off-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Acked-by: Michael Neuling <mikey@xxxxxxxxxxx>
Acked-by: Ian Munsie <imunsie@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 5d53be7d8c7ccf8eec1ce66c6b3573c01d16b755
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Sat Aug 22 09:33:55 2015 +1000
powerpc/powernv: Fix mis-merge of OPAL support for LEDS driver
When I merged the OPAL support for the powernv LEDS driver I missed a
hunk.
This is slightly modified from the original patch, as the original added
code to opal-api.h which is not in the skiboot version, which is
discouraged.
Instead those values are moved into the driver, which is the only place
they are used.
Fixes: 8a8d91817aec ("powerpc/powernv: Add OPAL interfaces for accessing
and modifying system LED states")
Reviewed-by: Vasant Hegde <hegdevasant@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit fbefb1a87c7e6e24df6ca5b42b42985e2680c2ea
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 07:09:29 2015 -0300
[media] DocBook: add dvb_ca_en50221.h to documentation
There are already some tags at dvb_ca_en50221.h, but using a
different format. Convert them, fix a few entries and add
to the device-drivers DocBook.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 1d8955b2c3fa476a1222b020349937c93a8e4762
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 06:59:26 2015 -0300
[media] v4l2-subdev: add remaining argument descriptions
Warning(.//include/media/v4l2-subdev.h:203): No description found for
parameter 'ioctl'
Warning(.//include/media/v4l2-subdev.h:203): No description found for
parameter 'compat_ioctl32'
Warning(.//include/media/v4l2-subdev.h:203): No description found for
parameter 'subscribe_event'
Warning(.//include/media/v4l2-subdev.h:203): No description found for
parameter 'unsubscribe_event'
Warning(.//include/media/v4l2-subdev.h:273): No description found for
parameter 's_stream'
Warning(.//include/media/v4l2-subdev.h:407): No description found for
parameter 's_stream'
Warning(.//include/media/v4l2-subdev.h:623): No description found for
parameter 'link_validate'
Warning(.//include/media/v4l2-subdev.h:623): No description found for
parameter 'set_frame_desc'
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit e44cc20a1d0952835e2fc01706b609ee8a3d9d92
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 06:34:06 2015 -0300
[media] v4l2_subdev: describe ioctl parms at the remaining structs
Fixes the following warnings:
Warning(.//include/media/v4l2-subdev.h:445): No description found for
parameter 'g_sliced_vbi_cap'
Warning(.//include/media/v4l2-subdev.h:589): No description found for
parameter 'enum_mbus_code'
Warning(.//include/media/v4l2-subdev.h:589): No description found for
parameter 'enum_frame_size'
Warning(.//include/media/v4l2-subdev.h:589): No description found for
parameter 'enum_frame_interval'
Warning(.//include/media/v4l2-subdev.h:589): No description found for
parameter 'get_fmt'
Warning(.//include/media/v4l2-subdev.h:589): No description found for
parameter 'set_fmt'
Warning(.//include/media/v4l2-subdev.h:589): No description found for
parameter 'get_selection'
Warning(.//include/media/v4l2-subdev.h:589): No description found for
parameter 'set_selection'
Warning(.//include/media/v4l2-subdev.h:589): No description found for
parameter 'get_edid'
Warning(.//include/media/v4l2-subdev.h:589): No description found for
parameter 'set_edid'
Warning(.//include/media/v4l2-subdev.h:589): No description found for
parameter 'dv_timings_cap'
Warning(.//include/media/v4l2-subdev.h:589): No description found for
parameter 'enum_dv_timings'
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 914728ab609f7160a1b6d2a3be1edd8f6b2cf88e
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 06:18:13 2015 -0300
[media] v4l2_subdev: describe ioctl parms at v4l2_subdev_video_ops
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 'g_std'
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 's_std'
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 'querystd'
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 'cropcap'
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 'g_crop'
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 's_crop'
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 'g_parm'
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 's_parm'
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 'g_frame_interval'
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 's_frame_interval'
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 's_dv_timings'
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 'g_dv_timings'
Warning(.//include/media/v4l2-subdev.h:381): No description found for
parameter 'query_dv_timings'
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit b84aeb03a886beef39f80e30b76d30a833dd8161
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 06:12:35 2015 -0300
[media] v4l2-subdev: reorder the v4l2_subdev_video_ops comments
The comments for struct v4l2_subdev_video_ops are out of the
order as the parameter would appear at struct. This is not
a problem for DocBook, but humans find harder to mentally
reorder ;)
So, put them at the right order. That makes easier to check
what's missing, and to put the comments in the right place.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 91963aae9a65286eea30ca810027ddc09b26e779
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 06:07:29 2015 -0300
[media] v4l2-subdev: Add description for radio ioctl handlers
Warning(.//include/media/v4l2-subdev.h:224): No description found for
parameter 's_radio'
Warning(.//include/media/v4l2-subdev.h:224): No description found for
parameter 's_frequency'
Warning(.//include/media/v4l2-subdev.h:224): No description found for
parameter 'enum_freq_bands'
Warning(.//include/media/v4l2-subdev.h:224): No description found for
parameter 'g_tuner'
Warning(.//include/media/v4l2-subdev.h:224): No description found for
parameter 'g_modulator'
Warning(.//include/media/v4l2-subdev.h:224): No description found for
parameter 's_modulator'
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 783001adf99b432a31acb2a4c198da8846d8dcc3
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 06:00:22 2015 -0300
[media] v4l2-subdev: Add description for core ioctl handlers
Warning(.//include/media/v4l2-subdev.h:183): No description found for
parameter 'queryctrl'
Warning(.//include/media/v4l2-subdev.h:183): No description found for
parameter 'g_ctrl'
Warning(.//include/media/v4l2-subdev.h:183): No description found for
parameter 's_ctrl'
Warning(.//include/media/v4l2-subdev.h:183): No description found for
parameter 'g_ext_ctrls'
Warning(.//include/media/v4l2-subdev.h:183): No description found for
parameter 's_ext_ctrls'
Warning(.//include/media/v4l2-subdev.h:183): No description found for
parameter 'try_ext_ctrls'
Warning(.//include/media/v4l2-subdev.h:183): No description found for
parameter 'querymenu'
Warning(.//include/media/v4l2-subdev.h:183): No description found for
parameter 'g_register'
Warning(.//include/media/v4l2-subdev.h:183): No description found for
parameter 's_register'
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit a3b3a9db5d26bef1e62054c95c3d7701de5110d5
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Sat Aug 22 12:24:13 2015 +0300
ALSA: hdsp: silence a sprinft() overflow warning
card->shortname is a 32 char string so the sprintf() can theoretically
overflow. snd_rawmidi_new() can accept strings up to 64 bytes long.
I have made the temporay buf[] array 40 bytes long and changed the
sprintf() to snprintf().
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 488ca7d72d974e3c00ae73ed9f947590680bdf00
Author: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
Date: Fri Aug 21 14:56:46 2015 -0700
x86/cpufeatures: Enable cpuid for Intel SHA extensions
Add Intel CPUID for Intel Secure Hash Algorithm Extensions. This feature
provides new instructions for accelerated computation of SHA-1 and
SHA-256.
This allows the feature to be shown in the /proc/cpuinfo for cpus that
support it.
Refer to SHA extension programming guide in chapter 8.2 of the Intel
Architecture Instruction Set Extensions Programming reference
for definition of this feature's cpuid: CPUID.(EAX=07H, ECX=0):EBX.SHA
[bit 29] = 1
https://software.intel.com/sites/default/files/managed/07/b7/319433-023.pdf
Originally-by: Chandramouli Narayanan <mouli_7982@xxxxxxxxx>
Signed-off-by: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/1440194206.3940.6.camel@schen9-mobl2
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit c63517c2e3810071359af926f621c1f784388c3f
Author: Sam bobroff <sam.bobroff@xxxxxxxxxxx>
Date: Wed May 27 09:56:57 2015 +1000
KVM: PPC: Book3S: correct width in XER handling
In 64 bit kernels, the Fixed Point Exception Register (XER) is a 64
bit field (e.g. in kvm_regs and kvm_vcpu_arch) and in most places it is
accessed as such.
This patch corrects places where it is accessed as a 32 bit field by a
64 bit kernel. In some cases this is via a 32 bit load or store
instruction which, depending on endianness, will cause either the
lower or upper 32 bits to be missed. In another case it is cast as a
u32, causing the upper 32 bits to be cleared.
This patch corrects those places by extending the access methods to
64 bits.
Signed-off-by: Sam Bobroff <sam.bobroff@xxxxxxxxxxx>
Reviewed-by: Laurent Vivier <lvivier@xxxxxxxxxx>
Reviewed-by: Thomas Huth <thuth@xxxxxxxxxx>
Tested-by: Thomas Huth <thuth@xxxxxxxxxx>
Signed-off-by: Alexander Graf <agraf@xxxxxxx>
commit 563a1e93afac4d2c135072461fbab418b9dff43f
Author: Paul Mackerras <paulus@xxxxxxxxx>
Date: Thu Jul 16 17:11:14 2015 +1000
KVM: PPC: Book3S HV: Fix preempted vcore stolen time calculation
Whenever a vcore state is VCORE_PREEMPT we need to be counting stolen
time for it. This currently isn't the case when we have a vcore that
no longer has any runnable threads in it but still has a runner task,
so we do an explicit call to kvmppc_core_start_stolen() in that case.
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
Signed-off-by: Alexander Graf <agraf@xxxxxxx>
commit 402813fe39db66e8f3be2a1b5b62dd664e33f6b8
Author: Paul Mackerras <paulus@xxxxxxxxx>
Date: Thu Jul 16 17:11:13 2015 +1000
KVM: PPC: Book3S HV: Fix preempted vcore list locking
When a vcore gets preempted, we put it on the preempted vcore list for
the current CPU. The runner task then calls schedule() and comes back
some time later and takes itself off the list. We need to be careful
to lock the list that it was put onto, which may not be the list for the
current CPU since the runner task may have moved to another CPU.
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
Signed-off-by: Alexander Graf <agraf@xxxxxxx>
commit cdeee51842b55acb3e699a4083fa97e82384e456
Author: Paul Mackerras <paulus@xxxxxxxxx>
Date: Wed Jun 24 21:18:07 2015 +1000
KVM: PPC: Book3S HV: Implement H_CLEAR_REF and H_CLEAR_MOD
This adds implementations for the H_CLEAR_REF (test and clear reference
bit) and H_CLEAR_MOD (test and clear changed bit) hypercalls.
When clearing the reference or change bit in the guest view of the HPTE,
we also have to clear it in the real HPTE so that we can detect future
references or changes. When we do so, we transfer the R or C bit value
to the rmap entry for the underlying host page so that kvm_age_hva_hv(),
kvm_test_age_hva_hv() and kvmppc_hv_get_dirty_log() know that the page
has been referenced and/or changed.
These hypercalls are not used by Linux guests. These implementations
have been tested using a FreeBSD guest.
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
Signed-off-by: Alexander Graf <agraf@xxxxxxx>
commit 08fe1e7bd216339501c4eb0d0df0f413d715327a
Author: Paul Mackerras <paulus@xxxxxxxxx>
Date: Wed Jun 24 21:18:06 2015 +1000
KVM: PPC: Book3S HV: Fix bug in dirty page tracking
This fixes a bug in the tracking of pages that get modified by the
guest. If the guest creates a large-page HPTE, writes to memory
somewhere within the large page, and then removes the HPTE, we only
record the modified state for the first normal page within the large
page, when in fact the guest might have modified some other normal
page within the large page.
To fix this we use some unused bits in the rmap entry to record the
order (log base 2) of the size of the page that was modified, when
removing an HPTE. Then in kvm_test_clear_dirty_npages() we use that
order to return the correct number of modified pages.
The same thing could in principle happen when removing a HPTE at the
host's request, i.e. when paging out a page, except that we never
page out large pages, and the guest can only create large-page HPTEs
if the guest RAM is backed by large pages. However, we also fix
this case for the sake of future-proofing.
The reference bit is also subject to the same loss of information. We
don't make the same fix here for the reference bit because there isn't
an interface for userspace to find out which pages the guest has
referenced, whereas there is one for userspace to find out which pages
the guest has modified. Because of this loss of information, the
kvm_age_hva_hv() and kvm_test_age_hva_hv() functions might incorrectly
say that a page has not been referenced when it has, but that doesn't
matter greatly because we never page or swap out large pages.
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
Signed-off-by: Alexander Graf <agraf@xxxxxxx>
commit 1e5bf454f58731e360e504253e85bae7aaa2d298
Author: Paul Mackerras <paulus@xxxxxxxxx>
Date: Wed Jun 24 21:18:05 2015 +1000
KVM: PPC: Book3S HV: Fix race in reading change bit when removing HPTE
The reference (R) and change (C) bits in a HPT entry can be set by
hardware at any time up until the HPTE is invalidated and the TLB
invalidation sequence has completed. This means that when removing
a HPTE, we need to read the HPTE after the invalidation sequence has
completed in order to obtain reliable values of R and C. The code
in kvmppc_do_h_remove() used to do this. However, commit 6f22bd3265fb
("KVM: PPC: Book3S HV: Make HTAB code LE host aware") removed the
read after invalidation as a side effect of other changes. This
restores the read of the HPTE after invalidation.
The user-visible effect of this bug would be that when migrating a
guest, there is a small probability that a page modified by the guest
and then unmapped by the guest might not get re-transmitted and thus
the destination might end up with a stale copy of the page.
Fixes: 6f22bd3265fb
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
Signed-off-by: Alexander Graf <agraf@xxxxxxx>
commit b4deba5c41e9f6d3239606c9e060853d9decfee1
Author: Paul Mackerras <paulus@xxxxxxxxx>
Date: Thu Jul 2 20:38:16 2015 +1000
KVM: PPC: Book3S HV: Implement dynamic micro-threading on POWER8
This builds on the ability to run more than one vcore on a physical
core by using the micro-threading (split-core) modes of the POWER8
chip. Previously, only vcores from the same VM could be run together,
and (on POWER8) only if they had just one thread per core. With the
ability to split the core on guest entry and unsplit it on guest exit,
we can run up to 8 vcpu threads from up to 4 different VMs, and we can
run multiple vcores with 2 or 4 vcpus per vcore.
Dynamic micro-threading is only available if the static configuration
of the cores is whole-core mode (unsplit), and only on POWER8.
To manage this, we introduce a new kvm_split_mode struct which is
shared across all of the subcores in the core, with a pointer in the
paca on each thread. In addition we extend the core_info struct to
have information on each subcore. When deciding whether to add a
vcore to the set already on the core, we now have two possibilities:
(a) piggyback the vcore onto an existing subcore, or (b) start a new
subcore.
Currently, when any vcpu needs to exit the guest and switch to host
virtual mode, we interrupt all the threads in all subcores and switch
the core back to whole-core mode. It may be possible in future to
allow some of the subcores to keep executing in the guest while
subcore 0 switches to the host, but that is not implemented in this
patch.
This adds a module parameter called dynamic_mt_modes which controls
which micro-threading (split-core) modes the code will consider, as a
bitmap. In other words, if it is 0, no micro-threading mode is
considered; if it is 2, only 2-way micro-threading is considered; if
it is 4, only 4-way, and if it is 6, both 2-way and 4-way
micro-threading mode will be considered. The default is 6.
With this, we now have secondary threads which are the primary thread
for their subcore and therefore need to do the MMU switch. These
threads will need to be started even if they have no vcpu to run, so
we use the vcore pointer in the PACA rather than the vcpu pointer to
trigger them.
It is now possible for thread 0 to find that an exit has been
requested before it gets to switch the subcore state to the guest. In
that case we haven't added the guest's timebase offset to the
timebase, so we need to be careful not to subtract the offset in the
guest exit path. In fact we just skip the whole path that switches
back to host context, since we haven't switched to the guest context.
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
Signed-off-by: Alexander Graf <agraf@xxxxxxx>
commit ec257165082616841a354dd915801ed43e3553be
Author: Paul Mackerras <paulus@xxxxxxxxx>
Date: Wed Jun 24 21:18:03 2015 +1000
KVM: PPC: Book3S HV: Make use of unused threads when running guests
When running a virtual core of a guest that is configured with fewer
threads per core than the physical cores have, the extra physical
threads are currently unused. This makes it possible to use them to
run one or more other virtual cores from the same guest when certain
conditions are met. This applies on POWER7, and on POWER8 to guests
with one thread per virtual core. (It doesn't apply to POWER8 guests
with multiple threads per vcore because they require a 1-1 virtual to
physical thread mapping in order to be able to use msgsndp and the
TIR.)
The idea is that we maintain a list of preempted vcores for each
physical cpu (i.e. each core, since the host runs single-threaded).
Then, when a vcore is about to run, it checks to see if there are
any vcores on the list for its physical cpu that could be
piggybacked onto this vcore's execution. If so, those additional
vcores are put into state VCORE_PIGGYBACK and their runnable VCPU
threads are started as well as the original vcore, which is called
the master vcore.
After the vcores have exited the guest, the extra ones are put back
onto the preempted list if any of their VCPUs are still runnable and
not idle.
This means that vcpu->arch.ptid is no longer necessarily the same as
the physical thread that the vcpu runs on. In order to make it easier
for code that wants to send an IPI to know which CPU to target, we
now store that in a new field in struct vcpu_arch, called thread_cpu.
Reviewed-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>
Tested-by: Laurent Vivier <lvivier@xxxxxxxxxx>
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>
Signed-off-by: Alexander Graf <agraf@xxxxxxx>
commit 845ac985cf8e3d52939dbe2446d91e47e91a07b6
Author: Tudor Laurentiu <b10716@xxxxxxxxxxxxx>
Date: Mon May 18 15:44:27 2015 +0300
KVM: PPC: add missing pt_regs initialization
On this switch branch the regs initialization
doesn't happen so add it.
This was found with the help of a static
code analysis tool.
Signed-off-by: Laurentiu Tudor <Laurentiu.Tudor@xxxxxxxxxxxxx>
Signed-off-by: Alexander Graf <agraf@xxxxxxx>
commit 5358a96341a7fba23cbf0eaf01ce1ab4d738fc90
Author: Thomas Huth <thuth@xxxxxxxxxx>
Date: Fri May 22 09:25:02 2015 +0200
KVM: PPC: Fix warnings from sparse
When compiling the KVM code for POWER with "make C=1", sparse
complains about functions missing proper prototypes and a 64-bit
constant missing the ULL prefix. Let's fix this by making the
functions static or by including the proper header with the
prototypes, and by appending a ULL prefix to the constant
PPC_MPPE_ADDRESS_MASK.
Signed-off-by: Thomas Huth <thuth@xxxxxxxxxx>
Signed-off-by: Alexander Graf <agraf@xxxxxxx>
commit 129fd4233b62159d50c35fb6489cb22ee9c27415
Author: Thomas Huth <thuth@xxxxxxxxxx>
Date: Fri May 22 11:41:01 2015 +0200
KVM: PPC: Remove PPC970 from KVM_BOOK3S_64_HV text in Kconfig
Since the PPC970 support has been removed from the kvm-hv kernel
module recently, we should also reflect this change in the help
text of the corresponding Kconfig option.
Signed-off-by: Thomas Huth <thuth@xxxxxxxxxx>
Signed-off-by: Alexander Graf <agraf@xxxxxxx>
commit f5ffe330f5e63325000f58ed982a159c512f6db3
Author: Tudor Laurentiu <b10716@xxxxxxxxxxxxx>
Date: Mon May 25 11:48:39 2015 +0300
KVM: PPC: fix suspicious use of conditional operator
This was signaled by a static code analysis tool.
Signed-off-by: Laurentiu Tudor <Laurentiu.Tudor@xxxxxxxxxxxxx>
Reviewed-by: Scott Wood <scottwood@xxxxxxxxxxxxx>
Signed-off-by: Alexander Graf <agraf@xxxxxxx>
commit f0a97af83f6287357dcc100c859ec0066f164f32
Author: Andy Lutomirski <luto@xxxxxxxxxx>
Date: Thu Aug 20 22:03:21 2015 -0700
x86/traps: Weaken context tracking entry assertions
We were asserting that we were all the way in CONTEXT_KERNEL
when exception handlers were called. While having this be true
is, I think, a nice goal (or maybe a variant in which we assert
that we're in CONTEXT_KERNEL or some new IRQ context), we're not
quite there.
In particular, if an IRQ interrupts the SYSCALL prologue and the
IRQ handler in turn causes an exception, the exception entry
will be called in RCU IRQ mode but with CONTEXT_USER.
This is okay (nothing goes wrong), but until we fix up the
SYSCALL prologue, we need to avoid warning.
Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
Acked-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Brian Gerst <brgerst@xxxxxxxxx>
Cc: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Sasha Levin <sasha.levin@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/c81faf3916346c0e04346c441392974f49cd7184.1440133286.git.luto@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 5c6629847cf6641984b1808707b43772db4e4403
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 05:40:29 2015 -0300
[media] v4l2-subdev: convert documentation to the right format
struct v4l2_subdev_core_ops has some kernel-doc-nano documentation
using a wrong format, with affects the number of stuff reported at
the DocBook device-drivers.xml.
Properly mark the such comment blocks using the right notation.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 85e1cd6e769dfc84995270d0a4838021fcb8602d
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Sat Aug 22 01:10:47 2015 -0700
hrtimer: Handle failure of tick_init_highres() gracefully
Commit 75e3b37d0598 ("hrtimer: Drop return code of
hrtimer_switch_to_hres()")
drops the return code of hrtimer_switch_to_hres(). While doing so, it also
drops the return statement itself on failure. This may cause a system
hang.
Seen when running arm:multi_v7_defconfig in qemu with devicetree file
vexpress-v2p-ca9.
Fixes: 75e3b37d0598 ("hrtimer: Drop return code of
hrtimer_switch_to_hres()")
Cc: Luiz Capitulino <lcapitulino@xxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440231047-16256-1-git-send-email-linux@xxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 62c0d016dab0ffd3cd28f10236186ef341ddece8
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 05:34:40 2015 -0300
[media] Docbook: Fix comments at v4l2-mem2mem.h
Warning(.//include/media/v4l2-mem2mem.h:50): No description found for
parameter 'lock'
Warning(.//include/media/v4l2-mem2mem.h:50): No description found for
parameter 'unlock'
Warning(.//include/media/v4l2-mem2mem.h:167): No description found for
parameter 'm2m_ctx'
Warning(.//include/media/v4l2-mem2mem.h:177): No description found for
parameter 'm2m_ctx'
Warning(.//include/media/v4l2-mem2mem.h:188): No description found for
parameter 'm2m_ctx'
Warning(.//include/media/v4l2-mem2mem.h:197): No description found for
parameter 'm2m_ctx'
Warning(.//include/media/v4l2-mem2mem.h:206): No description found for
parameter 'm2m_ctx'
Warning(.//include/media/v4l2-mem2mem.h:215): No description found for
parameter 'm2m_ctx'
Warning(.//include/media/v4l2-mem2mem.h:226): No description found for
parameter 'm2m_ctx'
Warning(.//include/media/v4l2-mem2mem.h:235): No description found for
parameter 'm2m_ctx'
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 62ba6b22f4bb99dbf53c5a0ac43b24c00c0fc86a
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 05:28:44 2015 -0300
[media] Docbook: fix comments at v4l2-flash-led-class.h
Warning(.//include/media/v4l2-flash-led-class.h:51): bad line:
unique in the system
Warning(.//include/media/v4l2-flash-led-class.h:56): bad line:
definitions are available in the header file
Warning(.//include/media/v4l2-flash-led-class.h:57): bad line:
<linux/led-class-flash.h>
Warning(.//include/media/v4l2-flash-led-class.h:122): No description
found for parameter 'ops'
Warning(.//include/media/v4l2-flash-led-class.h:122): Excess function
parameter 'flash_ops' description in 'v4l2_flash_init'
Warning(.//include/media/v4l2-flash-led-class.h:130): No description
found for parameter 'v4l2_flash'
Warning(.//include/media/v4l2-flash-led-class.h:130): Excess function
parameter 'flash' description in 'v4l2_flash_release'
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit fa810845efc4d3c0f159a3e7a35f009e0249c857
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 05:25:45 2015 -0300
[media] Docbook: Fix s_rx_carrier_range parameter description
Warning(.//include/media/rc-core.h:178): No description found for
parameter 's_rx_carrier_range'
Warning(.//include/media/rc-core.h:178): Excess struct/union/enum/typedef
member 's_rx_carrier' description in 'rc_dev'
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit f8b27377076e4405a25bdb40ee32ef7a0b261573
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 05:16:24 2015 -0300
[media] Docbook: Fix comments at v4l2-async.h
Warning(.//include/media/v4l2-async.h:62): No description found for
parameter 'match_type'
Warning(.//include/media/v4l2-async.h:62): Excess
struct/union/enum/typedef member 'bus_type' description in 'v4l2_async_subdev'
Warning(.//include/media/v4l2-async.h:76): cannot understand function
prototype: 'struct v4l2_async_notifier '
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 5240f4e68d4209588194ea1db60f7c822e2a1c6f
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 05:02:21 2015 -0300
[media] DocBook/media/Makefile: Avoid make htmldocs to fail
If make is called twice like that:
make V=1 DOCBOOKS=device-drivers.xml htmldocs
Make will fail with:
make -f ./scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
make -f ./scripts/Makefile.build obj=scripts build_docproc
make -f ./scripts/Makefile.build obj=Documentation/DocBook htmldocs
rm -rf Documentation/DocBook/index.html; echo '<h1>Linux Kernel HTML
Documentation</h1>' >> Documentation/DocBook/index.html && echo '<h2>Kernel
Version: 4.2.0-rc2</h2>' >> Documentation/DocBook/index.html && cat
Documentation/DocBook/device-drivers.html >> Documentation/DocBook/index.html
cp ./Documentation/DocBook//bayer.png
./Documentation/DocBook//constraints.png ./Documentation/DocBook//crop.gif
./Documentation/DocBook//dvbstb.png ./Documentation/DocBook//fieldseq_bt.gif
./Documentation/DocBook//fieldseq_tb.gif ./Documentation/DocBook//nv12mt.gif
./Documentation/DocBook//nv12mt_example.gif
./Documentation/DocBook//pipeline.png ./Documentation/DocBook//selection.png
./Documentation/DocBook//vbi_525.gif ./Documentation/DocBook//vbi_625.gif
./Documentation/DocBook//vbi_hsync.gif ./Documentation/DocBook/media/*.svg
./Documentation/DocBook/media/v4l/*.svg ./Documentation/DocBook//media_api
cp: target './Documentation/DocBook//media_api' is not a directory
Documentation/DocBook/Makefile:53: recipe for target 'htmldocs' failed
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit ec0255cad2dace5be54cc52010bb07fdb5628e1e
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Sat Aug 22 04:45:03 2015 -0300
[media] Docbook: Fix description of struct media_devnode
Warning(.//include/media/media-devnode.h:80): No description found for
parameter 'fops'
Warning(.//include/media/media-devnode.h:80): No description found for
parameter 'dev'
Warning(.//include/media/media-devnode.h:80): No description found for
parameter 'cdev'
Warning(.//include/media/media-devnode.h:80): No description found for
parameter 'release'
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit dc2c8bd3c9a44ed38d9af6c7243fdddc42ec391a
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Fri Aug 21 14:17:13 2015 -0300
[media] DocBook/device-drivers: Add drivers/media core stuff
There are lots of docbook marks at the media subsystem, but
those aren't used.
Add the core headers/code in order to start generating docs.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 88c25dcb1185f2c7041550976430e27fa9d8dcca
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Fri Aug 21 13:37:54 2015 -0300
[media] DocBook: fix an unbalanced <para> tag
The </para> got lost on some change at the DVB docbook, making
the tag unbalanced and causing a warning. Fix it.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Jonathan Corbet <corbet@xxxxxxx>
commit 0e53909a1cf0153736fb52c216558a65530d8c40
Merge: 82819ff 1c0bd0e
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Sat Aug 22 08:45:46 2015 +0200
Merge tag 'perf-core-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
User visible changes:
- Fix segfault using 'perf script --show-mmap-events', affects
only current perf/core. (Adrian Hunter)
- /proc/kcore requires CAP_SYS_RAWIO message too noisy, make it
debug only. (Adrian Hunter)
- Fix Intel PT timestamp handling. (Adrian Hunter)
- Add Intel BTS support, with a call-graph script to show it and
PT in use in a GUI using 'perf script' python scripting with
postgresql and Qt. (Adrian Hunter)
- Add checks for returned EVENT_ERROR type in libtraceevent, fixing
a bug that surfaced on arm64 systems. (Dean Nelson)
- Fallback to using kallsyms when libdw fails to handle a vmlinux file,
that can happen, for instance, when perf is statically linked and
then libdw fails to load libebl_{arch}.so. (Wang Nan)
Infrastructure changes:
- Initialize reference counts in map__clone(). (Arnaldo Carvalho de
Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit dac2ddefe62841efc0b6cdcb0bbf3e3594aa01bf
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Wed Aug 19 19:16:09 2015 +0800
f2fs: lookup neighbor extent nodes for merging later
In __lookup_extent_tree_ret we will not try to find neighbor nodes if
we find the target node, in this condition, we will lost the chance to
merge the new mapping with exist extent node later.
So our extent cache of inode will be fragmented after overwrite exist
file, we can see the number of extent node increases intensively in
following test case:
dd if=/dev/zero of=/mnt/f2fs/4m bs=4K count=1024
Extent Cache:
- Hit Count: L1-1:0 L1-2:0 L2:0
- Hit Ratio: 0% (0 / 3072)
- Inner Struct Count: tree: 1, node: 1
dd if=/dev/zero of=/mnt/f2fs/4m bs=4K count=1024 conv=notrunc
Extent Cache:
- Hit Count: L1-1:2048 L1-2:0 L2:0
- Hit Ratio: 33% (2048 / 6144)
- Inner Struct Count: tree: 1, node: 961
This patch fixes to lookup neighbors of target node for further
merging.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit ef05e221995057a8588cad675992ca2cb47e9891
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Wed Aug 19 19:15:09 2015 +0800
f2fs: split __insert_extent_tree_ret for readability
This patch splits __insert_extent_tree_ret into __try_merge_extent_node &
__insert_extent_tree for code readability.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit a6f7834594a284316b38d0885b2ee1ab47899dbc
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Wed Aug 19 19:14:15 2015 +0800
f2fs: kill dead code in __insert_extent_tree
After commit 0f825ee6e873 ("f2fs: add new interfaces for extent tree"),
f2fs_init_extent_tree becomes the only caller of __insert_extent_tree, and
in f2fs_init_extent_tree, we will only insert extent node in an empty
tree,
so __try_{back,front}_merge in __insert_extent_tree will never be called.
This patch removes these dead codes, besides, rename __insert_extent_tree
to __init_extent_tree for readability.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 029e13cc3221be4bc46909225142277fee52c37e
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Wed Aug 19 19:13:25 2015 +0800
f2fs: adjust showing of extent cache stat
This patch alters to replace total hit stat with rbtree hit stat,
and then adjust showing of extent cache stat:
Hit Count:
L1-1: for largest node hit count;
L1-2: for last cached node hit count;
L2: for extent node hit after lookuping in rbtree.
Hit Ratio:
ratio (hit count / total lookup count)
Inner Struct Count:
tree count, node count.
Before:
Extent Hit Ratio: 0 / 2
Extent Tree Count: 3
Extent Node Count: 2
Patched:
Exten Cacache:
- Hit Count: L1-1:4871 L1-2:2074 L2:208
- Hit Ratio: 1% (7153 / 550751)
- Inner Struct Count: tree: 26560, node: 11824
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 91c481fff92c705dd382f1f53c01e6b6b88507d0
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Wed Aug 19 19:12:20 2015 +0800
f2fs: add largest/cached stat in extent cache
This patch adds to stat the hit count of largest/cached node for showing
in debugfs.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit e2b4e2bc8865e03eecd49caa9713a2402a96bba9
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Wed Aug 19 19:11:19 2015 +0800
f2fs: fix incorrect mapping for bmap
The test step is like below:
1. touch file
2. truncate -s $((1024*1024)) file
3. fallocate -o 0 -l $((1024*1024)) file
4. fibmap.f2fs file
Our result of fibmap.f2fs showed below is not correct:
file_pos start_blk end_blk blks
0 -937166132 -937166132 1
4096 -937166132 -937166132 1
8192 -937166132 -937166132 1
12288 -937166132 -937166132 1
16384 -937166132 -937166132 1
20480 -937166132 -937166132 1
...
1040384 -937166132 -937166132 1
1044480 -937166132 -937166132 1
This is because f2fs_map_blocks will return with no error when meeting
a hole or preallocated block, the caller __get_data_block will map the
uninitialized variable value to bh->b_blocknr.
Unfortunately generic_block_bmap will neither check the return value of
get_data() nor check mapping info of buffer_head, result in returning
the random block address.
After fixing the issue, our result shows correctly:
file_pos start_blk end_blk blks
0 0 0 256
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit c031f6a904975d5fa84c541333cce444a21ca713
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Wed Aug 19 19:02:02 2015 +0800
f2fs: add annotation for space utilization of regular/inline dentry
Add annotation to let us know more clearly about space utilization
information of regular dentry and inline dentry.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit f8b703da2c23f9bfda7299bd14e4f7201c2be3c8
Author: Fan Li <fanofcode.li@xxxxxxxxxxx>
Date: Tue Aug 18 17:13:13 2015 +0800
f2fs: fix to update cached_en of extent tree properly
In f2fs_lookup_extent_tree, et->cached_en was read and updated with only
read lock held,
it could cause __lookup_extent_tree within return entirely wrong
extent_node, if other
thread update et->cached_en just before __lookup_extent_tree return.
However, there are two things about this patch that need to be noticed:
1. It does no good to arrange the order of concurrent read/write, the
result
would still
be random in such case.
2. It's built on this assumption: the mix up of reads and writes on a
single
pointer would
not make the pointer partially wrong at any time. Please let me know if
I'm
wrong, thx.
Signed-off-by: Fan li <fanofcode.li@xxxxxxxxxxx>
Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 217940d4f0c4ec4f0852f7046fa419d0edf65c17
Author: Junesung Lee <junesoung412@xxxxxxxxx>
Date: Tue Aug 18 22:42:15 2015 +0900
f2fs: fix typo
Fix typo.
Signed-off-by: Junesung Lee <junesoung412@xxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit d1d97b76c4af41c8e836e73742c91cbf97d7483c
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 09:07:16 2015 +0200
mtd: dataflash: Export OF module alias information
The SPI core currently reports the MODALIAS uevent as "spi:<modalias>"
even for SPI devices that were registered by OF.
That means the OF module alias exported by MODULE_OF_TABLE(of,...) is
currently not used and user-space has no way to autoload this module.
But it is still a good practice to add the OF module alias information
into the kernel module even when it currently is unused so once the SPI
core is changed to report a correct OF modalias uevent, module
autoloading will be working for this driver.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 1a3232d2f61d2853a848464b7bde2d54960c58bb
Author: Mengdong Lin <mengdong.lin@xxxxxxxxx>
Date: Tue Aug 18 18:12:20 2015 +0800
ASoC: topology: Add support for TLV bytes controls
Allow vendor drivers to define bespoke bytes ext handlers and IDs for
TLV bytes controls. And the topology core will bind these handlers by
matching IDs defined by the vendor driver and user space topology
data file.
And TLV callback binding is moved to soc_tplg_kcontrol_bind_io(). This
function process all handler binding now.
Signed-off-by: Mengdong Lin <mengdong.lin@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 2b5cdb9156f76162d5302e2847f84a79de8a3ad1
Author: Mengdong Lin <mengdong.lin@xxxxxxxxx>
Date: Tue Aug 18 18:12:01 2015 +0800
ASoC: topology: Reduce arguments of soc_tplg_kcontrol_bind_io()
Add the pointer of struct soc_tplg as one argument, so no need to
pass standard/vendor specific kcontrol handlers and their count.
Signed-off-by: Mengdong Lin <mengdong.lin@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 88a17d8fb7c4a156ec13e6668b46dbbedf670ff7
Author: Mengdong Lin <mengdong.lin@xxxxxxxxx>
Date: Tue Aug 18 18:11:51 2015 +0800
ASoC: topology: Bind vendor specific kcontrol handlers before standard
ones
Vendor specific handlers should override standard handlers. So we can
handle things in the order from specific to generic.
Signed-off-by: Mengdong Lin <mengdong.lin@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit d033de5ceee8333e4fee3d59a956244d3736102a
Merge: 1a8e7fa f7644cb
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Fri Aug 21 15:26:37 2015 -0700
Merge tag 'v4.2-rc6' into asoc-topology
Linux 4.2-rc6
commit a887adadb7b9ef9eb4ee48e4ad575aefcfd1db14
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Fri Aug 21 18:07:38 2015 -0400
drm/amdgpu: Don't link train DisplayPort on HPD until we get the dpcd
This is a port of:
DRM - radeon: Don't link train DisplayPort on HPD until we get the dpcd
to amdgpu.
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 924f92bf12bfbef3662619e3ed24a1cea7c1cbcd
Author: Stephen Chandler Paul <cpaul@xxxxxxxxxx>
Date: Fri Aug 21 14:16:12 2015 -0400
DRM - radeon: Don't link train DisplayPort on HPD until we get the dpcd
Most of the time this isn't an issue since hotplugging an adaptor will
trigger a crtc mode change which in turn, causes the driver to probe
every DisplayPort for a dpcd. However, in cases where hotplugging
doesn't cause a mode change (specifically when one unplugs a monitor
from a DisplayPort connector, then plugs that same monitor back in
seconds later on the same port without any other monitors connected), we
never probe for the dpcd before starting the initial link training. What
happens from there looks like this:
- GPU has only one monitor connected. It's connected via
DisplayPort, and does not go through an adaptor of any sort.
- User unplugs DisplayPort connector from GPU.
- Change in HPD is detected by the driver, we probe every
DisplayPort for a possible connection.
- Probe the port the user originally had the monitor connected
on for it's dpcd. This fails, and we clear the first (and only
the first) byte of the dpcd to indicate we no longer have a
dpcd for this port.
- User plugs the previously disconnected monitor back into the
same DisplayPort.
- radeon_connector_hotplug() is called before everyone else,
and tries to handle the link training. Since only the first
byte of the dpcd is zeroed, the driver is able to complete
link training but does so against the wrong dpcd, causing it
to initialize the link with the wrong settings.
- Display stays blank (usually), dpcd is probed after the
initial link training, and the driver prints no obvious
messages to the log.
In theory, since only one byte of the dpcd is chopped off (specifically,
the byte that contains the revision information for DisplayPort), it's
not entirely impossible that this bug may not show on certain monitors.
For instance, the only reason this bug was visible on my ASUS PB238
monitor was due to the fact that this monitor using the enhanced framing
symbol sequence, the flag for which is ignored if the radeon driver
thinks that the DisplayPort version is below 1.1.
Signed-off-by: Stephen Chandler Paul <cpaul@xxxxxxxxxx>
Reviewed-by: Jerome Glisse <jglisse@xxxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 116984a316c3a3200f8a7912110cc4a6d6c0989e
Author: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
Date: Fri Aug 21 21:34:08 2015 +0200
netfilter: xt_TEE: use IS_ENABLED(CONFIG_NF_DUP_IPV6)
Instead of IS_ENABLED(CONFIG_IPV6), otherwise we hit:
et/built-in.o: In function `tee_tg6':
>> xt_TEE.c:(.text+0x6cd8c): undefined reference to `nf_dup_ipv6'
when:
CONFIG_IPV6=y
CONFIG_NF_DUP_IPV4=y
# CONFIG_NF_DUP_IPV6 is not set
CONFIG_NETFILTER_XT_TARGET_TEE=y
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit 59e26423e00263b6b06b39d219147f22610ce5d6
Author: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
Date: Fri Aug 21 21:28:10 2015 +0200
netfilter: nf_dup: fix sparse warnings
>> net/ipv4/netfilter/nft_dup_ipv4.c:29:37: sparse: incorrect type in
initializer (different base types)
net/ipv4/netfilter/nft_dup_ipv4.c:29:37: expected restricted __be32
[user type] s_addr
net/ipv4/netfilter/nft_dup_ipv4.c:29:37: got unsigned int
[unsigned] <noident>
>> net/ipv6/netfilter/nf_dup_ipv6.c:48:23: sparse: incorrect type in
assignment (different base types)
net/ipv6/netfilter/nf_dup_ipv6.c:48:23: expected restricted __be32
[addressable] [assigned] [usertype] flowlabel
net/ipv6/netfilter/nf_dup_ipv6.c:48:23: got int
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit dc25b25897289bad4907f30151ffe5baf75ff369
Merge: 1a69205 0bad909
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Fri Aug 21 11:44:04 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/usb/qmi_wwan.c
Overlapping additions of new device IDs to qmi_wwan.c
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1a69205c471221a7f9101df164642611e37c52e4
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Fri Aug 21 11:38:41 2015 -0700
enic: Fix build failure with SRIOV disabled.
err_out_vnic_unregister is used regardless of whether
SRIOV is enabled or not.
Reported-by: Jesse Brandeburg <jesse.brangeburg@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c5f58f2d700ef484fc2fbaa9c624c6076109f989
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Fri Aug 21 10:26:40 2015 +0200
regmap: Add missing comments about struct regmap_bus
There are some fields of this struct undocumented or old. This patch
updates the missing comments.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit f09d4f26f6192ec9b060047cc7126e01980bb36c
Author: Jeeja KP <jeeja.kp@xxxxxxxxx>
Date: Fri Aug 21 21:36:21 2015 +0530
ALSA: hdac: Remove the usage of key for host stream
hdac_ext_stream assign doesn't require key mapping as in case of
hdac_stream. So for host stream, the key to device mapping needs
to be removed.
Signed-off-by: Jeeja KP <jeeja.kp@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit ee8bc4df1b5a9df1ede13975c40dec7009214595
Author: Jeeja KP <jeeja.kp@xxxxxxxxx>
Date: Fri Aug 21 21:36:20 2015 +0530
ALSA: hdac: Add support to enable SPIB for hdac ext stream
The drivers need to set the spib and maxfifios values, so add
these new APIs snd_hdac_ext_stream_set_spib() and
snd_hdac_ext_stream_set_spbmaxfifo() APIs
For these APIs we also need to have spib and fifos pointer, so
add these to hdac_ext_stream and initialize them at stream init
Signed-off-by: Jeeja KP <jeeja.kp@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit c5b0c09b8fa3e02d9cbfd9445fb4114becdd3390
Author: Jeeja KP <jeeja.kp@xxxxxxxxx>
Date: Fri Aug 21 21:36:18 2015 +0530
ALSA: hdac: Add snd_hdac_ext_bus_link_power_down_all()
New HDA controllers like Skylake sport multiple HDA links, so we need a
helper to turn off all the links in one go while suspending the device so
add snd_hdac_ext_bus_link_power_down_all() API
Signed-off-by: Jeeja KP <jeeja.kp@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit a7e3dd85cab1c6990cafd0bedb0b8809f15149b0
Author: Jeeja KP <jeeja.kp@xxxxxxxxx>
Date: Fri Aug 21 21:36:17 2015 +0530
ALSA: hdac: Fix to read the correct offset of spcap/link register
SPCAP and Mutilink register offset were incorrect as offset needs
to be based on capability offset. So correct the offset for
read/write of spcap/link register.
Signed-off-by: Jeeja KP <jeeja.kp@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 9bc07dfbcde5b6f3aefa06b902b47eef9769d260
Author: Lars-Peter Clausen <lars@xxxxxxxxxx>
Date: Fri Aug 21 09:48:33 2015 +0200
ALSA: ac97: Switch to dev_pm_ops
Convert the ac97_bus from legacy suspend/resume callbacks to dev_pm_ops.
Since there isn't anything special to do at the bus level the bus driver
does not have to implement any callbacks. The device driver core will
automatically pick up and execute the device's PM ops.
As there is only a single AC'97 driver implementing suspend and resume,
update both the core and driver at the same time to avoid unnecessary code
churn.
While we are at it also drop the ifdefs around the suspend/resume
functions
to increase compile test coverage.
Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
Acked-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 00833d70ca29a9d60c694b9475a9d3327ed9461e
Merge: fa4f18b f6b28e4
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Fri Aug 21 19:26:48 2015 +0200
Merge branch 'for-linus' into for-next
commit c4fe57f76269dbb2af135071513f260ca40229a3
Author: Michael van der Westhuizen <michael@xxxxxxxxxxxxxxxx>
Date: Tue Aug 18 22:21:53 2015 +0200
spi: dw: Allow interface drivers to limit data I/O to word sizes
The commit dd11444327ce ("spi: dw-spi: Convert 16bit accesses to 32bit
accesses") changed all 16bit accesses in the DW_apb_ssi driver to 32bit.
This, unfortunately, breaks data register access on picoXcell, where the
DW IP needs data register accesses to be word accesses (all other
accesses appear to be OK).
This change introduces a new master variable to allow interface drivers
to specify that 16bit data transfer I/O is required. This change also
introduces the ability to set this variable via device tree bindings in
the MMIO interface driver. Both the core and the MMIO interface driver
default to the current 32bit behaviour.
Before this change, on a picoXcell pc3x3:
spi_master spi32766: interrupt_transfer: fifo overrun/underrun
m25p80 spi32766.0: error -5 reading 9f
m25p80: probe of spi32766.0 failed with error -5
After this change:
m25p80 spi32766.0: m25p40 (512 Kbytes)
Fixes: dd11444327ce ("spi: dw-spi: Convert 16bit accesses to 32bit
accesses")
Signed-off-by: Michael van der Westhuizen <michael@xxxxxxxxxxxxxxxx>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 4b226fbde68b8bfb66452067523a677b8e6492fa
Author: Michael van der Westhuizen <michael@xxxxxxxxxxxxxxxx>
Date: Tue Aug 18 22:21:52 2015 +0200
dt: snps,dw-apb-ssi: Document new I/O data register width property
This change documents a new property for the snps,dw-apb-ssi device,
allowing an implementer to specify either four byte or two bytes
access to the SPI controller data register.
This supports a change that unbreaks this driver on picoXcell
platforms.
Signed-off-by: Michael van der Westhuizen <michael@xxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 7dc9fbc342deb2e2658ebdecb5ffd7ff57945a66
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Thu Aug 20 11:52:18 2015 -0700
spi: Fall back to master maximum speed if no slave speed specified
If a slave appears with no maximum transfer speed specified fall back to
using the maximum for the master instead. It's questionable if we
should let slaves do this but let's be defensive.
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit f4be3c67ed5829462f53e225edd95029bb0793c4
Merge: 99650c2 17cdddf
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Fri Aug 21 10:15:29 2015 -0700
Merge tag 'tegra-for-4.3-dt' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/dt
ARM: tegra: Devicetree changes for v4.3-rc1
Enables CPU frequency scaling on Jetson TK1 and enables the GK20A GPU on
Venice2 and Jetson TK1. This also enables support for the PMU hardware
found on Tegra124, which among other things, can be used for performance
measurements.
* tag 'tegra-for-4.3-dt' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
ARM: tegra: Add gpio-ranges property
ARM: tegra: Fix AHB base address on Tegra20, Tegra30 and Tegra114
ARM: tegra: Add Tegra124 PMU support
ARM: tegra: jetson-tk1: Add GK20A GPU DT node
ARM: tegra: venice2: Add GK20A GPU DT node
ARM: tegra: Add IOMMU node to GK20A
ARM: tegra: Add CPU regulator to the Jetson TK1 device tree
ARM: tegra: Add entries for cpufreq on Tegra124
ARM: tegra: Enable the DFLL on the Jetson TK1
ARM: tegra: Add the DFLL to Tegra124 device tree
pinctrl: tegra: Only set the gpio range if needed
clk: tegra: Add the DFLL as a possible parent of the cclk_g clock
clk: tegra: Save/restore CCLKG_BURST_POLICY on suspend
clk: tegra: Add Tegra124 DFLL clocksource platform driver
clk: tegra: Add DFLL DVCO reset control for Tegra124
clk: tegra: Introduce ability for SoC-specific reset control callbacks
clk: tegra: Add functions for parsing CVB tables
clk: tegra: Add closed loop support for the DFLL
clk: tegra: Add library for the DFLL clock source (open-loop mode)
clk: tegra: Add binding for the Tegra124 DFLL clocksource
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 3a9508b0221dfd290b95fb0ab199958fe078bbdf
Author: Chris Mason <clm@xxxxxx>
Date: Fri Aug 21 10:05:39 2015 -0700
btrfs: fix compile when block cgroups are not enabled
bio->bi_css and bio->bi_ioc don't exist when block cgroups are not on.
This adds an ifdef around them. It's not perfect, but our
use of bi_ioc is being removed in the 4.3 merge window.
The bi_css usage really should go into bio_clone, but I want to make
sure that doesn't introduce problems for other bio_clone use cases.
Signed-off-by: Chris Mason <clm@xxxxxx>
commit 17cdddf0fb684f5456c1af3aa2c10aca3b68b8de
Author: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
Date: Tue Jul 14 10:29:56 2015 +0200
ARM: tegra: Add gpio-ranges property
Specify how the GPIOs map to the pins in Tegra SoCs, so the dependency is
explicit.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 0d5ccb38d19574fecfa471205317d37221ec59a7
Author: Nicolas Chauvet <kwizart@xxxxxxxxx>
Date: Sat Aug 8 15:58:12 2015 +0200
ARM: tegra: Fix AHB base address on Tegra20, Tegra30 and Tegra114
Current base address is wrong by 0x04 bytes for AHB bus device as shown
in dmesg:
tegra-ahb 6000c004.ahb: incorrect AHB base address in DT data -
enabling workaround
To correct old DTBs, commit ce7a10b0ff3d ("ARM: 8334/1: amba: tegra-ahb:
detect and correct bogus base address") checks for the low bit of the
base address and removes theses 0x04 bytes at runtime.
This patch fixes the original DTS, so upstream version doesn't need the
workaround of the base address.
As both addresses are valid, this patch doesn't break compatibility.
Tested on tegra20-paz00 (aka ac100).
Signed-off-by: Nicolas Chauvet <kwizart@xxxxxxxxx>
Reviewed-by: Paul Walmsley <paul@xxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 82fe42f5d7b01848a6fc2aee150a4050ca56b1e0
Author: Kyle Huey <me@xxxxxxxxxxxx>
Date: Mon Jul 13 10:35:45 2015 -0700
ARM: tegra: Add Tegra124 PMU support
This patch modifies the device tree for Tegra124 based devices to enable
the Cortex A15 PMU. The interrupt numbers are taken from NVIDIA Tegra K1
TRM (DP-06905-001_v03p). This patch was tested on a Jetson TK1.
Signed-off-by: Kyle Huey <khuey@xxxxxxxxxxxx>
Acked-by: Mark Rutland <mark.rutland@xxxxxxx>
Acked-by: Jon Hunter <jonathanh@xxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 21fa196fc0f4b79abb923042cb89651ca47b4b92
Author: Alexandre Courbot <acourbot@xxxxxxxxxx>
Date: Wed Jul 1 18:13:47 2015 +0900
ARM: tegra: jetson-tk1: Add GK20A GPU DT node
Add the device-tree node for the GK20A GPU and leave it disabled.
It is the responsibility of the bootloader to enable it if the
VPR registers have been programmed such that the GPU can operate.
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit e34cc1b6b7115de2320c2acdb62c82ebeb502c01
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Jul 1 18:13:46 2015 +0900
ARM: tegra: venice2: Add GK20A GPU DT node
Add the device-tree node for the GK20A GPU and leave it disabled.
It is the responsibility of the bootloader to enable it if the
VPR registers have been programmed such that the GPU can operate.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
commit c96cd17708cfcffc9ccf2132fdcb360fa04f092f
Author: Alexandre Courbot <acourbot@xxxxxxxxxx>
Date: Wed Jul 1 18:13:45 2015 +0900
ARM: tegra: Add IOMMU node to GK20A
Nouveau can make use of the IOMMU to make physical appear linear in the
GPU address space.
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit ee9f106feafcf73dd56872718ec20ee1f787da1b
Author: Mikko Perttunen <mikko.perttunen@xxxxxxxx>
Date: Wed May 13 17:58:50 2015 +0300
ARM: tegra: Add CPU regulator to the Jetson TK1 device tree
Specify the CPU voltage regulator for the cpufreq driver.
Signed-off-by: Tuomas Tynkkynen <ttynkkynen@xxxxxxxxxx>
Signed-off-by: Mikko Perttunen <mikko.perttunen@xxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 0de088cc3463d451ca96439c723cc58932430820
Author: Tuomas Tynkkynen <ttynkkynen@xxxxxxxxxx>
Date: Wed May 13 17:58:49 2015 +0300
ARM: tegra: Add entries for cpufreq on Tegra124
The Tegra124 cpufreq driver relies on certain clocks being present
in the /cpus/cpu@0 node.
Signed-off-by: Tuomas Tynkkynen <ttynkkynen@xxxxxxxxxx>
Signed-off-by: Mikko Perttunen <mikko.perttunen@xxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 9be1e477c31437907d0db4fa72d7c2920dfdeec8
Author: Tuomas Tynkkynen <ttynkkynen@xxxxxxxxxx>
Date: Wed May 13 17:58:45 2015 +0300
ARM: tegra: Enable the DFLL on the Jetson TK1
Add the board-specific properties of the DFLL for the Jetson TK1 board.
On this board, the DFLL will take control of the sd0 regulator on the
on-board AS3722 PMIC.
Signed-off-by: Tuomas Tynkkynen <ttynkkynen@xxxxxxxxxx>
Signed-off-by: Mikko Perttunen <mikko.perttunen@xxxxxxxx>
Acked-by: Michael Turquette <mturquette@xxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit bf9d026775796bec30895cab080baf37b70bc3b3
Author: Tuomas Tynkkynen <ttynkkynen@xxxxxxxxxx>
Date: Wed May 13 17:58:44 2015 +0300
ARM: tegra: Add the DFLL to Tegra124 device tree
The DFLL clocksource is a separate IP block from the usual
clock-and-reset controller, so it gets its own device tree node.
Signed-off-by: Tuomas Tynkkynen <ttynkkynen@xxxxxxxxxx>
Signed-off-by: Mikko Perttunen <mikko.perttunen@xxxxxxxx>
Acked-by: Michael Turquette <mturquette@xxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 233da3b1c620b10a70c019b2134e7b1276b57695
Merge: 7292ba6 79cf95c
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Aug 21 18:44:15 2015 +0200
Merge branch 'for-4.3/clk' into for-4.3/dt
commit 7292ba64bd56d39c3b1fe4cbe8559e6c95858180
Merge: d770e55 9462510
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Aug 21 18:44:05 2015 +0200
Merge branch 'for-4.3/pinctrl' into for-4.3/dt
commit 6be4b0da4ecf1472cb4a064c752214dcb2ba4be2
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Wed Aug 19 15:31:30 2015 -0300
ARM: imx: mach-imx6ul: Fix allmodconfig build
We should call phy_register_fixup_for_uid() only when CONFIG_PHYLIB
is built-in, otherwise we get the following link error when building
allmodconfig:
arch/arm/mach-imx/built-in.o: In function `imx6ul_init_machine':
:(.init.text+0xa714): undefined reference to `phy_register_fixup_for_uid'
This is the same approach done in mach-imx6q.c and mach-imx6sx.c.
Reported-by: Olof Johansson <olof@xxxxxxxxx>
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Acked-by: Shawn Guo <shawnguo@xxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 9c9f7f675970ba1b888272f016157de21f69e7e2
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Fri Aug 21 10:26:43 2015 +0200
regmap: No multi_write support if bus->write does not exist
There is no multi_write support available if we cannot use raw_write.
This is the case if bus->write is not implemented.
This patch adds a condition that we need bus and bus->write so that
can_multi_write is true.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 67921a1a6660d32cc2770d05d656a1187b6d94d5
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Fri Aug 21 10:26:42 2015 +0200
regmap: Split use_single_rw internally into use_single_read/write
use_single_rw currently reflects the capabilities of the connected
device. The capabilities of the bus are currently missing for this
variable.
As there are read only and write only buses we need seperate values for
use_single_rw to also reflect tha capabilities of the bus.
This patch splits use_single_rw into use_single_read and
use_single_write. The initialization is changed to check the
configuration for use_single_rw and to check the capabilities of the
used bus.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 9c8f55798a9d716daed4de6d7038a21c3ca6e673
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Fri Aug 21 09:29:50 2015 -0700
Input: sentelic - silence some underflow warnings
I have a static checker that complains when we check for an upper bound
but don't have a corresponding check for a lower bound. With this code,
the upper bound check seems not really required, so it is not a bug to
leave the lower bound check out as well. But let's silence the warning
by making these variables unsigned.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit c594b7f21d7d02115e828db46fddbba1da7ed1b8
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Fri Aug 21 10:26:41 2015 +0200
regmap: Fix regmap_bulk_write for bus writes
The regmap config does not prohibit val_bytes that are not powers of
two. But the current code of regmap_bulk_write for use_single_rw does
limit the possible val_bytes to 1, 2 and 4.
This patch fixes the behaviour to allow bus writes with non-standard
val_bytes sizes.
Cc: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 330349fae46f8400e86ef98ee05af4ba13466f49
Merge: efd16bd 5be9fc2
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Fri Aug 21 09:10:50 2015 -0700
Merge tag 'mvebu-fixes-4.2-1' of git://git.infradead.org/linux-mvebu into
next/fixes-non-critical
mvebu fixes changes for v4.2
Fix legacy orion5x IRQ numbers broken since 3.18
* tag 'mvebu-fixes-4.2-1' of git://git.infradead.org/linux-mvebu:
ARM: orion5x: fix legacy orion5x IRQ numbers
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit d33288172e72c4729e8b9f2243fb40601afabc8f
Author: Julian Anastasov <ja@xxxxxx>
Date: Sun Jul 26 15:03:28 2015 +0300
ipvs: add more mcast parameters for the sync daemon
- mcast_group: configure the multicast address, now IPv6
is supported too
- mcast_port: configure the multicast port
- mcast_ttl: configure the multicast TTL/HOP_LIMIT
Signed-off-by: Julian Anastasov <ja@xxxxxx>
Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
commit e4ff67513096e6e196ca58043fce04d0f87babbe
Author: Julian Anastasov <ja@xxxxxx>
Date: Sun Jul 26 15:03:27 2015 +0300
ipvs: add sync_maxlen parameter for the sync daemon
Allow setups with large MTU to send large sync packets by
adding sync_maxlen parameter. The default value is now based
on MTU but no more than 1500 for compatibility reasons.
To avoid problems if MTU changes allow fragmentation by
sending packets with DF=0. Problem reported by Dan Carpenter.
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Julian Anastasov <ja@xxxxxx>
Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
commit 99650c258a4bbe7e62754c734c3888f29b59f72a
Author: Moritz Fischer <moritz.fischer@xxxxxxxxx>
Date: Thu Jul 30 18:13:55 2015 -0700
ARM: dts: zynq: Add devicetree entry for Xilinx Zynq reset controller.
Signed-off-by: Moritz Fischer <moritz.fischer@xxxxxxxxx>
Signed-off-by: Michal Simek <michal.simek@xxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit e0b26cc997d57305b4097711e12e13992580ae34
Author: Julian Anastasov <ja@xxxxxx>
Date: Sun Jul 26 14:57:34 2015 +0300
ipvs: call rtnl_lock early
When the sync damon is started we need to hold rtnl
lock while calling ip_mc_join_group. Currently, we have
a wrong locking order because the correct one is
rtnl_lock->__ip_vs_mutex. It is implied from the usage
of __ip_vs_mutex in ip_vs_dst_event() which is called
under rtnl lock during NETDEV_* notifications.
Fix the problem by calling rtnl_lock early only for the
start_sync_thread call. As a bonus this fixes the usage
__dev_get_by_name which was not called under rtnl lock.
This patch actually extends and depends on commit 54ff9ef36bdf
("ipv4, ipv6: kill ip_mc_{join, leave}_group and
ipv6_sock_mc_{join, drop}").
Signed-off-by: Julian Anastasov <ja@xxxxxx>
Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
commit eefa32d3f3c54bc7f9704968bc78adf0439c6c2a
Author: Raducu Deaconu <rhadoo.io88@xxxxxxxxx>
Date: Fri Jul 17 08:45:40 2015 +0300
ipvs: Add ovf scheduler
The weighted overflow scheduling algorithm directs network connections
to the server with the highest weight that is currently available
and overflows to the next when active connections exceed the node's
weight.
Signed-off-by: Raducu Deaconu <rhadoo.io88@xxxxxxxxx>
Acked-by: Julian Anastasov <ja@xxxxxx>
Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
commit ee3010d0ab288d1c307464c1bd1dc3bf16aca7e4
Author: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Date: Fri Aug 21 14:38:39 2015 +0200
regulators: max77693: register driver earlier to avoid deferred probe
MAX77693 based regulators are used by USB gadget subsystem, which
doesn't support deferred probe, so the driver should be registered
before USB gadget drivers get probed.
Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 54d8697fa5036df0e27f8d62edb7ebc35c3f73d6
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Fri Aug 21 20:59:21 2015 +0800
ASoC: Set missing card owner field
Set the card owner field to prevent the module from being removed from
underneath its users.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 1c0bd0e891aaed0219010bfe79b32e1b0b82d662
Author: Wang Nan <wangnan0@xxxxxxxxxx>
Date: Fri Aug 21 10:09:02 2015 +0000
perf probe: Try to use symbol table if searching debug info failed
A problem can occur in a statically linked perf when vmlinux can be found:
# perf probe --add sys_epoll_pwait
probe-definition(0): sys_epoll_pwait
symbol:sys_epoll_pwait file:(null) line:0 offset:0 return:0 lazy:(null)
0 arguments
Looking at the vmlinux_path (7 entries long)
Using /lib/modules/4.2.0-rc1+/build/vmlinux for symbols
Open Debuginfo file: /lib/modules/4.2.0-rc1+/build/vmlinux
Try to find probe point from debuginfo.
Symbol sys_epoll_pwait address found : ffffffff8122bd40
Matched function: SyS_epoll_pwait
Failed to get call frame on 0xffffffff8122bd40
An error occurred in debuginfo analysis (-2).
Error: Failed to add events. Reason: No such file or directory (Code:
-2)
The reason is caused by libdw that, if libdw is statically linked, it
can't load libebl_{arch}.so reliable.
In this case it is still possible to get the address from
/proc/kalksyms. However, perf tries that only when libdw returns
-EBADF.
This patch gives it another chance to utilize symbol table, even if
libdw returns an error code other than -EBADF.
After applying this patch:
# perf probe -nv --add sys_epoll_pwait
probe-definition(0): sys_epoll_pwait
symbol:sys_epoll_pwait file:(null) line:0 offset:0 return:0 lazy:(null)
0 arguments
Looking at the vmlinux_path (7 entries long)
Using /lib/modules/4.2.0-rc1+/build/vmlinux for symbols
Open Debuginfo file: /lib/modules/4.2.0-rc1+/build/vmlinux
Try to find probe point from debuginfo.
Symbol sys_epoll_pwait address found : ffffffff8122bd40
Matched function: SyS_epoll_pwait
Failed to get call frame on 0xffffffff8122bd40
An error occurred in debuginfo analysis (-2).
Trying to use symbols.
Opening /sys/kernel/debug/tracing/kprobe_events write=1
Added new event:
Writing event: p:probe/sys_epoll_pwait _text+2276672
probe:sys_epoll_pwait (on sys_epoll_pwait)
You can now use it in all perf tools, such as:
perf record -e probe:sys_epoll_pwait -aR sleep 1
Although libdw returns an error (Failed to get call frame), perf tries
symbol table and finally gets correct address.
Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
Cc: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Cc: Brendan Gregg <brendan.d.gregg@xxxxxxxxx>
Cc: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: He Kuang <hekuang@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Kaixu Xia <xiakaixu@xxxxxxxxxx>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Zefan Li <lizefan@xxxxxxxxxx>
Cc: pi3orama@xxxxxxx
Link:
http://lkml.kernel.org/r/1440151770-129878-2-git-send-email-wangnan0@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 66671d001aeb525b9101e0ccb9062627539de555
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Tue Aug 18 15:19:50 2015 -0300
perf tools: Initialize reference counts in map__clone()
Map clone was written before we introduced reference counts for
maps and dsos, so all that was needed was just a copy and then we
would insert it into the new map_groups instance.
Fix it by, after copying, initializing the map->refcnt, grabbing
a struct dso refcount and resetting pointers that may be used
to determine if a map, when deleted, is in a rb_tree.
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-pd4mr80o5b9gvk50iineacec@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 5be9fc23cdb42e1d383ecc8eae8a8ff70a752708
Author: Benjamin Cama <benoar@xxxxxxxx>
Date: Tue Jul 14 16:25:58 2015 +0200
ARM: orion5x: fix legacy orion5x IRQ numbers
Since v3.18, attempts to deliver IRQ0 are rejected, breaking orion5x.
Fix this by increasing all interrupts by one, as did 5d6bed2a9c8b for
dove. Also, force MULTI_IRQ_HANDLER for all orion platforms (including
dove) as the specific handler is needed to shift back IRQ numbers by
one.
[gregory.clement@xxxxxxxxxxxxxxxxxx]: moved the select
MULTI_IRQ_HANDLER from PLAT_ORION_LEGACY to ARCH_ORION5X as it broke
the build for dove.
Fixes: a71b092a9c68 ("ARM: Convert handle_IRQ to use __handle_domain_irq")
Signed-off-by: Benjamin Cama <benoar@xxxxxxxx>
Signed-off-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Tested-by: Detlef Vollmann <dv@xxxxxxxxxxx>
commit 4b715d24f4f14731c7b553cbb8604fe865cb8d3c
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:45 2015 +0300
perf tools: Add example call-graph script
Add a script to produce a call-graph from data exported to a postgresql
database and derived from a processor trace event like intel_pt or
intel_bts.
Refer to comments in the scripts call-graph-from-postgresql.py and
export-to-postgresql.py for more details on how to set up the environment,
install the required packages, etc.
Committer note:
From the scripts, for convenience while reading 'git log':
An example of using this script with Intel PT:
$ perf record -e intel_pt//u ls
$ perf script -s
~/libexec/perf-core/scripts/python/export-to-postgresql.py pt_example branches
calls
2015-05-29 12:49:23.464364 Creating database...
2015-05-29 12:49:26.281717 Writing to intermediate files...
2015-05-29 12:49:27.190383 Copying to database...
2015-05-29 12:49:28.140451 Removing intermediate files...
2015-05-29 12:49:28.147451 Adding primary keys
2015-05-29 12:49:28.655683 Adding foreign keys
2015-05-29 12:49:29.365350 Done
$ python tools/perf/scripts/python/call-graph-from-postgresql.py
pt_example
# The result is a GUI window with a tree representing a
context-sensitive
# call-graph. Expanding a couple of levels of the tree and adjusting
column
# widths to suit will display something like:
Call Graph: pt_example
Call Path |Object
|Count|Time(ns)|Time(%)|Branch Count|Branch Count(%)
v- ls
v- 2638:2638
v- _start ld-2.19.so 1 10074071 100.0
211135 100.0
|- unknown unknown 1 13198 0.1
1 0.0
>- _dl_start ld-2.19.so 1 1400980 13.9
19637 9.3
>- _d_linit_internal ld-2.19.so 1 448152 4.4
11094 5.3
v-__libc_start_main@plt ls 1 8211741 81.5
180397 85.4
>- _dl_fixup ld-2.19.so 1 7607 0.1
108 0.1
>- __cxa_atexit libc-2.19.so 1 11737 0.1
10 0.0
>- __libc_csu_init ls 1 10354 0.1
10 0.0
|- _setjmp libc-2.19.so 1 0 0.0
4 0.0
v- main ls 1 8182043 99.6
180254 99.9
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-11-git-send-email-adrian.hunter@xxxxxxxxx
[ Added 'python-pyside qt-postgresql' to the yum cmdline installing
required packages ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit b68c3161430a4c7c0a001e658188bfea6a2fe5bd
Author: Pali Rohár <pali.rohar@xxxxxxxxx>
Date: Tue Aug 11 13:22:19 2015 +0200
bq2415x_charger: Allow to load and use driver even if notify device is
not registered yet
Driver bq2415x_charger works also without notify power supply device for
charger detection. But when charger detection is specified in DT, then
bq2415x_charger refused to loaded with -EPROBE_DEFER.
This patch rewrites code so that notify device for charger detection is
checked when power supply event is received and not when registering power
supply device. So this patch allows to use bq2415x_charger driver also
when
kernel is compiled without driver for notify power supply device.
Now after this patch scheduled workqueue is called after
INIT_DELAYED_WORK,
so it also fix problem when scheduled workqueue was called before init.
Signed-off-by: Pali Rohár <pali.rohar@xxxxxxxxx>
Signed-off-by: Sebastian Reichel <sre@xxxxxxxxxx>
commit 60b88d8743892218f82048a3df624f5fc5460843
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:44 2015 +0300
perf tools: Put itrace options into an asciidoc include
perf script, report and inject all have the same itrace options. Put
them into an asciidoc include file.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-10-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit d0170af7004dce9cd90b749842c37e379476cbc8
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:43 2015 +0300
perf tools: Add Intel BTS support
Intel BTS support fits within the new auxtrace infrastructure. Recording
is
supporting by identifying the Intel BTS PMU, parsing options and setting
up
events.
Decoding is supported by queuing up trace data by thread and then decoding
synchronously delivering synthesized event samples into the session
processing
for tools to consume.
Committer note:
E.g:
[root@felicio ~]# perf record --per-thread -e intel_bts// ls
anaconda-ks.cfg apctest.output bin
kernel-rt-3.10.0-298.rt56.171.el7.x86_64.rpm libexec lock_page.bpf.c
perf.data perf.data.old
[ perf record: Woken up 3 times to write data ]
[ perf record: Captured and wrote 4.367 MB perf.data ]
[root@felicio ~]# perf evlist -v
intel_bts//: type: 6, size: 112, { sample_period, sample_freq }: 1,
sample_type: IP|TID|IDENTIFIER, read_format: ID, disabled: 1, enable_on_exec:
1, sample_id_all: 1, exclude_guest: 1
dummy:u: type: 1, size: 112, config: 0x9, { sample_period, sample_freq
}: 1, sample_type: IP|TID|IDENTIFIER, read_format: ID, disabled: 1,
exclude_kernel: 1, exclude_hv: 1, mmap: 1, comm: 1, enable_on_exec: 1, task: 1,
sample_id_all: 1, mmap2: 1, comm_exec: 1
[root@felicio ~]# perf script # the navigate in the pager to some
interesting place:
ls 1843 1 branches: ffffffff810a60cb flush_signal_handlers
([kernel.kallsyms]) => ffffffff8121a522 setup_new_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8121a529 setup_new_exec
([kernel.kallsyms]) => ffffffff8122fa30 do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122fa5d do_close_on_exec
([kernel.kallsyms]) => ffffffff81767ae0 _raw_spin_lock ([kernel.kallsyms])
ls 1843 1 branches: ffffffff81767af4 _raw_spin_lock
([kernel.kallsyms]) => ffffffff8122fa62 do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122fa8e do_close_on_exec
([kernel.kallsyms]) => ffffffff8122faf0 do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122faf7 do_close_on_exec
([kernel.kallsyms]) => ffffffff8122fa8b do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122fa8e do_close_on_exec
([kernel.kallsyms]) => ffffffff8122faf0 do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122faf7 do_close_on_exec
([kernel.kallsyms]) => ffffffff8122fa8b do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122fa8e do_close_on_exec
([kernel.kallsyms]) => ffffffff8122faf0 do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122faf7 do_close_on_exec
([kernel.kallsyms]) => ffffffff8122fa8b do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122fa8e do_close_on_exec
([kernel.kallsyms]) => ffffffff8122faf0 do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122faf7 do_close_on_exec
([kernel.kallsyms]) => ffffffff8122fa8b do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122fa8e do_close_on_exec
([kernel.kallsyms]) => ffffffff8122faf0 do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122faf7 do_close_on_exec
([kernel.kallsyms]) => ffffffff8122fa8b do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122fa8e do_close_on_exec
([kernel.kallsyms]) => ffffffff8122faf0 do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122faf7 do_close_on_exec
([kernel.kallsyms]) => ffffffff8122fa8b do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122fac9 do_close_on_exec
([kernel.kallsyms]) => ffffffff8122fad2 do_close_on_exec ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8122fadd do_close_on_exec
([kernel.kallsyms]) => ffffffff8120fc80 filp_close ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8120fcaf filp_close ([kernel.kallsyms])
=> ffffffff8120fcb6 filp_close ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8120fcc2 filp_close ([kernel.kallsyms])
=> ffffffff812547f0 dnotify_flush ([kernel.kallsyms])
ls 1843 1 branches: ffffffff81254823 dnotify_flush
([kernel.kallsyms]) => ffffffff8120fcc7 filp_close ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8120fccd filp_close ([kernel.kallsyms])
=> ffffffff81261790 locks_remove_posix ([kernel.kallsyms])
ls 1843 1 branches: ffffffff812617a3 locks_remove_posix
([kernel.kallsyms]) => ffffffff812617b9 locks_remove_posix ([kernel.kallsyms])
ls 1843 1 branches: ffffffff812617b9 locks_remove_posix
([kernel.kallsyms]) => ffffffff8120fcd2 filp_close ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8120fcd5 filp_close ([kernel.kallsyms])
=> ffffffff812142c0 fput ([kernel.kallsyms])
ls 1843 1 branches: ffffffff812142d6 fput ([kernel.kallsyms]) =>
ffffffff812142df fput ([kernel.kallsyms])
ls 1843 1 branches: ffffffff8121430c fput ([kernel.kallsyms]) =>
ffffffff810b6580 task_work_add ([kernel.kallsyms])
ls 1843 1 branches: ffffffff810b65ad task_work_add
([kernel.kallsyms]) => ffffffff810b65b1 task_work_add ([kernel.kallsyms])
ls 1843 1 branches: ffffffff810b65c1 task_work_add
([kernel.kallsyms]) => ffffffff810bc710 kick_process ([kernel.kallsyms])
ls 1843 1 branches: ffffffff810bc725 kick_process ([kernel.kallsyms])
=> ffffffff810bc742 kick_process ([kernel.kallsyms])
ls 1843 1 branches: ffffffff810bc742 kick_process ([kernel.kallsyms])
=> ffffffff810b65c6 task_work_add ([kernel.kallsyms])
ls 1843 1 branches: ffffffff810b65c9 task_work_add
([kernel.kallsyms]) => ffffffff81214311 fput ([kernel.kallsyms])
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-9-git-send-email-adrian.hunter@xxxxxxxxx
[ Merged sample->time fix for bug found after first round of testing on
slightly older kernel ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit d4421c54c45f643731c92daa8e268ce74dcdf5a2
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 20 17:02:40 2015 +0800
crypto: hash - Add AHASH_REQUEST_ON_STACK
This patch adds the helper AHASH_REQUEST_ON_STACK for those users
of ahash that are synchronous only.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 12773d932fc22c60e0d5a20660d564542fab811b
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 20 15:21:46 2015 +0800
crypto: testmgr - Use new skcipher interface
This patch replaces uses of blkcipher and ablkcipher with the
new skcipher interface.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 7a7ffe65c8c5fbf272b132d8980b2511d5e5fc98
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 20 15:21:45 2015 +0800
crypto: skcipher - Add top-level skcipher interface
This patch introduces the crypto skcipher interface which aims
to replace both blkcipher and ablkcipher.
It's very similar to the existing ablkcipher interface. The
main difference is the removal of the givcrypt interface. In
order to make the transition easier for blkcipher users, there
is a helper SKCIPHER_REQUEST_ON_STACK which can be used to place
a request on the stack for synchronous transforms.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 412fcb6cebd758d080cacd5a41a0cbc656ea5fce
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Wed Aug 19 15:57:09 2015 +0100
arm64: entry: always restore x0 from the stack on syscall return
We have a micro-optimisation on the fast syscall return path where we
take care to keep x0 live with the return value from the syscall so that
we can avoid restoring it from the stack. The benefit of doing this is
fairly suspect, since we will be restoring x1 from the stack anyway
(which lives adjacent in the pt_regs structure) and the only additional
cost is saving x0 back to pt_regs after the syscall handler, which could
be seen as a poor man's prefetch.
More importantly, this causes issues with the context tracking code.
The ct_user_enter macro ends up branching into C code, which is free to
use x0 as a scratch register and consequently leads to us returning junk
back to userspace as the syscall return value. Rather than special case
the context-tracking code, this patch removes the questionable
optimisation entirely.
Cc: <stable@xxxxxxxxxxxxxxx>
Cc: Larry Bassel <larry.bassel@xxxxxxxxxx>
Cc: Kevin Hilman <khilman@xxxxxxxxxx>
Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Reported-by: Hanjun Guo <hanjun.guo@xxxxxxxxxx>
Tested-by: Hanjun Guo <hanjun.guo@xxxxxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit 6f56e9cf581c6cedcaea3eb69444b169867ccf3d
Author: Dean Nelson <dnelson@xxxxxxxxxx>
Date: Thu Aug 20 11:16:32 2015 -0400
tools lib traceevent: Add checks for returned EVENT_ERROR type
Running the following perf-stat command on an arm64 system produces the
following result...
[root@aarch64 ~]# perf stat -e kmem:mm_page_alloc -a sleep 1
Warning: [kmem:mm_page_alloc] function sizeof not defined
Warning: Error: expected type 4 but read 0
Segmentation fault
[root@aarch64 ~]#
The second warning was a result of the first warning not stopping
processing after it detected the issue.
That is, code that found the issue reported the first problem, but
because it did not exit out of the functions smoothly, it caused the
other warning to appear and not only that, it later caused the SIGSEGV.
Signed-off-by: Dean Nelson <dnelson@xxxxxxxxxx>
Reviewed-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
Acked-by: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/20150820151632.13927.13791.email-sent-by-dnelson@teal
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 81cd60cc29a9c3e92ad6ca167a4764b2c2d2fc04
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Thu Aug 20 11:51:32 2015 +0300
perf tools: Fix Intel PT timestamp handling
Events that don't sample the timestamp have a timestamp value of -1.
Intel PT processing wasn't taking that into account.
This is particularly noticeable with Intel BTS because timestamps are
not requested by default.
Then, if the conversion of -1 to TSC results in a small number, the
processing is unaffected.
However if the conversion results in a big number, then the data is
processed prematurely before relevant sideband data like mmap events,
which in turn results in samples with unknown dsos.
Commiter note:
Since BTS wasn't upstream, I split the patch to fold the BTS part with
the patch introducing it, to avoid having this bug in the commit
history. PT was already upstream, so this patch contains that part.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440060692-5585-1-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 133de940435493266acd4100b0dae8ba7eaa7c71
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Thu Aug 20 13:07:40 2015 +0300
perf tools: /proc/kcore requires CAP_SYS_RAWIO message too noisy
The "/proc/kcore requires CAP_SYS_RAWIO" message comes up all the time
for 'perf script' if vmlinux is not found and the user isn't root, even
when the kernel is not being traced and even though the message is only
really relevant for annotation.
Change it to pr_debug and instead put a note in the message displayed if
annotation is not possible.
Also, the file being accessed might not be /proc/kcore. Tools can be
directed to a different location using the --kallsyms option in which
case kcore is expected to be in the same directory. Adjust the message
so it is not misleading in that case.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Li Zhang <zhlcindy@xxxxxxxxxxxxxxxxxx>
Cc: Sukadev Bhattiprolu <sukadev@xxxxxxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440065260-8802-1-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 05169df5561363ff04ac04d6aad0be3b45c26ac1
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Thu Aug 20 11:26:45 2015 +0300
perf script: Fix segfault using --show-mmap-events
Patch "perf script: Don't assume evsel position of tracking events"
changed 'perf script' to use 'perf_evlist__id2evsel()'. That results
in a segfault if there is more than 1 event and there are
synthesized mmap events e.g.
$ perf record -e cycles,instructions -p$$ sleep 1
$ perf script --show-mmap-events
Segmentation fault (core dumped)
That happens because these synthesized events have an 'id' of zero
which does not match any 'evsel'.
Currently, these synthesized events use the sample type of the first
evsel.
Change 'perf_evlist__id2evsel()' to reflect that which also makes
it consistent with 'perf_evlist__event2evsel()'.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Fixes: 06b234ec26fd ("perf script: Don't assume evsel position of
tracking events")
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1440059205-1765-1-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit fa4f18b4f402d3654415935511d8e0bb51a102b7
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Fri Aug 21 15:05:20 2015 +0200
ALSA: hda - Refresh widgets sysfs at probing Haswell+ HDMI codecs
Intel Haswell (and later) codec refreshes the widgets tree to expose
the whole widget nodes at probing. However, this refresh was missing
for sysfs tree.
This patch adds the missing piece, as we have now a proper API.
Reported-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 1fb6755f16872ad256c18cce2830f9087502dffd
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Aug 21 09:42:10 2015 +0100
ARM: domains: remove DOMAIN_TABLE
DOMAIN_TABLE is not used; in any case, it aliases to the kernel domain.
Remove this definition.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit a02d8dfd54cdf3b1b0464ccc2c1c4afe2c003a35
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Aug 21 09:38:31 2015 +0100
ARM: domains: keep vectors in separate domain
Keep the machine vectors in its own domain to avoid software based
user access control from making the vector code inaccessible, and
thereby deadlocking the machine.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 3c2aed5b28819564e1a07b4686bd89802bcc4d6b
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Aug 21 09:30:16 2015 +0100
ARM: domains: get rid of manager mode for user domain
Since we switched to early trap initialisation in 94e5a85b3be0
("ARM: earlier initialization of vectors page") we haven't been writing
directly to the vectors page, and so there's no need for this domain
to be in manager mode. Switch it to client mode.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 0171356a7708af01ad3224702b7f0aaa5b7a1399
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Aug 21 09:23:26 2015 +0100
ARM: domains: move initial domain setting value to asm/domains.h
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 8e798706f7e9cd7f096aa194de90269dde83773e
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Wed Aug 19 22:36:24 2015 +0100
ARM: domains: provide domain_mask()
Provide a macro to generate the mask for a domain, rather than using
domain_val(, DOMAIN_MANAGER) which won't work when CPU_USE_DOMAINS
is turned off.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 1eef5d2f1b461c120bcd82077edee5ec706ac53b
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Wed Aug 19 21:23:48 2015 +0100
ARM: domains: switch to keeping domain value in register
Rather than modifying both the domain access control register and our
per-thread copy, modify only the domain access control register, and
use the per-thread copy to save and restore the register over context
switches. We can also avoid the explicit initialisation of the
init thread_info structure.
This allows us to avoid needing to gain access to the thread information
at the uaccess control sites.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 9e46aedab389122948144713ee5b8bae2658fb1b
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Fri Aug 21 14:25:34 2015 +0300
ALSA: hdsp: silence and underflow warning
I believe this probably cannot happen, as the code suggests. There
would have to be an kcontrol->index.id which was zero, otherwise this
would be prevented in snd_ctl_find_id(). But snd_BUG_ON() is just a
WARN() or a no-op so static checkers complain that we keep on going with
a negative offset. Let's just handle the error as well as printing
a warning.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 18dfd79d92e5292611ac4944a67bd837dd7632c9
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Fri Aug 21 15:47:43 2015 +0530
ALSA: hdac: add snd_hdac_refresh_widget_sysfs()
Some codecs like Intel HDMI by default do not show up all the pins, they
have to be manually enabled, so we need to refresh the codec widgets and
then recreate the sysfs tree. So add new API
snd_hdac_refresh_widget_sysfs()
to do this. It should be be used by codec driver after sending magic verbs
to codec
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit d51783c15f7548229e49331d254a738be8ac865c
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Fri Aug 21 15:47:42 2015 +0530
ALSA: hdac: add extended device driver registration
This adds new extended driver objects and API for registering the
extended devices.
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit a512f5611646ab12f3f8fea2a3d2582adabe5157
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Fri Aug 21 15:47:41 2015 +0530
ALSA: hdac: add hdac extended device
This adds based hdac extended device object which will be used by
ASoC HDAC codecs
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit ee2d51b3d4c940cd34dbc83eb10bb24205c56ebf
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Fri Aug 21 15:47:40 2015 +0530
ALSA: hdac: Add API for removing hdac extended device
The HDAC extended device objects are created by HDAC extended bus on
probe.
When controller is removed they should be removed as well, so add API
snd_hdac_ext_bus_device_remove for this
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 005ce70b9448ed86c9a12e6504f1f9896a826e3d
Author: Rameshwar Prasad Sahu <rsahu@xxxxxxx>
Date: Fri Aug 21 14:33:34 2015 +0530
dmaengine: xgene-dma: Fix the lock to allow client for further submission
of requests
This patch provides the fix in the cleanup routing such that client can
perform
further submission by releasing the lock before calling client's callback
function.
Signed-off-by: Rameshwar Prasad Sahu <rsahu@xxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit fd0881a24ac9ab2be6c052d30ca779597c0bd3bc
Author: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Date: Fri Aug 21 15:06:43 2015 +0530
ARC: Eliminate some ARCv2 specific code for ARCompact build
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 64f1d0ffbaaccf2ddaf02d3ebf67bf9044cb4db4
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Thu Aug 20 08:44:14 2015 -0700
dmaengine: ioatdma: fix coccinelle warning
Simplifying the end return. This existed in the original code but was
flagged when refactoring of the code made it appear it's new.
coccinelle warnings: (new ones prefixed by >>)
>> drivers/dma/ioat/init.c:1018:1-3: WARNING: end returns can be simpified
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit aaecdebc5855b77e2120d11c750630a3e60ffb10
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Thu Aug 20 08:44:09 2015 -0700
dmaengine: ioatdma: fix zero day warning on incompatible pointer type
The 32bit build is creating this warning. Since we don't expect anyone
actually use this on 32bit, restrict ioatdma to be built only on x86_64.
This issue has long existed and only reason it's surfacing due to code
refactoring.
drivers/dma/ioat/dma.c: In function 'ioat_timer_event':
>> drivers/dma/ioat/dma.c:870:39: warning: passing argument 2 of
'ioat_cleanup_preamble' from incompatible pointer type
if (ioat_cleanup_preamble(ioat_chan, &phys_complete))
^
drivers/dma/ioat/dma.c:577:13: note: expected 'u64 *' but argument is
of type 'dma_addr_t *'
static bool ioat_cleanup_preamble(struct ioatdma_chan *ioat_chan,
^
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 36d4e87b497d9cb3bf8e1bb2f803c7aa41dfb463
Author: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Date: Wed Aug 19 03:19:47 2015 -0700
drm/vmwgfx: Remove duplicate ttm_bo_device_release
No need to try to call ttm_bo_device_release twice during module unload.
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
commit 772269f970129a7b9b50d68684b2568a41850111
Author: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Date: Tue Aug 18 09:07:38 2015 -0700
drm/vmwgfx: Fix a circular locking dependency in the fbdev code
When a user-space process writes directly to the fbdev framebuffer,
we hit a circular locking dependency. Fix this by introducing a local
delayed work callback so that the defio lock can be released before
calling into the modesetting code for a dirty update.
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
commit 397d425dc26da728396e66d392d5dcb8dac30c37
Author: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
Date: Sat Aug 15 20:27:13 2015 -0500
vfs: Test for and handle paths that are unreachable from their mnt_root
In rare cases a directory can be renamed out from under a bind mount.
In those cases without special handling it becomes possible to walk up
the directory tree to the root dentry of the filesystem and down
from the root dentry to every other file or directory on the filesystem.
Like division by zero .. from an unconnected path can not be given
a useful semantic as there is no predicting at which path component
the code will realize it is unconnected. We certainly can not match
the current behavior as the current behavior is a security hole.
Therefore when encounting .. when following an unconnected path
return -ENOENT.
- Add a function path_connected to verify path->dentry is reachable
from path->mnt.mnt_root. AKA to validate that rename did not do
something nasty to the bind mount.
To avoid races path_connected must be called after following a path
component to it's next path component.
Signed-off-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
commit 88c9281a9fba67636ab26c1fd6afbc78a632374f
Author: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
Date: Wed Aug 19 09:54:24 2015 -0700
x86/hyperv: Mark the Hyper-V TSC as unstable
The Hyper-V top-level functional specification states, that
"algorithms should be resilient to sudden jumps forward or
backward in the TSC value", this means that we should consider
TSC as unstable. In some cases tsc tests are able to detect the
instability, it was detected in 543 out of 646 boots in my
testing:
Measured 6277 cycles TSC warp between CPUs, turning off TSC clock.
tsc: Marking TSC unstable due to check_tsc_sync_source failed
This is, however, just a heuristic. On Hyper-V platform there
are two good clocksources: MSR-based hyperv_clocksource and
recently introduced TSC page.
Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
Cc: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
Cc: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1440003264-9949-1-git-send-email-vkuznets@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 99770737ca7e3ebc14e66460a69b7032de9421e1
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Fri Aug 21 08:33:53 2015 +0200
x86/asm/tsc: Add rdtscll() merge helper
Some in-flight code makes use of the old rdtscll() (now removed), provide
a wrapper
for a kernel cycle to smooth the transition to rdtsc().
( We use the safest variant, rdtsc_ordered(), which has barriers - this
adds another
incentive to remove the wrapper in the future. )
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Brian Gerst <brgerst@xxxxxxxxx>
Cc: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Huang Rui <ray.huang@xxxxxxx>
Cc: John Stultz <john.stultz@xxxxxxxxxx>
Cc: Len Brown <lenb@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: kvm ML <kvm@xxxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/dddbf98a2af53312e9aa73a5a2b1622fe5d6f52b.1434501121.git.luto@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit a03e283bf5c3d4851b4998122196ce9f849e6dfb
Author: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
Date: Sat Aug 15 13:36:41 2015 -0500
dcache: Reduce the scope of i_lock in d_splice_alias
i_lock is only needed until __d_find_any_alias calls dget on the alias
dentry. After that the reference to new ensures that dentry_kill and
d_delete will not remove the inode from the dentry, and remove the
dentry from the inode->d_entry list.
The inode i_lock came to be held over the the __d_move calls in
d_splice_alias through a series of introduction of locks with
increasing smaller scope. First it was the dcache_lock, then
it was the dcache_inode_lock, and finally inode->i_lock.
Furthermore inode->i_lock is not held over any other calls
to d_move or __d_move so it can not provide any meaningful
rename protection.
Signed-off-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
commit cde93be45a8a90d8c264c776fab63487b5038a65
Author: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
Date: Sat Aug 15 13:36:12 2015 -0500
dcache: Handle escaped paths in prepend_path
A rename can result in a dentry that by walking up d_parent
will never reach it's mnt_root. For lack of a better term
I call this an escaped path.
prepend_path is called by four different functions __d_path,
d_absolute_path, d_path, and getcwd.
__d_path only wants to see paths are connected to the root it passes
in. So __d_path needs prepend_path to return an error.
d_absolute_path similarly wants to see paths that are connected to
some root. Escaped paths are not connected to any mnt_root so
d_absolute_path needs prepend_path to return an error greater
than 1. So escaped paths will be treated like paths on lazily
unmounted mounts.
getcwd needs to prepend "(unreachable)" so getcwd also needs
prepend_path to return an error.
d_path is the interesting hold out. d_path just wants to print
something, and does not care about the weird cases. Which raises
the question what should be printed?
Given that <escaped_path>/<anything> should result in -ENOENT I
believe it is desirable for escaped paths to be printed as empty
paths. As there are not really any meaninful path components when
considered from the perspective of a mount tree.
So tweak prepend_path to return an empty path with an new error
code of 3 when it encounters an escaped path.
Signed-off-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
commit 6f179af88f60b32c2855e7f3e16ea8e336a7043f
Author: Hugh Dickins <hughd@xxxxxxxxxx>
Date: Mon Aug 17 17:34:27 2015 -0700
mm: fix potential data race in SyS_swapon
While running KernelThreadSanitizer (ktsan) on upstream kernel with
trinity, we got a few reports from SyS_swapon, here is one of them:
Read of size 8 by thread T307 (K7621):
[< inlined >] SyS_swapon+0x3c0/0x1850 SYSC_swapon
mm/swapfile.c:2395
[<ffffffff812242c0>] SyS_swapon+0x3c0/0x1850 mm/swapfile.c:2345
[<ffffffff81e97c8a>] ia32_do_call+0x1b/0x25
Looks like the swap_lock should be taken when iterating through the
swap_info array on lines 2392 - 2401: q->swap_file may be reset to
NULL by another thread before it is dereferenced for f_mapping.
But why is that iteration needed at all? Doesn't the claim_swapfile()
which follows do all that is needed to check for a duplicate entry -
FMODE_EXCL on a bdev, testing IS_SWAPFILE under i_mutex on a regfile?
Well, not quite: bd_may_claim() allows the same "holder" to claim the
bdev again, so we do need to use a different holder than "sys_swapon";
and we should not replace appropriate -EBUSY by inappropriate -EINVAL.
Index i was reused in a cpu loop further down: renamed cpu there.
Reported-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx>
Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx>
Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
commit 061f98e959ea025a5d87c3e089d59ec2ec5f5d6d
Merge: b5f5914 ac05fbb
Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 21 02:31:20 2015 -0400
Merge branch 'superblock-scaling' of
git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next into for-next
Conflicts:
include/linux/fs.h
commit 82819ffb42fb45197bacf3223191deca31d3eb91
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Fri Aug 21 08:14:46 2015 +0200
perf/x86/msr: Fix the MSR driver build
The new MSR PMU driver made use of rdtsc() which does not exist (yet) in
this tree:
arch/x86/kernel/cpu/perf_event_msr.c:91:3: error: implicit declaration
of function 'rdtsc'
Use the old rdtscll() primitive for now.
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit b06ece93cf96b430587e77e01053b2b8f99cb750
Author: Krzysztof Kozlowski <k.kozlowski.k@xxxxxxxxx>
Date: Tue Jul 7 22:00:47 2015 +0900
video: fbdev: s3c-fb: Constify platform_device_id
The platform_device_id is not modified by the driver and core uses it as
const.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@xxxxxxxxx>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
commit a9e01ed986aa80d3092134428f453072752da223
Merge: 08617f4 81bf1c6
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 20 22:18:45 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next
Pablo Neira Ayuso says:
====================
Netfilter updates for net-next
This is second pull request includes the conflict resolution patch that
resulted from the updates that we got for the conntrack template through
kmalloc. No changes with regards to the previously sent 15 patches.
The following patchset contains Netfilter updates for your net-next tree,
they
are:
1) Rework the existing nf_tables counter expression to make it per-cpu.
2) Prepare and factor out common packet duplication code from the TEE
target so
it can be reused from the new dup expression.
3) Add the new dup expression for the nf_tables IPv4 and IPv6 families.
4) Convert the nf_tables limit expression to use a token-based approach
with
64-bits precision.
5) Enhance the nf_tables limit expression to support limiting at packet
byte.
This comes after several preparation patches.
6) Add a burst parameter to indicate the amount of packets or bytes that
can
exceed the limiting.
7) Add netns support to nfacct, from Andreas Schultz.
8) Pass the nf_conn_zone structure instead of the zone ID in nf_tables to
allow
accessing more zone specific information, from Daniel Borkmann.
9) Allow to define zone per-direction to support netns containers with
overlapping network addressing, also from Daniel.
10) Extend the CT target to allow setting the zone based on the skb->mark
as a
way to support simple mappings from iptables, also from Daniel.
11) Make the nf_tables payload expression aware of the fact that VLAN
offload
may have removed a vlan header, from Florian Westphal.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 81bf1c64e7fe08f956c74fe2b0f1fa6eb163bd91
Merge: 8cfd23e 938049e
Author: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
Date: Fri Aug 21 01:10:19 2015 +0200
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Resolve conflicts with conntrack template fixes.
Conflicts:
net/netfilter/nf_conntrack_core.c
net/netfilter/nf_synproxy_core.c
net/netfilter/xt_CT.c
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit 44790462d041d3037d60b3bf88f30837a72006ff
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Tue Jul 14 11:33:31 2015 +1000
drm/dp/mst: dump branch OUI in debugfs (v2)
It appears some MST docks are worse than other, but the only
way to know is to see the sw revisions in here, so dump
the branch OUI so we can look at the sw revision.
v2: Thierry made me feel guilty, so I parsed the branch
OUI.
Reviewed-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx>
commit ba5d183bced6cb60b2838a0bf04665c1c1e4bff1
Merge: ff2d920 258d9bc
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 20 18:59:45 2015 -0700
Merge tag 'tegra-for-4.3-defconfig' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/defconfig
ARM: tegra: Default configuration updates for v4.3-rc1
Enable the GK20A GPU (via the Nouveau driver) and CPU frequency scaling
on Tegra124.
* tag 'tegra-for-4.3-defconfig' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
ARM: tegra: Update multi_v7_defconfig
ARM: tegra: Update default configuration
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 21815b9a24c6e6d3488703609561bd2892d3d9f3
Merge: 420f262 588c43a
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 20 18:50:17 2015 -0700
Merge tag 'tegra-for-4.3-memory' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/drivers
ARM: tegra: Memory controller updates for v4.3-rc1
Adds support for Tegra210, which allows the SMMU to be used on this new
SoC generation.
* tag 'tegra-for-4.3-memory' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
memory: tegra: Add Tegra210 support
memory: tegra: Add support for a variable-size client ID bitfield
memory: tegra: Expose supported rates via debugfs
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 420f2629fa041ed92f7e687b3bc8020d80b209bb
Merge: 5378e46 9eb15db
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 20 18:47:04 2015 -0700
Merge tag 'tegra-for-4.3-cpufreq' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/drivers
ARM: tegra: CPU frequency scaling for v4.3-rc1
This adds CPU frequency scaling support for Tegra124.
* tag 'tegra-for-4.3-cpufreq' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
cpufreq: Add cpufreq driver for Tegra124
cpufreq: tegra: Rename tegra-cpufreq to tegra20-cpufreq
cpufreq: tegra124: Add device tree bindings
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 5378e4665f226e3b5b460793397eff32b4de9daa
Merge: bd90f11 1ec0e11
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 20 18:43:15 2015 -0700
Merge tag 'tegra-for-4.3-soc' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/drivers
ARM: tegra: Core SoC changes for v4.3-rc1
This contains a bit more of Tegra210 support, which is shaping up pretty
nicely. Other than that there are a couple of cleanup patches here, too.
* tag 'tegra-for-4.3-soc' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
ARM: tegra: cpuidle: implement cpuidle_state.enter_freeze()
ARM: tegra: Disable cpuidle if PSCI is available
soc/tegra: pmc: Use existing pclk reference
soc/tegra: pmc: Remove unnecessary return statement
soc: tegra: Remove redundant $(CONFIG_ARCH_TEGRA) in Makefile
soc/tegra: fuse: Add spare bit offset for Tegra210
soc/tegra: fuse: Add spare bit offset for Tegra124
soc/tegra: fuse: Add spare bit offset for Tegra114
soc/tegra: fuse: Rename core_* to soc_*
soc/tegra: fuse: Add Tegra210 support
soc/tegra: fuse: Unify Tegra20 and Tegra30 drivers
soc/tegra: fuse: Restrict legacy code to 32-bit ARM
soc/tegra: pmc: Add Tegra210 support
soc/tegra: pmc: Restrict legacy code to 32-bit ARM
soc/tegra: pmc: Avoid usage of uninitialized variable
soc/tegra: Add Tegra210 support
soc/tegra: Add Tegra132 support
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 97a2482d9891f0ad6a3710e0b6ae9949c140c7f1
Merge: 16478b6 5cf4af3
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 20 18:41:42 2015 -0700
Merge tag 'tegra-for-4.3-cleanup' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/cleanup
ARM: tegra: Cleanup patches for v4.3-rc1
Just a couple of trivial cleanups to make the HDA controller driver code
match the device tree binding.
* tag 'tegra-for-4.3-cleanup' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
ALSA: hda/tegra: Order clock and reset names consistently
ALSA: hda/tegra - Fix hda2codec_2x clock and reset names
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 7c4ecc72d82f2908b9fe70dbd49c1cd35738f995
Merge: deb1436 2b347c6
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 20 18:39:57 2015 -0700
Merge tag 'samsung-defconfig-new' of
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/late
Samsung defconfig updates for v4.3
- for exynos_defconfig
: enable SND_SOC_ODROIDX2 and SND_SIMPLE_CARD for
Odroid-XU3 to use max98090 audio codec
: enalbe SENSORS_NTC_THERMISTOR for Peach boards
: enable cpufreq-dt driver with ONDEMAND governor
for Exynos SoCs 3250, 4210, 4212, 4412 and 5250
- for multi_v7_defconfig:
: remove SAMSUNG_USB2PHY and SAMSUNG_USB3PHY are not used now
: enable SENSORS_NTC_THERMISTOR and EXYNOS_ADC for Peach boards
: enable REGULATOR_MAX77802 for Peach boards
* tag 'samsung-defconfig-new' of
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
ARM: exynos_defconfig: Enable cpufreq-dt driver
ARM: multi_v7_defconfig: Enable max77802 regulator
ARM: exynos_defconfig: Enable NTC Thermistors support
ARM: multi_v7_defconfig: Enable NTC Thermistors support
ARM: multi_v7_defconfig: Remove old Samsung USB PHY configs
ARM: exynos_defconfig: Enable CONFIG_SND_SOC_ODROIDX2 for Odroid-XU3
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit deb14362a5268a094efb0534f2999bc8ea97ce2f
Merge: 418012f 5e3863a
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 20 18:38:39 2015 -0700
Merge tag 'samsung-late-cpufreq-driver' of
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/late
Samsung cpufreq driver updates for v4.3
- remove exynos4 SoCs and exynos5250 specific cpufreq driver support
and unselectable rule for arm-exynos-cpufreq.o because of supporting
generic cpufreq driver for the exynos SoCs
* Note this is depending on tags/samsung-clk-driver, tags/samsung-soc
and tags/samsung-late-dt
* tag 'samsung-late-cpufreq-driver' of
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
cpufreq: exynos: Remove unselectable rule for arm-exynos-cpufreq.o
cpufreq: exynos: remove Exynos4x12 specific cpufreq driver support
cpufreq: exynos: remove exynos5250 specific cpufreq driver support
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 418012fbe5e6ef83424a8233b29c11159acd4af9
Merge: 819167e bdd2648
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 20 18:37:55 2015 -0700
Merge tag 'samsung-soc' of
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/late
Samsung SoC updates for v4.3
- add compatible string to exynos_cpufreq_matchs to switch for
supporting generic cpufreq driver for exynos3250, 4210, 4212
and 5250 SoCs in mach-exynos/
* tag 'samsung-soc' of
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
ARM: EXYNOS: switch to using generic cpufreq driver for exynos4x12
ARM: EXYNOS: Add exynos3250 compatible to use generic cpufreq driver
ARM: EXYNOS: switch to using generic cpufreq driver for exynos5250
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 819167e7a0808891048ef45a8933fdeb1f04899f
Merge: 6b07705 ba03279
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 20 18:35:34 2015 -0700
Merge tag 'samsung-late-dt' of
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/late
Samsung 2nd DT updates for v4.3
- for exynos3250, 4212, 4412 and 5250
: add CPU OPP and regulator supply property
- for exynos3250
: add CPU cooling binding for exynos3250 boards
- for exynos4 SoCs
: add iommu property to JPEG device
- for exynos4412-odroidu3
: enable SPI1
- for exynos5250-snow
: add SPI CS
- for exynos5422
: add exynos5422-cpus.dtsi to correct cpu order
* Note this branch is depending on tags/samsung-clk-driver
* tag 'samsung-late-dt' of
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: (22 commits)
ARM: dts: add iommu property to JPEG device for exynos4
ARM: dts: enable SPI1 for exynos4412-odroidu3
ARM: dts: Add SPI CS on exynos5250-snow
ARM: dts: Add CPU cooling binding for exynos3250 boards
ARM: dts: add exynos5422-cpus.dtsi to correct cpu order
ARM: dts: add CPU OPP and regulator supply property for exynos4x12
ARM: dts: Add CPU OPP and regulator supply property for exynos3250
ARM: dts: add CPU OPP and regulator supply property for exynos5250
ARM: dts: Extend exynos5420-pinctrl nodes using labels instead of paths
ARM: dts: Include exynos5420-pinctrl after the nodes were defined for
exynos5420
ARM: dts: Extend exynos5250-pinctrl nodes using labels instead of paths
ARM: dts: Include exynos5250-pinctrl after the nodes were defined for
exynos5250
ARM: dts: Enable thermal-zones for exynos5422-odroidxu3
ARM: dts: Define default thermal-zones for exynos5422
ARM: dts: Enable TMU for exynos5422-odroidxu3
ARM: dts: Add pwm-fan node for exynos5422-odroidxu3
ARM: dts: Use labels for overriding nodes for exynos4210-universal_c210
ARM: dts: Set max17047 over heat and voltage thresholds for
exynos4412-trats2
ARM: dts: Enable USB3 regulators for exynos5422-odroidxu3
ARM: dts: Clean up indentation for exynos5410-smdk5410
...
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 6b0770582d3b1c60172bc515d658fa12a72e1faf
Merge: bc0195a cd6acee
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 20 18:35:02 2015 -0700
Merge tag 'samsung-clk-driver' of
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/late
Samsung clk driver updates for v4.3
- add cpu clock configuration data and instantiate cpu clock
for exynos3250, 4210, 4412 and 5250 SoCs to support Samsung
specific cpu-clock type
* Note this branch has been provided to clk tree as a topic branch
* tag 'samsung-clk-driver' of
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
clk: exynos4x12: add cpu clock configuration data and instantiate cpu
clock
clk: exynos3250: Add cpu clock configuration data and instaniate cpu
clock
clk: exynos5250: add cpu clock configuration data and instantiate cpu
clock
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit bd90f11589181adad1b32b16a34df52d17dd4961
Merge: a005bc6 5d44595
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 20 18:30:09 2015 -0700
Merge tag 'reset-for-4.3' of git://git.pengutronix.de/git/pza/linux into
next/drivers
Reset controller changes for v4.3
- moved the DT reset binding includes from
include/dt-bindings/reset-controller to include/dt-bindings/reset
- new driver for LPC18xx Reset Generation Unit (RGU)
- of_device_id array in the STi driver changed to const.
- extend SoCFPGA reset driver to support Arria10
- new ath79 reset controller driver for AR71XX/AR9XXX
- new driver for Xilinx Zynq reset controller
* tag 'reset-for-4.3' of git://git.pengutronix.de/git/pza/linux:
reset: reset-zynq: Adding support for Xilinx Zynq reset controller.
docs: dts: Added documentation for Xilinx Zynq Reset Controller
bindings.
MIPS: ath79: Add the reset controller to the AR9132 dtsi
reset: Add a driver for the reset controller on the AR71XX/AR9XXX
devicetree: Add bindings for the ATH79 reset controller
reset: socfpga: Update reset-socfpga to read the altr,modrst-offset
property
doc: dt: add documentation for lpc1850-rgu reset driver
reset: add driver for lpc18xx rgu
reset: sti: constify of_device_id array
ARM: STi: DT: Move reset controller constants into common location
MAINTAINERS: add include/dt-bindings/reset path to reset controller
entry
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit f2032f24c0e51487d88c3555db12e27d561e4f14
Author: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Date: Wed Aug 19 14:49:26 2015 +0900
ARM: dts: UniPhier: fix PPI interrupt CPU mask of timer nodes
This SoC is integrated with 4 Cortex-A9 cores. The GIC bindings
document says that the bits[15:8] of the 3rd cell of the interrupts
property represents PPI interrupt CPU mask. Because the timer
interrupts are wired to all of the 4 cores, bits[15:8] should be set
to 0xf.
Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 012bd2a533cd665c9961c5905f144170b16f61e4
Author: Yalin Wang <yalin.wang2010@xxxxxxxxx>
Date: Thu Aug 20 17:41:42 2015 -0700
Input: zhenhua - switch to using bitrev8()
Instead of custom zhenhua_bitreverse() let's use generic bitrev8().
Signed-off-by: Yalin Wang <yalin.wang2010@xxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 467fb18a8d538be6548ef4093003b63aebbb07b9
Author: Brian Norris <briannorris@xxxxxxxxxxxx>
Date: Wed Aug 19 15:18:41 2015 -0700
ARM: dts: rockchip: correct regulator power states for suspend
When getting translated from a downstream device tree that used slightly
different DT bindings, these regulators got labeled with the
"on-in-suspend" state, when they were actually supposed to be turned off
for S3 suspend. This was harmless, but not intentional, AFAICT.
Let's turn them off to get the optimal power state.
Signed-off-by: Brian Norris <briannorris@xxxxxxxxxxxx>
Reviewed-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Heiko Stuebner <heiko@xxxxxxxxx>
commit 6a414e462a7c493ed83535f388b07a34446f33f4
Author: Brian Norris <briannorris@xxxxxxxxxxxx>
Date: Wed Aug 19 15:18:40 2015 -0700
ARM: dts: rockchip: correct regulator PM properties
This DTS file was submitted with non-upstream bindings. I happened
across this while reviewing the jaq DTS.
Signed-off-by: Brian Norris <briannorris@xxxxxxxxxxxx>
Reviewed-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Heiko Stuebner <heiko@xxxxxxxxx>
commit dd52128afddecade1dcd0767aec124c13c8a40bb
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 17:59:49 2015 -0500
NFSv4.1/pnfs Ensure flexfiles reports all connection related errors
Make sure that we also handle RPC level connection and protocol
negotiation errors.
Reported-by: Tom Haynes <loghyr@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 08617f47eaf8c70b4c236dee2014c6141aa282bf
Merge: 938049e 32a2b00
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 20 15:42:38 2015 -0700
Merge branch 'lwt-ipv6'
Jiri Benc says:
====================
lwtunnel: per route ipv6 support for vxlan
v3: Moved LWTUNNEL_ENCAP_IP6 definition in patch 13.
v2: Fixed issues in patch 4 pointed out by Alexei.
This series enables IPv6 tunnels based on lwtunnel infrastructure. Only
vxlan is supported for now.
Tested in all combinations of IPv4 over IPv6, IPv6 over IPv4 and IPv6 over
IPv6.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 32a2b002ce615eadd3bfaddabde290f70a1dd17b
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:32 2015 +0200
ipv6: route: per route IP tunnel metadata via lightweight tunnel
Allow specification of per route IP tunnel instructions also for IPv6.
This complements commit 3093fbe7ff4b ("route: Per route IP tunnel metadata
via lightweight tunnel").
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
CC: YOSHIFUJI Hideaki <hideaki.yoshifuji@xxxxxxxxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 904af04d30f303d96902584206457128c3051d8d
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:31 2015 +0200
ipv6: route: extend flow representation with tunnel key
Use flowi_tunnel in flowi6 similarly to what is done with IPv4.
This complements commit 1b7179d3adff ("route: Extend flow representation
with tunnel key").
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a725e514dbb444f2a39c2bc5de72eb5efbeb7d5e
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:30 2015 +0200
vxlan: metadata based tunneling for IPv6
Support metadata based (formerly flow based) tunneling also for IPv6.
This complements commit ee122c79d422 ("vxlan: Flow based tunneling").
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6f264e47d4dbbe590ac1131587933bb87ded296d
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:29 2015 +0200
vxlan: do not shadow flags variable
The 'flags' variable is already defined in the outer scope.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 705cc62f6728c5a23e3c82465aa94e652e0b50e4
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:28 2015 +0200
vxlan: provide access function for vxlan socket address family
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ab450605b35caa768ca33e86db9403229bf42be4
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:27 2015 +0200
ipv6: ndisc: inherit metadata dst when creating ndisc requests
If output device wants to see the dst, inherit the dst of the original skb
in the ndisc request.
This is an IPv6 counterpart of commit 0accfc268f4d ("arp: Inherit metadata
dst when creating ARP requests").
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 06e9d040ba08b0f645783ff958384d5837b3fa3a
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:26 2015 +0200
ipv6: drop metadata dst in ip6_route_input
The fix in commit 48fb6b554501 is incomplete, as now ip6_route_input can
be
called with non-NULL dst if it's a metadata dst and the reference is
leaked.
Drop the reference.
Fixes: 48fb6b554501 ("ipv6: fix crash over flow-based vxlan device")
Fixes: ee122c79d422 ("vxlan: Flow based tunneling")
CC: Wei-Chun Chao <weichunc@xxxxxxxxxxxx>
CC: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 61adedf3e3f1d3f032c5a6a299978d91eff6d555
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:25 2015 +0200
route: move lwtunnel state to dst_entry
Currently, the lwtunnel state resides in per-protocol data. This is
a problem if we encapsulate ipv6 traffic in an ipv4 tunnel (or vice
versa).
The xmit function of the tunnel does not know whether the packet has been
routed to it by ipv4 or ipv6, yet it needs the lwtstate data. Moving the
lwtstate data to dst_entry makes such inter-protocol tunneling possible.
As a bonus, this brings a nice diffstat.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Roopa Prabhu <roopa@xxxxxxxxxxxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7c383fb2254c44e096427470da6a36380169b548
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:24 2015 +0200
ip_tunnels: use tos and ttl fields also for IPv6
Rename the ipv4_tos and ipv4_ttl fields to just 'tos' and 'ttl', as
they'll
be used with IPv6 tunnels, too.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c1ea5d672aaff08da337dee735dbb548e3415585
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:23 2015 +0200
ip_tunnels: add IPv6 addresses to ip_tunnel_key
Add the IPv6 addresses as an union with IPv4 ones. When using IPv4, the
newly introduced padding after the IPv4 addresses needs to be zeroed out.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 376534a3d17002d608985bd67c3b0880eacadd14
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:22 2015 +0200
ip_tunnels: use offsetofend
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6b8847c5a2bafbbf92f4b779f87165093457ea68
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:21 2015 +0200
ip_tunnels: use u8/u16/u32
The ip_tunnels.h include file uses mixture of __u16 and u16 (etc.) types.
Unify it to the non-underscore variants.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ac1cf3990c99802eae3aa735b35c94a2131eb9fe
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Thu Aug 20 13:56:20 2015 +0200
ip_tunnels: remove custom alignment and packing
The custom alignment of struct ip_tunnel_key is unnecessary. In struct
sw_flow_key, it starts at offset 256, in struct ip_tunnel_info it's the
first field.
The structure is also packed even without the __packed keyword.
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 938049e18dca57bcd2f93986fc1cbb5a83cdf027
Author: Jeremy Linton <jeremy.linton@xxxxxxx>
Date: Wed Aug 19 13:56:42 2015 -0500
net: xgene Remove xgene specific phy and MAC lookup functions
Convert the xgene_get_mac_address to device_get_mac_address(), and
xgene_get_phy_mode() to device_get_phy_mode().
Signed-off-by: Jeremy Linton <jeremy.linton@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4c9bcd117918ba6096d01194565e9d1814e5ef22
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 11:40:31 2015 -0700
net: Fix nexthop lookups
Andreas reported breakage adding routes with local nexthops:
$ ip route show table main
...
172.28.0.0/24 dev vnf-xe1p0 proto kernel scope link src 172.28.0.16
$ ip route add 10.0.0.0/8 via 172.28.0.32 table 100 dev vnf-xe1p0
RTNETLINK answers: Resource temporarily unavailable
3bfd847203c changed the lookup to use the passed in table but for cases
like
this the nexthop is in the local table rather than the passed in table.
Fixes: 3bfd847203c ("net: Use passed in table for nexthop lookups")
Reported-by: Andreas Schultz <aschultz@xxxxxxxx>
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit eb4cb85180cd3baee4a01fd32e296fc28c2cffc1
Author: Scott Feldman <sfeldma@xxxxxxxxx>
Date: Wed Aug 19 11:29:35 2015 -0700
bridge: fix netlink max attr size
.maxtype should match .policy. Probably just been getting lucky here
because IFLA_BRPORT_MAX > IFLA_BR_MAX.
Fixes: 13323516 ("bridge: implement rtnl_link_ops->changelink")
Signed-off-by: Scott Feldman <sfeldma@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4d14a63400dd3e353acb6547831fe465f85864b1
Author: Jeremy Linton <jeremy.linton@xxxxxxx>
Date: Wed Aug 19 11:46:43 2015 -0500
smsc911x: Remove dev==NULL check.
The dev==NULL check in smsc911x_probe_config is useless
and isn't providing any additional protection. If a fwnode
doesn't exist then an appropriate error should be returned
by device_get_phy_mode() covering the original case
of a missing of/fwnode.
Signed-off-by: Jeremy Linton <jeremy.linton@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2f710a3a8089c12dfe3c0cf04bb0a3dee3dea019
Author: Jeremy Linton <jeremy.linton@xxxxxxx>
Date: Wed Aug 19 11:46:42 2015 -0500
device property: Add ETH_ALEN check, update comments.
This patch adds MAC address length check back into
the device_get_mac_addr() function before calling
is_valid_ether_addr() similar to the way the OF
routine does it.
Update the comments for the two new functions.
Signed-off-by: Jeremy Linton <jeremy.linton@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ef09242f3997f5fa063bcfa918d3ce4c4485376c
Merge: e01286e a6bf49d
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 20 14:13:25 2015 -0700
Merge tag 'wireless-drivers-next-for-davem-2015-08-19' of
git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next
Kalle Valo says:
====================
Major changes:
ath10k:
* add support for qca99x0 family of devices
* improve performance of tx_lock
* add support for raw mode (802.11 frame format) and software crypto
engine enabled via a module parameter
ath9k:
* add fast-xmit support
wil6210:
* implement TSO support
* support bootloader v1 and onwards
iwlwifi:
* Deprecate -10.ucode
* Clean ups towards multiple Rx queues
* Add support for longer CMD IDs. This will be required by new
firmwares since we are getting close to the u8 limit.
* bugfixes for the D0i3 power state
* Add basic support for FTM
* polish the Miracast operation
* fix a few power consumption issues
* scan cleanup
* fixes for D0i3 system state
* add paging for devices that support it
* add again the new RBD allocation model
* add more options to the firmware debug system
* add support for frag SKBs in Tx
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e01286ef03a9c7b1d4937309f923c226ab05bc4d
Author: Ying Xue <ying.xue@xxxxxxxxxxxxx>
Date: Wed Aug 19 16:04:51 2015 +0800
ipv4: Make fib_encap_match static
Make fib_encap_match() static as it isn't used outside the file.
Signed-off-by: Ying Xue <ying.xue@xxxxxxxxxxxxx>
Reviewed-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 84b6714e54e5199e76f845be70295ccaab924872
Merge: 0f8f27d f4e774f
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 20 14:10:23 2015 -0700
Merge branch 'ewma'
Johannes Berg says:
====================
average: convert users to inline implementation
Since there's very little benefit of the out-of-line implementation
(a single byte of .text in one driver as far as I've seen), convert
all drivers to the inline implementation, saving memory, and remove
the out-of-line implementation.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f4e774f55fe0bb568a0877b2eb9e1b4b5a6f5cbc
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date: Wed Aug 19 09:46:22 2015 +0200
average: remove out-of-line implementation
Since all users are now converted to the inline implementation,
remove the out-of-line implementation entirely.
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 11ab35ed0457a4b7914358986a67064ecb467e7d
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date: Wed Aug 19 09:46:21 2015 +0200
rt2x00: use DECLARE_EWMA
Instead of using the out-of-line EWMA calculation, use DECLARE_EWMA()
to create static inlines. On x86/64 this results in code that's one
byte larger (for me), but reduces struct link_ant and struct link
size by the two unsigned long values that store the parameters each.
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 46f26ddf562e7495ffa37144be5e447aeb13795e
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date: Wed Aug 19 09:46:20 2015 +0200
ath5k: use DECLARE_EWMA
This reduces code size slightly (at least on x86/64) while also
removing memory consumption by two unsigned long values for each
ath5k device.
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5377d75823ff90c0d5d52d69087707b2e54be21b
Author: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>
Date: Wed Aug 19 09:48:40 2015 +0200
virtio_net: use DECLARE_EWMA
Instead of using the out-of-line EWMA calculation, use DECLARE_EWMA()
to create static inlines. On x86/64 this results in no change in code
size for me, but reduces the struct receive_queue size by the two
unsigned long values that store the parameters.
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9dae3a97297f71e884ed8e7664955bcacb86f010
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Thu Aug 20 16:08:27 2015 -0500
PCI: Move MPS configuration check to pci_configure_device()
Previously we checked for invalid MPS settings, i.e., a device with MPS
different than its upstream bridge, in pcie_bus_detect_mps(). We only did
this if the arch or hotplug driver called pcie_bus_configure_settings(),
and then only if PCIe bus tuning was disabled (PCIE_BUS_TUNE_OFF).
Move the MPS checking code to pci_configure_device(), so we do it in the
pci_device_add() path for every device.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
commit 0f8f27de19667075591eaffbf435dd78c73a2df4
Author: Yuval Mintz <Yuval.Mintz@xxxxxxxxxx>
Date: Wed Aug 19 10:21:58 2015 +0300
bnx2x: Fix vxlan endianity issue
Commit f34fa14cc033 ("bnx2x: Add vxlan RSS support") has introduced an
endianity issue when passing the vxlan UDP port to the HW.
Reported-by: <fengguang.wu@xxxxxxxxx>
Signed-off-by: Yuval Mintz <Yuval.Mintz@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 26a6980cf40c67182bc36fa0b088ebed79796110
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 18 21:09:33 2015 +0200
drm/amdgpu: fix CS error handling v2
Stop double freeing the the BO list by pulling the content
of amdgpu_cs_parser_prepare_job() into the IOCTL function again.
v2: better commit message
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx> (v1)
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit b203dd95949ec8d5e30d53446408eb9a4d1bdc62
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 18 18:23:16 2015 +0200
drm/amdgpu: fix zeroing all IB fields manually v2
The problem now is that we don't necessarily call amdgpu_ib_get()
in some error paths and so work with uninitialized data.
Better require that the memory is already zeroed.
v2: better commit message
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx> (v1)
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit bf7ebaeed4dca7c0a7f9d9a44efbd9f74cf22c5d
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 18 15:30:26 2015 +0200
drm/amdgpu: free the job immediately after dispatching it
Fixes a whole bunch of lockdep warnings.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 2b184d8dbc002d3ef26e4827dd5a80d57533dcae
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 18 14:41:25 2015 +0200
drm/amdgpu: use a spinlock instead of a mutex for the rq
More appropriate and fixes some nasty lockdep warnings.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit a3348bb801bac5c9a81fb3da4b1a2f0479e97923
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Aug 18 16:25:46 2015 +0800
drm/amdgpu: don't need to use bo_list_clone any more
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 3c4adead8480f81df687a181d1e54a39b91b9363
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Aug 18 16:19:13 2015 +0800
drm/amdgpu: some clean up for cs_ioctl
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 4fe6311734986220e40afe4bf72d62383c1e8d6c
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Aug 18 16:12:15 2015 +0800
drm/amdgpu: prepare job should be common code path
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit bb977d3711ed1de1601b463e7fd5a43d82a2b077
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Aug 18 15:16:40 2015 +0800
drm/amdgpu: abstract amdgpu_job for scheduler
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 1a15aaa998dc3b51f7f8b9a820bc7a192a0c2f76
Author: Eric Anholt <eric@xxxxxxxxxx>
Date: Thu Aug 6 16:00:33 2015 -0700
irqchip: Add bcm2836 interrupt controller for Raspberry Pi 2
This interrupt controller is the new root interrupt controller with
the timer, PMU events, and IPIs, and the bcm2835's interrupt
controller is chained off of it to handle the peripherals.
I wrote the interrupt chip support, while Andrea Merello wrote the IPI
code.
Signed-off-by: Andrea Merello <andrea.merello@xxxxxxxxx>
Signed-off-by: Eric Anholt <eric@xxxxxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxxxxx>
Cc: linux-rpi-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Lee Jones <lee@xxxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1438902033-31477-5-git-send-email-eric@xxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 815e7a31c3f7929f371da9c7e9ee91cfd52ef453
Author: Eric Anholt <eric@xxxxxxxxxx>
Date: Thu Aug 6 16:00:32 2015 -0700
irqchip: Add documentation for the bcm2836 interrupt controller
This is a new per-cpu root interrupt controller on the Raspberry Pi 2,
which will chain to the bcm2835 interrupt controller for peripheral
interrupts.
Signed-off-by: Eric Anholt <eric@xxxxxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxxxxx>
Cc: linux-rpi-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Lee Jones <lee@xxxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1438902033-31477-4-git-send-email-eric@xxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit a493f339a88ddd20693460c1dcf8230aa3732b8b
Author: Eric Anholt <eric@xxxxxxxxxx>
Date: Thu Aug 6 16:00:31 2015 -0700
irqchip/bcm2835: Add support for being used as a second level controller
The BCM2836 (Raspberry Pi 2) uses two levels of interrupt handling
with the CPU-local interrupts being the root, so we need to register
ours as chained off of the CPU's local interrupt.
Signed-off-by: Eric Anholt <eric@xxxxxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxxxxx>
Cc: linux-rpi-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Lee Jones <lee@xxxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1438902033-31477-3-git-send-email-eric@xxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit de58e52f207e3318cb1e1d43f951454e0c83827f
Author: Eric Anholt <eric@xxxxxxxxxx>
Date: Thu Aug 6 16:00:30 2015 -0700
irqchip/bcm2835: Refactor handle_IRQ() calls out of MAKE_HWIRQ
For BCM2836, we want to chain into this IRQ chip from the root
controller, and for chaining we need to do something else instead of
handle_IRQ() once we have decoded the IRQ.
Note that this changes the behavior a little bit: Previously for a
non-shortcut IRQ, we'd loop reading and handling the second level IRQ
status until it was cleared before returning to the loop reading the
top level IRQ status (Note that the top level bit is just an OR of the
low level bits). For the expected case of just one interrupt to be
handled, this was an extra register read, so we're down from 4 to 3
reads.
Signed-off-by: Eric Anholt <eric@xxxxxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxxxxx>
Cc: linux-rpi-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Lee Jones <lee@xxxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1438902033-31477-2-git-send-email-eric@xxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 6055f37afd8b68aaf512532e7e2dd651df2d7833
Author: Marek Olšák <marek.olsak@xxxxxxx>
Date: Tue Aug 18 23:58:47 2015 +0200
drm/amdgpu: bump the DRM version for new allowed mem-mapped registers
Used by mesa, etc. for profiling.
Reviewed-by: Michel Dänzer <michel.daenzer@xxxxxxx>
Signed-off-by: Marek Olšák <marek.olsak@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit b86d598d0c9d847c3ff0fc1b31c762551a0f0e12
Merge: 57b8efa 2640b39
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 20 13:01:57 2015 -0700
Merge branch 'vrf-cleanups-part-2'
Nikolay Aleksandrov says:
====================
vrf: cleanups part 2
This is the next part of vrf cleanups, patch 1 drops the SLAB_PANIC
when creating kmem cache since it's handled, patch 02 removes a slave
duplicate check which is already done by the lower/upper code, patch 3
moves the ndo_add_slave code around a bit so we can drop an error
label and patch 4 drops the master device checks which are unnecessary
because the ops are taken from the master device itself so it can't be
different.
====================
Acked-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
commit 2640b39c28174dba1c9e089be575d87e5204282f
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 06:27:10 2015 +0300
vrf: ndo_add|del_slave drop unnecessary checks
When ndo_add|del_slave ops are used, they're taken from the respective
master device's netdev ops, so if the master device is a VRF only then
the VRF ops will get called thus no need to check the type of the
master.
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 15df5e711245743a7a8018dd6535e39dcfcb38fc
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 06:27:09 2015 +0300
vrf: move vrf_insert_slave so we can drop a goto label
We can simplify do_vrf_add_slave by moving vrf_insert_slave in the end
of the enslaving and thus eliminate an error goto label. It always
succeeds and isn't needed before that anyway.
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 67f3a90b54322314a01af28946799a84c1b1d190
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 06:27:08 2015 +0300
vrf: remove unnecessary duplicate check
The upper/lower functions already check for duplicate slaves so no need
to do it again.
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e367da02fefcc6026c560ab3f361a40a16ccd9b3
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 06:27:07 2015 +0300
vrf: don't panic on cache create failure
It's pointless to panic on cache create failure when that case is handled
and even more so since it's not a kernel-wide fatal problem so don't
panic.
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 29e76924cf087bc6a9114a9244828fd13ae959bb
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Wed Aug 19 21:26:43 2015 +0200
nfc: netlink: Add capability to reply to vendor_cmd with data
A proprietary vendor command may send back useful data to the user
application.
For example, the field level applied on the NFC router antenna.
Still based on net/wireless/nl80211.c implementation,
add nfc_vendor_cmd_alloc_reply_skb and nfc_vendor_cmd_reply in
order to send back over netlink data generated by a proprietary
command.
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 57b8efa1a5e4baf3dfca8d5d7bfb946bd44ff390
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 06:12:29 2015 +0300
vrf: plug skb leaks
Currently whenever a packet different from ETH_P_IP is sent through the
VRF device it is leaked so plug the leaks and properly drop these
packets.
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Acked-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5a9e0ffc0f128ecdf7c770f76c268e4f9f3c9118
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Wed Aug 19 21:26:42 2015 +0200
nfc: nci: hci: Add check on skb nci_hci_send_cmd parameter
skb can be NULL and may lead to a NULL pointer error.
Add a check condition before setting HCI rx buffer.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit d5dc861bd601b546ae6b36af54485142cca36a5e
Author: Toshi Kani <toshi.kani@xxxxxx>
Date: Wed Jul 22 12:06:11 2015 -0600
x86/mm/pat: Add comments to cachemode translation tables
Add comments to the cachemode translation tables to clarify that
the default values are set as minimal supported mode, which are
necessary to handle WC and WT fallback to UC- when they are not
enabled.
Signed-off-by: Toshi Kani <toshi.kani@xxxxxx>
Cc: Jan Beulich <jbeulich@xxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437588371-28223-1-git-send-email-toshi.kani@xxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit c04c674fadeb4a8e6522fc838d4620f7cfd4c621
Author: Robert Baldyga <r.baldyga@xxxxxxxxxxx>
Date: Thu Aug 20 17:26:02 2015 +0200
nfc: s3fwrn5: Add driver for Samsung S3FWRN5 NFC Chip
Add driver for Samsung S3FWRN5 NFC controller.
S3FWRN5 is using NCI protocol and I2C communication interface.
Signed-off-by: Robert Baldyga <r.baldyga@xxxxxxxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 025a0cb8380b7100d39fb426db9192b6c59595dc
Author: Robert Baldyga <r.baldyga@xxxxxxxxxxx>
Date: Thu Aug 20 17:26:01 2015 +0200
NFC: nci: export nci_core_reset and nci_core_init
Some drivers needs to have ability to reinit NCI core, for example
after updating firmware in setup() of post_setup() callback. This
patch makes nci_core_reset() and nci_core_init() functions public,
to make it possible.
Signed-off-by: Robert Baldyga <r.baldyga@xxxxxxxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit fdf79bd48876812acf0de58ed7a8bc1b3a3c67d6
Author: Robert Baldyga <r.baldyga@xxxxxxxxxxx>
Date: Thu Aug 20 17:26:00 2015 +0200
NFC: nci: Add post_setup handler
Some drivers require non-standard configuration after NCI_CORE_INIT
request, because they need to know ndev->manufact_specific_info or
ndev->manufact_id. This patch adds post_setup handler allowing to do
such custom configuration.
Signed-off-by: Robert Baldyga <r.baldyga@xxxxxxxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 05ddaa4d6d3806bebdf14f7c5de742a6e0e3b689
Merge: b48362d 9ca3085
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Thu Aug 20 21:13:22 2015 +0200
Merge branch 'fortglx/4.3/time' of
https://git.linaro.org/people/john.stultz/linux into timers/core
- A handful or y2038 related items
- A walltime to monotonic limit
- Small fixes for timespec_trunc() and timer_list output
commit e76d28dd9ca84fa96dc0054bab34ccec34a7662a
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 13:12:51 2015 -0500
NFSv4.1/pnfs: Ensure the flexfiles layoutstats timers are consistent
We want to ensure that the stopwatches for the busy timer and the
aggregate timer are consistent. This means that they need to use
the same start/stop times.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 046be74da8f257c4f1925ed4b5d4ee4c822ef9c6
Author: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Date: Fri Aug 21 10:32:50 2015 +0800
NFS41: fix list splice type
We want to move commiting pages to pages list instead.
Otherwise it causes pnfs small writes crash like:
[34560.037692] BUG: unable to handle kernel NULL pointer dereference at
0000000000000068
[34560.038557] IP: [<ffffffffa05423d6>] nfs_init_commit+0x26/0x130 [nfs]
[34560.039400] PGD 69f5a067 PUD 69f59067 PMD 0
[34560.040207] Oops: 0000 [#1] SMP
[34560.041014] Modules linked in: nfsv3(OE) nfs_layout_flexfiles(OE)
nfsv4(OE) nfs(OE) fscache(E) rpcsec_gss_krb5(E) xt_addrtype(E) xt_conntrack(E)
ipt_MASQUERADE(E) nf_nat_masquerade_ipv4(E) iptable_nat(E) nf_conntrack_ipv4(E)
nf_defrag_ipv4(E) nf_nat_ipv4(E) iptable_filter(E) ip_tables(E) x_tables(E)
nf_nat(E) nf_conntrack(E) bridge(E) stp(E) llc(E) dm_thin_pool(E)
dm_persistent_data(E) dm_bio_prison(E) dm_bufio(E) ppdev(E) vmw_balloon(E)
coretemp(E) crc32_pclmul(E) ghash_clmulni_intel(E) aesni_intel(E) aes_x86_64(E)
glue_helper(E) lrw(E) gf128mul(E) ablk_helper(E) cryptd(E) psmouse(E)
serio_raw(E) vmw_vmci(E) i2c_piix4(E) shpchp(E) parport_pc(E) parport(E)
mac_hid(E) nfsd(E) auth_rpcgss(E) nfs_acl(E) lockd(E) grace(E) sunrpc(E) xfs(E)
libcrc32c(E) hid_generic(E) usbhid(E) hid(E) e1000(E) mptspi(E)
[34560.045106] mptscsih(E) mptbase(E) vmwgfx(E) drm_kms_helper(E) ttm(E)
drm(E) autofs4(E) [last unloaded: fscache]
[34560.045897] CPU: 0 PID: 130543 Comm: bash Tainted: G OE
4.2.0-rc5-dp-00057-gf993a93 #11
[34560.046699] Hardware name: VMware, Inc. VMware Virtual Platform/440BX
Desktop Reference Platform, BIOS 6.00 05/20/2014
[34560.047525] task: ffff880031b0a980 ti: ffff880045fec000 task.ti:
ffff880045fec000
[34560.048264] RIP: 0010:[<ffffffffa05423d6>] [<ffffffffa05423d6>]
nfs_init_commit+0x26/0x130 [nfs]
[34560.049000] RSP: 0018:ffff880045fefc18 EFLAGS: 00010246
[34560.049717] RAX: 0000000000000000 RBX: ffff8800208fbc80 RCX:
ffff880045fefd50
[34560.050396] RDX: ffff880031c19ec0 RSI: ffff880045fefc88 RDI:
ffff8800208fbc80
[34560.051041] RBP: ffff880045fefc28 R08: ffff8800208fbe68 R09:
ffff880045fefc88
[34560.051666] R10: 0000000000000000 R11: 0000000000000000 R12:
ffff880045fefc78
[34560.052247] R13: ffff880045fefc88 R14: ffff880045fefa90 R15:
ffff880045fefd50
[34560.052825] FS: 00007fa02d58c740(0000) GS:ffff88006d600000(0000)
knlGS:0000000000000000
[34560.053410] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[34560.053992] CR2: 0000000000000068 CR3: 000000003b37a000 CR4:
00000000001406f0
[34560.054615] Stack:
[34560.055200] ffff8800208fbc80 ffff8800208fbc80 ffff880045fefcc8
ffffffffa05c1a5b
[34560.055800] ffff880045fefcc8 ffff880045fefd50 0000000045fefcb8
ffff880045fefd40
[34560.056418] ffff8800420608e0 ffffffffa04f3910 0000000100000001
ffff880045fefd50
[34560.057013] Call Trace:
[34560.057672] [<ffffffffa05c1a5b>]
pnfs_generic_commit_pagelist+0x1cb/0x300 [nfsv4]
[34560.058277] [<ffffffffa04f3910>] ?
ff_layout_commit_pagelist+0x20/0x20 [nfs_layout_flexfiles]
[34560.058907] [<ffffffffa04f3905>] ff_layout_commit_pagelist+0x15/0x20
[nfs_layout_flexfiles]
[34560.059557] [<ffffffffa0543fc1>] nfs_generic_commit_list+0xb1/0xf0
[nfs]
[34560.060214] [<ffffffffa0543e47>] ? nfs_scan_commit+0x37/0xa0 [nfs]
[34560.060825] [<ffffffffa0544081>] nfs_commit_inode+0x81/0x150 [nfs]
[34560.061432] [<ffffffffa05443ae>] nfs_wb_all+0x1ae/0x400 [nfs]
[34560.062035] [<ffffffffa05380ad>] nfs_getattr+0x33d/0x510 [nfs]
[34560.062630] [<ffffffff8122499c>] vfs_getattr_nosec+0x2c/0x40
[34560.063223] [<ffffffff81224a66>] vfs_getattr+0x26/0x30
[34560.063818] [<ffffffff81224b35>] vfs_fstatat+0x65/0xa0
[34560.064413] [<ffffffff81224f3f>] SYSC_newstat+0x1f/0x40
[34560.065016] [<ffffffff8102b176>] ? do_audit_syscall_entry+0x66/0x70
[34560.065626] [<ffffffff8102c773>] ?
syscall_trace_enter_phase1+0x113/0x170
[34560.066245] [<ffffffff81003017>] ? trace_hardirqs_on_thunk+0x17/0x19
[34560.066868] [<ffffffff812251ae>] SyS_newstat+0xe/0x10
[34560.067533] [<ffffffff817a5df2>] entry_SYSCALL_64_fastpath+0x16/0x7a
[34560.068173] Code: 0f 1f 44 00 00 0f 1f 44 00 00 55 4c 8d 87 e8 01 00
00 48 89 e5 53 48 89 fb 48 83 ec 08 4c 8b 0e 49 8b 41 18 4c 39 ce 48 8b 40 40
<4c> 8b 50 68 74 24 48 8b 87 e8 01 00 00 48 8b 7e 08 4d 89 41 08
[34560.069609] RIP [<ffffffffa05423d6>] nfs_init_commit+0x26/0x130 [nfs]
[34560.070295] RSP <ffff880045fefc18>
[34560.071008] CR2: 0000000000000068
[34560.073207] ---[ end trace f85f873260977406 ]---
[fixes 27571297a7e(pNFS: Tighten up locking around DS commit buckets)]
Signed-off-by: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 9a16ea900fadc88714e3a32214dea8e968ccd889
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Thu Aug 20 11:12:35 2015 +0200
regmap: regmap_raw_read return error on !bus->read
Return -ENOTSUPP if map->bus->read is not implemented and we do not use
the cache. This code path would directly use bus->read would run into an
NULL pointer for the read function.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit a71d6ea6d3ec3e8ba4220370f29531903e3bc153
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Thu Aug 20 17:19:08 2015 +0800
spi: mediatek: use BIT() to instead of SPI_CMD_*_OFFSET
This patch removes SPI_CMD_*_OFFSET defines, and uses the BIT(x)
defines instead.
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit af57937e862370c14b7d71d15d969593ffca1ba8
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Thu Aug 20 17:19:07 2015 +0800
spi: medaitek: revise quirks compatibility style
The quirks are true/false, so define these as bool.
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 44f636da4e71e0c73d6e29d0319a8954ce3f247a
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Thu Aug 20 17:19:06 2015 +0800
spi: mediatek: fix spi incorrect endian usage
TX_ENDIAN/RX_ENDIAN bits define whether to reverse the endian
order of the data DMA from/to memory. The endian order should
keep the same with cpu endian.
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit e2e05394e4a3420dab96f728df4531893494e15d
Author: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Date: Tue Aug 18 13:55:41 2015 -0600
pmem, dax: have direct_access use __pmem annotation
Update the annotation for the kaddr pointer returned by direct_access()
so that it is a __pmem pointer. This is consistent with the PMEM driver
and with how this direct_access() pointer is used in the DAX code.
Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 2765cfbb342c727c3fd47b165196cb16da158022
Author: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Date: Tue Aug 18 13:55:40 2015 -0600
dax: update I/O path to do proper PMEM flushing
Update the DAX I/O path so that all operations that store data (I/O
writes, zeroing blocks, punching holes, etc.) properly synchronize the
stores to media using the PMEM API. This ensures that the data DAX is
writing is durable on media before the operation completes.
Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 5de490daec8b6354b90d5c9d3e2415b195f5adb6
Author: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Date: Tue Aug 18 13:55:39 2015 -0600
pmem: add copy_from_iter_pmem() and clear_pmem()
Add support for two new PMEM APIs, copy_from_iter_pmem() and
clear_pmem(). copy_from_iter_pmem() is used to copy data from an
iterator into a PMEM buffer. clear_pmem() zeros a PMEM memory range.
Both of these new APIs must be explicitly ordered using a wmb_pmem()
function call and are implemented in such a way that the wmb_pmem()
will make the stores to PMEM durable. Because both APIs are unordered
they can be called as needed without introducing any unwanted memory
barriers.
Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 4a370df5534ef727cba9a9d74bf22e0609f91d6e
Author: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Date: Tue Aug 18 13:55:38 2015 -0600
pmem, x86: clean up conditional pmem includes
Prior to this change x86_64 used the pmem defines in
arch/x86/include/asm/pmem.h, and UM used the default ones at the
top of include/linux/pmem.h. The inclusion or exclusion in linux/pmem.h
was controlled by CONFIG_ARCH_HAS_PMEM_API, but the ones in asm/pmem.h
were controlled by ARCH_HAS_NOCACHE_UACCESS.
Instead, control them both with CONFIG_ARCH_HAS_PMEM_API so that it's
clear that they are related and we don't run into the possibility where
they are both included or excluded. Also remove a bunch of stale
function prototypes meant for UM in asm/pmem.h - these just conflicted
with the inline defaults in linux/pmem.h and gave compile errors.
Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 18279b467a9d89afe44afbc19d768e834dbf4545
Author: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Date: Tue Aug 18 13:55:37 2015 -0600
pmem: remove layer when calling arch_has_wmb_pmem()
Prior to this change arch_has_wmb_pmem() was only called by
arch_has_pmem_api(). Both arch_has_wmb_pmem() and arch_has_pmem_api()
checked to make sure that CONFIG_ARCH_HAS_PMEM_API was enabled.
Instead, remove the old arch_has_wmb_pmem() wrapper to be rid of one
extra layer of indirection and the redundant CONFIG_ARCH_HAS_PMEM_API
check. Rename __arch_has_wmb_pmem() to arch_has_wmb_pmem() since we no
longer have a wrapper, and just have arch_has_pmem_api() call the
architecture specific arch_has_wmb_pmem() directly.
Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 40603526569b304dd92f720f2f8ab11e828ea145
Author: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Date: Tue Aug 18 13:55:36 2015 -0600
pmem, x86: move x86 PMEM API to new pmem.h header
Move the x86 PMEM API implementation out of asm/cacheflush.h and into
its own header asm/pmem.h. This will allow members of the PMEM API to
be more easily identified on this and other architectures.
Signed-off-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Suggested-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit e134cb2041359c927b735b81568373624ea26baf
Author: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Date: Fri Aug 14 11:22:16 2015 +0800
ASoC: wm8994: fix add dynamic path error
If there don't exist dynamic sink or source widget, it will failed to
add dynamic path.
"AIF3ADCDAT" is snd_soc_dapm_aif_out, can't be dynamic sink widget. So
change the audio route to fix this issue.
Signed-off-by: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit f682c4ffd25a19594d21987c19a69fa123242eb7
Author: Vignesh R <vigneshr@xxxxxx>
Date: Thu Aug 20 16:00:59 2015 +0530
spi: ti-qspi: use 128 bit transfer mode where possible
TI QSPI has four 32 bit data regsiters which can be used to transfer 16
bytes of data at once. The register group QSPI_SPI_DATA_REG_3,
QSPI_SPI_DATA_REG_2, QSPI_SPI_DATA_REG_1 and QSPI_SPI_DATA_REG is
treated as a single 128-bit word for shifting data in and out. The bit
at QSPI_SPI_DATA_REG_3[31] position is the first bit to be shifted out
in case of 128 bit transfer mode. Therefore the first byte to be written
to flash should be at QSPI_SPI_DATA_REG_3[31-25] position.
Instead of writing 1 byte at a time when interacting with spi-nor flash,
make use of all the four registers so that 16 bytes can be transferred
in one go. This reduces number of register writes and Word Complete
interrupts for a given transfer message size, thereby increasing the
write performance.
Without this patch the raw flash write speed is ~100KB/s, with this
patch the write speed increases to ~400 kB/s on DRA74 EVM.
Signed-off-by: Vignesh R <vigneshr@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 14a500fe1396934c6b3ed8f009459a4723da7862
Author: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Date: Thu Aug 20 22:11:15 2015 +0530
ASoC: samsung: Remove redundant arndale_audio_remove
There is no use of snd_soc_unregister_card in remove function
as devm_snd_soc_register_card in probe function automatically
handles it. So, remove use of snd_soc_unregister_card and with
this change remove arndale_audio_remove as it is now redundant.
Signed-off-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 3a10766d0624c72b978790dba864cf7d6160f89f
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Tue Aug 4 14:54:04 2015 -0500
PCI: Drop references acquired by of_parse_phandle()
of_parse_phandle() returns a device_node pointer with the refcount
incremented. We should dispose of this reference when we're finished.
Drop the reference acquired by of_parse_phandle().
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
commit 2291ec09025f85c11fbd0e9877c4306a8aa6e7e9
Author: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Date: Mon Aug 3 22:04:06 2015 -0500
PCI/MSI: Remove unused pcibios_msi_controller() hook
The pcibios_msi_controller() hook was only implemented by ARM, and it sets
pci_bus->msi now, so it doesn't need this hook anymore.
Remove the unused pcibios_msi_controller() hook.
[bhelgaas: changelog, split into separate patch]
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
commit b5e5e8a13e19ee17e6ffbe2c3d344182b7be20f6
Author: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Date: Tue Aug 4 11:58:49 2015 -0500
ARM/PCI: Remove msi_controller from struct pci_sys_data
ARM now uses pci_bus->msi to store the msi_controller pointer, so we don't
need to save it in struct pci_sys_data, and we don't need to implement
pcibios_msi_controller() to get it out of pci_sys_data.
Remove msi_controller from struct pci_sys_data and
pcibios_msi_controller().
[bhelgaas: changelog, split into separate patch]
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Jingoo Han <jingoohan1@xxxxxxxxx>
commit 8953aab1e80fd299d6185a57edaff733fa5c6a55
Author: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Date: Wed Jul 29 12:33:18 2015 +0100
ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi()
ARM previously stored the msi_controller pointer in its sysdata, struct
pci_sys_data, and implemented pcibios_msi_controller() to retrieve it.
That made PCI host controller drivers specific to ARM because they had to
put the msi_controller pointer in the ARM-specific pci_sys_data.
There is now a generic mechanism, pci_scan_root_bus_msi(), for giving the
msi_controller pointer to the PCI core. Use this for all ARM systems and
for the DesignWare and Xilinx PCI host controller drivers.
This removes an ARM dependency from the DesignWare, DRA7xx, EXYNOS, i.MX6,
Keystone, Layerscape, SPEAr13xx, and Xilinx drivers.
[bhelgaas: changelog, split into separate patch]
Suggested-by: Russell King <linux@xxxxxxxxxxxxxxxx>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Acked-by: Jingoo Han <jingoohan1@xxxxxxxxx>
CC: Pratyush Anand <pratyush.anand@xxxxxxxxx>
CC: Arnd Bergmann <arnd@xxxxxxxx>
CC: Simon Horman <horms@xxxxxxxxxxxx>
CC: Russell King <linux@xxxxxxxxxxxxxxxx>
CC: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
CC: Thierry Reding <thierry.reding@xxxxxxxxx>
CC: Michal Simek <michal.simek@xxxxxxxxxx>
CC: Marc Zyngier <marc.zyngier@xxxxxxx>
commit d2a7926d42b3b46e45b4e44dc3302b2701ec0856
Author: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Date: Mon Aug 3 21:27:10 2015 -0500
PCI: Add pci_scan_root_bus_msi()
Add a pci_scan_root_bus_msi() interface so an arch can specify the MSI
controller up front. This removes the need for a pcibios callback to set
the MSI controller later.
This is not exported because I'd like to replace the variety of "scan root
bus" interfaces with a single, more extensible interface that can handle
the MSI controller, domain, pci_ops, resources, etc. I hope this
interface
is temporary.
[bhelgaas: changelog, split into separate patch]
Suggested-by: Russell King <linux@xxxxxxxxxxxxxxxx>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Jingoo Han <jingoohan1@xxxxxxxxx>
commit ada8b675b76ec847bfa4a237d82a7a96da128768
Author: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Date: Wed Jul 29 12:33:17 2015 +0100
ARM/PCI: Replace panic with WARN messages on failures
In the ARM PCI bios32 layer, failures to dynamically allocate pci_sys_data
for a PCI bus, or a PCI bus scan failure have to be considered serious
warnings but they should not trigger a system panic so that at least the
system is given a chance to be debugged.
This patch replaces the panic statements with WARN() messages to improve
error reporting in the ARM PCI bios32 layer.
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Jingoo Han <jingoohan1@xxxxxxxxx>
Acked-by: Marc Zyngier <marc.zyngier@xxxxxxx>
CC: Russell King <linux@xxxxxxxxxxxxxxxx>
CC: Marc Zyngier <marc.zyngier@xxxxxxx>
commit aa4a5c0d2d7e3c30f9df033ea0367f148bb369f6
Author: Jayachandran C <jchandra@xxxxxxxxxxxx>
Date: Wed Aug 5 02:23:40 2015 +0530
PCI: generic: Add arm64 support
Make pci-host-generic driver (kernel option PCI_HOST_GENERIC) available on
arm64.
Signed-off-by: Jayachandran C <jchandra@xxxxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
commit 459a07721c113b807ffcaa7bc98dd5d26beb39d5
Author: Jayachandran C <jchandra@xxxxxxxxxxxx>
Date: Wed Aug 5 02:23:39 2015 +0530
PCI: Build setup-irq.o for arm64
ARM64 requires setup-irq.o to provide pci_fixup_irqs() implementation. We
are adding this now to support the pci-host-generic host controller, but
we
enable it for ARM64 PCI so that other host controllers can use this as
well.
Signed-off-by: Jayachandran C <jchandra@xxxxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
commit 499733e0cc1a00523c5056a690f65dea7b9da140
Author: Jayachandran C <jchandra@xxxxxxxxxxxx>
Date: Wed Aug 5 02:23:38 2015 +0530
PCI: generic: Remove dependency on ARM-specific struct hw_pci
The generic OF-based host controller driver uses pci_common_init_dev(),
which is ARM-specific and requires the ARM struct hw_pci. The part of
pci_common_init_dev() that is needed is limited and can be done here
without using hw_pci.
Note that the ARM pcibios functions expect the PCI sysdata to be a pointer
to a struct pci_sys_data. Add a struct pci_sys_data as the first element
in struct gen_pci so that when we use a gen_pci pointer as sysdata, it is
also a pointer to a struct pci_sys_data.
Create and scan the root bus directly without using the ARM
pci_common_init_dev() interface.
[bhelgaas: changelog, move pcie_bus_configure_settings() before
pci_bus_add_devices(), combine !PCI_PROBE_ONLY blocks]
Tested-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@xxxxxxx>
Tested-by: Pavel Fedin <p.fedin@xxxxxxxxxxx>
Signed-off-by: Jayachandran C <jchandra@xxxxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
commit 24928634f81b1592e83b37dcd89ed45c28f12feb
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Sun Aug 16 13:04:50 2015 -0700
f2fs: check the node block address of newly allocated nid
This patch adds a routine which checks the block address of newly
allocated nid.
If an nid has already allocated by other thread due to subtle data races,
it
will result in filesystem corruption.
So, it needs to check whether its block address was already allocated or
not
in prior to nid allocation as the last chance.
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit a21c20f0c812925085204fced932ac95f2a76bf0
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Sun Aug 16 12:38:15 2015 -0700
f2fs: go out for insert_inode_locked failure
We should not call unlock_new_inode when insert_inode_locked failed.
Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 5ee5293c3290a8e710d75977418f954e62c3dfdf
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Sat Aug 15 22:06:08 2015 -0700
f2fs: retry gc if one section is not successfully reclaimed
If FG_GC failed to reclaim one section, let's retry with another section
from the start, since we can get anoterh good candidate.
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 2286c0205d1478d4bece6e733cbaf15535fba09d
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Sat Aug 15 21:51:05 2015 -0700
f2fs: fix to cover lock_op for update_inode_page
Previously, update_inode_page is not called under f2fs_lock_op.
Instead we should call with f2fs_write_inode.
Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 268344664603706b6f156548f9d7482665222f87
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Fri Aug 14 17:57:29 2015 -0700
f2fs: reuse nids more aggressively
If we can reuse nids as many as possible, we can mitigate producing
obsolete
node pages in the page cache.
Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 26d5859974bb817f7615be90199a8e82e3f0a0ed
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Fri Aug 14 14:37:50 2015 -0700
f2fs: avoid garbage collecting already moved node blocks
If node blocks were already moved, we don't need to move them again.
Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 740432f835608d11b5386321ab5aa8f61e07fb27
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Fri Aug 14 11:43:56 2015 -0700
f2fs: handle failed bio allocation
As the below comment of bio_alloc_bioset, f2fs can allocate multiple bios
at the
same time. So, we can't guarantee that bio is allocated all the time.
"
* When @bs is not NULL, if %__GFP_WAIT is set then bio_alloc will
always be
* able to allocate a bio. This is due to the mempool guarantees. To
make this
* work, callers must never allocate more than 1 bio at a time from
this pool.
* Callers that need to allocate more than 1 bio must always submit the
* previously allocated bio for IO before attempting to allocate a new
one.
* Failure to do so can cause deadlocks under memory pressure.
"
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit a6db67f06fd9f6b1ddb11bcf4d7e8e8a86908d01
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Mon Aug 10 15:01:12 2015 -0700
f2fs: increase the number of max hard links
This patch increases the number of maximum hard links for one file.
Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 798c1b16d1a6171587ff46c74ede8092e66f72f7
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Tue Aug 11 21:59:49 2015 -0700
f2fs: skip checkpoint if there is no dirty and prefree segments
We should avoid needless checkpoints when there is no dirty and prefree
segment.
Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 31696580bf4c042a0f7b06d855e04441488d18b1
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Tue Jul 28 18:33:46 2015 +0800
f2fs: shrink free_nids entries
This patch introduces __count_free_nids/try_to_free_nids and registers
them in slab shrinker for shrinking under memory pressure.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 206e61be29624499af46546076e835da93e6bde5
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Wed Aug 12 17:48:21 2015 +0800
f2fs: avoid clear valid page
In f2fs_delete_entry, if last dirent is remove from the dentry page,
we will try to punch that page since it has no valid date in it.
But truncate_hole which is used for punching could fail because of
no memory or IO error, if that happened, we'd better skip clearing
this valid dentry page.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 7b2a246b888ffb26fcec10adf7ff80b00fbad909
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Wed Aug 12 17:47:08 2015 +0800
MAINTAINERS: add myself as a dedicated reviewer of f2fs
I volunteer to be a dedicated reviewer of f2fs, add my email address in
maintainship entry of f2fs.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 315df8398e36360c0be62e6fdd3f2708fc3a2567
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Tue Aug 11 12:45:39 2015 -0700
f2fs: do not write any node pages related to orphan inodes
We should not write node pages when deleting orphan inodes.
In order to do that, we can eaisly set POR_DOING flag earlier before
entering
orphan inode routine.
Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 895fb3159280fe7695b35ec7c87ec19e13ca5b6e
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Fri Aug 21 20:43:44 2015 +0300
xtensa: improve vmlinux.lds.S sed post-processing
Current sed script makes assumptions about the structure of rules that
group .text sections in the vmlinux linker script. These assumptions
get broken occasionally, e.g.: 779c88c94c34 "ARM: 8321/1: asm-generic:
introduce.text.fixup input section", or 9bebe9e5b0f3 "kbuild: Fix
.text.unlikely placement".
Rewrite sed rules so that they don't depend on number/arrangement of text
sections in *(...) blocks.
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit 5fb4e288a025af1abc5c67ecebf30fbf6b3edad1
Author: Christopher Oo <t-chriso@xxxxxxxxxxxxx>
Date: Thu Jun 25 16:10:48 2015 -0700
cifs: Fix use-after-free on mid_q_entry
With CIFS_DEBUG_2 enabled, additional debug information is tracked inside
each
mid_q_entry struct, however cifs_save_when_sent may use the mid_q_entry
after it
has been freed from the appropriate callback if the transport layer has
very low
latency. Holding the srv_mutex fixes this use-after-free, as
cifs_save_when_sent
is called while the srv_mutex is held while the request is sent.
Signed-off-by: Christopher Oo <t-chriso@xxxxxxxxxxxxx>
commit 0a6d0b64120759df8b9291af92d998ed1cbefc9d
Author: Steve French <steve.french@xxxxxxxxxxxxxxx>
Date: Sat Jul 4 18:45:33 2015 -0500
Update cifs version number
Update modinfo cifs.ko version number to 2.07
Signed-off-by: Steve French <steve.french@xxxxxxxxxxxxxxx>
commit 0de1f4c6f6c028249579d8d80fa0a4f6322b2227
Author: Steve French <steve.french@xxxxxxxxxxxxxxx>
Date: Sat Jul 4 18:40:10 2015 -0500
Add way to query server fs info for smb3
The server exports information about the share and underlying
device under an SMB3 export, including its attributes and
capabilities, which is stored by cifs.ko when first connecting
to the share.
Add ioctl to cifs.ko to allow user space smb3 helper utilities
(in cifs-utils) to display this (e.g. via smb3util).
This information is also useful for debugging and for
resolving configuration errors.
Signed-off-by: Steve French <steve.french@xxxxxxxxxxxxxxx>
commit d8d23fa0f27f3b2942a7bbc7378c7735324ed519
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Thu Aug 20 11:47:13 2015 +0100
arm64: mdscr_el1: avoid exposing DCC to userspace
We don't want to expose the DCC to userspace, particularly as there is
a kernel console driver for it.
This patch resets mdscr_el1 to disable userspace access to the DCC
registers on the cold boot path.
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit 090749502ff20d7d9ec244036fe636b6bf0433b6
Author: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Date: Wed Aug 19 17:23:58 2015 +0530
ARC: add/fix some comments in code - no functional change
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 6de6066c0d24a66df465cf87a4041ef7ef35ba6f
Author: Yuriy Kolerov <yuriy.kolerov@xxxxxxxxxxxx>
Date: Wed Aug 12 17:23:32 2015 +0300
ARC: change some branchs to jumps to resolve linkage errors
When kernel's binary becomes large enough (32M and more) errors
may occur during the final linkage stage. It happens because
the build system uses short relocations for ARC by default.
This problem may be easily resolved by passing -mlong-calls
option to GCC to use long absolute jumps (j) instead of short
relative branchs (b).
But there are fragments of pure assembler code exist which use
branchs in inappropriate places and cause a linkage error because
of relocations overflow.
First of these fragments is .fixup insertion in futex.h and
unaligned.c. It inserts a code in the separate section (.fixup)
with branch instruction. It leads to the linkage error when
kernel becomes large.
Second of these fragments is calling scheduler's functions
(common kernel code) from entry.S of ARC's code. When kernel's
binary becomes large it may lead to the linkage error because
scheduler may occur far enough from ARC's code in the final
binary.
Signed-off-by: Yuriy Kolerov <yuriy.kolerov@xxxxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 9181f8bf5abf4b9d59b12e878895375b84fe32ba
Author: Jan Kara <jack@xxxxxxxx>
Date: Thu Aug 20 14:50:07 2015 +0200
udf: Don't modify filesystem for read-only mounts
When read-write mount of a filesystem is requested but we find out we
can mount the filesystem only in read-only mode, we still modify
LVID in udf_close_lvid(). That is both unnecessary and contrary to
expectation that when we fall back to read-only mount we don't modify
the filesystem.
Make sure we call udf_close_lvid() only if we called udf_open_lvid() so
that filesystem gets modified only if we verified we are allowed to
write to it.
Reported-by: Karel Zak <kzak@xxxxxxxxxx>
Signed-off-by: Jan Kara <jack@xxxxxxxx>
commit 5b733faca671756dd41b7e24584374e2b1fc3c4d
Author: Michal Marek <mmarek@xxxxxxxx>
Date: Thu Aug 20 14:13:35 2015 +0200
genksyms: Regenerate parser
Rebuild the parser after commit 1c722503fa81 (genksyms: Duplicate
function pointer type definitions segfault), using bison 2.7.
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 1c722503fa81888c936a8d1a5052daec859f1a7c
Author: Richard Yao <richard.yao@xxxxxxxxxxxxx>
Date: Mon Jul 20 19:52:48 2015 -0400
genksyms: Duplicate function pointer type definitions segfault
I noticed that genksyms will segfault when it sees duplicate function
pointer type declaration when I placed the same function pointer
definition in two separate headers in a local branch as an intermediate
step of some refactoring. This can be reproduced by piping the following
minimal test case into `genksyms -r /dev/null` or alternatively, putting
it into a C file attempting a build:
typedef int (*f)();
typedef int (*f)();
Attaching gdb to genksyms to understand this failure is useless without
changing CFLAGS to emit debuginfo. Once you have debuginfo, you will
find that the failure is that `char *s` was NULL and the program
executed `while(*s)`. At which point, further debugging requires
familiarity with compiler front end / parser development.
What happens is that flex identifies the first instance of the token "f"
as IDENT and the yacc parser adds it to the symbol table. On the second
instance, flex will identify "f" as TYPE, which triggers an error case
in the yacc parser. Given that TYPE would have been IDENT had it not
been in the symbol table, the the segmentaion fault could be avoided by
treating TYPE as IDENT in the affected rule.
Some might consider placing identical function pointer type declarations
in different headers to be poor style might consider a failure to be
beneficial. However, failing through a segmentation fault makes the
cause non-obvious and can waste the time of anyone who encounters it.
Signed-off-by: Richard Yao <richard.yao@xxxxxxxxxxxxx>
Acked-by: Madhuri Yechuri <madhuriyechuri@xxxxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 9bebe9e5b0f3109a14000df25308c2971f872605
Author: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Date: Sun Jul 19 18:01:19 2015 -0700
kbuild: Fix .text.unlikely placement
When building a kernel with .text.unlikely text the unlikely text for
each translation unit was put next to the main .text code in the
final vmlinux.
The problem is that the linker doesn't allow more specific submatches
of a section name in a different linker script statement after the
main match.
So we need to move them all into one line. With that change
.text.unlikely is at the end of everything again.
I also moved .text.hot into the same statement though, even though
that's not strictly needed.
Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 3c0561e0043fe870426b445890ab93204332ae39
Author: Pavel Fedin <p.fedin@xxxxxxxxxxx>
Date: Fri Aug 14 13:52:13 2015 +0300
Avoid conflict with host definitions when cross-compiling
Certain platforms (e. g. BSD-based ones) define some ELF constants
according to host. This patch fixes problems with cross-building
Linux kernel on these platforms (e. g. building ARM 32-bit version
on x86-64 host).
Signed-off-by: Pavel Fedin <p.fedin@xxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit eb2cd8b72b08fe56998600aee8a5dff93f7be5a2
Author: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Date: Thu Aug 6 19:11:06 2015 +0530
ARC: ensure futex ops are atomic in !LLSC config
W/o hardware assisted atomic r-m-w the best we can do is to disable
preemption.
Cc: David Hildenbrand <dahi@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Michel Lespinasse <walken@xxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 5e0574292ad48dcdf48ef90a47da862c21d649a6
Author: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Date: Thu Aug 6 17:55:34 2015 +0530
ARC: Enable HAVE_FUTEX_CMPXCHG
ARC doesn't need the runtime detection of futex cmpxchg op
Cc: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 882a95ae0a4f8fc303257acf5c6ff305df34d04b
Author: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Date: Thu Aug 6 17:03:17 2015 +0530
ARC: make futex_atomic_cmpxchg_inatomic() return bimodal
Callers of cmpxchg_futex_value_locked() in futex code expect bimodal
return value:
!0 (essentially -EFAULT as failure)
0 (success)
Before this patch, the success return value was old value of futex,
which could very well be non zero, causing caller to possibly take the
failure path erroneously.
Fix that by returning 0 for success
(This fix was done back in 2011 for all upstream arches, which ARC
obviously missed)
Cc: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Michel Lespinasse <walken@xxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit ed574e2bbd81ec20134059fb5e17acbc76387270
Author: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Date: Wed Aug 5 19:23:34 2015 +0530
ARC: futex cosmetics
Cc: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Michel Lespinasse <walken@xxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 31d30c8208a38a0442cc01a9c7f6542489c76353
Author: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Date: Wed Aug 5 19:10:02 2015 +0530
ARC: add barriers to futex code
The atomic ops on futex need to provide the full barrier just like
regular atomics in kernel.
Also remove pagefault_enable/disable in futex_atomic_cmpxchg_inatomic()
as core code already does that
Cc: David Hildenbrand <dahi@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Michel Lespinasse <walken@xxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 1648c70d301e669ba03aa1c70fff46ec2c400414
Author: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Date: Tue Jun 9 11:25:22 2015 +0300
ARCv2: IOC: Allow boot time disable
Signed-off-by: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 79335a2ca03fdd883823e068b5e2f89a8ee47839
Author: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Date: Thu Jun 4 18:30:23 2015 +0530
ARCv2: SLC: Allow boot time disable
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit f2b0b25a37a6db12580dcdfdf00f020e5e0e3a43
Author: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Date: Mon May 25 19:54:28 2015 +0300
ARCv2: Support IO Coherency and permutations involving L1 and L2 caches
In case of ARCv2 CPU there're could be following configurations
that affect cache handling for data exchanged with peripherals
via DMA:
[1] Only L1 cache exists
[2] Both L1 and L2 exist, but no IO coherency unit
[3] L1, L2 caches and IO coherency unit exist
Current implementation takes care of [1] and [2].
Moreover support of [2] is implemented with run-time check
for SLC existence which is not super optimal.
This patch introduces support of [3] and rework of DMA ops
usage. Instead of doing run-time check every time a particular
DMA op is executed we'll have 3 different implementations of
DMA ops and select appropriate one during init.
As for IOC support for it we need:
[a] Implement empty DMA ops because IOC takes care of cache
coherency with DMAed data
[b] Route dma_alloc_coherent() via dma_alloc_noncoherent()
This is required to make IOC work in first place and also
serves as optimization as LD/ST to coherent buffers can be
srviced from caches w/o going all the way to memory
Signed-off-by: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
[vgupta:
-Added some comments about IOC gains
-Marked dma ops as static,
-Massaged changelog a bit]
Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
commit 78a6854e219ba266b6cc12f840b571c5f1168b5e
Author: Sam Bobroff <sam.bobroff@xxxxxxxxxxx>
Date: Mon Jul 20 15:12:19 2015 +1000
merge_config.sh: exit on missing input files
Add a check for the existence of input files and exit (with failure)
if they are missing.
Without this additional check, missing files produce error messages
but still result in an output file being generated and a successful
exit code.
Signed-off-by: Sam Bobroff <sam.bobroff@xxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 724afaea2020f3bd98891b535f3ce5d3935bcf63
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Fri Aug 7 17:34:34 2015 +0100
arm/xen: Remove helpers which are PV specific
ARM guests are always HVM. The current implementation is assuming a 1:1
mapping which is only true for DOM0 and may not be at all in the future.
Furthermore, all the helpers but arbitrary_virt_to_machine are used in
x86 specific code (or only compiled for).
The helper arbitrary_virt_to_machine is only used in PV specific code.
Therefore we should never call the function.
Add a BUG() in this helper and drop all the others.
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 3375d8284dfb7866f261ec008d15d30999ff273b
Author: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Date: Mon Aug 10 16:34:38 2015 -0400
xen/x86: Don't try to set PCE bit in CR4
Since VPMU code emulates RDPMC instruction with RDMSR and because
hypervisor
does not emulate it there is no reason to try setting CR4's PCE bit (and
the
hypervisor will warn on seeing it set).
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit bf6dfb154d935725c9a2005033ca33017b9df439
Author: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Date: Mon Aug 10 16:34:37 2015 -0400
xen/PMU: PMU emulation code
Add PMU emulation code that runs when we are processing a PMU interrupt.
This code will allow us not to trap to hypervisor on each MSR/LVTPC access
(of which there may be quite a few in the handler).
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 6b08cd6328c58a2ae190c5ee03a2ffcab5ef828e
Author: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Date: Mon Aug 10 16:34:36 2015 -0400
xen/PMU: Intercept PMU-related MSR and APIC accesses
Provide interfaces for recognizing accesses to PMU-related MSRs and
LVTPC APIC and process these accesses in Xen PMU code.
(The interrupt handler performs XENPMU_flush right away in the beginning
since no PMU emulation is available. It will be added with a later patch).
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit e27b72df01109c689062caeba1defa013b759e0e
Author: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Date: Mon Aug 10 16:34:35 2015 -0400
xen/PMU: Describe vendor-specific PMU registers
AMD and Intel PMU register initialization and helpers that determine
whether a register belongs to PMU.
This and some of subsequent PMU emulation code is somewhat similar to
Xen's PMU implementation.
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 65d0cf0be79feebeb19e7626fd3ed41ae73f642d
Author: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Date: Mon Aug 10 16:34:34 2015 -0400
xen/PMU: Initialization code for Xen PMU
Map shared data structure that will hold CPU registers, VPMU context,
V/PCPU IDs of the CPU interrupted by PMU interrupt. Hypervisor fills
this information in its handler and passes it to the guest for further
processing.
Set up PMU VIRQ.
Now that perf infrastructure will assume that PMU is available on a PV
guest we need to be careful and make sure that accesses via RDPMC
instruction don't cause fatal traps by the hypervisor. Provide a nop
RDPMC handler.
For the same reason avoid issuing a warning on a write to APIC's LVTPC.
Both of these will be made functional in later patches.
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 5f141548824cebbff2e838ff401c34e667797467
Author: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Date: Mon Aug 10 16:34:33 2015 -0400
xen/PMU: Sysfs interface for setting Xen PMU mode
Set Xen's PMU mode via /sys/hypervisor/pmu/pmu_mode. Add XENPMU hypercall.
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit a11f4f0a4e18b4bdc7d5e36438711e038b7a1f74
Author: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Date: Mon Aug 10 16:34:32 2015 -0400
xen: xensyms support
Export Xen symbols to dom0 via /proc/xen/xensyms (similar to
/proc/kallsyms).
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit cb3eb850137cd43fc3e25d2062525f5ba5fd884a
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:37 2015 +0200
xen: remove no longer needed p2m.h
Cleanup by removing arch/x86/xen/p2m.h as it isn't needed any more.
Most definitions in this file are used in p2m.c only. Move those into
p2m.c.
set_phys_range_identity() is already declared in
arch/x86/include/asm/xen/page.h, add __init annotation there.
MAX_REMAP_RANGES isn't used at all, just delete it.
The only define left is P2M_PER_PAGE which is moved to page.h as well.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit c70727a5bc18a5a233fddc6056d1de9144d7a293
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:36 2015 +0200
xen: allow more than 512 GB of RAM for 64 bit pv-domains
64 bit pv-domains under Xen are limited to 512 GB of RAM today. The
main reason has been the 3 level p2m tree, which was replaced by the
virtual mapped linear p2m list. Parallel to the p2m list which is
being used by the kernel itself there is a 3 level mfn tree for usage
by the Xen tools and eventually for crash dump analysis. For this tree
the linear p2m list can serve as a replacement, too. As the kernel
can't know whether the tools are capable of dealing with the p2m list
instead of the mfn tree, the limit of 512 GB can't be dropped in all
cases.
This patch replaces the hard limit by a kernel parameter which tells
the kernel to obey the 512 GB limit or not. The default is selected by
a configuration parameter which specifies whether the 512 GB limit
should be active per default for domUs (domain save/restore/migration
and crash dump analysis are affected).
Memory above the domain limit is returned to the hypervisor instead of
being identity mapped, which was wrong anyway.
The kernel configuration parameter to specify the maximum size of a
domain can be deleted, as it is not relevant any more.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 70e61199559a09c62714694cd5ac3c3640c41552
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:35 2015 +0200
xen: move p2m list if conflicting with e820 map
Check whether the hypervisor supplied p2m list is placed at a location
which is conflicting with the target E820 map. If this is the case
relocate it to a new area unused up to now and compliant to the E820
map.
As the p2m list might by huge (up to several GB) and is required to be
mapped virtually, set up a temporary mapping for the copied list.
For pvh domains just delete the p2m related information from start
info instead of reserving the p2m memory, as we don't need it at all.
For 32 bit kernels adjust the memblock_reserve() parameters in order
to cover the page tables only. This requires to memblock_reserve() the
start_info page on it's own.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 6c2681c863b24360098d1ba60f2af060a13a0561
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:34 2015 +0200
xen: add explicit memblock_reserve() calls for special pages
Some special pages containing interfaces to xen are being reserved
implicitly only today. The memblock_reserve() call to reserve them is
meant to reserve the p2m list supplied by xen. It is just reserving
not only the p2m list itself, but some more pages up to the start of
the xen built page tables.
To be able to move the p2m list to another pfn range, which is needed
for support of huge RAM, this memblock_reserve() must be split up to
cover all affected reserved pages explicitly.
The affected pages are:
- start_info page
- xenstore ring (might be missing, mfn is 0 in this case)
- console ring (not for initial domain)
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 2592dbbbf4c67501c2bd2dcf89c2b8924d592a9f
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:33 2015 +0200
mm: provide early_memremap_ro to establish read-only mapping
During early boot as Xen pv domain the kernel needs to map some page
tables supplied by the hypervisor read only. This is needed to be
able to relocate some data structures conflicting with the physical
memory map especially on systems with huge RAM (above 512GB).
Provide the function early_memremap_ro() to provide this read only
mapping.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Acked-by: Vlastimil Babka <vbabka@xxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 4b9c15377f96e241be347fd3bbeeff74fbad0b44
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:32 2015 +0200
xen: check for initrd conflicting with e820 map
Check whether the initrd is placed at a location which is conflicting
with the target E820 map. If this is the case relocate it to a new
area unused up to now and compliant to the E820 map.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 04414baab5ba862b10bde837c4773ffdbb78f0e0
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:31 2015 +0200
xen: check pre-allocated page tables for conflict with memory map
Check whether the page tables built by the domain builder are at
memory addresses which are in conflict with the target memory map.
If this is the case just panic instead of running into problems
later.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 808fdb71936c41d46245f0e3aa6ec889cba70d97
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:30 2015 +0200
xen: check for kernel memory conflicting with memory layout
Checks whether the pre-allocated memory of the loaded kernel is in
conflict with the target memory map. If this is the case, just panic
instead of run into problems later, as there is nothing we can do
to repair this situation.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 9ddac5b724a9465e27f25a0aa943e92c8341a85b
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:29 2015 +0200
xen: find unused contiguous memory area
For being able to relocate pre-allocated data areas like initrd or
p2m list it is mandatory to find a contiguous memory area which is
not yet in use and doesn't conflict with the memory map we want to
be in effect.
In case such an area is found reserve it at once as this will be
required to be done in any case.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit e612b4a7db4ae1dd8c2bbe171e10c21723de95b2
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:28 2015 +0200
xen: check memory area against e820 map
Provide a service routine to check a physical memory area against the
E820 map. The routine will return false if the complete area is RAM
according to the E820 map and true otherwise.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 5097cdf6cef15439f971df54f9abcf143d7ca698
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:27 2015 +0200
xen: split counting of extra memory pages from remapping
Memory pages in the initial memory setup done by the Xen hypervisor
conflicting with the target E820 map are remapped. In order to do this
those pages are counted and remapped in xen_set_identity_and_remap().
Split the counting from the remapping operation to be able to setup
the needed memory sizes in time but doing the remap operation at a
later time. This enables us to simplify the interface to
xen_set_identity_and_remap() as the number of remapped and released
pages is no longer needed here.
Finally move the remapping further down to prepare relocating
conflicting memory contents before the memory might be clobbered by
xen_set_identity_and_remap(). This requires to not destroy the Xen
E820 map when the one for the system is being constructed.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 69632ecfcd03b12202ed62dfa0aabac83904f8ac
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:26 2015 +0200
xen: move static e820 map to global scope
Instead of using a function local static e820 map in xen_memory_setup()
and calling various functions in the same source with the map as a
parameter use a map directly accessible by all functions in the source.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 8f5b0c63987207fd5c3c1f89c9eb6cb95b30386e
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:25 2015 +0200
xen: eliminate scalability issues from initial mapping setup
Direct Xen to place the initial P->M table outside of the initial
mapping, as otherwise the 1G (implementation) / 2G (theoretical)
restriction on the size of the initial mapping limits the amount
of memory a domain can be handed initially.
As the initial P->M table is copied rather early during boot to
domain private memory and it's initial virtual mapping is dropped,
the easiest way to avoid virtual address conflicts with other
addresses in the kernel is to use a user address area for the
virtual address of the initial P->M table. This allows us to just
throw away the page tables of the initial mapping after the copy
without having to care about address invalidation.
It should be noted that this patch won't enable a pv-domain to USE
more than 512 GB of RAM. It just enables it to be started with a
P->M table covering more memory. This is especially important for
being able to boot a Dom0 on a system with more than 512 GB memory.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Based-on-patch-by: Jan Beulich <jbeulich@xxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit d51e8b3e85972dee10be7943b0b0106742b1e847
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:24 2015 +0200
xen: don't build mfn tree if tools don't need it
In case the Xen tools indicate they don't need the p2m 3 level tree
as they support the virtual mapped linear p2m list, just omit building
the tree.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 4b9c9a11803eaa73b3223da9fcaea39b2f919d80
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:23 2015 +0200
xen: save linear p2m list address in shared info structure
The virtual address of the linear p2m list should be stored in the
shared info structure read by the Xen tools to be able to support
64 bit pv-domains larger than 512 GB. Additionally the linear p2m
list interface includes a generation count which is changed prior
to and after each mapping change of the p2m list. Reading the
generation count the Xen tools can detect changes of the mappings
and re-read the p2m list eventually.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 17fb46b1190b677a37cdd636e2aa30052109f51b
Author: Juergen Gross <jgross@xxxxxxxx>
Date: Fri Jul 17 06:51:22 2015 +0200
xen: sync with xen headers
Use the newest headers from the xen tree to get some new structure
layouts.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Acked-by: Konrad Rzeszutek Wilk <Konrad.wilk@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 7ed208ef4ef9dbd03cda8a5b5a85cc78f79ef213
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Mon Aug 3 09:50:55 2015 +0000
arm/xen: Drop the definition of xen_pci_platform_unplug
The commit 6f6c15ef912465b3aaafe709f39bd6026a8b3e72 "xen/pvhvm: Remove
the xen_platform_pci int." makes the x86 version of
xen_pci_platform_unplug static.
Therefore we don't need anymore to define a dummy xen_pci_platform_unplug
for ARM.
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
commit 4a5b69464e51f4a8dd432e8c2a1468630df1a53c
Author: Julien Grall <julien.grall@xxxxxxxxxx>
Date: Tue Jul 28 10:10:42 2015 +0100
xen/events: Support event channel rebind on ARM
Currently, the event channel rebind code is gated with the presence of
the vector callback.
The virtual interrupt controller on ARM has the concept of per-CPU
interrupt (PPI) which allow us to support per-VCPU event channel.
Therefore there is no need of vector callback for ARM.
Xen is already using a free PPI to notify the guest VCPU of an event.
Furthermore, the xen code initialization in Linux (see
arch/arm/xen/enlighten.c) is requesting correctly a per-CPU IRQ.
Introduce new helper xen_support_evtchn_rebind to allow architecture
decide whether rebind an event is support or not. It will always return
true on ARM and keep the same behavior on x86.
This is also allow us to drop the usage of xen_have_vector_callback
entirely in the ARM code.
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 907c3eb18e0bd86ca12a9de80befe8e3647bac3e
Author: Bob Liu <bob.liu@xxxxxxxxxx>
Date: Mon Jul 13 17:55:24 2015 +0800
xen-blkfront: convert to blk-mq APIs
Note: This patch is based on original work of Arianna's internship for
GNOME's Outreach Program for Women.
Only one hardware queue is used now, so there is no significant
performance change
The legacy non-mq code is deleted completely which is the same as other
drivers like virtio, mtip, and nvme.
Also dropped one unnecessary holding of info->io_lock when calling
blk_mq_stop_hw_queues().
Signed-off-by: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Bob Liu <bob.liu@xxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Acked-by: Jens Axboe <axboe@xxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit a7da51ae10032a507ddeae6a490916eadbd1e10a
Author: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Date: Wed Jul 15 12:52:01 2015 +0300
xen/preempt: use need_resched() instead of should_resched()
This code is used only when CONFIG_PREEMPT=n and only in non-atomic
context: xen_in_preemptible_hcall is set only in
privcmd_ioctl_hypercall(). Thus preempt_count is zero and
should_resched() is equal to need_resched().
Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit 772f95e3b9460c64fb99b134022855cbce75b9a0
Author: Colin Ian King <colin.king@xxxxxxxxxxxxx>
Date: Thu Jul 16 20:34:42 2015 +0100
x86/xen: fix non-ANSI declaration of xen_has_pv_devices()
xen_has_pv_devices() has no parameters, so use the normal void
parameter convention to make it match the prototype in the header file
include/xen/platform_pci.h.
Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
commit cb73b40e59f0f62099bfb8a836697a74dc151395
Author: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Date: Thu Aug 20 13:46:10 2015 +0300
video: fbdev: atmel: fix warning for const return value
A const on a return value is meaningless and generates a warning on some
versions of gcc:
drivers/video/fbdev/atmel_lcdfb.c:1003: warning: type qualifiers ignored
on function return type
The function in question is only used inside the .c file, so the author
of the code most likely means "static" instead of "const".
Change the const to static.
Reported-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Cc: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
commit dd2281be03a7f4d3f249a733913a9ebb36e721f4
Merge: 40a2ea1 5efb1d5
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Thu Aug 20 11:49:26 2015 +0200
Merge tag 'perf-core-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
- Support Intel PT in several tools, enabling the use of the processor
trace
feature introduced in Intel Broadwell processors: (Adrian Hunter)
# dmesg | grep Performance
# [0.188477] Performance Events: PEBS fmt2+, 16-deep LBR, Broadwell
events, full-width counters, Intel PMU driver.
# perf record -e intel_pt//u -a sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.216 MB perf.data ]
# perf script # then navigate in the tool output to some area, like
this one:
184 1030 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba661440 dl_main
(/usr/lib64/ld-2.17.so)
185 1457 dl_main (/usr/lib64/ld-2.17.so) => 7f21ba669f10
_dl_new_object (/usr/lib64/ld-2.17.so)
186 9f37 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba677b90 strlen
(/usr/lib64/ld-2.17.so)
187 7ba3 strlen (/usr/lib64/ld-2.17.so) => 7f21ba677c75 strlen
(/usr/lib64/ld-2.17.so)
188 7c78 strlen (/usr/lib64/ld-2.17.so) => 7f21ba669f3c _dl_new_object
(/usr/lib64/ld-2.17.so)
189 9f8a _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba65fab0
calloc@plt (/usr/lib64/ld-2.17.so)
190 fab0 calloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e70 calloc
(/usr/lib64/ld-2.17.so)
191 5e87 calloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa90 malloc@plt
(/usr/lib64/ld-2.17.so)
192 fa90 malloc@plt (/usr/lib64/ld-2.17.so) => 7f21ba675e60 malloc
(/usr/lib64/ld-2.17.so)
193 5e68 malloc (/usr/lib64/ld-2.17.so) => 7f21ba65fa80
__libc_memalign@plt (/usr/lib64/ld-2.17.so)
194 fa80 __libc_memalign@plt (/usr/lib64/ld-2.17.so) => 7f21ba675d50
__libc_memalign (/usr/lib64/ld-2.17.so)
195 5d63 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e20
__libc_memalign (/usr/lib64/ld-2.17.so)
196 5e40 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675d73
__libc_memalign (/usr/lib64/ld-2.17.so)
197 5d97 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675e18
__libc_memalign (/usr/lib64/ld-2.17.so)
198 5e1e __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba675df9
__libc_memalign (/usr/lib64/ld-2.17.so)
199 5e10 __libc_memalign (/usr/lib64/ld-2.17.so) => 7f21ba669f8f
_dl_new_object (/usr/lib64/ld-2.17.so)
200 9fc2 _dl_new_object (/usr/lib64/ld-2.17.so) => 7f21ba678e70
memcpy (/usr/lib64/ld-2.17.so)
201 8e8c memcpy (/usr/lib64/ld-2.17.so) => 7f21ba678ea0 memcpy
(/usr/lib64/ld-2.17.so)
- Fix annotation of vdso (Adrian Hunter)
- Fix DWARF callchains in 'perf script' (Jiri Olsa)
- Fix adding probes in kernel syscalls and listing which variables can
be
collected at kernel syscall function lines (Masami Hiramatsu)
Build Fixes:
- Fix 32-bit compilation error in util/annotate.c (Adrian Hunter)
- Support static linking with libdw on Fedora 22 (Andi Kleen)
Infrastructure changes:
- Add a helper function to probe whether cpu-wide tracing is possible
(Adrian Hunter)
- Move vfs_getname storage to per thread area in 'perf trace' (Arnaldo
Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 40a2ea1bd988e3bbdb07a0708681fdb05cd7d267
Merge: a897b5f 1966764
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Thu Aug 20 11:48:56 2015 +0200
Merge branch 'perf/urgent' into perf/core, to pick up fixes before adding
more changes
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit c4a2f5beb7fe3cf4e33ed79040d699fd6c17083f
Author: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Date: Fri Jul 10 15:37:30 2015 +0900
video: fbdev: Drop owner assignment from platform_driver
platform_driver does not need to set an owner because
platform_driver_register() will set it.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
commit 2e8bcf4d40d8ec720372df5c591f0151f8ffe946
Author: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Date: Fri Jul 10 15:37:29 2015 +0900
video: fbdev: Drop owner assignment from i2c_driver
i2c_driver does not need to set an owner because i2c_register_driver()
will set it.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
commit c0a3229313d6931a77e0c1e1c22e398c0312bf6f
Author: Marcin Chojnacki <marcinch7@xxxxxxxxx>
Date: Thu Jun 18 15:01:52 2015 +0200
fbdev: remove unnecessary memset in vfb
In vfb_probe memory is allocated using rvmalloc which automatically
sets the allocated memory to zero. This patch removes the second
unnecessary memset in vfb_probe.
Signed-off-by: Marcin Chojnacki <marcinch7@xxxxxxxxx>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
commit 7a4b6c860e7268a79545c30882928b234dd1655d
Author: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
Date: Fri Aug 7 17:16:03 2015 +0200
can: flexcan: demote register output to debug level
This message isn't really helpful for the general reader of the kernel
logs, so should not be printed with info level. All other register
programming outputs in the flexcan driver already use the debug level.
Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>
commit ae421e33bce78c7d624ecbf079cdaa5248f167b6
Author: Nik Nyby <nikolas@xxxxxxx>
Date: Mon Jun 29 19:09:57 2015 -0400
can: gs_usb: Fix typo in function name
This fixes typos in gs_usb.c where 'receive' is misspelled
as 'recieve'.
Signed-off-by: Nik Nyby <nikolas@xxxxxxx>
Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>
commit e72bb8a5a884d022231149d407653923a1d79e53
Author: Samuel Mendoza-Jonas <sam.mj@xxxxxxxxxxx>
Date: Wed Jul 22 15:50:51 2015 +1000
powerpc/powernv: Reset HILE before kexec_sequence()
On powernv secondary cpus are returned to OPAL, and will then enter
the target kernel in big-endian. However if it is set the HILE bit
will persist, causing the first exception in the target kernel to be
delivered in litte-endian regardless of the current endianness.
If running on top of OPAL make sure the HILE bit is reset once we've
finished waiting for all of the secondaries to be returned to OPAL.
Signed-off-by: Samuel Mendoza-Jonas <sam.mj@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit ffebf5f391dfa9da3e086abad3eef7d3e5300249
Author: Samuel Mendoza-Jonas <sam.mj@xxxxxxxxxxx>
Date: Wed Jul 22 15:50:50 2015 +1000
powerpc/kexec: Reset secondary cpu endianness before kexec
If the target kernel does not inlcude the FIXUP_ENDIAN check, coming
from a different-endian kernel will cause the target kernel to panic.
All ppc64 kernels can handle starting in big-endian mode, so return to
big-endian before branching into the target kernel.
This mainly affects pseries as secondaries on powernv are returned to
OPAL.
Signed-off-by: Samuel Mendoza-Jonas <sam.mj@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 480798044eb268a31f6b84bc3b7f99b9989e463d
Author: Laurent Dufour <ldufour@xxxxxxxxxxxxxxxxxx>
Date: Fri Jul 31 11:29:50 2015 +0200
powerpc/hvsi: Fix endianness issues in the HVSI driver
This patch fixes several endianness issues detected when running the HVSI
driver in little endian mode.
These issues are raised in little endian mode because the data exchanged
in
memory between the kernel and the hypervisor has to be in big endian
format. This exhibits as errors such as:
irq: (null) didn't like hwirq-0x1000a00 to VIRQ16 mapping (rc=-22)
hvsi_console_init: couldn't create irq mapping for 0x1000a00
The data structures already have endian annotations, and sparse is
generating numerous warnings based on those. This commit fixes all of
them.
Signed-off-by: Laurent Dufour <ldufour@xxxxxxxxxxxxxxxxxx>
CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
CC: Jiri Slaby <jslaby@xxxxxxx>
CC: linuxppc-dev@xxxxxxxxxxxxxxxx
CC: linux-kernel@xxxxxxxxxxxxxxx
[mpe: Flesh out change log]
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 84ad6e5cd3e8b365c893f31787864cae5500610b
Author: Vasant Hegde <hegdevasant@xxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 22:19:54 2015 +0530
leds/powernv: Add driver for PowerNV platform
This patch implements LED driver for PowerNV platform using the existing
generic LED class framework.
PowerNV platform has below type of LEDs:
- System attention
Indicates there is a problem with the system that needs attention.
- Identify
Helps the user locate/identify a particular FRU or resource in the
system.
- Fault
Indicates there is a problem with the FRU or resource at the
location with which the indicator is associated.
We register classdev structures for all individual LEDs detected on the
system through LED specific device tree nodes. Device tree nodes specify
what all kind of LEDs present on the same location code. It registers
LED classdev structure for each of them.
All the system LEDs can be found in the same regular path
/sys/class/leds/.
We don't use LED colors. We use LED node and led-types property to form
LED classdev. Our LEDs have names in this format.
<location_code>:<attention|identify|fault>
Any positive brightness value would turn on the LED and a zero value would
turn off the LED. The driver will return LED_FULL (255) for any turned on
LED and LED_OFF (0) for any turned off LED.
The platform level implementation of LED get and set state has been
achieved through OPAL calls. These calls are made available for the
driver by exporting from architecture specific codes.
Signed-off-by: Vasant Hegde <hegdevasant@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Anshuman Khandual <khandual@xxxxxxxxxxxxxxxxxx>
Acked-by: Stewart Smith <stewart@xxxxxxxxxxxxxxxxxx>
Tested-by: Stewart Smith <stewart@xxxxxxxxxxxxxxxxxx>
Acked-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit c159b5968ec9d3cbf16802189b29eb0ec17ae4d8
Author: Vasant Hegde <hegdevasant@xxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 22:19:53 2015 +0530
powerpc/powernv: Create LED platform device
This patch adds platform devices for leds. Also export LED related
OPAL API's so that led driver can use these APIs.
Signed-off-by: Vasant Hegde <hegdevasant@xxxxxxxxxxxxxxxxxx>
Acked-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 8a8d91817aec6b9ca7a289891f9e6f721100ec09
Author: Anshuman Khandual <khandual@xxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 22:19:52 2015 +0530
powerpc/powernv: Add OPAL interfaces for accessing and modifying system
LED states
This patch registers the following two new OPAL interfaces calls
for the platform LED subsystem. With the help of these new OPAL calls,
the kernel will be able to get or set the state of various individual
LEDs on the system at any given location code which is passed through
the LED specific device tree nodes.
(1) OPAL_LEDS_GET_INDICATOR opal_leds_get_ind
(2) OPAL_LEDS_SET_INDICATOR opal_leds_set_ind
Signed-off-by: Anshuman Khandual <khandual@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Vasant Hegde <hegdevasant@xxxxxxxxxxxxxxxxxx>
Acked-by: Stewart Smith <stewart@xxxxxxxxxxxxxxxxxx>
Tested-by: Stewart Smith <stewart@xxxxxxxxxxxxxxxxxx>
Acked-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 48fd8ecf29e3c1199432e173858f5ca4bc529738
Author: Nicolai Stange <nicstange@xxxxxxxxx>
Date: Wed Jun 17 21:40:33 2015 +0200
framebuffer: disable vgacon on microblaze arch
Fix an allmodconfig link failer on microblaze:
drivers/built-in.o: In function `vgacon_save_screen':
drivers/video/console/.tmp_vgacon.o:(.text+0x8fc10):
undefined reference to `screen_info'
Disable vgacon on microblaze because the symbol
struct screen_info screen_info;
is not defined for the microblaze arch.
Signed-off-by: Nicolai Stange <nicstange@xxxxxxxxx>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
commit f63cb8d7aa31e7a8f98cec36557b265951e9aba7
Author: Alexey Klimov <klimov.linux@xxxxxxxxx>
Date: Mon Jun 8 02:02:47 2015 +0300
fbdev: udlfb: remove unneeded initialization in few places
Small minor cleanup.
This patch removes unneeded initializations of variables
in few places in different functions and one empty line.
Signed-off-by: Alexey Klimov <klimov.linux@xxxxxxxxx>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
commit 71540cfbe9d401f4848abc0e6b56a541307a47dd
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Sun Aug 2 11:09:53 2015 +0200
fbdev: Allow compile test of GPIO consumers if !GPIOLIB
The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is
not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer
functionality only, can still be compiled if GPIOLIB is not enabled.
Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where
appropriate.
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
commit 6080a89357cc46f3450839a84af75c3d18f57772
Author: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Date: Thu Jan 15 13:47:19 2015 +0200
fbdev: fix cea_modes array size
CEA defines 64 modes, indexed from 1 to 64. modedb has cea_modes arrays,
which contains 64 entries. However, the code uses the CEA indices
directly, i.e. the first mode is at cea_modes[1]. This means the array
is one too short.
This does not cause references to uninitialized memory as the code in
fbmon only allows indexes up to 63, and the cea_modes does not contain
an entry for the mode 64 so it could not be used in any case.
However, the code contains a check 'if (idx > ARRAY_SIZE(cea_modes)',
and while that check is a no-op as at that point idx cannot be >= 63, it
upsets static checkers.
Fix this by increasing the cea_array size to be 65, and change the code
to allow mode 64.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
commit 23a1ec304ae8fdd29235f864bd8193e9981c9bd1
Author: Jon Hunter <jonathanh@xxxxxxxxxx>
Date: Thu Aug 6 14:32:33 2015 +0100
dmaengine: tegra-apb: Simplify locking for device using global pause
Sparse reports the following with regard to locking in the
tegra_dma_global_pause() and tegra_dma_global_resume() functions:
drivers/dma/tegra20-apb-dma.c:362:9: warning: context imbalance in
'tegra_dma_global_pause' - wrong count at exit
drivers/dma/tegra20-apb-dma.c:366:13: warning: context imbalance in
'tegra_dma_global_resume' - unexpected unlock
The warning is caused because tegra_dma_global_pause() acquires a lock
but does not release it. However, the lock is released by
tegra_dma_global_resume(). These pause/resume functions are called in
pairs and so it does appear to work.
This global pause is used on early tegra devices that do not have an
individual pause for each channel. The lock appears to be used to ensure
that multiple channels do not attempt to assert/de-assert the global pause
at the same time which could cause the DMA controller to be in the wrong
paused state. Rather than locking around the entire code between the pause
and resume, employ a simple counter to keep track of the global pause
requests. By using a counter, it is only necessary to hold the lock when
pausing and unpausing the DMA controller and hence, fixes the sparse
warning.
Please note that for devices that support individual channel pausing, the
DMA controller lock is not held between pausing and unpausing the channel.
Hence, this change will make the devices that use the global pause behave
in the same way, with regard to locking, as those that don't.
Signed-off-by: Jon Hunter <jonathanh@xxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit dc1ff4b30a3592caf2ac6be691bd6c97b17383cd
Author: Jon Hunter <jonathanh@xxxxxxxxxx>
Date: Thu Aug 6 14:32:32 2015 +0100
dmaengine: tegra-apb: Remove unnecessary return statements and variables
Some void functions have unnecessary return statements at the end
(reported by sparse) and so remove these. Also remove the return variables
from functions tegra_dma_prep_slave_sg() and tegra_dma_prep_slave_cyclic()
because the value is not used.
Signed-off-by: Jon Hunter <jonathanh@xxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 13a3328638dd009e76d4bb86e18dc8f3ae4f11dd
Author: Jon Hunter <jonathanh@xxxxxxxxxx>
Date: Thu Aug 6 14:32:31 2015 +0100
dmaengine: tegra-apb: Avoid unnecessary channel base address calculation
Everytime a DMA channel register is accessed, the channel base address
is calculated by adding the DMA base address and the channel register
offset. Avoid this calculation and simply calculate the channel base
address once at probe time for each DMA channel.
Signed-off-by: Jon Hunter <jonathanh@xxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit c67886f5b809cfd9dc20f906f38fc0eddc7cba93
Author: Jon Hunter <jonathanh@xxxxxxxxxx>
Date: Thu Aug 6 14:32:30 2015 +0100
dmaengine: tegra-apb: Remove unused variables
The callback and callback_param members of the tegra_dma_sg_req structure
are never used. The dma-engine structure, dma_async_tx_descriptor, defines
the same members and these are the ones used by the driver. Therefore,
remove the unused versions from the tegra_dma_sg_req structure.
The half_done member of tegra_dma_channel structure is configured but
never used and so remove it.
Signed-off-by: Jon Hunter <jonathanh@xxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 8d1ceb52e110aec808d64973f90fe4f69a5e42e9
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Thu Aug 20 01:31:58 2015 -0500
PCI: imx6: Simplify a trivial if-return sequence
Simplify a trivial if-return sequence by combining it with a preceding
function call.
The semantic patch that makes this change is available in
scripts/coccinelle/misc/simple_return.cocci.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
CC: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
commit 68ebb7ce395c6d8ca99163911ec384853d4f88ad
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Thu Aug 20 01:31:24 2015 -0500
PCI: spear: Use BUG_ON() instead of condition followed by BUG()
Use BUG_ON() instead of an if condition followed by BUG().
The semantic patch that makes this change is available in
scripts/coccinelle/misc/bugon.cocci.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
CC: Pratyush Anand <pratyush.anand@xxxxxxxxx>
commit 7dfffb9541bca80bbf8df1869564f9220ee150d2
Author: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Date: Mon Aug 17 15:08:55 2015 +0200
dmaengine: Stricter legacy checking in dma_request_slave_channel_compat()
dma_request_slave_channel_compat() is meant for drivers that support
both DT and legacy platform device based probing: if DT channel DMA
setup fails, it will fall back to platform data based DMA channel setup,
using hardcoded DMA channel IDs and a filter function.
However, if the DTS doesn't provide a "dmas" property for the device,
the fallback is also used. If the legacy filter function is not
hardcoded in the DMA slave driver, but comes from platform data, it will
be NULL. Then dma_request_slave_channel_compat() will succeed
incorrectly, and return a DMA channel, as a NULL legacy filter function
actually means "all channels are OK", not "do not match".
Later, when trying to use that DMA channel, it will fail with:
rcar-dmac e6700000.dma-controller: rcar_dmac_prep_slave_sg: bad
parameter: len=1, id=-22
To fix this, ensure that both the filter function and the DMA channel ID
are not NULL before using the legacy fallback.
Note that some DMA slave drivers can handle this failure, and will fall
back to PIO.
See also commit 056f6c87028544de ("dmaengine: shdma: Make dummy
shdma_chan_filter() always return false"), which fixed the same issue
for the case where shdma_chan_filter() is hardcoded in a DMA slave
driver.
Suggested-by: Arnd Bergmann <arnd@xxxxxxxx>
Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit d3f4caa355c1c9d2ce7fd3da88e2be37836323db
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Thu Aug 20 01:30:36 2015 -0500
PCI: dra7xx: Remove unneeded use of IS_ERR_VALUE()
There is no need to use the IS_ERR_VALUE() macro for checking the return
value from pm_runtime_* functions.
Test for a negative pm_runtime_get_sync() return value instead of using
IS_ERR_VALUE().
The semantic patch that makes this change is available in
scripts/coccinelle/api/pm_runtime.cocci.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
CC: Kishon Vijay Abraham I <kishon@xxxxxx>
commit 89079493437701551938652003eb75b328425c66
Author: Rameshwar Prasad Sahu <rsahu@xxxxxxx>
Date: Tue Jul 21 18:44:39 2015 +0530
dmaengine: xgene-dma: Add ACPI support for X-Gene DMA engine driver
This patch adds ACPI support for the APM X-Gene DMA engine driver.
Signed-off-by: Rameshwar Prasad Sahu <rsahu@xxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 74703cc4e08372b8aedfd687bef8182797215d30
Author: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
Date: Mon Jul 20 18:14:58 2015 +0800
powerpc/powernv: Fix the log message when disabling VF
On powernv platform, IOV BAR would be shifted if necessary. While the log
message is not correct when disabling VFs.
This patch fixes this by print correct message based on the offset value.
Signed-off-by: Wei Yang <weiyang@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 7c26b9cf5347c24272152438cdd9675183804425
Author: Andrew Donnellan <andrew.donnellan@xxxxxxxxxxx>
Date: Wed Aug 19 09:27:18 2015 +1000
cxl: Allow release of contexts which have been OPENED but not STARTED
If we open a context but do not start it (either because we do not attempt
to start it, or because it fails to start for some reason), we are left
with a context in state OPENED. Previously, cxl_release_context() only
allowed releasing contexts in state CLOSED, so attempting to release an
OPENED context would fail.
In particular, this bug causes available contexts to run out after some
EEH
failures, where drivers attempt to release contexts that have failed to
start.
Allow releasing contexts in any state with a value lower than STARTED,
i.e.
OPENED or CLOSED (we can't release a STARTED context as it's currently
using the hardware, and we assume that contexts in any new states which
may
be added in future with a value higher than STARTED are also unsafe to
release).
Cc: stable@xxxxxxxxxxxxxxx
Fixes: 6f7f0b3df6d4 ("cxl: Add AFU virtual PHB and kernel API")
Signed-off-by: Andrew Donnellan <andrew.donnellan@xxxxxxxxxxx>
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Acked-by: Ian Munsie <imunsie@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit a1a42b7920ba57f287d742d42f113402fbb7c85e
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Thu Jul 30 18:18:47 2015 +0200
macintosh/therm_windtunnel: Export OF module alias information
The I2C core always reports the MODALIAS uevent as "i2c:<client name"
regardless if the driver was matched using the I2C id_table or the
of_match_table. So technically there's no need for a driver to export
the OF table since currently it's not used.
In fact, the I2C device ID table is mandatory for I2C drivers since
a i2c_device_id is passed to the driver's probe function even if the
I2C core used the OF table to match the driver.
And since the I2C core uses different tables, OF-only drivers needs to
have duplicated data that has to be kept in sync and also the dev node
compatible manufacturer prefix is stripped when reporting the MODALIAS.
To avoid the above, the I2C core behavior may be changed in the future
to not require an I2C device table for OF-only drivers and report the
OF module alias. So, it's better to also export the OF table to prevent
breaking module autoloading if that happens.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit cb0eefcc3271ea1d370476dd29685918b99c5a9f
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Thu Jul 30 18:18:30 2015 +0200
macintosh/therm_windtunnel: Export I2C module alias information
The I2C core always reports the MODALIAS uevent as "i2c:<client name"
regardless if the driver was matched using the I2C id_table or the
of_match_table. So the driver needs to export the I2C table and this
be built into the module or udev won't have the necessary information
to auto load the correct module when the device is added.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit b93edcdd037f713e9b62cc76fb2064282af01aec
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Wed Jul 29 21:03:49 2015 -0300
dmaengine: imx-sdma: Check for clk_enable() errors
clk_enable() may fail, so we should better check the return value and
propagate it in the case of error.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit b096c1377d1e50cea91d1db13bca8e7802199a67
Author: Emilio López <emilio@xxxxxxxxxxxxx>
Date: Sun Jul 26 22:50:55 2015 +0200
dmaengine: sun4i: Add support for the DMA engine on sun[457]i SoCs
This patch adds support for the DMA engine present on Allwinner A10,
A13, A10S and A20 SoCs. This engine has two kinds of channels: normal
and dedicated. The main difference is in the mode of operation;
while a single normal channel may be operating at any given time,
dedicated channels may operate simultaneously provided there is no
overlap of source or destination.
Hardware documentation can be found on A10 User Manual (section 12), A13
User Manual (section 14) and A20 User Manual (section 1.12)
Signed-off-by: Emilio López <emilio@xxxxxxxxxxxxx>
Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Signed-off-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 18041e31743d278b6323518d20a2ef656c3cc689
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 21:40:16 2015 +0300
vrf: vrf_master_ifindex_rcu is not always called with rcu read lock
While running net-next I hit this:
[ 634.073119] ===============================
[ 634.073150] [ INFO: suspicious RCU usage. ]
[ 634.073182] 4.2.0-rc6+ #45 Not tainted
[ 634.073213] -------------------------------
[ 634.073244] include/net/vrf.h:38 suspicious rcu_dereference_check()
usage!
[ 634.073274]
other info that might help us debug this:
[ 634.073307]
rcu_scheduler_active = 1, debug_locks = 1
[ 634.073338] 2 locks held by swapper/0/0:
[ 634.073369] #0: (((&n->timer))){+.-...}, at: [<ffffffff8112bc35>]
call_timer_fn+0x5/0x480
[ 634.073412] #1: (slock-AF_INET){+.-...}, at: [<ffffffff8174f0f5>]
icmp_send+0x155/0x5f0
[ 634.073450]
stack backtrace:
[ 634.073483] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.2.0-rc6+ #45
[ 634.073514] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
VirtualBox 12/01/2006
[ 634.073545] 0000000000000000 0593ba8242d9ace4 ffff88002fc03b48
ffffffff81803f1b
[ 634.073612] 0000000000000000 ffffffff81e12500 ffff88002fc03b78
ffffffff811003c5
[ 634.073642] 0000000000000000 ffff88002ec4e600 ffffffff81f00f80
ffff88002fc03cf0
[ 634.073669] Call Trace:
[ 634.073694] <IRQ> [<ffffffff81803f1b>] dump_stack+0x4c/0x65
[ 634.073728] [<ffffffff811003c5>] lockdep_rcu_suspicious+0xc5/0x100
[ 634.073763] [<ffffffff8174eb56>] icmp_route_lookup+0x176/0x5c0
[ 634.073793] [<ffffffff8174f2fb>] ? icmp_send+0x35b/0x5f0
[ 634.073818] [<ffffffff8174f274>] ? icmp_send+0x2d4/0x5f0
[ 634.073844] [<ffffffff8174f3ce>] icmp_send+0x42e/0x5f0
[ 634.073873] [<ffffffff8170b662>] ipv4_link_failure+0x22/0xa0
[ 634.073899] [<ffffffff8174bdda>] arp_error_report+0x3a/0x80
[ 634.073926] [<ffffffff816d6100>] ? neigh_lookup+0x2c0/0x2c0
[ 634.073952] [<ffffffff816d396e>] neigh_invalidate+0x8e/0x110
[ 634.073984] [<ffffffff816d62ae>] neigh_timer_handler+0x1ae/0x290
[ 634.074013] [<ffffffff816d6100>] ? neigh_lookup+0x2c0/0x2c0
[ 634.074013] [<ffffffff8112bce3>] call_timer_fn+0xb3/0x480
[ 634.074013] [<ffffffff8112bc35>] ? call_timer_fn+0x5/0x480
[ 634.074013] [<ffffffff816d6100>] ? neigh_lookup+0x2c0/0x2c0
[ 634.074013] [<ffffffff8112c2bc>] run_timer_softirq+0x20c/0x430
[ 634.074013] [<ffffffff810af50e>] __do_softirq+0xde/0x630
[ 634.074013] [<ffffffff810afc97>] irq_exit+0x117/0x120
[ 634.074013] [<ffffffff81810976>] smp_apic_timer_interrupt+0x46/0x60
[ 634.074013] [<ffffffff8180e950>] apic_timer_interrupt+0x70/0x80
[ 634.074013] <EOI> [<ffffffff8106b9d6>] ? native_safe_halt+0x6/0x10
[ 634.074013] [<ffffffff81101d8d>] ? trace_hardirqs_on+0xd/0x10
[ 634.074013] [<ffffffff81027d43>] default_idle+0x23/0x200
[ 634.074013] [<ffffffff8102852f>] arch_cpu_idle+0xf/0x20
[ 634.074013] [<ffffffff810f89ba>] default_idle_call+0x2a/0x40
[ 634.074013] [<ffffffff810f8dcc>] cpu_startup_entry+0x39c/0x4c0
[ 634.074013] [<ffffffff817f9cad>] rest_init+0x13d/0x150
[ 634.074013] [<ffffffff81f69038>] start_kernel+0x4a8/0x4c9
[ 634.074013] [<ffffffff81f68120>] ?
early_idt_handler_array+0x120/0x120
[ 634.074013] [<ffffffff81f68339>] x86_64_start_reservations+0x2a/0x2c
[ 634.074013] [<ffffffff81f68485>] x86_64_start_kernel+0x14a/0x16d
It would seem vrf_master_ifindex_rcu() can be called without RCU held in
other contexts as well so introduce a new helper which acquires rcu and
returns the ifindex.
Also add curly braces around both the "if" and "else" parts as per the
style guide.
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit aaba64487a96df6584a05d8898634307f3c86790
Merge: d072f46 b55a1b9
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Thu Aug 20 14:11:17 2015 +1000
Merge branch 'drm-next-fsl-dcu' of
https://github.com/Jianwei-Wang/linux-drm-fsl-dcu into drm-next
Merge Freescale DCU FRM driver.
* 'drm-next-fsl-dcu' of https://github.com/Jianwei-Wang/linux-drm-fsl-dcu:
MAINTAINERS: Add Freescale DCU DRM driver maintainer
devicetree: Add NEC to the vendor-prefix list
drm/layerscape: Add Freescale DCU DRM driver
commit 2a606188c55990fa65cba3fd9b64f2b7542b7692
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 22:30:00 2015 -0500
NFSv4: Enable delegated opens even when reboot recovery is pending
Unlike the previous attempt, this takes into account the fact that
we may be calling it from the recovery thread itself. Detect this
by looking at what kind of open we're doing, and checking the state
of the NFS_DELEGATION_NEED_RECLAIM if it turns out we're doing a
reboot reclaim-type open.
Cc: Olga Kornievskaia <aglo@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit c740624989eb87fa7cbd1b5338cef01dd49f1f29
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 23:00:50 2015 -0500
pNFS: Fix an unused variable warning in pnfs_roc_get_barrier
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit c2126157ea3c4f72b315749e0c07a1b162a2fe2b
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 21:46:15 2015 -0500
SUNRPC: Allow sockets to do GFP_NOIO allocations
Follow up to commit c4a7ca774949 ("SUNRPC: Allow waiting on memory
allocation"). Allows the RPC socket code to do non-IO blocking.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit b55a1b9c55ee9ed5b7d1d2acbabb078a454dbeea
Author: Jianwei Wang <jianwei.wang.chn@xxxxxxxxx>
Date: Wed Aug 19 22:26:33 2015 -0400
MAINTAINERS: Add Freescale DCU DRM driver maintainer
Add Alison and myself as maintainers of the Freescale DCU DRM driver.
Signed-off-by: Alison Wang <b18965@xxxxxxxxxxxxx>
Signed-off-by: Xiubo Li <lixiubo@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jianwei Wang <jianwei.wang.chn@xxxxxxxxx>
commit 6e3fc2741ae8107546673656de89eefb89051ec0
Author: Jianwei Wang <jianwei.wang.chn@xxxxxxxxx>
Date: Wed Aug 19 22:24:45 2015 -0400
devicetree: Add NEC to the vendor-prefix list
NEC represent NEC LCD Technologies, Ltd.
Signed-off-by: Alison Wang <b18965@xxxxxxxxxxxxx>
Signed-off-by: Xiubo Li <lixiubo@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jianwei Wang <jianwei.wang.chn@xxxxxxxxx>
commit 109eee2f2a181a89a26f6b59b83b50ebab281d4d
Author: Jianwei Wang <jianwei.wang.chn@xxxxxxxxx>
Date: Wed Aug 19 22:19:49 2015 -0400
drm/layerscape: Add Freescale DCU DRM driver
This patch add support for Two Dimensional Animation and Compositing
Engine (2D-ACE) on the Freescale SoCs.
2D-ACE is a Freescale display controller. 2D-ACE describes
the functionality of the module extremely well its name is a value
that cannot be used as a token in programming languages.
Instead the valid token "DCU" is used to tag the register names and
function names.
The Display Controller Unit (DCU) module is a system master that
fetches graphics stored in internal or external memory and displays
them on a TFT LCD panel. A wide range of panel sizes is supported
and the timing of the interface signals is highly configurable.
Graphics are read directly from memory and then blended in real-time,
which allows for dynamic content creation with minimal CPU
intervention.
The features:
(1) Full RGB888 output to TFT LCD panel.
(2) Blending of each pixel using up to 4 source layers
dependent
on size of panel.
(3) Each graphic layer can be placed with one pixel resolution
in either axis.
(4) Each graphic layer support RGB565 and RGB888 direct colors
without alpha channel and BGRA8888 BGRA4444 ARGB1555 direct
colors
with an alpha channel and YUV422 format.
(5) Each graphic layer support alpha blending with 8-bit
resolution.
This is a simplified version, only one primary plane, one
framebuffer, one crtc, one connector and one encoder for TFT
LCD panel.
Signed-off-by: Alison Wang <b18965@xxxxxxxxxxxxx>
Signed-off-by: Xiubo Li <lixiubo@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jianwei Wang <jianwei.wang.chn@xxxxxxxxx>
Acked-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 824e7383e92815cb591793c74cc836aa5165f7f8
Author: Ying Xue <ying.xue@xxxxxxxxxxxxx>
Date: Wed Aug 19 15:46:17 2015 +0800
lwtunnel: Fix the sparse warnings in fib_encap_match
When CONFIG_LWTUNNEL config is not enabled, the lwtstate_free() is not
declared in lwtunnel.h at all. However, even in this case, the function
is still referenced in fib_semantics.c so that there appears the
following sparse warnings:
net/ipv4/fib_semantics.c:553:17: error: undefined identifier
'lwtstate_free'
CC net/ipv4/fib_semantics.o
net/ipv4/fib_semantics.c: In function â??fib_encap_matchâ??:
net/ipv4/fib_semantics.c:553:3: error: implicit declaration of function
â??lwtstate_freeâ?? [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[1]: *** [net/ipv4/fib_semantics.o] Error 1
make: *** [net/ipv4/fib_semantics.o] Error 2
To eliminate the error, we define an empty function for lwtstate_free()
in lwtunnel.h when CONFIG_LWTUNNEL is disabled.
Fixes: df383e6240ef ("lwtunnel: fix memory leak")
Cc: Jiri Benc <jbenc@xxxxxxxxxx>
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: Ying Xue <ying.xue@xxxxxxxxxxxxx>
Acked-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d072f4654464b242e536a03102ebd3d481f6b418
Merge: e2a8986 5b9fb5e
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Thu Aug 20 10:35:29 2015 +1000
Merge branch 'drm-atmel-hlcdc-devel' of
https://github.com/bbrezillon/linux-at91 into drm-next
The following PR add support for 3 more atmel SoCs and for some missing
features (new input formats and PRIME support).
* 'drm-atmel-hlcdc-devel' of https://github.com/bbrezillon/linux-at91:
drm: atmel-hlcdc: add support for sama5d4 SoCs
drm: atmel-hlcdc: add support for at91sam9n12 SoC
drm: atmel-hlcdc: add support for at91sam9x5 SoCs
drm: atmel-hlcdc: add RGB565 and RGB444 output support
drm: atmel-hlcdc: add the missing DRM_ATOMIC flag
drm: atmel-hlcdc: add PRIME support
commit e2a8986f3e287dc036ce1b9452d7b9e2d8839f2b
Merge: 294947a 05906de
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Thu Aug 20 09:40:49 2015 +1000
Merge branch 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux
into drm-next
amdgpu and radeon changes for 4.3. Highlights:
- Fiji support for amdgpu.
- CGS support for amdgpu. This is a new driver
internal cross-component API.
- Initial GPU scheduler for amdgpu. Still disabled
by default.
- Lots of bug fixes and optimizations
* 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux: (130
commits)
drm/amdgpu: wait on page directory changes. v2
drm/amdgpu: Select BACKLIGHT_LCD_SUPPORT
drm/radeon: Select BACKLIGHT_LCD_SUPPORT
drm/amdgpu: cleanup sheduler rq handling v2
drm/amdgpu: move prepare work out of scheduler to cs_ioctl
drm/amdgpu: fix unnecessary wake up
drm/amdgpu: fix duplicated mapping invoke bug
drm/amdgpu: drop bo_list_clone when no scheduler
drm/amdgpu: disable GPU reset by default
drm/amdgpu: fix type mismatch error
drm/amdgpu: add reference for **fence
drm/amdgpu: fix waiting for all fences before flipping
drm/amdgpu: fix UVD return code checking
drm/amdgpu: remove scheduler fence list v2
drm/amdgpu: remove amd_sched_wait_emit v2
drm/amdgpu: remove unecessary scheduler fence callbacks
drm/amdgpu: fix scheduler fence implementation
drm/amdgpu: don't grab dev->struct_mutex in pm functions
drm/amdgpu: Don't take dev->struct_mutex in bo_force_delete
drm/radeon: Don't take dev->struct_mutex in pm functions
...
commit aa493382cb8c5768ba452d87f175fc2aff63911d
Merge: 5be203a 3403ccc
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Thu Aug 20 09:28:45 2015 +1000
Merge branch 'xfs-misc-fixes-for-4.3-2' into for-next
commit 3403ccc0c9f069c40ea751a93ac6746f5ef2116a
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Thu Aug 20 09:27:49 2015 +1000
xfs: inode lockdep annotations broke non-lockdep build
Fix CONFIG_LOCKDEP=n build, because asserts I put in to ensure we
aren't overrunning lockdep subclasses in commit 0952c81 ("xfs:
clean up inode lockdep annotations") use a define that doesn't
exist when CONFIG_LOCKDEP=n
Only check the subclass limits when lockdep is actually enabled.
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit b226eca2088004622434cbcc27c6401b64f22d7c
Author: Ezequiel GarcÃa <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 19 19:40:09 2015 -0300
nand: pxa3xx: Increase READ_ID buffer and make the size static
The read ID count should be made as large as the maximum READ_ID size,
so there's no need to have dynamic size. This commit sets the hardware
maximum read ID count, which should be more than enough on all cases.
Also, we get rid of the read_id_bytes, and use a macro instead.
Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Acked-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 21fc0ef9652f0c809dc0d3e0a67f1e1bf6ff8255
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Wed Aug 19 20:30:15 2015 +0200
mtd: nand: pxa3xx-nand: fix random command timeouts
When 2 commands are submitted in a row, and the second is very quick,
the completion of the second command might never come. This happens
especially if the second command is quick, such as a status read after
an erase.
The issue is that in the interrupt handler, the status bits are cleared
after the new command is issued. There is a small temporal window where
this happens :
- the previous command has set the command done bit
- the ready for a command bit is set
- the handler submits the next command
- just then, the command completes, and the command done bit is still
set
- the handler clears the "previous" command done bit
- the handler exits
In this flow, the "command done" of the next command will never trigger
a new interrupt to finish the status command, as it was cleared for both
commands.
Fix this by clearing the status bit before submitting a new command.
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Acked-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Tested-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 0b14392db2e998157d924085d7913e537ec26121
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Wed Aug 19 20:30:14 2015 +0200
mtd: nand: pxa3xx_nand: fix early spurious interrupt
When the nand is first probe, and upon the first command start, the
status bits should be cleared before the interrupts are unmasked.
The bug is tricky : if the bootloader left a status bit set, the
unmasking of interrupts does trigger the interrupt handler before the
first command is issued, blocking the good behavior of the nand.
The same would happen if in pxa3xx_nand code flow a status bit is left,
and then a command is started.
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Acked-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Tested-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit e3f879bf1ea3e03f433d292b0114807785f0754b
Author: Sunad Bhandary <sunad.s@xxxxxxxxxxx>
Date: Fri Jul 31 18:56:58 2015 +0530
NVMe:Remove unreachable code in nvme_abort_req
Removing unreachable code from nvme_abort_req as nvme_submit_cmd has no
failure status to return.
Signed-off-by: Sunad Bhandary <sunad.s@xxxxxxxxxxx>
Acked-by: Keith Busch <keith.busch@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 054167b3d55127feb64978eddf3f9f3a84fe493b
Author: Mario Smarduch <m.smarduch@xxxxxxxxxxx>
Date: Thu Jul 16 22:29:38 2015 +0100
arm: KVM: keep arm vfp/simd exit handling consistent with arm64
After enhancing arm64 FP/SIMD exit handling, ARMv7 VFP exit branch is
moved
to guest trap handling. This allows us to keep exit handling flow between
both
architectures consistent.
Signed-off-by: Mario Smarduch <m.smarduch@xxxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit b84b8390d6009cde5134f775a251103c14bbed74
Author: Filipe Manana <fdmanana@xxxxxxxx>
Date: Wed Aug 19 11:09:40 2015 +0100
Btrfs: fix file read corruption after extent cloning and fsync
If we partially clone one extent of a file into a lower offset of the
file, fsync the file, power fail and then mount the fs to trigger log
replay, we can get multiple checksum items in the csum tree that overlap
each other and result in checksum lookup failures later. Those failures
can make file data read requests assume a checksum value of 0, but they
will not return an error (-EIO for example) to userspace exactly because
the expected checksum value 0 is a special value that makes the read bio
endio callback return success and set all the bytes of the corresponding
page with the value 0x01 (at fs/btrfs/inode.c:__readpage_endio_check()).
From a userspace perspective this is equivalent to file corruption
because we are not returning what was written to the file.
Details about how this can happen, and why, are included inline in the
following reproducer test case for fstests and the comment added to
tree-log.c.
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
tmp=/tmp/$$
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_cleanup()
{
_cleanup_flakey
rm -f $tmp.*
}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
. ./common/dmflakey
# real QA test starts here
_need_to_be_root
_supported_fs btrfs
_supported_os Linux
_require_scratch
_require_dm_flakey
_require_cloner
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
_scratch_mkfs >>$seqres.full 2>&1
_init_flakey
_mount_flakey
# Create our test file with a single 100K extent starting at file
# offset 800K. We fsync the file here to make the fsync log tree gets
# a single csum item that covers the whole 100K extent, which causes
# the second fsync, done after the cloning operation below, to not
# leave in the log tree two csum items covering two sub-ranges
# ([0, 20K[ and [20K, 100K[)) of our extent.
$XFS_IO_PROG -f -c "pwrite -S 0xaa 800K 100K" \
-c "fsync" \
$SCRATCH_MNT/foo | _filter_xfs_io
# Now clone part of our extent into file offset 400K. This adds a file
# extent item to our inode's metadata that points to the 100K extent
# we created before, using a data offset of 20K and a data length of
# 20K, so that it refers to the sub-range [20K, 40K[ of our original
# extent.
$CLONER_PROG -s $((800 * 1024 + 20 * 1024)) -d $((400 * 1024)) \
-l $((20 * 1024)) $SCRATCH_MNT/foo $SCRATCH_MNT/foo
# Now fsync our file to make sure the extent cloning is durably
# persisted. This fsync will not add a second csum item to the log
# tree containing the checksums for the blocks in the sub-range
# [20K, 40K[ of our extent, because there was already a csum item in
# the log tree covering the whole extent, added by the first fsync
# we did before.
$XFS_IO_PROG -c "fsync" $SCRATCH_MNT/foo
echo "File digest before power failure:"
md5sum $SCRATCH_MNT/foo | _filter_scratch
# Silently drop all writes and ummount to simulate a crash/power
# failure.
_load_flakey_table $FLAKEY_DROP_WRITES
_unmount_flakey
# Allow writes again, mount to trigger log replay and validate file
# contents.
# The fsync log replay first processes the file extent item
# corresponding to the file offset 400K (the one which refers to the
# [20K, 40K[ sub-range of our 100K extent) and then processes the file
# extent item for file offset 800K. It used to happen that when
# processing the later, it erroneously left in the csum tree 2 csum
# items that overlapped each other, 1 for the sub-range [20K, 40K[ and
# 1 for the whole range of our extent. This introduced a problem where
# subsequent lookups for the checksums of blocks within the range
# [40K, 100K[ of our extent would not find anything because lookups in
# the csum tree ended up looking only at the smaller csum item, the
# one covering the subrange [20K, 40K[. This made read requests assume
# an expected checksum with a value of 0 for those blocks, which caused
# checksum verification failure when the read operations finished.
# However those checksum failure did not result in read requests
# returning an error to user space (like -EIO for e.g.) because the
# expected checksum value had the special value 0, and in that case
# btrfs set all bytes of the corresponding pages with the value 0x01
# and produce the following warning in dmesg/syslog:
#
# "BTRFS warning (device dm-0): csum failed ino 257 off 917504 csum\
# 1322675045 expected csum 0"
#
_load_flakey_table $FLAKEY_ALLOW_WRITES
_mount_flakey
echo "File digest after log replay:"
# Must match the same digest he had after cloning the extent and
# before the power failure happened.
md5sum $SCRATCH_MNT/foo | _filter_scratch
_unmount_flakey
status=0
exit
Signed-off-by: Filipe Manana <fdmanana@xxxxxxxx>
Reviewed-by: Liu Bo <bo.li.liu@xxxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit 1f9b8c8fbc9a4d029760b16f477b9d15500e3a34
Author: Filipe Manana <fdmanana@xxxxxxxx>
Date: Wed Aug 12 11:54:35 2015 +0100
Btrfs: check if previous transaction aborted to avoid fs corruption
While we are committing a transaction, it's possible the previous one is
still finishing its commit and therefore we wait for it to finish first.
However we were not checking if that previous transaction ended up getting
aborted after we waited for it to commit, so we ended up committing the
current transaction which can lead to fs corruption because the new
superblock can point to trees that have had one or more nodes/leafs that
were never durably persisted.
The following sequence diagram exemplifies how this is possible:
CPU 0
CPU 1
transaction N starts
(...)
btrfs_commit_transaction(N)
cur_trans->state = TRANS_STATE_COMMIT_START;
(...)
cur_trans->state = TRANS_STATE_COMMIT_DOING;
(...)
cur_trans->state = TRANS_STATE_UNBLOCKED;
root->fs_info->running_transaction = NULL;
btrfs_start_transaction()
-->
starts transaction N + 1
btrfs_write_and_wait_transaction(trans, root);
--> starts writing all new or COWed ebs created
at transaction N
creates
some new ebs, COWs some
existing
ebs but doesn't COW or
deletes eb X
btrfs_commit_transaction(N + 1)
(...)
cur_trans->state = TRANS_STATE_COMMIT_START;
(...)
wait_for_commit(root, prev_trans);
-->
prev_trans == transaction N
btrfs_write_and_wait_transaction() continues
writing ebs
--> fails writing eb X, we abort transaction N
and set bit BTRFS_FS_STATE_ERROR on
fs_info->fs_state, so no new transactions
can start after setting that bit
cleanup_transaction()
btrfs_cleanup_one_transaction()
wakes up task at CPU 1
continues, doesn't abort because
cur_trans->aborted (transaction N + 1)
is zero,
and no checks for bit
BTRFS_FS_STATE_ERROR in fs_info->fs_state
are made
btrfs_write_and_wait_transaction(trans, root);
-->
succeeds, no errors during writeback
write_ctree_super(trans, root, 0);
-->
succeeds
--> we
have now a superblock that points us
to
some root that uses eb X, which was
never written to disk
In this scenario future attempts to read eb X from disk results in an
error message like "parent transid verify failed on X wanted Y found Z".
So fix this by aborting the current transaction if after waiting for the
previous transaction we verify that it was aborted.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Filipe Manana <fdmanana@xxxxxxxx>
Reviewed-by: Josef Bacik <jbacik@xxxxxx>
Reviewed-by: Liu Bo <bo.li.liu@xxxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit 03100aada96f0645bbcb89aea24c01f02d0ef1fa
Author: Keith Busch <keith.busch@xxxxxxxxx>
Date: Wed Aug 19 14:24:05 2015 -0700
block: Replace SG_GAPS with new queue limits mask
The SG_GAPS queue flag caused checks for bio vector alignment against
PAGE_SIZE, but the device may have different constraints. This patch
adds a queue limits so a driver with such constraints can set to allow
requests that would have been unnecessarily split. The new gaps check
takes the request_queue as a parameter to simplify the logic around
invoking this function.
This new limit makes the queue flag redundant, so removing it and
all usage. Device-mappers will inherit the correct settings through
blk_stack_limits().
Signed-off-by: Keith Busch <keith.busch@xxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 33c76a0b8126946026fa1122cb774553afae0956
Author: Mario Smarduch <m.smarduch@xxxxxxxxxxx>
Date: Thu Jul 16 22:29:37 2015 +0100
arm64: KVM: Optimize arm64 skip 30-50% vfp/simd save/restore on exits
This patch only saves and restores FP/SIMD registers on Guest access. To
do
this cptr_el2 FP/SIMD trap is set on Guest entry and later checked on
exit.
lmbench, hackbench show significant improvements, for 30-50% exits FP/SIMD
context is not saved/restored
[chazy/maz: fixed save/restore logic for 32bit guests]
Signed-off-by: Mario Smarduch <m.smarduch@xxxxxxxxxxx>
Signed-off-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 277fb5fc177dc4674ef6151a7697f5396bbdff11
Author: Michal Hocko <mhocko@xxxxxxxx>
Date: Wed Aug 19 14:17:41 2015 +0200
btrfs: use __GFP_NOFAIL in alloc_btrfs_bio
alloc_btrfs_bio relies on GFP_NOFS allocation when committing the
transaction but this allocation context is rather weak wrt. reclaim
capabilities. The page allocator currently tries hard to not fail these
allocations if they are small (<=PAGE_ALLOC_COSTLY_ORDER) but it can
still fail if the _current_ process is the OOM killer victim. Moreover
there is an attempt to move away from the default no-fail behavior and
allow these allocation to fail more eagerly. This would lead to:
[ 37.928625] kernel BUG at fs/btrfs/extent_io.c:4045
which is clearly undesirable and the nofail behavior should be explicit
if the allocation failure cannot be tolerated.
Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit d1b5c5671d010de1df78d3efddb84bf22bfafd1e
Author: Michal Hocko <mhocko@xxxxxxxx>
Date: Wed Aug 19 14:17:40 2015 +0200
btrfs: Prevent from early transaction abort
Btrfs relies on GFP_NOFS allocation when committing the transaction but
this allocation context is rather weak wrt. reclaim capabilities. The
page allocator currently tries hard to not fail these allocations if
they are small (<=PAGE_ALLOC_COSTLY_ORDER) so this is not a problem
currently but there is an attempt to move away from the default no-fail
behavior and allow these allocation to fail more eagerly. And this would
lead to a pre-mature transaction abort as follows:
[ 55.328093] Call Trace:
[ 55.328890] [<ffffffff8154e6f0>] dump_stack+0x4f/0x7b
[ 55.330518] [<ffffffff8108fa28>] ? console_unlock+0x334/0x363
[ 55.332738] [<ffffffff8110873e>] __alloc_pages_nodemask+0x81d/0x8d4
[ 55.334910] [<ffffffff81100752>] pagecache_get_page+0x10e/0x20c
[ 55.336844] [<ffffffffa007d916>] alloc_extent_buffer+0xd0/0x350
[btrfs]
[ 55.338973] [<ffffffffa0059d8c>]
btrfs_find_create_tree_block+0x15/0x17 [btrfs]
[ 55.341329] [<ffffffffa004f728>] btrfs_alloc_tree_block+0x18c/0x405
[btrfs]
[ 55.343566] [<ffffffffa003fa34>] split_leaf+0x1e4/0x6a6 [btrfs]
[ 55.345577] [<ffffffffa0040567>] btrfs_search_slot+0x671/0x831 [btrfs]
[ 55.347679] [<ffffffff810682d7>] ? get_parent_ip+0xe/0x3e
[ 55.349434] [<ffffffffa0041cb2>] btrfs_insert_empty_items+0x5d/0xa8
[btrfs]
[ 55.351681] [<ffffffffa004ecfb>] __btrfs_run_delayed_refs+0x7a6/0xf35
[btrfs]
[ 55.353979] [<ffffffffa00512ea>] btrfs_run_delayed_refs+0x6e/0x226
[btrfs]
[ 55.356212] [<ffffffffa0060e21>] ? start_transaction+0x192/0x534
[btrfs]
[ 55.358378] [<ffffffffa0060e21>] ? start_transaction+0x192/0x534
[btrfs]
[ 55.360626] [<ffffffffa0060221>] btrfs_commit_transaction+0x4c/0xaba
[btrfs]
[ 55.362894] [<ffffffffa0060e21>] ? start_transaction+0x192/0x534
[btrfs]
[ 55.365221] [<ffffffffa0073428>] btrfs_sync_file+0x29c/0x310 [btrfs]
[ 55.367273] [<ffffffff81186808>] vfs_fsync_range+0x8f/0x9e
[ 55.369047] [<ffffffff81186833>] vfs_fsync+0x1c/0x1e
[ 55.370654] [<ffffffff81186869>] do_fsync+0x34/0x4e
[ 55.372246] [<ffffffff81186ab3>] SyS_fsync+0x10/0x14
[ 55.373851] [<ffffffff81554f97>] system_call_fastpath+0x12/0x6f
[ 55.381070] BTRFS: error (device hdb1) in btrfs_run_delayed_refs:2821:
errno=-12 Out of memory
[ 55.382431] BTRFS warning (device hdb1): Skipping commit of aborted
transaction.
[ 55.382433] BTRFS warning (device hdb1): cleanup_transaction:1692:
Aborting unused transaction(IO failure).
[ 55.384280] ------------[ cut here ]------------
[ 55.384312] WARNING: CPU: 0 PID: 3010 at fs/btrfs/delayed-ref.c:438
btrfs_select_ref_head+0xd9/0xfe [btrfs]()
[...]
[ 55.384337] Call Trace:
[ 55.384353] [<ffffffff8154e6f0>] dump_stack+0x4f/0x7b
[ 55.384357] [<ffffffff8107f717>] ? down_trylock+0x2d/0x37
[ 55.384359] [<ffffffff81046977>] warn_slowpath_common+0xa1/0xbb
[ 55.384398] [<ffffffffa00a1d6b>] ? btrfs_select_ref_head+0xd9/0xfe
[btrfs]
[ 55.384400] [<ffffffff81046a34>] warn_slowpath_null+0x1a/0x1c
[ 55.384423] [<ffffffffa00a1d6b>] btrfs_select_ref_head+0xd9/0xfe
[btrfs]
[ 55.384446] [<ffffffffa004e5f7>] ?
__btrfs_run_delayed_refs+0xa2/0xf35 [btrfs]
[ 55.384455] [<ffffffffa004e600>] __btrfs_run_delayed_refs+0xab/0xf35
[btrfs]
[ 55.384476] [<ffffffffa00512ea>] btrfs_run_delayed_refs+0x6e/0x226
[btrfs]
[ 55.384499] [<ffffffffa0060e21>] ? start_transaction+0x192/0x534
[btrfs]
[ 55.384521] [<ffffffffa0060e21>] ? start_transaction+0x192/0x534
[btrfs]
[ 55.384543] [<ffffffffa0060221>] btrfs_commit_transaction+0x4c/0xaba
[btrfs]
[ 55.384565] [<ffffffffa0060e21>] ? start_transaction+0x192/0x534
[btrfs]
[ 55.384588] [<ffffffffa0073428>] btrfs_sync_file+0x29c/0x310 [btrfs]
[ 55.384591] [<ffffffff81186808>] vfs_fsync_range+0x8f/0x9e
[ 55.384592] [<ffffffff81186833>] vfs_fsync+0x1c/0x1e
[ 55.384593] [<ffffffff81186869>] do_fsync+0x34/0x4e
[ 55.384594] [<ffffffff81186ab3>] SyS_fsync+0x10/0x14
[ 55.384595] [<ffffffff81554f97>] system_call_fastpath+0x12/0x6f
[...]
[ 55.384608] ---[ end trace c29799da1d4dd621 ]---
[ 55.437323] BTRFS info (device hdb1): forced readonly
[ 55.438815] BTRFS info (device hdb1): delayed_refs has NO entry
Fix this by being explicit about the no-fail behavior of this allocation
path and use __GFP_NOFAIL.
Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit 60d53eb3107c8e8960e8d7c22aa4e69aac7a8fe6
Author: Zhaolei <zhaolei@xxxxxxxxxxxxxx>
Date: Mon Aug 17 18:44:46 2015 +0800
btrfs: Remove unused arguments in tree-log.c
Following arguments are not used in tree-log.c:
insert_one_name(): path, type
wait_log_commit(): trans
wait_for_writer(): trans
This patch remove them.
Signed-off-by: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit 34eb2a524997e5cd7117569b1fda925516adf6ac
Author: Zhaolei <zhaolei@xxxxxxxxxxxxxx>
Date: Mon Aug 17 18:44:45 2015 +0800
btrfs: Remove useless condition in start_log_trans()
Dan Carpenter <dan.carpenter@xxxxxxxxxx> reported a smatch warning
for start_log_trans():
fs/btrfs/tree-log.c:178 start_log_trans()
warn: we tested 'root->log_root' before and it was 'false'
fs/btrfs/tree-log.c
147 if (root->log_root) {
We test "root->log_root" here.
...
Reason:
Condition of:
fs/btrfs/tree-log.c:178: if (!root->log_root) {
is not necessary after commit: 7237f1833
It caused a smatch warning, and no functionally error.
Fix:
Deleting above condition will make smatch shut up,
but a better way is to do cleanup for start_log_trans()
to remove duplicated code and make code more readable.
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
commit 95ecdc2549ccc1f4f5af1f37c080120c2f0a1be3
Author: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 14:20:45 2015 -0700
Input: cros_ec_keyb - replace KEYBOARD_CROS_EC dependency
The ChromeOS EC keyboard driver config depends on CROS_EC_PROTO but
MFD_CROS_EC selects CROS_EC_PROTO instead. Mixing select and depends
on is bad practice as it may lead to circular Kconfig dependencies.
Since the platform device that is matched with the keyboard driver
is registered by the ChromeOS EC mfd driver, KEYBOARD_CROS_EC really
should depend on MFD_CROS_EC. And because this config option selects
CROS_EC_PROTO, that dependency is met as well. So make the driver
to depend on MFD_CROS_EC instead of CROS_EC_PROTO.
Signed-off-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 18e1db67e93ed75d9dc0d34c8d783ccf10547c2b
Author: Bernhard Thaler <bernhard.thaler@xxxxxxxx>
Date: Thu Aug 13 08:58:15 2015 +0200
netfilter: bridge: fix IPv6 packets not being bridged with CONFIG_IPV6=n
230ac490f7fba introduced a dependency to CONFIG_IPV6 which breaks bridging
of IPv6 packets on a bridge with CONFIG_IPV6=n.
Sysctl entry /proc/sys/net/bridge/bridge-nf-call-ip6tables defaults to 1,
for this reason packets are handled by br_nf_pre_routing_ipv6(). When
compiled
with CONFIG_IPV6=n this function returns NF_DROP but should return
NF_ACCEPT
to let packets through.
Change CONFIG_IPV6=n br_nf_pre_routing_ipv6() return value to NF_ACCEPT.
Tested with a simple bridge with two interfaces and IPv6 packets trying
to pass from host on left side to host on right side of the bridge.
Fixes: 230ac490f7fba ("netfilter: bridge: split ipv6 code into separated
file")
Signed-off-by: Bernhard Thaler <bernhard.thaler@xxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit bf798657eb5ba57552096843c315f096fdf9b715
Author: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
Date: Wed Aug 12 17:41:00 2015 +0200
netfilter: nf_tables: Use 32 bit addressing register from
nft_type_to_reg()
nft_type_to_reg() needs to return the register in the new 32 bit
addressing,
otherwise we hit EINVAL when using mappings.
Fixes: 49499c3 ("netfilter: nf_tables: switch registers to 32 bit
addressing")
Reported-by: Andreas Schultz <aschultz@xxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit 69f230d907e8c1ca3f9bd528993eeb98f712b0dd
Author: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Date: Thu Aug 20 01:52:59 2015 +0800
NFS41/flexfiles: update inode after write finishes
Otherwise we break fstest case tests/read_write/mctime.t
Does files layout need the same fix as well?
Cc: stable@xxxxxxxxxxxxxxx # v4.0+
Cc: Anna Schumaker <anna.schumaker@xxxxxxxxxx>
Signed-off-by: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit c5e5cd28d7c5a18d6da6575957dd0c5243ac3e7b
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Wed Aug 19 11:37:57 2015 +0800
spi: mediatek: remove redundant clock in
prepare_hardware/unprepare_hardware
clock in prepare_hardware/unprepare_hardware is redundant
with pm_runtime, so remove them.
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit aaee24accb9e374c04eb9672d5324160626462c5
Author: Mark Greer <mgreer@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 08:58:52 2015 -0700
NFC: trf7970a: Add NULL check to clear up smatch warning
Although it should be unnecessary, add a NULL pointer check
to trf7970a_send_upstream() to eliminate a smatch warning.
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Mark Greer <mgreer@xxxxxxxxxxxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit ae291f79da57ef4cb747ae1940b37152d1a4e5cf
Author: Mark Greer <mgreer@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 08:57:58 2015 -0700
NFC: trf7970a: SDD_EN is bit 5 not bit 3
The SDD_EN bit in the NFC Target Detection Level Register
is bit 5 not bit 3 so change the TRF7970A_NFC_TARGET_LEVEL_SDD_EN
macro accordingly.
Reported-by: Raymond Lei <Raymond.Lei@xxxxxxxxxx>
Signed-off-by: Mark Greer <mgreer@xxxxxxxxxxxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 777572911a732c0d3e6dbc514f9a1206606ffd0b
Author: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
Date: Wed Jul 8 16:28:19 2015 +0200
dmaengine: mv_xor: optimize performance by using a subset of the XOR
channels
Due to how async_tx behaves internally, having more XOR channels than
CPUs is actually hurting performance more than it improves it, because
memcpy requests get scheduled on a different channel than the XOR
requests, but async_tx will still wait for the completion of the
memcpy requests before scheduling the XOR requests.
It is in fact more efficient to have at most one channel per CPU,
which this patch implements by limiting the number of channels per
engine, and the number of engines registered depending on the number
of availables CPUs.
Marvell platforms are currently available in one CPU, two CPUs and
four CPUs configurations:
- in the configurations with one CPU, only one channel from one
engine is used.
- in the configurations with two CPUs, only one channel from each
engine is used (they are two XOR engines)
- in the configurations with four CPUs, both channels of both engines
are used.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 6d8f7abd235c1a38629cdada49cc53992f4ad42e
Author: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
Date: Wed Jul 8 16:28:16 2015 +0200
dmaengine: mv_xor: remove support for dmacap,* DT properties
The only reason why we had dmacap,* properties is because back when
DMA_MEMSET was supported, only one out of the two channels per engine
could do a memset operation. But this is something that the driver
already knows anyway, and since then, the DMA_MEMSET support has been
removed.
The driver is already well aware of what each channel supports and the
one to one mapping between Linux specific implementation details (such
as dmacap,interrupt enabling DMA_INTERRUPT) and DT properties is a
good indication that these DT properties are wrong.
Therefore, this commit simply gets rid of these dmacap,* properties,
they are now ignored, and the driver is responsible for knowing the
capabilities of the hardware with regard to the dmaengine subsystem
expectations.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 31495d60a06524f37a9ea66d7d62ce0418ef3506
Author: Michal Suchanek <hramrach@xxxxxxxxx>
Date: Thu Jul 23 18:04:49 2015 +0200
dmaengine: pl330: do not emit loop for 1 byte transfer.
When there is only one burst required do not emit loop instructions to
loop exactly once. Emit just the body of the loop.
Signed-off-by: Michal Suchanek <hramrach@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 1cf5a330c05ae37a0a98ac7c9800a6f50d5579ec
Author: Nikesh Oswal <Nikesh.Oswal@xxxxxxxxxxxxxxxx>
Date: Wed Aug 19 16:02:24 2015 +0100
ASoC: arizona: Fix gain settings of FLL in free-run mode
The wrong register was used to set the gain of ref loop, when changing
the FLL output on an active FLL. This patch corrects the offset of the
gain register.
Signed-off-by: Nikesh Oswal <Nikesh.Oswal@xxxxxxxxxxxxxxxx>
Signed-off-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 5a286aae3d2c6e494fbcafdf4e911e2e976562a8
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Wed Aug 19 11:17:53 2015 +0800
regulator: qcom_smd: Set n_voltages for pm8941_lnldo
Just setting fixed_uV is not enough, the regulator core will also check
n_voltages setting. The fixed_uV only works when n_voltages is 1.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit bf0c4e04732479f650ff59d1ee82de761c0071f0
Author: Jeff Vander Stoep <jeffv@xxxxxxxxxx>
Date: Tue Aug 18 20:50:10 2015 +0100
arm64: kconfig: Move LIST_POISON to a safe value
Move the poison pointer offset to 0xdead000000000000, a
recognized value that is not mappable by user-space exploits.
Cc: <stable@xxxxxxxxxxxxxxx>
Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Signed-off-by: Thierry Strudel <tstrudel@xxxxxxxxxx>
Signed-off-by: Jeff Vander Stoep <jeffv@xxxxxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit ccf2dc51bc4a715670641aa5af0d4636acd8e0cd
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Aug 17 20:08:09 2015 -0700
hwmon: (ltc2978) Add support for LTM4675
LTM2975 is a dual 9A or single 18A μModule regulator.
It is register compatible with LTM4676.
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit e04d1ce9bbb49862fd8266da764f5ebf67baaac0
Author: Michael Jones <mike@xxxxxxxxxxxxx>
Date: Mon Aug 17 17:45:32 2015 -0700
hwmon: (ltc2978) Add polling for chips requiring it
Some of the LTC chips supported by this driver have to be polled
to ensure that they are ready to accept commands.
Signed-off-by: Michael Jones <mike@xxxxxxxxxxxxx>
[Guenter Roeck: simplifications and formatting changes]
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit d830e27dac26b4f084c5ed2282666527f90db0ed
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Aug 17 16:26:21 2015 -0700
hwmon: (pmbus) Enable PEC if the controller supports it
PMBus controllers optionally support PEC. Configure the driver
to use it if available to improve operational security.
Suggested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 2c052d4280ca48fddc7a9ffd2329ada3628cab86
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Aug 17 16:17:24 2015 -0700
hwmon: (pmbus) Use BIT macro
Using the BIT macro makes the code a little easier to read.
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 9430e547894d2ff099e5717050eb40c1e1dd2bad
Author: Julian Scheel <julian@xxxxxxxx>
Date: Wed Aug 19 09:28:09 2015 +0200
ALSA: usb-audio: Recurse before saving terminal properties
The input terminal parser recurses into the referenced clock entity to
verify
it is existant and thus the terminal descriptor is valid. The actual
property
values of the term instance which is initially parsed must not be
overriden by
the recursion. For this to work the term properties have to be assigned
after
recursing into the referenced clock entity descriptors.
Signed-off-by: Julian Scheel <julian@xxxxxxxx>
Acked-by: Daniel Mack <daniel@xxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit ebb75c0bdba238013976b53e256f8d13216304e4
Author: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Date: Sat Aug 15 07:21:00 2015 +0530
ASoC: rockchip: i2s: Adjust devm usage
Remove use of snd_soc_unregister_component in remove function
as devm_snd_soc_register_component in probe function automatically
handles it.
Also, convert call of snd_dmaengine_pcm_register to managed resource
function devm_snd_dmaengine_pcm_register and remove usage of
snd_dmaengine_pcm_unregister in probe and remove functions.
Signed-off-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit bea107b1f1ee79da0bc2c1ee0c70bf1c3c6c41b4
Author: Christian Kujau <lists@xxxxxxxxxxxxxxx>
Date: Sun Aug 2 20:03:26 2015 -0700
fallback to hostname in scripts/package/builddeb
I happened to build a kernel with "make deb-pkg" on a machine with no
network connectivity, but this failed with:
[...]
INSTALL debian/headertmp/usr/include/asm/ (65 files)
hostname: Name or service not known
../scripts/package/Makefile:90: recipe for target 'deb-pkg' failed
make[2]: *** [deb-pkg] Error 1
In scripts/package/builddeb it tries to construct an email address (that
can be queried in /proc/version later on) but with no network,
the "hostname -f" fails. The following patch falls back to just use the
shortname if we cannot determine our FQDN.
Signed-off-by: Christian Kujau <lists@xxxxxxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxx>
commit 2f27b81c0e5670fbdd902ca8f85617153d69b8cb
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Mon Jul 27 15:55:15 2015 -0500
dmaengine: kill off set_irq_flags usage
set_irq_flags is ARM specific with custom flags which have genirq
equivalents. Convert drivers to use the genirq interfaces directly, so we
can kill off set_irq_flags. The translation of flags is as follows:
IRQF_VALID -> !IRQ_NOREQUEST
IRQF_PROBE -> !IRQ_NOPROBE
IRQF_NOAUTOEN -> IRQ_NOAUTOEN
For IRQs managed by an irqdomain, the irqdomain core code handles clearing
and setting IRQ_NOREQUEST already, so there is no need to do this in
.map() functions and we can simply remove the set_irq_flags calls. Some
users also modify IRQ_NOPROBE and this has been maintained although it
is not clear that is really needed. There appears to be a great deal of
blind copy and paste of this code.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: dmaengine@xxxxxxxxxxxxxxx
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit d078cd1b4185134fe861e2b16a40ba14efb307b7
Author: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Date: Thu Jul 23 11:40:49 2015 +0800
dmaengine: imx-sdma: Add imx6sx platform support
The new Solo X has more requirements for SDMA events. So it creates
a event mux to remap most of event numbers in GPR (General Purpose
Register). If we want to use SDMA support for those module who do
not get the even number as default, we need to configure GPR first.
Thus this patch adds this support of GPR event remapping configuration
to the SDMA driver.
Signed-off-by: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit e900c30dc1bb0cbc07708e9be1188f531632b2ef
Author: Ludovic Desroches <ludovic.desroches@xxxxxxxxx>
Date: Wed Jul 22 16:12:29 2015 +0200
dmaengine: at_xdmac: fix bug in prep_dma_cyclic
In cyclic mode, the round chaining has been broken by the introduction
of at_xdmac_queue_desc(): AT_XDMAC_MBR_UBC_NDE is set for all descriptors
excepted for the last one. at_xdmac_queue_desc() has to be called one
more time to chain the last and the first descriptors.
Signed-off-by: Ludovic Desroches <ludovic.desroches@xxxxxxxxx>
Fixes: 0d0ee751f7f7 ("dmaengine: xdmac: Rework the chaining logic")
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit e755d638e91be254d441602e8d7d9f1d9c944556
Author: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 13:49:19 2015 +0800
NFS41: make sure sending LAYOUTRETURN before close if marked so
If layout is marked by NFS_LAYOUT_RETURN_BEFORE_CLOSE, we should always
send LAYOUTRETURN before close, and we don't need to do ROC drain if we
do send LAYOUTRETURN.
Signed-off-by: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit bec8a5a22640325e86cf5b737c18888747631099
Author: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Date: Fri Jul 10 13:53:06 2015 +0900
coccinelle: api: extend spatch for dropping unnecessary owner
i2c_add_driver (through i2c_register_driver) sets the owner field so we
can drop it also from i2c drivers, just like from platform drivers.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Acked-by: Julia Lawall <Julia.Lawall@xxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 09cd75555cd9051bdeac7a29c6ff12d6b9e8341b
Author: Andreas Ruprecht <andreas.ruprecht@xxxxxx>
Date: Sun Jul 12 09:41:51 2015 +0200
kconfig: Regenerate shipped zconf.{hash,lex}.c files
Update the shipped files generated by flex and gperf to support the
explicit use of "---help---" and to emit warnings for unsupported
characters on COMMAND tokens.
As I could not find out which flex/gperf version was used to generate
the previous version, I used flex 2.5.35 and gperf 3.0.4 from
Ubuntu 14.04 - this also leads to the big number of changed lines
in this patch.
Signed-off-by: Andreas Ruprecht <andreas.ruprecht@xxxxxx>
Reviewed-by: Ulf Magnusson <ulfalizer@xxxxxxxxx>
Tested-by: Ulf Magnusson <ulfalizer@xxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit c2264564df3d70723c6d6eb96c18b99698c112fd
Author: Andreas Ruprecht <andreas.ruprecht@xxxxxx>
Date: Sun Jul 12 09:41:50 2015 +0200
kconfig: warn of unhandled characters in Kconfig commands
In Kconfig, definitions of options take the following form:
"<COMMAND> <PARAM> <PARAM> ...". COMMANDs and PARAMs are treated
slightly different by the underlying parser.
While commit 2e0d737fc76f ("kconfig: don't silently ignore unhandled
characters") introduced a warning for unsupported characters around
PARAMs, it does not cover situations where a COMMAND has additional
characters before it.
This change makes Kconfig emit a warning if superfluous characters
are found before COMMANDs. As the 'help' statement sometimes is
written as '---help---', the '-' character would now also be regarded
as unhandled and generate a warning. To avoid that, '-' is added to
the list of allowed characters, and the token '---help---' is included
in the zconf.gperf file.
Reported-by: Valentin Rothberg <valentinrothberg@xxxxxxxxx>
Signed-off-by: Andreas Ruprecht <andreas.ruprecht@xxxxxx>
Reviewed-by: Ulf Magnusson <ulfalizer@xxxxxxxxx>
Tested-by: Ulf Magnusson <ulfalizer@xxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 8f183751a8604be5aaf0ad6dedac4890bb6fa0d5
Author: Stephan Mueller <smueller@xxxxxxxxxx>
Date: Wed Aug 19 08:42:07 2015 +0200
crypto: cmac - allow usage in FIPS mode
CMAC is an approved cipher in FIPS 140-2. The patch allows the use
of CMAC with TDES and AES in FIPS mode.
Signed-off-by: Stephan Mueller <smueller@xxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 66c9a04e33947191a03a1cf5103b8bf9051774df
Author: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Date: Tue Aug 18 11:36:05 2015 +0530
crypto: sahara - Use dmam_alloc_coherent
This patch moves the data allocated using dma_alloc_coherent to the
corresponding managed interface. To be compatible with the change,
various gotos are replaced with direct returns and unneeded labels
are dropped.
Signed-off-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 35ffd08d9bc92b5d56f6536406c379d82a757e7a
Author: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Tue Jul 7 21:48:23 2015 +0200
kconfig: Delete unnecessary checks before the function call
"sym_calc_value"
The sym_calc_value() function tests whether its argument is NULL and then
returns immediately. Thus the test around the call is not needed.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit bf7b00557d10c0b84b6717305815c8fff7007830
Author: Riku Voipio <riku.voipio@xxxxxxxxxx>
Date: Thu May 28 12:11:14 2015 +0300
deb-pkg: simplify directory creation
Every package needs /usr/share/doc/$package_name and
DEBIAN directory, so create them as part of create_package
function.
Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 3c42f0b803613c4888aa2214e86d6ea746cb94de
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Jun 16 18:00:37 2015 -0700
scripts/tags.sh: Include trace_*_rcuidle() in tags
Every tracepoint creates two functions, the usual one 'trace_*()'
and the rcuidle one 'trace_*_rcuidle()'. Add regex for the
rcuidle variant so that we can jump to the tracepoints that use
rcuidle.
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Signed-off-by: Michal Marek <mmarek@xxxxxxxx>
commit 5db879aefa0ef6dea4fdda268dd94016bc165f3d
Author: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
Date: Thu Jul 9 14:19:43 2015 +0530
ath10k: free collected fw stats memory if .pull_fw_stats fails
If .pull_fw_stats() fails for some reason while processing
fw stats event, collected pdev/vdev/peer stats just before
the failure should be freed. This is unlikely to happen,
just code review catch.
Signed-off-by: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit f1ee2682ef8dffe6d6ec6f7788d6bf33d6bab7a6
Author: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
Date: Thu Jul 9 14:19:42 2015 +0530
ath10k: ensure pktlog disable cmd reaches fw before pdev suspend
Found incorrect sequence in ath10k_core_stop() where wmi pktlog
disable cmd is passed from ath10k_debug_stop() to firmware
immediately after wmi pdev suspend cmd. Firmware will not accept
any wmi cmd after receiving wmi pdev suspend cmd.
Fix this issue in ath10k_core_stop() by moving ath10k_debug_stop()
just before sending pdev suspend cmd. So that pktlog disable cmd
will get passed before pdev suspend cmd.
Signed-off-by: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 42cfc6b590c5eb7ae3c1de89594f8f2193ecbc97
Author: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Date: Wed Aug 19 10:42:23 2015 +0200
s390/dcssblk: correct out of bounds array indexes
Fix a couple of warnings like this:
[linux-4.2-rc7/drivers/s390/block/dcssblk.c:553]:
(style) Array index 'j' is used before limits check.
Reported-by: David Binderman <dcb314@xxxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 78fb907626dccfeee6f4213c649606e9ba49c6bc
Author: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Date: Fri Aug 14 14:58:50 2015 +0200
s390/mm: simplify page table alloc/free code
With the removal of the dynamic reallocation of page tables for
KVM (see git commit 0b46e0a3ec0d7a04af6a091354f1b5e1b952d70a)
the page table allocation / freeing code can be simplified.
The page table free code can now use the alloc_pgste bit in the
mm context to decide if a page table is 2K or 4K, there is no mix
of different sized page tables anymore. This eliminates the need
to use "page->_mapcount == 0" to check for 4K page table.
Use the lower two bits in page->_mapcount to indicate which
2K fragments of the 4K page are in use.
As 31-bit support is gone, remove the two defines ALLOC_ORDER
and FRAG_MASK and use the constants directly where appropriate.
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 3d8258e4ab5166ca702b2828c99a5fa7dcb40a0c
Author: Sebastian Ott <sebott@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 19:39:27 2015 +0200
s390/pci: move debug messages to debugfs
The error messages in pci_insn are for debug purposes only. Move
them to the debugfs.
Reviewed-by: Gerald Schaefer <gerald.schaefer@xxxxxxxxxx>
Signed-off-by: Sebastian Ott <sebott@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 24d05ff863e78544e8538a792e3234291cdd5650
Author: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Date: Mon Aug 17 08:09:17 2015 +0200
s390/nmi: initialize control register 0 earlier
Change machine_check_init() to an early_initcall(). This makes sure it
will
be called before all other cpus are online and therfore saves us a lot of
pointless smp_call_function() calls.
The control register settings will be forwarded to the other cpus when
they
will be brought online.
Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Reviewed-by: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit e4e1899aaec0370aea6b98597ee6289d60544ae2
Author: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Date: Mon Aug 17 07:59:47 2015 +0200
s390/zcrypt: use msleep() instead of mdelay()
There is no need to busy loop and monopolize a cpu for up to ~2 seconds.
The code in question that calls mdelay() is preemptible anyway, so better
let the kernel schedule different processes than just looping and causing
unnecessary delays.
Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Acked-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit e619cd3d618672bea8602d682ea63b42a1faf1bc
Author: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Date: Mon Aug 17 07:56:20 2015 +0200
s390/hmcdrv: fix interrupt registration
The z/VM driver sets bit "63-22" in control register zero to one in order
to enable the CP Service interrupt (0x2603). However the irq subclass mask
that normally corresponds to the CP Service interrupt is
"63-54" (== "63-22-32").
So it looks like the author read the documentation with the 32 bit sized
cr0 register bit positions (== 22), but didn't realize that bit numbers
change, if applied to a 64 bit register (== 54) due to the numbering
scheme.
Also use irq_subclass_register() instead if ctl_set_bit() since multiple
services depend on the service signal subclass mask, which is the correct
bit. This also explains why nobody noticed the bug, since the bit is
always
enabled anyway (e.g. pfault).
Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Reviewed-by: Hendrik Brueckner <brueckner@xxxxxxxxxxxxxxxxxx>
Acked-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 89b1145e93771d727645c96e323539c029b63f1c
Author: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
Date: Fri Aug 14 13:20:28 2015 +0200
s390/setup: fix novx parameter
The novx parameter disables the vector facility but the HWCAP_S390_VXRS
bit in the ELf hardware capabilies is always set if the machine has
the vector facility. If the user space program uses the "vx" string
in the features field of /proc/cpuinfo to utilize vector instruction
it will crash if the novx kernel paramter is set.
Convert setup_hwcaps to an arch_initcall and use MACHINE_HAS_VX to
decide if the HWCAPS_S390_VXRS bit needs to be set.
Cc: stable@xxxxxxxxxxxxxxx # 3.18+
Reported-by: Ulrich Weigand <uweigand@xxxxxxxxxx>
Reviewed-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit cabc4abe8e368d754805691b146f31f574533cfa
Author: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Date: Thu Aug 13 13:44:34 2015 +0200
s390/uaccess: remove uaccess_primary kernel parameter
get_user() and put_user() are inline functions in the meantime
again. Both will generate the mvcos instruction if compiled
with -march=z10 (or greater).
The kernel parameter "uaccess_primary" can only change the behavior
of out-of-line uaccess functions like copy_from_user() to not use
the mvcos instruction, but not for the above named inlined functions.
Therefore it is quite useless and the parameter can be removed.
Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 92d6289105d134582094eede00192bd66f54905f
Author: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Date: Thu Aug 13 13:26:49 2015 +0200
s390: remove unneeded sizeof(void *) comparisons
Remove two more statements which always evaluate to 'false'.
These are more leftovers from the 31 bit era.
Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Reviewed-by: David Hildenbrand <dahi@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit a69db2f6ad69157cace810971f19cb5aec9956b1
Author: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Date: Thu Aug 13 12:27:16 2015 +0200
s390/facilities: remove transactional-execution bits
Remove the two facility bits
50 - constrained transactional-execution facility
74 - transactional-execution facility
from the required facilities if the kernel is built with -march=zEC12.
E.g. z/VM 6.3 doesn't virtualize the TX facility yet. Therefore a kernel
built with -march=zEC12 and ipl'ed on a zEC12 machine as a z/VM 6.3 guest
will emit a message about the missing facilities and stop working.
The kernel however doesn't make use of the TX facility, therefore remove
the two TX related facility bits and fix this unpleasant behavior.
Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Reviewed-by: David Hildenbrand <dahi@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit c0e5ddab6e985c83714b31a88098e76c39ff084a
Author: Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 10:35:11 2015 +0200
s390/numa: re-add DIE sched_domain_topology_level
By accident this level has been removed by the NUMA infrastructure patch.
For non-NUMA systems with CPUs that span more than one book, this makes
the scheduler only use one of the books and the other books remain idle.
Fix this and re-add the missing level.
For NUMA and non-NUMA we have the following scheduling domains and groups:
- SMT (Groups: CPU threads)
- MC (Groups: Cores)
- BOOK (Groups: Books)
For the non-NUMA case we have one last level scheduling domain:
- DIE (Groups: Whole system, has all CPUs -> cpu_cpu_mask)
For the NUMA case we have the following two last level scheduling domains:
- DIE (Groups: NUMA nodes -> cpu_cpu_mask -> returns node siblings)
- NUMA (Groups: Whole system, has all CPUs -> created in
sched_init_numa())
Fixes: e8054b654bf5 ("s390/numa: add topology tree infrastructure")
Reported-and-tested-by: Evgeny Cherkashin <Eugene.Crosser@xxxxxxxxxx>
Signed-off-by: Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx>
Acked-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
commit 8cfd23e6740158817d2045915f6ea5a2daf11bce
Author: Florian Westphal <fw@xxxxxxxxx>
Date: Mon Aug 17 18:09:55 2015 +0200
netfilter: nft_payload: work around vlan header stripping
make payload expression aware of the fact that VLAN offload may have
removed a vlan header.
When we encounter tagged skb, transparently insert the tag into the
register so that vlan header matching can work without userspace being
aware of offload features.
Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit acf6cec8365bfe1e6435e503eae4eab48ee04fc8
Author: Gerhard Sittig <gsi@xxxxxxx>
Date: Mon Jun 3 13:18:06 2013 +0200
powerpc/512x: silence a USB Kconfig dependency warning
the PPC_MPC512x config automatically selected USB_EHCI_BIG_ENDIAN_*
switches, which made Kconfig warn about "unmet direct dependencies":
scripts/kconfig/conf --silentoldconfig Kconfig
warning: (PPC_MPC512x && 440EPX) selects USB_EHCI_BIG_ENDIAN_DESC which
has unmet direct dependencies (USB_SUPPORT && USB && USB_EHCI_HCD)
warning: (PPC_MPC512x && PPC_PS3 && PPC_CELLEB && 440EPX) selects
USB_EHCI_BIG_ENDIAN_MMIO which has unmet direct dependencies (USB_SUPPORT &&
USB && USB_EHCI_HCD)
warning: (PPC_MPC512x && 440EPX) selects USB_EHCI_BIG_ENDIAN_DESC which
has unmet direct dependencies (USB_SUPPORT && USB && USB_EHCI_HCD)
warning: (PPC_MPC512x && PPC_PS3 && PPC_CELLEB && 440EPX) selects
USB_EHCI_BIG_ENDIAN_MMIO which has unmet direct dependencies (USB_SUPPORT &&
USB && USB_EHCI_HCD)
make the selected entries additionally depend on USB_EHCI_HCD which
silences the warning
Signed-off-by: Gerhard Sittig <gsi@xxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 74943dab6b155b1a9d4037b7f01a396f28f9c44a
Author: Hari Bathini <hbathini@xxxxxxxxxxxxxxxxxx>
Date: Mon May 11 13:53:43 2015 +0530
powerpc/nvram: print no error when pstore backend is not nvram
Pstore only supports one backend at a time. The preferred
pstore backend is set by passing the pstore.backend=<name>
argument to the kernel at boot time. Currently, while trying
to register with pstore, nvram throws an error message even
when "pstore.backend != nvram", which is unnecessary. This
patch removes the error message in case "pstore.backend != nvram".
Signed-off-by: Hari Bathini <hbathini@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 36319608e28701c07cad80ae3be8b0fdfb1ab40f
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Wed Aug 19 00:14:20 2015 -0500
Revert "NFSv4: Remove incorrect check in can_open_delegated()"
This reverts commit 4e379d36c050b0117b5d10048be63a44f5036115.
This commit opens up a race between the recovery code and the open code.
Reported-by: Olga Kornievskaia <aglo@xxxxxxxxx>
Cc: stable@xxxxxxxxxxx # v4.0+
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 3c13cb5b647ebe36fb79128bc8b917d2a3317b65
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Aug 18 23:45:13 2015 -0500
NFSv4.1/pnfs: Play safe w.r.t. close() races when return-on-close is set
If we have an OPEN_DOWNGRADE and CLOSE race with one another, we want
to ensure that the layout is forgotten by the client, so that we
start afresh with a new layoutget.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 7a67832c7e44c20935c5d6f2264035a0f7bf0d8f
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Wed Aug 19 00:34:34 2015 -0400
libnvdimm, e820: make CONFIG_X86_PMEM_LEGACY a tristate option
We currently register a platform device for e820 type-12 memory and
register a nvdimm bus beneath it. Registering the platform device
triggers the device-core machinery to probe for a driver, but that
search currently comes up empty. Building the nvdimm-bus registration
into the e820_pmem platform device registration in this way forces
libnvdimm to be built-in. Instead, convert the built-in portion of
CONFIG_X86_PMEM_LEGACY to simply register a platform device and move the
rest of the logic to the driver for e820_pmem, for the following
reasons:
1/ Letting e820_pmem support be a module allows building and testing
libnvdimm.ko changes without rebooting
2/ All the normal policy around modules can be applied to e820_pmem
(unbind to disable and/or blacklisting the module from loading by
default)
3/ Moving the driver to a generic location and converting it to scan
"iomem_resource" rather than "e820.map" means any other architecture
can
take advantage of this simple nvdimm resource discovery mechanism by
registering a resource named "Persistent Memory (legacy)"
Cc: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 4ff376feaf57af94e08c8df769e7c48b805ac897
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Aug 18 23:23:21 2015 -0500
NFSv4.1/pnfs: Fix a close/delegreturn hang when return-on-close is set
The helper pnfs_roc() has already verified that we have no delegations,
and no further open files, hence no outstanding I/O and it has marked
all the return-on-close lsegs as being invalid.
Furthermore, it sets the NFS_LAYOUT_RETURN bit, thus serialising the
close/delegreturn with all future layoutget calls on this inode.
The checks in pnfs_roc_drain() for valid layout segments are therefore
redundant: those cannot exist until another layoutget completes.
The other check for whether or not NFS_LAYOUT_RETURN is set, actually
causes a hang, since we already know that we hold that flag.
To fix, we therefore strip out all the functionality in pnfs_roc_drain()
except the retrieval of the barrier state, and then rename the function
accordingly.
Reported-by: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Fixes: 5c4a79fb2b1c ("Don't prevent layoutgets when doing
return-on-close")
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit b5f5914cb8a2745ee4edc9d7f3596d596f1ea1b0
Merge: 15cf3b7 4e317ce
Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 23:52:47 2015 -0400
Merge branch 'ufs' into for-next
commit 15cf3b7afd94895f86ef10aa313053ad1c0f463d
Merge: 2c6625c 8129ed2
Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 23:43:29 2015 -0400
Merge branch 'sb_writers_pcpu_rwsem' of
git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc into for-next
commit def63be85fe774477fb66043003e5b2ee748c4fa
Merge: 1c8aa21 56d1392
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Aug 18 20:21:32 2015 -0700
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue
Jeff Kirsher says:
====================
Intel Wired LAN Driver Updates 2015-08-18
This series contains updates to igb, e100, e1000e and ixgbe.
Shota Suzuki provides a fix for a possible overflow in
igb_set_interrupt_capability() which leads to an oops. When changing the
number of queues by "ethtool -L", set IGB_FLAG_QUEUE_PAIRS in the same
manner as when initializing the igb driver.
Vasily Averin provides a fix for a missing rtnl_unlock() for when we
error out due to not being able to allocate memory for our queues.
Stefan Assman provides a couple of fixes for igb/igbvf. First changes
the igb driver in probe to simply call igb_enable_sriov() instead of
igb_sriov_reinit() since we are starting from scratch. Then in igbvf,
fix the driver where it does not clear the buffer_info->dma in all
cases after calling dma_unmap_single(), which was found by changing the
MTU twice.
Richard Cochran implements the periodic output function using the
programmable clock outputs available in i210 when possible, falling
back to the target time for longer periods.
Todd adds support for the Marvell PHY 1512 which is required for i354
devices. Then updates igb to make sure SR-IOV init uses the correct
number of queues, since recent changes could result in the PF holding
onto all of the queues.
Alex Williamson provides a fix in the case where a guest OS does not
support hot-unplug, so disable SR-IOV prior to unregister_netdev() to
avoid the problem.
Jia-Ju Bai provides several patches, first knocks some collecting dust
off an old e100 driver to add a check to avoid a null pointer
dereference. Then cleans up a possible resource leak by releasing the
skb buffer allocated when the e100_xmit_prepare() runs into an issue
in the DMA mapping. In igb, add a missing rtnl_unlock() for when we
error out due to igb_sriov_reinit() in the igb_init_interrupt_scheme().
Provides a e1000e fix, based on suggestions from Alex Duyck to move
head/tail register writing to e1000_configure_tx/rx() to avoid a
possible null pointer dereference (similar to igb driver). Lastly,
fix a possible memory leak in igb_probe(), where the memory shadow_vfta
allocated by kcalloc in igb_sw_init() is not freed.
Mark simplifies port-specific macros for ixgbe by eliminating explicit
comparisons with 0 and enclose formal parameters in parens to eliminate
the risk of an operator precedence issue.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1c8aa215ec060f5df64ff99b088e8a97f45efb0b
Merge: 954591b 58aa908
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Aug 18 20:16:53 2015 -0700
Merge branch 'vrf-next'
Nikolay Aleksandrov says:
====================
vrf: a few simplifications and cleanups
These patches remove some unnecessary checks (patches 3, 4), unnecessary
num_slaves member and refcnt manipulations which are already done by the
upper functions.
====================
Acked-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 58aa90875da1ab075d712585305d1e520812bbb1
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 20:28:04 2015 +0300
vrf: simplify the netdev notifier function
We can drop the check because if vrf_ptr is present then we must have
the vrf device as a master and since we're running with rtnl it can't go
away.
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3a4a27d3bde1c9cd8159c86a79796348cab90140
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 20:28:03 2015 +0300
vrf: don't check for dstats and rth in uninit path
dstats and rth are always present because we fail the device registration
if they can't be allocated in vrf_init() (ndo_init) so drop the
unnecessary
checks.
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit db5dbec5ef2d4565bb8d42709802de66b06f9965
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 20:28:02 2015 +0300
vrf: drop unused num_slaves member
slave_queue has a num_slaves member which is unused, drop it.
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 17d95f5ee2ba45a9771c97eb1037dfff1d51b064
Author: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 20:28:01 2015 +0300
vrf: drop unnecessary dev refcnt changes
netdev_master_upper_dev_link/unlink already do a dev_hold/put on the
devices being linked, so no need to take another reference.
Signed-off-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 954591b9f3b43e7015bdd83acaa317658a9b7048
Author: Andrew Schwartzmeyer <andschwa@xxxxxxxxxxxxx>
Date: Tue Aug 18 20:06:32 2015 -0700
hv_netvsc: Fix dereference of nvdev before check
Passes static analysis by Smatch.
Signed-off-by: Andrew Schwartzmeyer <andschwa@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 415bcb5c6eff630967baa4e671cebe883d83ee79
Author: Oleg Drokin <green@xxxxxxxxxxxxxx>
Date: Tue Aug 18 21:04:35 2015 -0400
staging/lustre/o2iblnd: remove references to ib_reg_phsy_mr()
Removed references to ib_reg_phsy_mr() and PMR which was added
to deal with some Chelsio specific scenario, but no longer needed
now.
Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: Amir Shehata <amir.shehata@xxxxxxxxx>
Signed-off-by: Oleg Drokin <oleg.drokin@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 2d79849903e00fb445038ddd8afb2acfbf89eb7f
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Tue Aug 18 18:42:09 2015 +0200
lwtunnel: ip tunnel: fix multiple routes with different encap
Currently, two routes going through the same tunnel interface are
considered
the same even when they are routed to a different host after
encapsulation.
This causes all routes added after the first one to have incorrect
encapsulation parameters.
This is nicely visible by doing:
# ip r a 192.168.1.2/32 dev vxlan0 tunnel dst 10.0.0.2
# ip r a 192.168.1.3/32 dev vxlan0 tunnel dst 10.0.0.3
# ip r
[...]
192.168.1.2/32 tunnel id 0 src 0.0.0.0 dst 10.0.0.2 [...]
192.168.1.3/32 tunnel id 0 src 0.0.0.0 dst 10.0.0.2 [...]
Implement the missing comparison function.
Fixes: 3093fbe7ff4bc ("route: Per route IP tunnel metadata via
lightweight tunnel")
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit df383e6240ef222703648072dafd2a1ae21b0d2a
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Tue Aug 18 18:41:13 2015 +0200
lwtunnel: fix memory leak
The built lwtunnel_state struct has to be freed after comparison.
Fixes: 571e722676fe3 ("ipv4: support for fib route lwtunnel encap
attributes")
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Roopa Prabhu <roopa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c938a003448063382e0575aee2d381d4cd7aec34
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Tue Aug 18 12:31:44 2015 +0300
cxgb4: memory corruption in debugfs
You can't use kstrtoul() with an int or it causes memory corruption.
Also j should be unsigned or we have underflow bugs.
I considered changing "j" to unsigned long but everything fits in a u32.
Fixes: 8e3d04fd7d70 ('cxgb4: Add MPS tracing support')
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit bc3e00f04cc1fe033a289c2fc2e5c73c0168d360
Author: Antoine Ténart <antoine.tenart@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 10:59:10 2015 +0200
mtd: pxa3xx_nand: add a default chunk size
When keeping the configuration set by the bootloader (by using
the marvell,nand-keep-config property), the pxa3xx_nand_detect_config()
function is called and set the chunk size to 512 as a default value if
NDCR_PAGE_SZ is not set.
In the other case, when not keeping the bootloader configuration, no
chunk size is set. Fix this by adding a default chunk size of 512.
Fixes: 70ed85232a93 ("mtd: nand: pxa3xx: Introduce multiple page I/O
support")
Signed-off-by: Antoine Tenart <antoine.tenart@xxxxxxxxxxxxxxxxxx>
Acked-by: Robert Jarzmik <robert.jarzmik@free>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 0f0aca5d50ced8d8c18c7982a6b6332182b70e33
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Tue Aug 18 21:03:13 2015 +0800
mtd: omap_elm: Fix module alias
Remove extra space after the "platform:" prefix and make the alias matches
driver name.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Roger Quadros <rogerq@xxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 7e0c19c9608483808e6b5c294e357fa456f058e1
Author: Colin Ian King <colin.king@xxxxxxxxxxxxx>
Date: Fri Jul 17 11:37:52 2015 +0100
mtd: physmap_of: fix null pointer deference when kzalloc returns null
static analysis by smatch caught the following error:
drivers/mtd/maps/physmap_of.c:135 of_get_probes()
error: potential null dereference 'res'. (kzalloc returns null)
Check for failed kzalloc and return -ENOMEM in of_flash_probe if
this occurs.
Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 3d751af2cbe9a73a869986a18e865f8a34265052
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 10:35:04 2015 +1000
xfs: flush entire file on dio read/write to cached file
Filesystems are responsible to manage file coherency between the page
cache and direct I/O. The generic dio code flushes dirty pages over the
range of a dio to ensure that the dio read or a future buffered read
returns the correct data. XFS has generally followed this pattern,
though traditionally has flushed and invalidated the range from the
start of the I/O all the way to the end of the file. This changed after
the following commit:
7d4ea3ce xfs: use ranged writeback and invalidation for direct IO
... as the full file flush was no longer necessary to deal with the
strange post-eof delalloc issues that were since fixed. Unfortunately,
we have since received complaints about performance degradation due to
the increased exclusive iolock cycles (which locks out parallel dio
submission) that occur when a file has cached pages. This does not occur
on filesystems that use the generic code as it also does not incorporate
locking.
The exclusive iolock is acquired any time the inode mapping has cached
pages, regardless of whether they reside in the range of the I/O or not.
If not, the flush/inval calls do no work and the lock was cycled for no
reason.
Under consideration of the cost of the exclusive iolock, update the dio
read and write handlers to flush and invalidate the entire mapping when
cached pages exist. In most cases, this increases the cost of the
initial flush sequence but eliminates the need for further lock cycles
and flushes so long as the workload does not actively mix direct and
buffered I/O. This also more closely matches historical behavior and
performance characteristics that users have come to expect.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit ffeecc5213024ae663377b442eedcfbacf6d0c5d
Author: Jan Kara <jack@xxxxxxxx>
Date: Wed Aug 19 10:34:32 2015 +1000
xfs: Fix xfs_attr_leafblock definition
struct xfs_attr_leafblock contains 'entries' array which is declared
with size 1 altough it can in fact contain much more entries. Since this
array is followed by further struct members, gcc (at least in version
4.8.3) thinks that the array has the fixed size of 1 element and thus
may optimize away all accesses beyond the end of array resulting in
non-working code. This problem was only observed with userspace code in
xfsprogs, however it's better to be safe in kernel as well and have
matching kernel and xfsprogs definitions.
cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Jan Kara <jack@xxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 2f123bce18943fff819bc10f8868ffb9149fc622
Author: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
Date: Wed Aug 19 10:33:58 2015 +1000
libxfs: readahead of dir3 data blocks should use the read verifier
In the dir3 data block readahead function, use the regular read
verifier to check the block's CRC and spot-check the block contents
instead of directly calling only the spot-checking routine. This
prevents corrupted directory data blocks from being read into the
kernel, which can lead to garbage ls output and directory loops (if
say one of the entries contains slashes and other junk).
cc: <stable@xxxxxxxxxxxxxxx> # 3.12 - 4.2
Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 11c7e0e2f91fdfdf9f7b4d107bc93d6c298c95fe
Author: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
Date: Fri Aug 14 01:37:47 2015 +0300
mtd: nettel: do not ignore mtd_device_register() failure in nettel_init()
If mtd_device_register() fails in nettel_init(), iomap left mapped.
The patch adds failure handling for mtd_device_register().
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit dbad7c993053d8f482a5f76270a93307537efd8e
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Wed Aug 19 10:33:00 2015 +1000
xfs: stop holding ILOCK over filldir callbacks
The recent change to the readdir locking made in 40194ec ("xfs:
reinstate the ilock in xfs_readdir") for CXFS directory sanity was
probably the wrong thing to do. Deep in the readdir code we
can take page faults in the filldir callback, and so taking a page
fault while holding an inode ilock creates a new set of locking
issues that lockdep warns all over the place about.
The locking order for regular inodes w.r.t. page faults is io_lock
-> pagefault -> mmap_sem -> ilock. The directory readdir code now
triggers ilock -> page fault -> mmap_sem. While we cannot deadlock
at this point, it inverts all the locking patterns that lockdep
normally sees on XFS inodes, and so triggers lockdep. We worked
around this with commit 93a8614 ("xfs: fix directory inode iolock
lockdep false positive"), but that then just moved the lockdep
warning to deeper in the page fault path and triggered on security
inode locks. Fixing the shmem issue there just moved the lockdep
reports somewhere else, and now we are getting false positives from
filesystem freezing annotations getting confused.
Further, if we enter memory reclaim in a readdir path, we now get
lockdep warning about potential deadlocks because the ilock is held
when we enter reclaim. This, again, is different to a regular file
in that we never allow memory reclaim to run while holding the ilock
for regular files. Hence lockdep now throws
ilock->kmalloc->reclaim->ilock warnings.
Basically, the problem is that the ilock is being used to protect
the directory data and the inode metadata, whereas for a regular
file the iolock protects the data and the ilock protects the
metadata. From the VFS perspective, the i_mutex serialises all
accesses to the directory data, and so not holding the ilock for
readdir doesn't matter. The issue is that CXFS doesn't access
directory data via the VFS, so it has no "data serialisaton"
mechanism. Hence we need to hold the IOLOCK in the correct places to
provide this low level directory data access serialisation.
The ilock can then be used just when the extent list needs to be
read, just like we do for regular files. The directory modification
code can take the iolock exclusive when the ilock is also taken,
and this then ensures that readdir is correct excluded while
modifications are in progress.
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 0952c8183c1575a78dc416b5e168987ff98728bb
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Wed Aug 19 10:32:49 2015 +1000
xfs: clean up inode lockdep annotations
Lockdep annotations are a maintenance nightmare. Locking has to be
modified to suit the limitations of the annotations, and we're
always having to fix the annotations because they are unable to
express the complexity of locking heirarchies correctly.
So, next up, we've got more issues with lockdep annotations for
inode locking w.r.t. XFS_LOCK_PARENT:
- lockdep classes are exclusive and can't be ORed together
to form new classes.
- IOLOCK needs multiple PARENT subclasses to express the
changes needed for the readdir locking rework needed to
stop the endless flow of lockdep false positives involving
readdir calling filldir under the ILOCK.
- there are only 8 unique lockdep subclasses available,
so we can't create a generic solution.
IOWs we need to treat the 3-bit space available to each lock type
differently:
- IOLOCK uses xfs_lock_two_inodes(), so needs:
- at least 2 IOLOCK subclasses
- at least 2 IOLOCK_PARENT subclasses
- MMAPLOCK uses xfs_lock_two_inodes(), so needs:
- at least 2 MMAPLOCK subclasses
- ILOCK uses xfs_lock_inodes with up to 5 inodes, so needs:
- at least 5 ILOCK subclasses
- one ILOCK_PARENT subclass
- one RTBITMAP subclass
- one RTSUM subclass
For the IOLOCK, split the space into two sets of subclasses.
For the MMAPLOCK, just use half the space for the one subclass to
match the non-parent lock classes of the IOLOCK.
For the ILOCK, use 0-4 as the ILOCK subclasses, 5-7 for the
remaining individual subclasses.
Because they are now all different, modify xfs_lock_inumorder() to
handle the nested subclasses, and to assert fail if passed an
invalid subclass. Further, annotate xfs_lock_inodes() to assert fail
if an invalid combination of lock primitives and inode counts are
passed that would result in a lockdep subclass annotation overflow.
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 7df1c170b9a45ab3a7401c79bbefa9939bf8eafb
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 10:32:33 2015 +1000
xfs: swap leaf buffer into path struct atomically during path shift
The node directory lookup code uses a state structure that tracks the
path of buffers used to search for the hash of a filename through the
leaf blocks. When the lookup encounters a block that ends with the
requested hash, but the entry has not yet been found, it must shift over
to the next block and continue looking for the entry (i.e., duplicate
hashes could continue over into the next block). This shift mechanism
involves walking back up and down the state structure, replacing buffers
at the appropriate btree levels as necessary.
When a buffer is replaced, the old buffer is released and the new buffer
read into the active slot in the path structure. Because the buffer is
read directly into the path slot, a buffer read failure can result in
setting a NULL buffer pointer in an active slot. This throws off the
state cleanup code in xfs_dir2_node_lookup(), which expects to release a
buffer from each active slot. Instead, a BUG occurs due to a NULL
pointer dereference:
BUG: unable to handle kernel NULL pointer dereference at
00000000000001e8
IP: [<ffffffffa0585063>] xfs_trans_brelse+0x2a3/0x3c0 [xfs]
...
RIP: 0010:[<ffffffffa0585063>] [<ffffffffa0585063>]
xfs_trans_brelse+0x2a3/0x3c0 [xfs]
...
Call Trace:
[<ffffffffa05250c6>] xfs_dir2_node_lookup+0xa6/0x2c0 [xfs]
[<ffffffffa0519f7c>] xfs_dir_lookup+0x1ac/0x1c0 [xfs]
[<ffffffffa055d0e1>] xfs_lookup+0x91/0x290 [xfs]
[<ffffffffa05580b3>] xfs_vn_lookup+0x73/0xb0 [xfs]
[<ffffffff8122de8d>] lookup_real+0x1d/0x50
[<ffffffff8123330e>] path_openat+0x91e/0x1490
[<ffffffff81235079>] do_filp_open+0x89/0x100
...
This has been reproduced via a parallel fsstress and filesystem shutdown
workload in a loop. The shutdown triggers the read error in the
aforementioned codepath and causes the BUG in xfs_dir2_node_lookup().
Update xfs_da3_path_shift() to update the active path slot atomically
with respect to the caller when a buffer is replaced. This ensures that
the caller always sees the old or new buffer in the slot and prevents
the NULL pointer dereference.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 1b867d3ab562b6b03e46113fad3e87b05fbfbb85
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 10:32:14 2015 +1000
xfs: relocate sparse inode mount warning
The sparse inodes feature is currently considered experimental. We warn
at mount time from xfs_mount_validate_sb(). This function is part of the
superblock verifier codepath, however, which means it could be invoked
repeatedly on superblock reads or writes. This is currently only
noticeable from userspace, where mkfs produces multiple warnings at
format time.
As mkfs warnings were not the intent of this change, relocate the mount
time warning to xfs_fs_fill_super(), which is only invoked once and only
in kernel space.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 928634514bc53f66631a731bf623157c913b145e
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Wed Aug 19 10:32:01 2015 +1000
xfs: dquots should be stamped with sb_meta_uuid
Once the sb_uuid is changed, the wrong uuid is stamped into new
dquots on disk. Found by inspection, verified by generic/219.
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit fcfbe2c4ef4243cc11a1cd64ee1b4907b6afea06
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Wed Aug 19 10:31:54 2015 +1000
xfs: log recovery needs to validate against sb_meta_uuid
Now that sb_uuid can be changed by the user, we cannot use this to
validate the metadata blocks being recovered belong to this
filesystem. We must check against the sb_meta_uuid as that will
remain unchanged.
There is a complication in this code - the superblock itself. We can
not check the sb_meta_uuid unconditionally, as that may not be set
on disk. Hence we must verify the superblock sb_uuid matches between
the log record and the in-core superblock.
Found by inspection after the previous two problems were found.
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit ac383de20d468a75e7023caf06dcf6606cd85220
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Wed Aug 19 10:31:41 2015 +1000
xfs: growfs not aware of sb_meta_uuid
Adding this simple change to xfstests:common/rc::_scratch_mkfs_xfs:
+ if [ $mkfs_status -eq 0 ]; then
+ xfs_admin -U generate $SCRATCH_DEV > /dev/null
+ fi
triggers all sorts of errors in xfstests. xfs/104 is an example,
where growfs fails with a UUID mismatch corruption detected by
xfs_agf_write_verify() when trying to write the first new AG
headers.
Fix this problem by making sure we copy the sb_meta_uuid into new
metadata written by growfs.
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit bbf155add09e1f0179eca89e0999cf28d335ca0a
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Wed Aug 19 10:31:18 2015 +1000
xfs: fix sb_meta_uuid usage
After changing the UUID on a v5 filesystem, xfstests fails
immediately on a debug kernel with:
XFS: Assertion failed: uuid_equal(&ip->i_d.di_uuid, &mp->m_sb.sb_uuid),
file: fs/xfs/xfs_inode.c, line: 799
This needs to check against the sb_meta_uuid, not the user visible
UUID that was changed.
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit c400ee3ed1b13d45adde68e12254dc6ab6977b59
Author: Eric Sandeen <sandeen@xxxxxxxxxx>
Date: Wed Aug 19 10:30:48 2015 +1000
xfs: set XFS_DA_OP_OKNOENT in xfs_attr_get
It's entirely possible for userspace to ask for an xattr which
does not exist.
Normally, there is no problem whatsoever when we ask for such
a thing, but when we look at an obfuscated metadump image
on a debug kernel with selinux, we trip over this ASSERT in
xfs_da3_path_shift():
*result = -ENOENT; /* we're out of our tree */
ASSERT(args->op_flags & XFS_DA_OP_OKNOENT);
It (more or less) only shows up in the above scenario, because
xfs_metadump obfuscates attr names, but chooses names which
keep the same hash value - and xfs_da3_node_lookup_int does:
if (((retval == -ENOENT) || (retval == -ENOATTR)) &&
(blk->hashval == args->hashval)) {
error = xfs_da3_path_shift(state, &state->path, 1, 1,
&retval);
IOWS, we only get down to the xfs_da3_path_shift() ASSERT
if we are looking for an xattr which doesn't exist, but we
find xattrs on disk which have the same hash, and so might be
a hash collision, so we try the path shift. When *that*
fails to find what we're looking for, we hit the assert about
XFS_DA_OP_OKNOENT.
Simply setting XFS_DA_OP_OKNOENT in xfs_attr_get solves this
rather corner-case problem with no ill side effects. It's
fine for an attr name lookup to fail.
Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit af83a67cad1452d48ecd77792f9218f26c445650
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 16:04:24 2015 +0300
mtd: denali_pci: switch to dev_err()
It is better to have device name prefixed the actual error message.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit add243d5bc371eef66f81c9da4fd4b55a18dad23
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 16:04:23 2015 +0300
mtd: denali_pci: refactor driver using devres API
In recent kernels we have a lot of helper functions, including
devres API, to make life of device driver developer easy.
Convert the driver using devm_kzalloc() and pcim_enable_device().
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 2445d33d852320d4ce700b2428d60991f8cf478f
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 16:04:22 2015 +0300
mtd: denali_pci: use module_pci_driver() macro
Let's use module_pci_driver() macro to reduce code base of the driver.
There is no functional change.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 04868a67ed582e845bf14a5a7789f8bdb3faadd3
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 16:04:21 2015 +0300
mtd: denali: hide core part from user in Kconfig
There is no need to user to see the core part of the driver.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 5be203ad115c1d8294e8685253e05fcea0202e04
Merge: 5461ad9 d4a97a0
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Wed Aug 19 10:10:47 2015 +1000
Merge branch 'xfs-efi-rework' into for-next
commit d4a97a04227d5ba91b91888a016e2300861cfbc7
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 10:01:40 2015 +1000
xfs: add missing bmap cancel calls in error paths
If a failure occurs after the bmap free list is populated and before
xfs_bmap_finish() completes successfully (which returns a partial
list on failure), the bmap free list must be cancelled. Otherwise,
the extent items on the list are never freed and a memory leak
occurs.
Several random error paths throughout the code suffer this problem.
Fix these up such that xfs_bmap_cancel() is always called on error.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 146e54b71ea4b998d65c25964807ff6792bbf436
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 10:01:08 2015 +1000
xfs: add helper to conditionally remove items from the AIL
Several areas of code duplicate a pattern where we take the AIL lock,
check whether an item is in the AIL and remove it if so. Create a new
helper for this pattern and use it where appropriate.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
commit f307080a626569f89bc8fbad9f936b307aded877
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 10:00:53 2015 +1000
xfs: fix btree cursor error cleanups
The btree cursor cleanup function takes an error parameter that
affects how buffers are released from the cursor. All buffers are
released in the event of error. Several callers do not specify the
XFS_BTREE_ERROR flag in the event of error, however. This can cause
buffers to hang around locked or with an elevated hold count and
thus lead to umount hangs in the event of errors.
Fix up the xfs_btree_del_cursor() callers to pass XFS_BTREE_ERROR if
the cursor is being torn down due to error.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 0ae120f8a81a8dc4f974d0819c97b58c4fa935ac
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 10:00:28 2015 +1000
xfs: clean up root inode properly on mount failure
The root inode is read as part of the xfs_mountfs() sequence and the
reference is dropped in the event of failure after we grab the
inode. The reference drop doesn't necessarily free the inode,
however. It marks it for reclaim and potentially kicks off the
reclaim workqueue. The workqueue is destroyed further up the error
path, which means we are subject to crash if the workqueue job runs
after this point or a memory leak which is identified if the
xfs_inode_zone is destroyed (e.g., on module removal). Both of these
outcomes are reproducible via manual instrumentation of a mount
error after the root inode xfs_iget() call in xfs_mountfs().
Update the xfs_mountfs() error path to cancel any potential reclaim
work items and to run a synchronous inode reclaim if the root inode
is marked for reclaim. This ensures that no jobs remain on the queue
before it is destroyed and that the root inode is freed before the
reclaim mechanism is torn down.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit a3f20014659a1566a4e516e2bf95287960fe2c44
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 09:59:50 2015 +1000
xfs: checksum log record ext headers based on record size
The first 4 bytes of every basic block in the physical log is stamped
with the current lsn. To support this mechanism, the log record header
(first block of each new log record) contains space for the original
first byte of each log record block before it is replaced with the lsn.
The log record header has space for 32k worth of blocks. The version 2
log adds new extended record headers for each additional 32k worth of
blocks beyond what is supported by the record header.
The log record checksum incorporates the log record header, the extended
headers and the record payload. xlog_cksum() checksums the extended
headers based on log->l_iclog_heads, which specifies the number of
extended headers in a log record based on the log buffer size mount
option. The log buffer size is variable, however, and thus means the
checksum can be calculated differently based on how a filesystem is
mounted. This is problematic if a filesystem crashes and recovery occurs
on a subsequent mount using a different log buffer size. For example,
crash an active filesystem that is mounted with the default (32k)
logbsize, attempt remount/recovery using '-o logbsize=64k' and the mount
fails on or warns about log checksum failures.
To avoid this problem, update xlog_cksum() to calculate the checksum
based on the size of the log buffer according to the log record. The
size is already included in the h_size field of the log record header
and thus is available at log recovery time. Extended log record headers
are also only written when the log record is large enough to require
them. This makes checksum calculation of log records consistent with the
extended record header mechanism as well as how on-disk records are
checksummed with various log buffer size mount options.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit fc0d1656964fc53fca84549df5a6bd4a16a29cdf
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 09:59:38 2015 +1000
xfs: fix broken icreate log item cancellation
Inode cluster buffers are invalidated and cancelled when inode chunks
are freed to notify log recovery that previous logged updates to the
metadata buffer should be skipped. This ensures that log recovery does
not overwrite buffers that might have already been reused.
On v4 filesystems, inode chunk allocation and inode updates are logged
via the cluster buffers and thus cancellation is easily detected via
buffer cancellation items. v5 filesystems use the new icreate
transaction, which uses logical logging and ordered buffers to log a
full inode chunk allocation at once. The resulting icreate item often
spans multiple inode cluster buffers.
Log recovery checks for cancelled buffers when processing icreate log
items, but it has a couple problems. First, it uses the full length of
the inode chunk rather than the cluster size. Second, it uses the length
in FSB units rather than BB units. Either of these problems prevent
icreate recovery from identifying cancelled buffers and thus inode
initialization proceeds unconditionally.
Update xlog_recover_do_icreate_pass2() to iterate the icreate range in
cluster sized increments and check each increment for cancellation.
Since icreate is currently only used for the minimum atomic inode chunk
allocation, we expect that either all or none of the buffers will be
cancelled. Cancel the icreate if at least one buffer is cancelled to
avoid making a bad situation worse by initializing a partial inode
chunk, but detect such anomalies and warn the user.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 78d57e4593bf700e1a4447e3a7769da8dd0e0844
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 09:58:48 2015 +1000
xfs: icreate log item recovery and cancellation tracepoints
Various log items have recovery tracepoints to identify whether a
particular log item is recovered or cancelled. Add the equivalent
tracepoints for the icreate transaction.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit f0b2efad16e78623b5a156f6e4e9166907b83155
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 09:58:36 2015 +1000
xfs: don't leave EFIs on AIL on mount failure
Log recovery occurs in two phases at mount time. In the first phase,
EFIs and EFDs are processed and potentially cancelled out. EFIs without
EFD objects are inserted into the AIL for processing and recovery in the
second phase. xfs_mountfs() runs various other operations between the
phases and is thus subject to failure. If failure occurs after the first
phase but before the second, pending EFIs sit on the AIL, pin it and
cause the mount to hang.
Update the mount sequence to ensure that pending EFIs are cancelled in
the event of failure. Add a recovery cancellation mechanism to iterate
the AIL and cancel all EFI items when requested. Plumb cancellation
support through the log mount finish helper and update xfs_mountfs() to
invoke cancellation in the event of failure after recovery has started.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit e32a1d1fbf6eb2bdc24aa0502e827ff4d2234604
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 09:52:21 2015 +1000
xfs: use EFI refcount consistently in log recovery
The EFI is initialized with a reference count of 2. One for the EFI to
ensure the item makes it to the AIL and one for the subsequently created
EFD to release the EFI once the EFD is committed. Log recovery uses the
EFI in a similar manner, but implements a hack to remove both references
in one call once the EFD is handled.
Update log recovery to use EFI reference counting in a manner consistent
with the log. When an EFI is encountered during recovery, an EFI item is
allocated and inserted to the AIL directly. Since the EFI reference is
typically dropped when the EFI is unpinned and this is analogous with
AIL insertion, drop the EFI reference at this point.
When a corresponding EFD is encountered in the log, this indicates that
the extents were freed, no processing is required and the EFI can be
dropped. Update xlog_recover_efd_pass2() to simply drop the EFD
reference at this point rather than open code the AIL removal and EFI
free.
Remaining EFIs (i.e., with no corresponding EFD) are processed in
xlog_recover_finish(). An EFD transaction is allocated and the extents
are freed, which transfers ownership of the EFI reference to the EFD
item in the log.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 6bc43af3d5f507254b8de2058ea51f6ec998ae52
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 09:51:43 2015 +1000
xfs: ensure EFD trans aborts on log recovery extent free failure
Log recovery attempts to free extents with leftover EFIs in the AIL
after initial processing. If the extent free fails (e.g., due to
unrelated fs corruption), the transaction is cancelled, though it
might not be dirtied at the time. If this is the case, the EFD does
not abort and thus does not release the EFI. This can lead to hangs
as the EFI pins the AIL.
Update xlog_recover_process_efi() to log the EFD in the transaction
before xfs_free_extent() errors are handled to ensure the
transaction is dirty, aborts the EFD and releases the EFI on error.
Since this is a requirement for EFD processing (and consistent with
xfs_bmap_finish()), update the EFD logging helper to do the extent
free and unconditionally log the EFD. This encodes the required EFD
logging behavior into the helper and reduces the likelihood of
errors down the road.
[dchinner: re-add xfs_alloc.h to xfs_log_recover.c to fix build
failure.]
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 8d99fe92fed019e203f458370129fb28b3fb5740
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 09:51:16 2015 +1000
xfs: fix efi/efd error handling to avoid fs shutdown hangs
Freeing an extent in XFS involves logging an EFI (extent free
intention), freeing the actual extent, and logging an EFD (extent
free done). The EFI object is created with a reference count of 2:
one for the current transaction and one for the subsequently created
EFD. Under normal circumstances, the first reference is dropped when
the EFI is unpinned and the second reference is dropped when the EFD
is committed to the on-disk log.
In event of errors or filesystem shutdown, there are various
potential cleanup scenarios depending on the state of the EFI/EFD.
The cleanup scenarios are confusing and racy, as demonstrated by the
following test sequence:
# mount $dev $mnt
# fsstress -d $mnt -n 99999 -p 16 -z -f fallocate=1 \
-f punch=1 -f creat=1 -f unlink=1 &
# sleep 5
# killall -9 fsstress; wait
# godown -f $mnt
# umount
... in which the final umount can hang due to the AIL being pinned
indefinitely by one or more EFI items. This can occur due to several
conditions. For example, if the shutdown occurs after the EFI is
committed to the on-disk log and the EFD committed to the CIL, but
before the EFD committed to the log, the EFD iop_committed() abort
handler does not drop its reference to the EFI. Alternatively,
manual error injection in the xfs_bmap_finish() codepath shows that
if an error occurs after the EFI transaction is committed but before
the EFD is constructed and logged, the EFI is never released from
the AIL.
Update the EFI/EFD item handling code to use a more straightforward
and reliable approach to error handling. If an error occurs after
the EFI transaction is committed and before the EFD is constructed,
release the EFI explicitly from xfs_bmap_finish(). If the EFI
transaction is cancelled, release the EFI in the unlock handler.
Once the EFD is constructed, it is responsible for releasing the EFI
under any circumstances (including whether the EFI item aborts due
to log I/O error). Update the EFD item handlers to release the EFI
if the transaction is cancelled or aborts due to log I/O error.
Finally, update xfs_bmap_finish() to log at least one EFD extent to
the transaction before xfs_free_extent() errors are handled to
ensure the transaction is dirty and EFD item error handling is
triggered.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit d43ac29be7a174f93a3d26cc1e68668fe86b782f
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 09:50:13 2015 +1000
xfs: return committed status from xfs_trans_roll()
Some callers need to make error handling decisions based on whether
the current transaction successfully committed or not. Rename
xfs_trans_roll(), add a new parameter and provide a wrapper to
preserve existing callers.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 5e4b5386a2c29429add601c8cfb45bb10d80c490
Author: Brian Foster <bfoster@xxxxxxxxxx>
Date: Wed Aug 19 09:50:12 2015 +1000
xfs: disentagle EFI release from the extent count
Release of the EFI either occurs based on the reference count or the
extent count. The extent count used is either the count tracked in
the EFI or EFD, depending on the particular situation. In either
case, the count is initialized to the final value and thus always
matches the current efi_next_extent value once the EFI is completely
constructed. For example, the EFI extent count is increased as the
extents are logged in xfs_bmap_finish() and the full free list is
always completely processed. Therefore, the count is guaranteed to
be complete once the EFI transaction is committed. The EFD uses the
efd_nextents counter to release the EFI. This counter is initialized
to the count of the EFI when the EFD is created. Thus the EFD, as
currently used, has no concept of partial EFI release based on
extent count.
Given that the EFI extent count is always released in whole, use of
the extent count for reference counting is unnecessary. Remove this
level of the API and release the EFI based on the core reference
count. The efi_next_extent counter remains because it is still used
to track the slot to log the next extent to free.
Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
commit 69d7fde5909b614114343974cfc52cb8ff30b544
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:36 2015 -0700
blkcg: use CGROUP_WEIGHT_* scale for io.weight on the unified hierarchy
cgroup is trying to make interface consistent across different
controllers. For weight based resource control, the knob should have
the range [1, 10000] and default to 100. This patch updates
cfq-iosched so that the weight range conforms. The internal
calculations have enough range and the widening of the weight range
shouldn't cause any problem.
* blkcg_policy->cpd_bind_fn() is added. If present, this is invoked
when blkcg is attached to a hierarchy.
* cfq_cpd_init() is updated to use the new default value on the
unified hierarchy.
* cfq_cpd_bind() callback is implemented to clear per-blkg configs and
apply the default config matching the hierarchy type.
* cfqd->root_group->[leaf_]weight initialization in cfq_init_queue()
is moved into !CONFIG_CFQ_GROUP_IOSCHED block. cfq_cpd_bind() is
now responsible for initializing the initial weights when blkcg is
enabled.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 3ecca62931ee6a30822a1ab7299bc8b8a21e5288
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:35 2015 -0700
blkcg: s/CFQ_WEIGHT_*/CFQ_WEIGHT_LEGACY_*/
blkcg is gonna switch to cgroup common weight range as defined by
CGROUP_WEIGHT_* on the unified hierarchy. In preparation, rename
CFQ_WEIGHT_* constants to CFQ_WEIGHT_LEGACY_*.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 2ee867dcfa2eaef1063b686da55c35878b2da4a2
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:34 2015 -0700
blkcg: implement interface for the unified hierarchy
blkcg interface grew to be the biggest of all controllers and
unfortunately most inconsistent too. The interface files are
inconsistent with a number of cloes duplicates. Some files have
recursive variants while others don't. There's distinction between
normal and leaf weights which isn't intuitive and there are a lot of
stat knobs which don't make much sense outside of debugging and expose
too much implementation details to userland.
In the unified hierarchy, everything is always hierarchical and
internal nodes can't have tasks rendering the two structural issues
twisting the current interface. The interface has to be updated in a
significant anyway and this is a good chance to revamp it as a whole.
This patch implements blkcg interface for the unified hierarchy.
* (from a previous patch) blkcg is identified by "io" instead of
"blkio" on the unified hierarchy. Given that the whole interface is
updated anyway, the rename shouldn't carry noticeable conversion
overhead.
* The original interface consisted of 27 files is replaced with the
following three files.
blkio.stat : per-blkcg stats
blkio.weight : per-cgroup and per-cgroup-queue weight settings
blkio.max : per-cgroup-queue bps and iops max limits
Documentation/cgroups/unified-hierarchy.txt updated accordingly.
v2: blkcg_policy->dfl_cftypes wasn't removed on
blkcg_policy_unregister() corrupting the cftypes list. Fixed.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit dd165eb3bb4ef16bcdb75417add40633f38c52b8
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:33 2015 -0700
blkcg: misc preparations for unified hierarchy interface
* Export blkg_dev_name()
* Drop unnecessary @cft from __cfq_set_weight().
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 69948b070ee2bc3cc253e862cbe2bb09b173d7bd
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:32 2015 -0700
blkcg: separate out tg_conf_updated() from tg_set_conf()
tg_set_conf() is largely consisted of parsing and setting the new
config and the follow-up application and propagation. This patch
separates out the latter part into tg_conf_updated(). This will be
used to implement interface for the unified hierarchy.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 36aa9e5f591e84d67aad2c5bff75e413d77660dd
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:31 2015 -0700
blkcg: move body parsing from blkg_conf_prep() to its callers
Currently, blkg_conf_prep() expects input to be of the following form
MAJ:MIN NUM
and reads the NUM part into blkg_conf_ctx->v. This is quite
restrictive and gets in the way in implementing blkcg interface for
the unified hierarchy. This patch updates blkg_conf_prep() so that it
expects
MAJ:MIN BODY_STR
where BODY_STR is an arbitrary string. blkg_conf_ctx->v is replaced
with ->body which is a char pointer pointing to the start of BODY_STR.
Parsing of the body is moved to blkg_conf_prep()'s callers.
To allow using, for example, strsep() on blkg_conf_ctx->val, it is a
non-const pointer and to accommodate that const is dropped from @input
too.
This doesn't cause any behavior changes.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 880f50e228f80626dff6327a6e281e40286f5228
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:30 2015 -0700
blkcg: mark existing cftypes as legacy
blkcg is about to grow interface for the unified hierarchy. Add
legacy to existing cftypes.
* blkcg_policy->cftypes -> blkcg_policy->legacy_cftypes
* blk-cgroup.c:blkcg_files -> blkcg_legacy_files
* cfq-iosched.c:cfq_blkcg_files -> cfq_blkcg_legacy_files
* blk-throttle.c:throtl_files -> throtl_legacy_files
Pure renames. No functional change.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit c165b3e3c7bb68c2ed55a5ac2623f030d01d9567
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:29 2015 -0700
blkcg: rename subsystem name from blkio to io
blkio interface has become messy over time and is currently the
largest. In addition to the inconsistent naming scheme, it has
multiple stat files which report more or less the same thing, a number
of debug stat files which expose internal details which shouldn't have
been part of the public interface in the first place, recursive and
non-recursive stats and leaf and non-leaf knobs.
Both recursive vs. non-recursive and leaf vs. non-leaf distinctions
don't make any sense on the unified hierarchy as only leaf cgroups can
contain processes. cgroups is going through a major interface
revision with the unified hierarchy involving significant fundamental
usage changes and given that a significant portion of the interface
doesn't make sense anymore, it's a good time to reorganize the
interface.
As the first step, this patch renames the external visible subsystem
name from "blkio" to "io". This is more concise, matches the other
two major subsystem names, "cpu" and "memory", and better suited as
blkcg will be involved in anything writeback related too whether an
actual block device is involved or not.
As the subsystem legacy_name is set to "blkio", the only userland
visible change outside the unified hierarchy is that blkcg is reported
as "io" instead of "blkio" in the subsystem initialized message during
boot. On the unified hierarchy, blkcg now appears as "io".
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Li Zefan <lizefan@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: cgroups@xxxxxxxxxxxxxxx
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 20386ce0143899ccb5bcbda714436a82d3029f33
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:28 2015 -0700
blkcg: refine error codes returned during blkcg configuration
blkcg currently returns -EINVAL for most errors which can be pretty
confusing given that the failure modes are quite varied. Update the
error returns so that
* -EINVAL only for syntactic errors.
* -ERANGE if the value is out of range.
* -ENODEV if the target device can't be found.
* -EOPNOTSUPP if the policy is not enabled on the target device.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 5332dfc36483d2373d980526145789a354af2d49
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:27 2015 -0700
blkcg: remove unnecessary NULL checks from __cfqg_set_weight_device()
blkg_to_cfqg() and blkcg_to_cfqgd() on a valid blkg with the policy
enabled are guaranteed to return non-NULL and the counterpart in
blk-throttle doesn't have these checks either. Remove the spurious
NULL checks.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 3a7faeada20d72f07d3a7b13454859025cd50a36
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:26 2015 -0700
blkcg: reduce stack usage of blkg_rwstat_recursive_sum()
The recent percpu conversion of blkg_rwstat triggered the following
warning in certain configurations.
block/blk-cgroup.c:654:1: warning: the frame size of 1360 bytes is
larger than 1024 bytes
This is because blkg_rwstat now contains four percpu_counter which can
be pretty big depending on debug options although it shouldn't be a
problem in production configs. This patch removes one of the two
local blkg_rwstat variables used by blkg_rwstat_recursive_sum() to
reduce stack usage.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Link: http://article.gmane.org/gmane.linux.kernel.cgroups/13835
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 702747cabe737fe9b358739443d539f10cc7c715
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:25 2015 -0700
blkcg: remove cfqg_stats->sectors
cfq_stats->sectors is a blkg_stat which keeps track of the total
number of sectors serviced; however, this can be trivially calculated
from blkcg_gq->stat_bytes. The only thing necessary is adding up
READs and WRITEs and then dividing by sector size.
Remove cfqg_stats->sectors and make cfq print "sectors" and
"sectors_recursive" from stat_bytes.
While this is a bit more code, it removes duplicate stat allocations
and updates and ensures that the reported stats stay in tune with each
other.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 77ea733884eb5520f22c36def1309fe2ab61633e
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:24 2015 -0700
blkcg: move io_service_bytes and io_serviced stats into blkcg_gq
Currently, both cfq-iosched and blk-throttle keep track of
io_service_bytes and io_serviced stats. While keeping track of them
separately may be useful during development, it doesn't make much
sense otherwise. Also, blk-throttle was counting bio's as IOs while
cfq-iosched request's, which is more confusing than informative.
This patch adds ->stat_bytes and ->stat_ios to blkg (blkcg_gq),
removes the counterparts from cfq-iosched and blk-throttle and let
them print from the common blkg counters. The common counters are
incremented during bio issue in blkcg_bio_issue_check().
The outputs are still filtered by whether the policy has
blkg_policy_data on a given blkg, so cfq's output won't show up if it
has never been used for a given blkg. The only times when the outputs
would differ significantly are when policies are attached on the fly
or elevators are switched back and forth. Those are quite exceptional
operations and I don't think they warrant keeping separate counters.
v3: Update blkio-controller.txt accordingly.
v2: Account IOs during bio issues instead of request completions so
that bio-based drivers can be handled the same way.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit f12c74cab1635d67077ce8cc40da88b57980f637
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:23 2015 -0700
blkcg: make blkg_[rw]stat_recursive_sum() to be able to index into
blkcg_gq
Currently, blkg_[rw]stat_recursive_sum() assume that the target
counter is located in pd (blkg_policy_data); however, some counters
are planned to be moved to blkg (blkcg_gq).
This patch updates blkg_[rw]stat_recursive_sum() to take blkg and
blkg_policy pointers instead of pd. If policy is NULL, it indexes
into blkg. If non-NULL, into the blkg's pd of the policy.
The existing usages are updated to maintain the current behaviors.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 24bdb8ef068ebdc2a57ce715f0ab22d5da32832a
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:22 2015 -0700
blkcg: make blkcg_[rw]stat per-cpu
blkcg_[rw]stat are used as stat counters for blkcg policies. It isn't
per-cpu by itself and blk-throttle makes it per-cpu by wrapping around
it. This patch makes blkcg_[rw]stat per-cpu and drop the ad-hoc
per-cpu wrapping in blk-throttle.
* blkg_[rw]stat->cnt is replaced with cpu_cnt which is struct
percpu_counter. This makes syncp unnecessary as remote accesses are
handled by percpu_counter itself.
* blkg_[rw]stat_init() can now fail due to percpu allocation failure
and thus are updated to return int.
* percpu_counters need explicit freeing. blkg_[rw]stat_exit() added.
* As blkg_rwstat->cpu_cnt[] can't be read directly anymore, reading
and summing results are stored in ->aux_cnt[] instead.
* Custom per-cpu stat implementation in blk-throttle is removed.
This makes all blkcg stat counters per-cpu without complicating policy
implmentations.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit e6269c44546755094979ab53609e6e203a68c8ff
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:21 2015 -0700
blkcg: add blkg_[rw]stat->aux_cnt and replace cfq_group->dead_stats with
it
cgroup stats are local to each cgroup and doesn't propagate to
ancestors by default. When recursive stats are necessary, the sum is
calculated over all the descendants. This initially was for backward
compatibility to support both group-local and recursive stats but this
mode of operation makes general sense as stat update is much hotter
thafn reporting those stats.
This however ends up losing recursive stats when a child is removed.
To work around this, cfq-iosched adds its stats to its parent
cfq_group->dead_stats which is summed up together when calculating
recursive stats.
It's planned that the core stats will be moved to blkcg_gq, so we want
to move the mechanism for keeping track of the stats of dead children
from cfq to blkcg core. This patch adds blkg_[rw]stat->aux_cnt which
are atomic64_t's keeping track of auxiliary counts which are excluded
when reading local counts but included for recursive.
blkg_[rw]stat_merge() which were used by cfq to implement dead_stats
are replaced by blkg_[rw]stat_add_aux(), and cfq now forwards stats of
a dead cgroup to the aux counts of parent->stats instead of separate
->dead_stats.
This will also help making blkg_[rw]stats per-cpu.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit ae11889636111199dbcf47283b4167f578b69472
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:20 2015 -0700
blkcg: consolidate blkg creation in blkcg_bio_issue_check()
blkg (blkcg_gq) currently is created by blkcg policies invoking
blkg_lookup_create() which ends up repeating about the same code in
different policies. Theoretically, this can avoid the overhead of
looking and/or creating blkg's if blkcg is enabled but no policy is in
use; however, the cost of blkg lookup / creation is very low
especially if only the root blkcg is in use which is highly likely if
no blkcg policy is in active use - it boils down to a single very
predictable conditional and surrounding RCU protection.
This patch consolidates blkg creation to a new function
blkcg_bio_issue_check() which is called during bio issue from
generic_make_request_checks(). blkcg_bio_issue_check() is now the
only function which tries to create missing blkg's. The subsequent
policy and request_list operations just perform blkg_lookup() and if
missing falls back to the root.
* blk_get_rl() no longer tries to create blkg. It uses blkg_lookup()
instead of blkg_lookup_create().
* blk_throtl_bio() is now called from blkcg_bio_issue_check() with rcu
read locked and blkg already looked up. Both throtl_lookup_tg() and
throtl_lookup_create_tg() are dropped.
* cfq is similarly updated. cfq_lookup_create_cfqg() is replaced with
cfq_lookup_cfqg()which uses blkg_lookup().
This consolidates blkg handling and avoids unnecessary blkg creation
retries under memory pressure. In addition, this provides a common
bio entry point into blkcg where things like common accounting can be
performed.
v2: Build fixes for !CONFIG_CFQ_GROUP_IOSCHED and
!CONFIG_BLK_DEV_THROTTLING.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit c9589f03e490956628ff91a1da133216dc796b63
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:19 2015 -0700
blk-throttle: improve queue bypass handling
If a queue is bypassing, all blkcg policies should become noops but
blk-throttle wasn't. It only became noop if the queue was dying.
While this wouldn't lead to an oops as falling back to the root blkg
is safe in this case, this can be a bit surprising - a bypassing queue
could still be applying throttle limits.
Fix it by removing blk_queue_dying() test in throtl_lookup_create_tg()
and testing blk_queue_bypass() in blk_throtl_bio() and bypassing
before doing anything else.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 85b6bc9db6d5ab6980b43c38b5cbd11d24414ce4
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:18 2015 -0700
blkcg: move root blkg lookup optimization from throtl_lookup_tg() to
__blkg_lookup()
Currently, both throttle and cfq policies implement their own root
blkg (blkcg_gq) lookup fast path. This patch moves root blkg
optimization from throtl_lookup_tg() to __blkg_lookup(). cfq-iosched
currently doesn't use blkg_lookup() but will be converted and drop the
optimization too.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 24f290466f79a6497f1654f64b9a841872cba3ca
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:17 2015 -0700
blkcg: inline [__]blkg_lookup()
blkg_lookup() checks whether the target queue is bypassing and, if
not, calls __blkg_lookup() which first checks the lookup hint and then
performs radix tree walk. The operations upto hint checking are
trivial and there are many users of this function. This patch inlines
blkg_lookup() and the fast path part of __blkg_lookup(). The radix
tree lookup and hint update are now in blkg_lookup_slowpath().
This will help consolidating blkg handling by easing moving root blkcg
short-circuit to inlined lookup fast path.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit e4a9bde9589fdc51283755cdd75d47b27ca7c6fb
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:16 2015 -0700
blkcg: replace blkcg_policy->cpd_size with ->cpd_alloc/free_fn() methods
Each active policy has a cpd (blkcg_policy_data) on each blkcg. The
cpd's were allocated by blkcg core and each policy could request to
allocate extra space at the end by setting blkcg_policy->cpd_size
larger than the size of cpd.
This is a bit unusual but blkg (blkcg_gq) policy data used to be
handled this way too so it made sense to be consistent; however, blkg
policy data switched to alloc/free callbacks.
This patch makes similar changes to cpd handling.
blkcg_policy->cpd_alloc/free_fn() are added to replace ->cpd_size. As
cpd allocation is now done from policy side, it can simply allocate a
larger area which embeds cpd at the beginning.
As ->cpd_alloc_fn() may be able to perform all necessary
initializations, this patch makes ->cpd_init_fn() optional.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 814376483e7d85b69a70634633f1f9d01c6ee0cf
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:15 2015 -0700
blkcg: minor updates around blkcg_policy_data
* Rename blkcg->pd[] to blkcg->cpd[] so that cpd is consistently used
for blkcg_policy_data.
* Make blkcg_policy->cpd_init_fn() take blkcg_policy_data instead of
blkcg. This makes it consistent with blkg_policy_data methods and
to-be-added cpd alloc/free methods.
* blkcg_policy_data->blkcg and cpd_to_blkcg() added so that
cpd_init_fn() can determine the associated blkcg from
blkcg_policy_data.
v2: blkcg_policy_data->blkcg initializations were missing. Added.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit a9520cd6f2ac1fbbf206b915946534c6dddbaae2
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:14 2015 -0700
blkcg: make blkcg_policy methods take a pointer to blkcg_policy_data
The newly added ->pd_alloc_fn() and ->pd_free_fn() deal with pd
(blkg_policy_data) while the older ones use blkg (blkcg_gq). As using
blkg doesn't make sense for ->pd_alloc_fn() and after allocation pd
can always be mapped to blkg and given that these are policy-specific
methods, it makes sense to converge on pd.
This patch makes all methods deal with pd instead of blkg. Most
conversions are trivial. In blk-cgroup.c, a couple method invocation
sites now test whether pd exists instead of policy state for
consistency. This shouldn't cause any behavioral differences.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit b2ce2643cc705aa9043642d7b6248ccfd8e20629
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:13 2015 -0700
blk-throttle: clean up blkg_policy_data alloc/init/exit/free methods
With the recent addition of alloc and free methods, things became
messier. This patch reorganizes them according to the followings.
* ->pd_alloc_fn()
Responsible for allocation and static initializations - the ones
which can be done independent of where the pd might be attached.
* ->pd_init_fn()
Initializations which require the knowledge of where the pd is
attached.
* ->pd_free_fn()
The counter part of pd_alloc_fn(). Static de-init and freeing.
This leaves ->pd_exit_fn() without any users. Removed.
While at it, collapse an one liner function throtl_pd_exit(), which
has only one user, into its user.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 4fb72036fbf9c28de7a64b1d3f19b4ce9da1c6bf
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:12 2015 -0700
blk-throttle: remove asynchrnous percpu stats allocation mechanism
Because percpu allocator couldn't do non-blocking allocations,
blk-throttle was forced to implement an ad-hoc asynchronous allocation
mechanism for its percpu stats for cases where blkg's (blkcg_gq's) are
allocated from an IO path without sleepable context.
Now that percpu allocator can handle gfp_mask and blkg_policy_data
alloc / free are handled by policy methods, the ad-hoc asynchronous
allocation mechanism can be replaced with direct allocation from
tg_stats_alloc_fn(). Rit it out.
This ensures that an active throtl_grp always has valid non-NULL
->stats_cpu. Remove checks on it.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 001bea73e70efdf48a9e00188cf302f6b6aed2bf
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:11 2015 -0700
blkcg: replace blkcg_policy->pd_size with ->pd_alloc/free_fn() methods
A blkg (blkcg_gq) represents the relationship between a cgroup and
request_queue. Each active policy has a pd (blkg_policy_data) on each
blkg. The pd's were allocated by blkcg core and each policy could
request to allocate extra space at the end by setting
blkcg_policy->pd_size larger than the size of pd.
This is a bit unusual but was done this way mostly to simplify error
handling and all the existing use cases could be handled this way;
however, this is becoming too restrictive now that percpu memory can
be allocated without blocking.
This introduces two new mandatory blkcg_policy methods - pd_alloc_fn()
and pd_free_fn() - which are used to allocate and release pd for a
given policy. As pd allocation is now done from policy side, it can
simply allocate a larger area which embeds pd at the beginning. This
change makes ->pd_size pointless. Removed.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 3e41871046bfe0ba7d122a1f14f0c1db2dca0256
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:10 2015 -0700
blkcg: make blkcg_activate_policy() allow NULL ->pd_init_fn
blkg_create() allows NULL ->pd_init_fn() but blkcg_activate_policy()
doesn't. As both in-kernel policies implement ->pd_init_fn, it
currently doesn't break anything. Update blkcg_activate_policy() so
that its behavior is consistent with blkg_create().
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 4c55f4f9ad3001ac1fefdd8d8ca7641d18558e23
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:09 2015 -0700
blkcg: restructure blkg_policy_data allocation in blkcg_activate_policy()
When a policy gets activated, it needs to allocate and install its
policy data on all existing blkg's (blkcg_gq's). Because blkg
iteration is protected by a spinlock, it currently counts the total
number of blkg's in the system, allocates the matching number of
policy data on a list and installs them during a single iteration.
This can be simplified by using speculative GFP_NOWAIT allocations
while iterating and falling back to a preallocated policy data on
failure. If the preallocated one has already been consumed, it
releases the lock, preallocate with GFP_KERNEL and then restarts the
iteration. This can be a bit more expensive than before but policy
activation is a very cold path and shouldn't matter.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit bc915e61cde25d0b429f536cec9e83039bf23504
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:08 2015 -0700
blkcg: remove unnecessary blkcg_root handling from css_alloc/free paths
blkcg_css_alloc() bypasses policy data allocation and blkcg_css_free()
bypasses policy data and blkcg freeing for blkcg_root. There's no
reason to to treat policy data any differently for blkcg_root. If the
root css gets allocated after policies are registered, policy
registration path will add policy data; otherwise, the alloc path
will. The free path isn't never invoked for root csses.
This patch removes the unnecessary special handling of blkcg_root from
css_alloc/free paths.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 994b78327458ea14a1743196ee0560c73ace37f3
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:07 2015 -0700
blkcg: use blkg_free() in blkcg_init_queue() failure path
When blkcg_init_queue() fails midway after creating a new blkg, it
performs kfree() directly; however, this doesn't free the policy data
areas. Make it use blkg_free() instead. In turn, blkg_free() is
updated to handle root request_list special case.
While this fixes a possible memory leak, it's on an unlikely failure
path of an already cold path and the size leaked per occurrence is
miniscule too. I don't think it needs to be tagged for -stable.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 401efbf835040dd2ebca54f78d58fc8e3c51f91d
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:06 2015 -0700
blkcg: remove unnecessary request_list->blkg NULL test in blk_put_rl()
Since ec13b1d6f0a0 ("blkcg: always create the blkcg_gq for the root
blkcg"), a request_list always has its blkg associated. Drop
unnecessary rl->blkg NULL test from blk_put_rl().
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 60a837077e2b5672ebbd4c8bd67ca443951bbc92
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:05 2015 -0700
cfq-iosched: charge async IOs to the appropriate blkcg's instead of the
root
Up until now, all async IOs were queued to async queues which are
shared across the whole request_queue, which means that blkcg resource
control is completely void on async IOs including all writeback IOs.
It was done this way because writeback didn't support writeback and
there was no way of telling which writeback IO belonged to which
cgroup; however, writeback recently became cgroup aware and writeback
bio's are sent down properly tagged with the blkcg's to charge them
against.
This patch makes async cfq_queues per-cfq_cgroup instead of
per-cfq_data so that each async IO is charged to the blkcg that it was
tagged for instead of unconditionally attributing it to root.
* cfq_data->async_cfqq and ->async_idle_cfqq are moved to cfq_group
and alloc / destroy paths are updated accordingly.
* cfq_link_cfqq_cfqg() no longer overrides @cfqg to root for async
queues.
* check_blkcg_changed() now also invalidates async queues as they no
longer stay the same across cgroups.
After this patch, cfq's proportional IO control through blkio.weight
works correctly when cgroup writeback is in use.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Reviewed-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit d4aad7ff04dfd00f2a69356a48054d6be84dda31
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:04 2015 -0700
cfq-iosched: fold cfq_find_alloc_queue() into cfq_get_queue()
cfq_find_alloc_queue() checks whether a queue actually needs to be
allocated, which is unnecessary as its sole caller, cfq_get_queue(),
only calls it if so. Also, the oom queue fallback logic is scattered
between cfq_get_queue() and cfq_find_alloc_queue(). There really
isn't much going on in the latter and things can be made simpler by
folding it into cfq_get_queue().
This patch collapses cfq_find_alloc_queue() into cfq_get_queue(). The
change is fairly straight-forward with one exception - async_cfqq is
now initialized to NULL and the "!is_sync" test in the last if
conditional is replaced with "async_cfqq" test. This is because gcc
(5.1.1) gets confused for some reason and warns that async_cfqq may be
used uninitialized otherwise. Oh well, the code isn't necessarily
worse this way.
This patch doesn't cause any functional difference.
v2: Updated to reflect GFP_ATOMIC -> GPF_NOWAIT.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Reviewed-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 322731ed0dd2d8a7f11307e0444257f48580a0de
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:03 2015 -0700
cfq-iosched: move cfq_group determination from cfq_find_alloc_queue() to
cfq_get_queue()
This is necessary for making async cfq_cgroups per-cfq_group instead
of per-cfq_data. While this change makes cfq_get_queue() perform RCU
locking and look up cfq_group even when it reuses async queue, the
extra overhead is extremely unlikely to be noticeable given that this
is already sitting behind cic->cfqq[] cache and the overall cost of
cfq operation.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Reviewed-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 2da8de0bb799bf2bdfa893e5a1e294eb6bafba62
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:02 2015 -0700
cfq-iosched: remove @gfp_mask from cfq_find_alloc_queue()
Even when allocations fail, cfq_find_alloc_queue() always returns a
valid cfq_queue by falling back to the oom cfq_queue. As such, there
isn't much point in taking @gfp_mask and trying "harder" if __GFP_WAIT
is set. GFP_NOWAIT allocations don't fail often and even when they do
the degraded behavior is acceptable and temporary.
After all, the only reason get_request(), which ultimately determines
the gfp_mask, cares about __GFP_WAIT is to guarantee request
allocation, assuming IO forward progress, for callers which are
willing to wait. There's no reason for cfq_find_alloc_queue() to
behave differently on __GFP_WAIT when it already has a fallback
mechanism.
Remove @gfp_mask from cfq_find_alloc_queue() and propagate the changes
to its callers. This simplifies the function quite a bit and will
help making async queues per-cfq_group.
v2: Updated to reflect GFP_ATOMIC -> GPF_NOWAIT.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Reviewed-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit d93a11f1cd890d4ea72f7cef75fac56801b099b3
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:01 2015 -0700
blkcg, cfq-iosched: use GFP_NOWAIT instead of GFP_ATOMIC for non-critical
allocations
blkcg performs several allocations to track IOs per cgroup and enforce
resource control. Most of these allocations are performed lazily on
demand in the IO path and thus can't involve reclaim path. Currently,
these allocations use GFP_ATOMIC; however, blkcg can gracefully deal
with occassional failures of these allocations by punting IOs to the
root cgroup and there's no reason to reach into the emergency reserve.
This patch replaces GFP_ATOMIC with GFP_NOWAIT for the following
allocations.
* bdi_writeback_congested and blkcg_gq allocations in blkg_create().
* radix tree node allocations for blkcg->blkg_tree.
* cfq_queue allocation on ioprio changes.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Suggested-and-Reviewed-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Suggested-by: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 563180a44b7d7978f44e9776eedfbbc550c2398d
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:55:00 2015 -0700
cfq-iosched: minor cleanups
* Some were accessing cic->cfqq[] directly. Always use cic_to_cfqq()
and cic_set_cfqq().
* check_ioprio_changed() doesn't need to verify cfq_get_queue()'s
return for NULL. It's always non-NULL. Simplify accordingly.
This patch doesn't cause any functional changes.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Acked-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit bce6133b09013f70d41a678d262a12147ed43889
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:54:59 2015 -0700
cfq-iosched: fix oom cfq_queue ref leak in cfq_set_request()
If the cfq_queue cached in cfq_io_cq is the oom one, cfq_set_request()
replaces it by invoking cfq_get_queue() again without putting the oom
queue leaking the reference it was holding. While oom queues are not
released through reference counting, they're still reference counted
and this can theoretically lead to the reference count overflowing and
incorrectly invoke the usual release path on it.
Fix it by making cfq_set_request() put the ref it was holding.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Acked-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 95e5d6f62693f27d9011ec307eb32c6126314ea3
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:54:58 2015 -0700
cfq-iosched: fix async oom queue handling
Async cfqq's (cfq_queue's) are shared across cfq_data. When
cfq_get_queue() obtains a new queue from cfq_find_alloc_queue(), it
stashes the pointer in cfq_data and reuses it from then on; however,
the function doesn't consider that cfq_find_alloc_queue() may return
the oom_cfqq under memory pressure and installs the returned queue
unconditionally.
If the oom_cfqq is installed as an async cfqq, cfq_set_request() will
continue calling cfq_get_queue() hoping to replace it with a proper
queue; however, cfq_get_queue() will keep returning the cached queue
for the slot - the oom_cfqq.
Fix it by skipping caching if the queue is the oom one.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Acked-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 4ebc1c61d6185604c97fd0b0355ab668052044ab
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:54:57 2015 -0700
cfq-iosched: simplify control flow in cfq_get_queue()
cfq_get_queue()'s control flow looks like the following.
async_cfqq = NULL;
cfqq = NULL;
if (!is_sync) {
...
async_cfqq = ...;
cfqq = *async_cfqq;
}
if (!cfqq)
cfqq = ...;
if (!is_sync && !(*async_cfqq))
...;
The only thing the local variable init, the second if, and the
async_cfqq test in the third if achieves is to skip cfqq creation and
installation if *async_cfqq was already non-NULL. This is needlessly
complicated with different tests examining the same condition.
Simplify it to the following.
if (!is_sync) {
...
async_cfqq = ...;
cfqq = *async_cfqq;
if (cfqq)
goto out;
}
cfqq = ...;
if (!is_sync)
...;
out:
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Acked-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
Cc: Arianna Avanzini <avanzini.arianna@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 5634cc2aa9aebc77bc862992e7805469dcf83dac
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:54:56 2015 -0700
writeback: update writeback tracepoints to report cgroup
The following tracepoints are updated to report the cgroup used during
cgroup writeback.
* writeback_write_inode[_start]
* writeback_queue
* writeback_exec
* writeback_start
* writeback_written
* writeback_wait
* writeback_nowork
* writeback_wake_background
* wbc_writepage
* writeback_queue_io
* bdi_dirty_ratelimit
* balance_dirty_pages
* writeback_sb_inodes_requeue
* writeback_single_inode[_start]
Note that writeback_bdi_register is separated out from writeback_class
as reporting cgroup doesn't make sense to it. Tracepoints which take
bdi are updated to take bdi_writeback instead.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Suggested-by: Jan Kara <jack@xxxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 9acee9c551f045d2c5b5261aa587331423fd7d92
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:54:55 2015 -0700
kernfs: implement kernfs_path_len()
Add a function to determine the path length of a kernfs node. This
for now will be used by writeback tracepoint updates.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Acked-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 60292bcc1b240a6708aa531c8ece1da2a78d560a
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:54:54 2015 -0700
writeback: explain why @inode is allowed to be NULL for inode_congested()
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Suggested-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 8a1270cda7b473c8ea71a7a44613465fe0708488
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:54:53 2015 -0700
writeback: remove wb_writeback_work->single_wait/done
wb_writeback_work->single_wait/done are used for the wait mechanism
for synchronous wb_work (wb_writeback_work) items which are issued
when bdi_split_work_to_wbs() fails to allocate memory for asynchronous
wb_work items; however, there's no reason to use a separate wait
mechanism for this. bdi_split_work_to_wbs() can simply use on-stack
fallback wb_work item and separate wb_completion to wait for it.
This patch removes wb_work->single_wait/done and the related code and
make bdi_split_work_to_wbs() use on-stack fallback wb_work and
wb_completion instead.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Suggested-by: Jan Kara <jack@xxxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 1ed8d48c57bf7400eac7b8dc622ab0413715cafb
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 14:54:52 2015 -0700
writeback: bdi_for_each_wb() iteration is memcg ID based not blkcg
wb's (bdi_writeback's) are currently keyed by memcg ID; however, in an
earlier implementation, wb's were keyed by blkcg ID.
bdi_for_each_wb() walks bdi->cgwb_tree in the ascending ID order and
allows iterations to start from an arbitrary ID which is used to
interrupt and resume iterations.
Unfortunately, while changing wb to be keyed by memcg ID instead of
blkcg, bdi_for_each_wb() was missed and is still assuming that wb's
are keyed by blkcg ID. This doesn't affect iterations which don't get
interrupted but bdi_split_work_to_wbs() makes use of iteration
resuming on allocation failures and thus may incorrectly skip or
repeat wb's.
Fix it by changing bdi_for_each_wb() to take memcg IDs instead of
blkcg IDs and updating bdi_split_work_to_wbs() accordingly.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 11743ee0477ab9691d08aa121c583184769d2847
Merge: e162b21 3e1d2ee
Author: Jens Axboe <axboe@xxxxxx>
Date: Tue Aug 18 15:49:11 2015 -0700
Merge branch 'for-4.3-unified-base' of
git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup into for-4.3/blkcg
commit 0dad87fcb732691bfd3183acccda6709e1e759ca
Author: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Fri Jun 26 18:18:54 2015 +0200
eCryptfs: Delete a check before the function call "key_put"
The key_put() function tests whether its argument is NULL and then
returns immediately. Thus the test around this call might not be needed.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Tyler Hicks <tyhicks@xxxxxxxxxxxxx>
commit 5556e7e6d30e8e9b5ee51b0e5edd526ee80e5e36
Author: Tyler Hicks <tyhicks@xxxxxxxxxxxxx>
Date: Wed Aug 5 11:26:36 2015 -0500
eCryptfs: Invalidate dcache entries when lower i_nlink is zero
Consider eCryptfs dcache entries to be stale when the corresponding
lower inode's i_nlink count is zero. This solves a problem caused by the
lower inode being directly modified, without going through the eCryptfs
mount, leaving stale eCryptfs dentries cached and the eCryptfs inode's
i_nlink count not being cleared.
Signed-off-by: Tyler Hicks <tyhicks@xxxxxxxxxxxxx>
Reported-by: Richard Weinberger <richard@xxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 3af4e5a95184d6d3c1c6a065f163faa174a96a1d
Author: Don Zickus <dzickus@xxxxxxxxxx>
Date: Mon Aug 10 12:06:53 2015 -0400
HID: usbhid: Fix the check for HID_RESET_PENDING in hid_io_error
It was reported that after 10-20 reboots, a usb keyboard plugged
into a docking station would not work unless it was replugged in.
Using usbmon, it turns out the interrupt URBs were streaming with
callback errors of -71 for some reason. The hid-core.c::hid_io_error was
supposed to retry and then reset, but the reset wasn't really happening.
The check for HID_NO_BANDWIDTH was inverted. Fix was simple.
Tested by reporter and locally by me by unplugging a keyboard halfway
until I
could recreate a stream of errors but no disconnect.
Signed-off-by: Don Zickus <dzickus@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
commit ff2d92066429d1ba21cea64543264563477ad4da
Author: Nicolas Pitre <nicolas.pitre@xxxxxxxxxx>
Date: Fri Aug 14 22:46:25 2015 -0400
ARM: add TC2 PM support to multi_v7_defconfig
Without this, the multi_v7_defconfig kernel cannot boot all CPUs
nor do deep cpuidle power saving on a TC2 board.
Signed-off-by: Nicolas Pitre <nico@xxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 3dc33e23227de8d854a665157cf465303e7cbbce
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Aug 18 14:24:18 2015 -0700
enic: Fix namespace pollution causing build errors.
drivers/net/built-in.o: In function `.vnic_wq_devcmd2_alloc':
(.text+0x49fe40): multiple definition of `.vnic_wq_devcmd2_alloc'
drivers/scsi/built-in.o:(.text+0xb4318): first defined here
drivers/net/built-in.o:(.opd+0x2af00): multiple definition of
`vnic_wq_devcmd2_alloc'
drivers/scsi/built-in.o:(.opd+0xad70): first defined here
drivers/net/built-in.o: In function `.vnic_wq_init_start':
(.text+0x49f9c0): multiple definition of `.vnic_wq_init_start'
drivers/scsi/built-in.o:(.text+0xb3b58): first defined here
drivers/net/built-in.o:(.opd+0x2ae88): multiple definition of
`vnic_wq_init_start'
drivers/scsi/built-in.o:(.opd+0xace0): first defined here
Rename these to 'enic_*' to avoid the conflict with the functiosn of
the same name in the snic scsi driver.
Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f34fa14cc033239037622dbe84faf53923bb7e74
Author: Rajesh Borundia <Rajesh.Borundia@xxxxxxxxxx>
Date: Tue Aug 18 10:22:59 2015 +0300
bnx2x: Add vxlan RSS support
Latest FW submission added some vxlan offload capabilities to our device.
This patch adds the ability to connect to the vxlan NDOs and configure
the UDP port associated with it in the HW.
The device would now be capable of performing RSS according to the
inner headers of the vxlan packets.
Signed-off-by: Rajesh Borundia <Rajesh.Borundia@xxxxxxxxxx>
Signed-off-by: Yuval Mintz <Yuval.Mintz@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit bd49784fd1e8f42c7600fbfa206361324857f373
Author: Mikulas Patocka <mpatocka@xxxxxxxxxx>
Date: Tue Aug 18 16:26:16 2015 -0400
dm stats: report precise_timestamps and histogram in @stats_list output
If the user selected the precise_timestamps or histogram options, report
it in the @stats_list message output.
If the user didn't select these options, no extra tokens are reported,
thus it is backward compatible with old software that doesn't know about
precise timestamps and histogram.
Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # 4.2
commit 3f0bf60f96e3eaecd6920f5910ffcd8685774fb3
Merge: 61ed713 6083ce7
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Aug 18 14:17:22 2015 -0700
Merge branch 'dsa-multi-swtich'
Andrew Lunn says:
====================
D in DSA patches
The D in DSA is distributed, meaning multiple switches can be
connected together. Currently no mainline system does this, and so the
code is broken. This patchset contains two fixes, and a small helper.
With three of more switches, the current device tree binding is not
sufficient to express the routing between the switches. The first
patch extends the binding, in a backwards compatible way, to allow a
link between a switch to describe all the switches accessible over the
link, not just the direct neighbor.
The third patch fixes the port configuration on newer devices for
links connecting switches.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6083ce715f09568a8b0996ca15ae31aaa94f081f
Author: Andrew Lunn <andrew@xxxxxxx>
Date: Mon Aug 17 23:52:52 2015 +0200
dsa: mv88e6xxx: Set DSA mode based on chip abilities
Older devices only support a single DSA frame format, where as newer
devices have two. Take this into account when configuring a DSA port.
The port needs to be in plain old DSA mode, since this is a DSA link,
where as the newer format can be used for the CPU port.
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 60045cbfc0b291dae8dd5b929d67b87c5ea954d4
Author: Andrew Lunn <andrew@xxxxxxx>
Date: Mon Aug 17 23:52:51 2015 +0200
net: dsa: Add dsa_is_dsa_port() helper
Add an inline helper for determining is a port is a DSA port.
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1e72e6f8859a598bfc22cf268c2dafe8ddb9f1b4
Author: Andrew Lunn <andrew@xxxxxxx>
Date: Mon Aug 17 23:52:50 2015 +0200
net: dsa: Allow multi hop routes to be expressed
With more than two switches in a hierarchy, it becomes necessary to
describe multi-hop routes between switches. The current binding does
not allow this, although the older platform_data did. Extend the link
property to be a list rather than a single phandle to a remote switch.
It is then possible to express that a port should be used to reach
more than one switch and the switch maybe more than one hop away.
Signed-off-by: Andrew Lunn <andrew@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 56d1392f2f8b5f5450e3e5f32733c8e44fe95199
Author: Jacob Keller <jacob.e.keller@xxxxxxxxx>
Date: Wed Jun 10 11:44:45 2015 -0700
ixgbe: TRIVIAL fix up double 'the' and comment style
Signed-off-by: Jacob Keller <jacob.e.keller@xxxxxxxxx>
Tested-by: Phil Schmitt <phillip.j.schmitt@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit d147329b0ac66490d9eb331b0a89a79d09d4dfbc
Author: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Date: Sat Jun 6 10:41:03 2015 -0700
ixgbe: Simplify port-specific macros
Simplify port-specific macros by eliminating explicit comparison
with 0. More importantly, enclose formal parameter in parens to
eliminate the risk of an operator precedence surprise.
Signed-off-by: Mark Rustad <mark.d.rustad@xxxxxxxxx>
Tested-by: Phil Schmitt <phillip.j.schmitt@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit ceee3450b3a85db05a107d54fbea031c77d30401
Author: Todd Fujinaka <todd.fujinaka@xxxxxxxxx>
Date: Fri Aug 7 17:27:39 2015 -0700
igb: make sure SR-IOV init uses the right number of queues
Recent changes to igb_probe_vfs() could lead to the PF holding onto all
of the queues. Reorder igb_probe_vfs() to be before
gb_init_queue_configuration() and add some more error checking.
Signed-off-by: Todd Fujinaka <todd.fujinaka@xxxxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit fae5ecaee3e6265c2aec29ac238ccc29c6f11fc3
Author: Stefan Assmann <sassmann@xxxxxxxxx>
Date: Thu Aug 6 09:32:17 2015 +0200
igbvf: clear buffer_info->dma after dma_unmap_single()
The driver doesn't clear buffer_info->dma after calling
dma_unmap_single() in all cases. This has been discovered by changing
the mtu twice, which caused the following backtrace.
[ 68.569280] WARNING: CPU: 2 PID: 1860 at
drivers/iommu/intel-iommu.c:3517 intel_unmap+0x20c/0x220()
[ 68.579392] Driver unmaps unmatched page at PFN fffc2a40
[ 68.585322] Modules linked in: igbvf ipt_MASQUERADE
nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat kvm_intel kvm igb megs
[ 68.599163] CPU: 2 PID: 1860 Comm: ifconfig Not tainted 4.2.0-rc4+ #147
[ 68.606543] Hardware name: IBM -[546025Z]-/00Y7630, BIOS
-[VVE134TUS-1.51]- 10/17/2013
[ 68.615473] 0000000000000dbd ffff88046441bb08 ffffffff81a5ad0b
ffffffff81e2f9ea
[ 68.623775] ffff88046441bb58 ffff88046441bb48 ffffffff81056b55
ffff88047fc583c0
[ 68.632075] 0000000000000000 ffff880469a8e600 00000000fffc2a40
ffff880465b32098
[ 68.640375] Call Trace:
[ 68.643109] [<ffffffff81a5ad0b>] dump_stack+0x48/0x5d
[ 68.648844] [<ffffffff81056b55>] warn_slowpath_common+0x95/0xe0
[ 68.655549] [<ffffffff81056c56>] warn_slowpath_fmt+0x46/0x70
[ 68.661960] [<ffffffff8158a614>] ? find_iova+0x54/0x90
[ 68.667791] [<ffffffff815988dc>] intel_unmap+0x20c/0x220
[ 68.673815] [<ffffffff8159891e>] intel_unmap_page+0xe/0x10
[ 68.680038] [<ffffffffa0067536>] igbvf_clean_rx_ring+0x96/0x370
[igbvf]
[ 68.687516] [<ffffffffa0067915>] igbvf_down+0x105/0x110 [igbvf]
[ 68.694219] [<ffffffffa0067beb>] igbvf_change_mtu+0x16b/0x180 [igbvf]
[...]
Signed-off-by: Stefan Assmann <sassmann@xxxxxxxxx>
Acked-by: Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 42ad1a03b4caf4d95b980bce17c46242e6728ddc
Author: Jia-Ju Bai <baijiaju1990@xxxxxxx>
Date: Wed Aug 5 22:05:16 2015 +0800
igb: Fix a memory leak in igb_probe
In error handling code of igb_probe, the memory adapter->shadow_vfta
allocated by kcalloc in igb_sw_init is not freed. So when register_netdev
or igb_init_i2c is failed, a memory leak will occur.
This patch adds kfree to fix it.
Signed-off-by: Jia-Ju Bai <baijiaju1990@xxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 0845d45e900cad5f7f855a7a6a21c33477800b1f
Author: Jia-Ju Bai <baijiaju1990@xxxxxxx>
Date: Wed Aug 5 18:16:10 2015 +0800
e1000e: Modify Tx/Rx configurations to avoid null pointer dereferences in
e1000_open
When e1000e_setup_rx_resources is failed in e1000_open,
e1000e_free_tx_resources in "err_setup_rx" segment is executed.
"writel(0, tx_ring->head)" statement in e1000_clean_tx_ring
in e1000e_free_tx_resources will cause a null poonter dereference(crash),
because "tx_ring->head" is only assigned in e1000_configure_tx
in e1000_configure, but it is after e1000e_setup_rx_resources.
This patch moves head/tail register writing to e1000_configure_tx/rx,
which can fix this problem. It is inspired by igb_configure_tx_ring
in the igb driver.
Specially, thank Alexander Duyck for his valuable suggestion.
Signed-off-by: Jia-Ju Bai <baijiaju1990@xxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 3eb14ea8d9584e96680729c2c7a9129bafa13a39
Author: Jia-Ju Bai <baijiaju1990@xxxxxxx>
Date: Mon Aug 3 11:36:26 2015 +0800
igb: Fix a deadlock in igb_sriov_reinit
When igb_init_interrupt_scheme in igb_sriov_reinit is failed, the lock
acquired by rtnl_lock() is not released, which causes a deadlock.
This patch adds rtnl_unlock() in error handling to fix it.
Signed-off-by: Jia-Ju Bai <baijiaju1990@xxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 5e5d49422dfb035ca9e280cd61d434095c151272
Author: Jia-Ju Bai <baijiaju1990@xxxxxxx>
Date: Mon Aug 3 10:40:48 2015 +0800
e100: Release skb when DMA mapping is failed in e100_xmit_prepare
When pci_dma_mapping_error in e100_xmit_prepare is failed, the skb buffer
allocated by netdev_alloc_skb_ip_align in e100_rx_alloc_skb is not
released, which causes a possible resource leak.
This patch adds error handling code to fix it.
Signed-off-by: Jia-Ju Bai <baijiaju1990@xxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 9ad607b4a9cb365fbd8387b1250ec448e497223e
Author: Jia-Ju Bai <baijiaju1990@xxxxxxx>
Date: Mon Aug 3 10:17:08 2015 +0800
e100: Add a check after pci_pool_create to avoid null pointer dereference
The driver lacks the check of nic->cbs_pool after pci_pool_create
in e100_probe. When this function is failed, a null pointer dereference
occurs when pci_pool_alloc uses nic->cbs_pool in e100_alloc_cbs.
This patch adds a check and related error handling code to fix it.
Signed-off-by: Jia-Ju Bai <baijiaju1990@xxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit c23d92b80e0b44d4c17085f0413e7574a7583615
Author: Alex Williamson <alex.williamson@xxxxxxxxxx>
Date: Wed Jul 29 14:38:15 2015 -0600
igb: Teardown SR-IOV before unregister_netdev()
When the .remove() callback for a PF is called, SR-IOV support for the
device is disabled, which requires unbinding and removing the VFs.
The VFs may be in-use either by the host kernel or userspace, such as
assigned to a VM through vfio-pci. In this latter case, the VFs may
be removed either by shutting down the VM or hot-unplugging the
devices from the VM. Unfortunately in the case of a Windows 2012 R2
guest, hot-unplug is broken due to the ordering of the PF driver
teardown. Disabling SR-IOV prior to unregister_netdev() avoids this
issue.
Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx>
Acked-by: Mitch Williams <mitch.a.williams@xxxxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 51045ecff09e33dcf4027f4aa6e6a05a840899d3
Author: Todd Fujinaka <todd.fujinaka@xxxxxxxxx>
Date: Wed Jul 29 07:32:06 2015 -0700
igb: add support for 1512 PHY
This patch adds support for Marvell PHY 1512 (required for I354).
Submitted by: Maciej Szwed <maciej.szwed@xxxxxxxxx>
Signed-off-by: Todd Fujinaka <todd.fujinaka@xxxxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 30c72916d71b7970b16dca2bb1234aef2d37b695
Author: Richard Cochran <richardcochran@xxxxxxxxx>
Date: Thu Jul 23 14:59:30 2015 -0700
igb: implement high frequency periodic output signals
In addition to interrupt driven target time output events, the i210
also has two programmable clock outputs. These clocks support periods
between 16 nanoseconds and 140 milliseconds. This patch implements
the periodic output function using the clock outputs when possible,
falling back to the target time for longer periods.
Signed-off-by: Richard Cochran <richardcochran@xxxxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 6423fc34160939142d72ffeaa2db6408317f54df
Author: Stefan Assmann <sassmann@xxxxxxxxx>
Date: Fri Jul 10 15:01:12 2015 +0200
igb: do not re-init SR-IOV during probe
During driver probing the following code path is triggered.
igb_probe
->igb_sw_init
->igb_probe_vfs
->igb_pci_enable_sriov
->igb_sriov_reinit
Doing the SR-IOV re-init is not necessary during probing since we're
starting from scratch. Here we can call igb_enable_sriov() right away.
Running igb_sriov_reinit() during igb_probe() also seems to cause
occasional packet loss on some onboard 82576 NICs. Reproduced on
Dell and HP servers with onboard 82576 NICs.
Example:
Intel Corporation 82576 Gigabit Network Connection [8086:10c9] (rev 01)
Subsystem: Dell Device [1028:0481]
Signed-off-by: Stefan Assmann <sassmann@xxxxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit f468adc944ef40f23cacdd898e8cfbb5ba4b75a4
Author: Vasily Averin <vvs@xxxxxxxxxxxxx>
Date: Tue Jul 7 18:53:45 2015 +0300
igb: missing rtnl_unlock in igb_sriov_reinit()
Signed-off-by: Vasily Averin <vvs@xxxxxxxxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 72ddef0506da852dc82f078f37ced8ef4d74a2bf
Author: Shota Suzuki <suzuki_shota_t3@xxxxxxxxxxxxx>
Date: Wed Jul 1 09:25:52 2015 +0900
igb: Fix oops caused by missing queue pairing
When initializing igb driver (e.g. 82576, I350), IGB_FLAG_QUEUE_PAIRS is
set if adapter->rss_queues exceeds half of max_rss_queues in
igb_init_queue_configuration().
On the other hand, IGB_FLAG_QUEUE_PAIRS is not set even if the number of
queues exceeds half of max_combined in igb_set_channels() when changing
the number of queues by "ethtool -L".
In this case, if numvecs is larger than MAX_MSIX_ENTRIES (10), the size
of adapter->msix_entries[], an overflow can occur in
igb_set_interrupt_capability(), which in turn leads to an oops.
Fix this problem as follows:
- When changing the number of queues by "ethtool -L", set
IGB_FLAG_QUEUE_PAIRS in the same way as initializing igb driver.
- When increasing the size of q_vector, reallocate it appropriately.
(With IGB_FLAG_QUEUE_PAIRS set, the size of q_vector gets larger.)
Another possible way to fix this problem is to cap the queues at its
initial number, which is the number of the initial online cpus. But this
is not the optimal way because we cannot increase queues when another
cpu becomes online.
Note that before commit cd14ef54d25b ("igb: Change to use statically
allocated array for MSIx entries"), this problem did not cause oops
but just made the number of queues become 1 because of entering msi_only
mode in igb_set_interrupt_capability().
Fixes: 907b7835799f ("igb: Add ethtool support to configure number of
channels")
CC: stable <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Shota Suzuki <suzuki_shota_t3@xxxxxxxxxxxxx>
Tested-by: Aaron Brown <aaron.f.brown@xxxxxxxxx>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
commit 3e1d2eed39d804e48282931835c7203fa47fe1d9
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 13:58:16 2015 -0700
cgroup: introduce cgroup_subsys->legacy_name
This allows cgroup subsystems to use a different name on the unified
hierarchy. cgroup_subsys->name is used on the unified hierarchy,
->legacy_name elsewhere. If ->legacy_name is not explicitly set, it's
automatically set to ->name and the userland visible behavior remains
unchanged.
v2: Make parse_cgroupfs_options() only consider ->legacy_name as mount
options are used only on legacy hierarchies. Suggested by Li
Zefan.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Acked-by: Li Zefan <lizefan@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: cgroups@xxxxxxxxxxxxxxx
commit d98817d4961b9ef75062d1e129829d283b3dac57
Author: Tejun Heo <tj@xxxxxxxxxx>
Date: Tue Aug 18 13:58:16 2015 -0700
cgroup: don't print subsystems for the default hierarchy
It doesn't make sense to print subsystems on mount option or
/proc/PID/cgroup for the default hierarchy.
* cgroup.controllers file at the root of the default hierarchy lists
the currently attached controllers.
* The default hierarchy is catch-all for unmounted subsystems.
* The default hierarchy doesn't accept any mount options.
Suppress subsystem printing on mount options and /proc/PID/cgroup for
the default hierarchy.
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Acked-by: Li Zefan <lizefan@xxxxxxxxxx>
Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
Cc: cgroups@xxxxxxxxxxxxxxx
commit 62060a3548c5ea038b4ade518cce92be32a6718d
Merge: 582271a 8cbd4c2f
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Tue Aug 18 13:33:48 2015 -0700
Merge tag 'omap-for-v4.3/dt-pt4-v2' of
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt
Fix up bogus RTC compatible change for am4372 and add missing
DPLL for am4372 cpsw Ethernet driver. Also add ARM global and
local timers for am4372.
* tag 'omap-for-v4.3/dt-pt4-v2' of
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
arm: boot: dts: am4372: add ARM timers and SCU nodes
ARM: dts: AM4372: Add the am4372-rtc compatible string
ARM: dts: am4372: Set the default clock rate for dpll_clksel_mac_clk
clock
ARM: dts: AM437X: add dpll_clksel_mac_clk node
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 443d7920a5ea454b4d46839a029fb26fd5a2cdee
Merge: 207b504 ed293d1
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Tue Aug 18 13:33:09 2015 -0700
Merge tag 'omap-for-v4.3/soc-pt2' of
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc
Fix omap PM regression in Linux next and kill set_irq_flags usage
for GPMC.
* tag 'omap-for-v4.3/soc-pt2' of
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
memory: kill off set_irq_flags usage
ARM: OMAP2+: Fix power domain operations regression caused by 81xx
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 582271a3d0c8eed65d8716cf8dba6fa04e9bfc85
Merge: 3cf6a06 60c0745
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Tue Aug 18 13:31:26 2015 -0700
Merge tag 'renesas-dt4-for-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt
Fourth Round of Renesas ARM Based SoC DT Updates for v4.3
* Enable Clock Domain support of the Clock Pulse Generator (CPG)
Module Stop (MSTP) Clocks driver.
* tag 'renesas-dt4-for-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: r8a7794 dtsi: Add CPG/MSTP Clock Domain
ARM: shmobile: r8a7793 dtsi: Add CPG/MSTP Clock Domain
ARM: shmobile: r8a7791 dtsi: Add CPG/MSTP Clock Domain
ARM: shmobile: r8a7790 dtsi: Add CPG/MSTP Clock Domain
ARM: shmobile: r8a7779 dtsi: Add CPG/MSTP Clock Domain
ARM: shmobile: r8a7778 dtsi: Add CPG/MSTP Clock Domain
ARM: shmobile: r7s72100 dtsi: Add CPG/MSTP Clock Domain
clk: shmobile: rz: Add CPG/MSTP Clock Domain support
clk: shmobile: rcar-gen2: Add CPG/MSTP Clock Domain support
clk: shmobile: r8a7779: Add CPG/MSTP Clock Domain support
clk: shmobile: r8a7778: Add CPG/MSTP Clock Domain support
clk: shmobile: Add CPG/MSTP Clock Domain support
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit a005bc6f69d79574840bdf04350671fb3b2dd8ae
Merge: 0bf4135 f04b486
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Tue Aug 18 13:30:18 2015 -0700
Merge tag 'renesas-clk-for-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/drivers
Renesas ARM Based SoC CPG/MSTP Clock Driver Updates for v4.3
* Add Clock Domain support to the Clock Pulse Generator
(CPG) Module Stop (MSTP) Clocks driver using the generic PM Domain.
* tag 'renesas-clk-for-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
clk: shmobile: rz: Add CPG/MSTP Clock Domain support
clk: shmobile: rcar-gen2: Add CPG/MSTP Clock Domain support
clk: shmobile: r8a7779: Add CPG/MSTP Clock Domain support
clk: shmobile: r8a7778: Add CPG/MSTP Clock Domain support
clk: shmobile: Add CPG/MSTP Clock Domain support
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit d2be537c3ba3568acd79cd178327b842e60d035e
Author: Jeff Moyer <jmoyer@xxxxxxxxxx>
Date: Thu Aug 13 14:57:57 2015 -0400
block: bump BLK_DEF_MAX_SECTORS to 2560
A value of 2560 (1280k) will accommodate a 10-data-disk stripe
write with chunk size 128k. In the testing I've done using
iozone, fio, and aio-stress across a number of different storage
devices, a value of 1280 does not show a big performance
difference from 512, but will hopefully help software RAID
setups using SATA disks, as reported by Christoph.
NOTE: drivers/block/aoe/aoeblk.c sets its own max_hw_sectors_kb to
BLK_DEF_MAX_SECTORS. So, this patch essentially changes aeoblk to
Use a larger maximum sector size, and I did not test this.
Signed-off-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 30e2bc08b2bb7c069246feee78f7ed4006e130fe
Author: Jeff Moyer <jmoyer@xxxxxxxxxx>
Date: Thu Aug 13 14:57:56 2015 -0400
Revert "block: remove artifical max_hw_sectors cap"
This reverts commit 34b48db66e08ca1c1bc07cf305d672ac940268dc.
That commit caused performance regressions for streaming I/O
workloads on a number of different storage devices, from
SATA disks to external RAID arrays. It also managed to
trip up some buggy firmware in at least one drive, causing
data corruption.
The next patch will bump the default max_sectors_kb value to
1280, which will accommodate a 10-data-disk stripe write
with chunk size 128k. In the testing I've done using iozone,
fio, and aio-stress, a value of 1280 does not show a big
performance difference from 512. This will hopefully still
help the software RAID setup that Christoph saw the original
performance gains with while still not regressing other
storage configurations.
Signed-off-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 341a670abd1c086d44e09901f0ebee3dd86a60ba
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Aug 11 18:36:51 2015 -0700
ARM64: dts: vexpress: Use assigned-clock-parents for sp810
The sp810 clk driver is calling the clk consumer APIs from
clk_prepare ops to change the parent to a 1 MHz fixed rate clock
for each of the clocks that the driver provides. Use
assigned-clock-parents for this instead of doing it in the driver
to avoid using the consumer API in provider code. This also
allows us to remove the usage of clk provider APIs that take a
struct clk as an argument from the sp810 driver.
Cc: Pawel Moll <pawel.moll@xxxxxxx>
Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
Tested-by: Sudeep Holla <sudeep.holla@xxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 3cf6a067994fadcb99d841ec3ce6652fd95f91a1
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Tue Aug 11 18:36:50 2015 -0700
ARM: dts: vexpress: Use assigned-clock-parents for sp810
The sp810 clk driver is calling the clk consumer APIs from
clk_prepare ops to change the parent to a 1 MHz fixed rate clock
for each of the clocks that the driver provides. Use
assigned-clock-parents for this instead of doing it in the driver
to avoid using the consumer API in provider code. This also
allows us to remove the usage of clk provider APIs that take a
struct clk as an argument from the sp810 driver.
Cc: Pawel Moll <pawel.moll@xxxxxxx>
Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
Tested-by: Sudeep Holla <sudeep.holla@xxxxxxx>
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 5446584eeba48ae357435388fb39f35ee9e5d851
Merge: 80d352d 9559b3a
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Tue Aug 18 13:15:57 2015 -0700
Merge tag 'imx-defconfig-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/defconfig
The i.MX defconfig updates for 4.3:
- Enable i.MX6UL SoC build
- Enable powerkey and syscon poweroff support
- Build in multi-channel audio support, including i.MX ASRC and CS42xx8
codec drivers.
- Enable kexec build, HCIUART_H4 and IKCONFIG_PROC support.
* tag 'imx-defconfig-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
ARM: imx_v6_v7_defconfig: Select CONFIG_IKCONFIG_PROC
ARM: imx: imx_v6_v7_defconfig enable imx6ul support
ARM: imx_v6_v7_defconfig: enable powerkey and syscon power off
ARM: imx_v6_v7_defconfig: Select HCIUART_H4
ARM: imx_v6_v7_defconfig: build in audio driver
ARM: imx_v6_v7_defconfig: Enable kexec support
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit b12c0820868f8f65289dda974c54eff2b0290fa7
Merge: e789546 3603257
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Tue Aug 18 13:14:39 2015 -0700
Merge tag 'imx-dt-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/dt
The i.MX device tree updates for 4.3:
- Add audio and eTSEC device support and update dspi node for LS1021A.
- Add initial i.MX6UL and imx6ul-14x14-evk board support, and enable
a bunch of device support for i.MX6UL, including RTC, power key, USB,
QSPI, and dual FEC.
- Enable HDMI and LVDS dual display support for a few imx6qdl boards.
- Support of imx6sl-warp board rev1.12, the version which will be
publicly available for the customers.
- A few i.MX7D device additions, watchdog, cortex-a7 coresight
components, RTC, power key, power off.
- Some Vybrid updates: add device support for I2C, QSPI, eSDHC etc.,
update ADC node, and define stdout-path property.
- A few random updates for i.MX27 and i.MX53 devices.
* tag 'imx-dt-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (44 commits)
ARM: dts: imx6ul: add snvs power key support
ARM: dts: imx6ul: add RTC support
ARM: dts: imx6ul: enable GPC as extended interrupt controller
ARM: dts: imx6sx: correct property name for wakeup source
ARM: dts: add property for maximum ADC clock frequencies
ARM: dts: imx7d: enable snvs rtc, onoffkey and power off
ARM: dts: imx6ul-14x14-evk: add fec1 and fec2 support
ARM: dts: imx: add fec1 and fec2 nodes for SOC i.MX6UL
ARM: dts: imx27: add support of internal rtc
ARM: dts: vf-colibri: define stdout-path property
ARM: dts: ls1021a: Enable the eTSEC ports on QDS and TWR
ARM: dts: ls1021a: Add the eTSEC controller nodes
ARM: dts: imx6ul: add qspi support
ARM: dts: imx6ul: fix low case define in imx6ul-pinfunc.h
ARM: dts: imx6ul: add usb host and function support
ARM: dts: vfxxx: Add io-channel-cells property for ADC node
ARM: dts: ls1021a: Add dts nodes for audio on LS1021A
ARM: imx6qdl-sabreauto.dtsi: enable USB support
ARM: dts: imx: update snvs to use syscon access register
ARM: dts: imx: add imx6ul and imx6ul evk board support
...
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 207b504a63b849519cc285c3ddb37411d67beead
Merge: f9511a4 8a0fa18
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Tue Aug 18 13:10:05 2015 -0700
Merge tag 'imx-soc-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/soc
The i.MX SoC changes for 4.3:
- Add i.MX6 Ultralite SoC support, which is the newest addition to
i.MX6 family. It integrates a single Cortex-A7 core and a power
management module that reduces the complexity of external power
supply and simplifies power sequencing.
- Change SNVS RTC driver to use syscon interface for register access,
and add SNVS power key driver support.
- Add a second clock for mxc rtc driver, and support device tree probe
for the driver.
- Add FEC MAC reference clock and phy fixup initialization for i.MX6UL
platform.
* tag 'imx-soc-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
rtc: snvs: select option REGMAP_MMIO
ARM: imx6ul: add fec MAC refrence clock and phy fixup init
ARM: imx6ul: add fec bits to GPR syscon definition
rtc: mxc: add support of device tree
dt-binding: document the binding for mxc rtc
rtc: mxc: use a second rtc clock
input: snvs_pwrkey: use "wakeup-source" as deivce tree property name
Document: devicetree: input: imx: i.mx snvs power device tree bindings
input: keyboard: imx: add snvs power key driver
Document: dt: fsl: snvs: change support syscon
rtc: snvs: use syscon to access register
ARM: imx: add low-level debug support for i.mx6ul
ARM: imx: add i.mx6ul msl support
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 61ed713bbb043f333ca9576c79a3d33d2ad17438
Merge: 0b233dc 348e343
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Tue Aug 18 11:55:08 2015 -0700
Merge branch 'drivers_iff_no_queue'
Phil Sutter says:
====================
net: Convert drivers to IFF_NO_QUEUE and cleanup afterwards
This series converts in-tree users away from the old and deprecated
'tx_queue_len = 0' idiom, adds a warning to notify out-of-tree driver
maintainers that there is need for action on their behalf and finally
drops any
workarounds in scheduling algorithm implementations.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 348e3435cbefa815bd56a5205c1412b5afe7b92e
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:49 2015 +0200
net: sched: drop all special handling of tx_queue_len == 0
Those were all workarounds for the formerly double meaning of
tx_queue_len, which broke scheduling algorithms if untreated.
Now that all in-tree drivers have been converted away from setting
tx_queue_len = 0, it should be safe to drop these workarounds for
categorically broken setups.
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Jamal Hadi Salim <jhs@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 906470c19da771e638e7c8e16e16c31995b139cc
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:48 2015 +0200
net: warn if drivers set tx_queue_len = 0
Due to the introduction of IFF_NO_QUEUE, there is a better way for
drivers to indicate that no qdisc should be attached by default. Though,
the old convention can't be dropped since ignoring that setting would
break drivers still using it. Instead, add a warning so out-of-tree
driver maintainers get a chance to adjust their code before we finally
get rid of any special handling of tx_queue_len == 0.
Signed-off-by: Phil Sutter <phil@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7d9e437d56bea20bef180bd64ad2ad354de4c79b
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:47 2015 +0200
staging: wilc1000: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4676a15207e3bc5e18b7e39b934ce0e890ee54fe
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:46 2015 +0200
net: caif: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Dmitry Tarnyagin <dmitry.tarnyagin@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9ad09c5c05f7ce718d135ba8b55f9af733fc9b3f
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:45 2015 +0200
net: hsr: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Arvid Brodin <arvid.brodin@xxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit cdf7370391d3a482ef2f2a8c73d16c6db3dbecf0
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:44 2015 +0200
net: batman-adv: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Cc: Simon Wunderlich <sw@xxxxxxxxxxxxxxxxxx>
Cc: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3db6da1f07b4ee3c0657973f504a44d38b5c04a1
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:43 2015 +0200
net: mac80211_hwsim: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3a9c0a1bb82aef17468f4aff492421c875fff71c
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:42 2015 +0200
net: hostap: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Jouni Malinen <j@xxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0a5f107b6774aa9c48ca3e924dccaf1296ef6a43
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:41 2015 +0200
net: dsa: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Lennert Buytenhek <buytenh@xxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit bf485bcf0df5dcb01b723efc9d5887329e515aa7
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:40 2015 +0200
net: ipvlan: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Mahesh Bandewar <maheshb@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 1e6f20ca6c90d06d8d7654009aa99f0eec76ea65
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:39 2015 +0200
net: bonding: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Jay Vosburgh <j.vosburgh@xxxxxxxxx>
Cc: Veaceslav Falico <vfalico@xxxxxxxxx>
Cc: Andy Gospodarek <gospo@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4afbc0db720555f1bf0dd9f3e112819041231818
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:38 2015 +0200
net: 6lowpan: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Alexander Aring <alex.aring@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ccecb2a47ceb0fc59b23b966cd63b5f19315b2a2
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:37 2015 +0200
net: bridge: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2e659c0551c99c9712724d96acd3d9271587265c
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:36 2015 +0200
net: 8021q: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Patrick McHardy <kaber@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 22dba393a3eed4878937fa5bf804eb7be8aa70f4
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:35 2015 +0200
net: vxlan: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 22e380a649371dc2182c39f03887aad2576e11cd
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:34 2015 +0200
net: team: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Jiri Pirko <jiri@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 85773a61a310aa5214e8e87d29792803ec5a9eed
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:33 2015 +0200
net: nlmon: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Daniel Borkmann <dborkman@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e65db2b724a2758ede002cb995bee1470f805b1a
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:32 2015 +0200
net: loopback: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ed961ac23384826d92ed7f3dd6fe8e007db76145
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:31 2015 +0200
net: geneve: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: John W. Linville <linville@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ff42c02c09aa03b6ecd22695e923595244d3ee6d
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:30 2015 +0200
net: dummy: convert to using IFF_NO_QUEUE
Signed-off-by: Phil Sutter <phil@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 02f01ec1c5c697e0f84b9e58bf9a294a3a1b348e
Author: Phil Sutter <phil@xxxxxx>
Date: Tue Aug 18 10:30:29 2015 +0200
net: veth: enable noqueue operation by default
Signed-off-by: Phil Sutter <phil@xxxxxx>
Cc: Pavel Emelyanov <xemul@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 81f03fedcce7ee7e83c37237ecaa2f68aad236fd
Author: Jon Derrick <jonathan.derrick@xxxxxxxxx>
Date: Mon Aug 10 15:20:41 2015 -0600
NVMe: Add nvme subsystem reset IOCTL
Controllers can perform optional subsystem resets as introduced in NVMe
1.1. This patch adds an IOCTL to trigger the subsystem reset by writing
"NVMe" to the NSSR register.
Signed-off-by: Jon Derrick <jonathan.derrick@xxxxxxxxx>
Acked-by: Keith Busch <keith.busch@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit dfbac8c7ac5f58448b2216fe42ff52aaf175421d
Author: Keith Busch <keith.busch@xxxxxxxxx>
Date: Mon Aug 10 15:20:40 2015 -0600
NVMe: Add nvme subsystem reset support
Controllers part of an NVMe subsystem may be reset by any other controller
in the subsystem. If the device is capable of subsystem resets, this
patch adds detection for such events and performs appropriate controller
initialization upon subsystem reset detection.
The register bit is a RW1C type, so the driver needs to write a 1 to the
status bit to clear the subsystem reset occured bit during initialization.
Signed-off-by: Keith Busch <keith.busch@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit ac05fbb40062411ea1b722aa2cede7feaa94f1b4
Author: Josef Bacik <jbacik@xxxxxx>
Date: Wed Mar 4 16:52:52 2015 -0500
inode: don't softlockup when evicting inodes
On a box with a lot of ram (148gb) I can make the box softlockup after
running
an fs_mark job that creates hundreds of millions of empty files. This is
because we never generate enough memory pressure to keep the number of
inodes on
our unused list low, so when we go to unmount we have to evict ~100
million
inodes. This makes one processor a very unhappy person, so add a
cond_resched()
in dispose_list() and if we need a resched when processing the s_inodes
list do
that and run dispose_list() on what we've currently culled. Thanks,
Signed-off-by: Josef Bacik <jbacik@xxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxx>
commit 44840dec6127e4d7c5074f75d2dd96bc4ab85fe3
Author: David Ward <david.ward@xxxxxxxxxx>
Date: Tue Aug 18 10:36:23 2015 +0200
USB: qcserial: add HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module
This is an HP-branded Sierra Wireless EM7355:
https://bugzilla.redhat.com/show_bug.cgi?id=1223646#c2
Signed-off-by: David Ward <david.ward@xxxxxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 1fb8dc36384ae1140ee6ccc470de74397606a9d5
Author: Matthijs Kooijman <matthijs@xxxxxxxx>
Date: Tue Aug 18 10:33:56 2015 +0200
USB: ftdi_sio: Added custom PID for CustomWare products
CustomWare uses the FTDI VID with custom PIDs for their ShipModul MiniPlex
products.
Signed-off-by: Matthijs Kooijman <matthijs@xxxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit d2958d1b8fb0cffa362b187c0375a5aff4fe3825
Author: Johan Hovold <johan@xxxxxxxxxx>
Date: Mon Aug 17 17:35:24 2015 +0200
USB: usb_wwan: silence read errors on disconnect
Silence read-urb resubmission errors when the device is going away.
Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 9257f1daa8befd5c0a343031dd870236550e00c5
Author: Johan Hovold <johan@xxxxxxxxxx>
Date: Mon Aug 17 17:35:23 2015 +0200
USB: option: silence interrupt errors
Avoid spamming the logs (e.g. with -EPROTO errors) when attempting to
resubmit the interrupt urb while a disconnect of an in-use device is
being processed.
Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 8ae25a355b5969e12f3185e8cb8eb08b871c9084
Author: Philipp Hachtmann <hachti@xxxxxxxxx>
Date: Mon Aug 17 17:31:47 2015 +0200
USB: symbolserial: Correct transferred data size
The scanner (here DS3508) always returns 64 bytes per urb buffer. The
first
byte indicates the data length used in the current buffer. There even was
a comment describing this. But the comment also said that we'll send
everything in the buffer to the tty layer. That means sending the actual
barcode data and lots of trailing zeroes. This patch lets the driver only
send the real data.
Signed-off-by: Philipp Hachtmann <hachti@xxxxxxxxx>
Acked-by: Johan Hovold <johan@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 951d3793bbfc0a441d791d820183aa3085c83ea9
Author: Philipp Hachtmann <hachti@xxxxxxxxx>
Date: Mon Aug 17 17:31:46 2015 +0200
USB: symbolserial: Use usb_get_serial_port_data
The driver used usb_get_serial_data(port->serial) which compiled but
resulted
in a NULL pointer being returned (and subsequently used). I did not go
deeper
into this but I guess this is a regression.
Signed-off-by: Philipp Hachtmann <hachti@xxxxxxxxx>
Fixes: a85796ee5149 ("USB: symbolserial: move private-data allocation to
port_probe")
Cc: stable <stable@xxxxxxxxxxxxxxx> # v3.10
Acked-by: Johan Hovold <johan@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit a0c9d0defcdadd31ab111b1616f60cf919c6a020
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Mon Aug 17 16:36:53 2015 +0800
usb: misc: usbtest: format max packet size for iso transfer
The current code prints all wMaxPacketSize content at endpoint
descriptor, if there is a high speed, high bandwidth endpoint,
it may confuse the users, eg, if there are 3 transactions during
microframe, it will print "wMaxPacket 1400" for packet content.
This commit splits wMaxpacketSize and transaction numbers for
output messages.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 0521cfd06e1ebcd575e7ae36aab068b38df23850
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Mon Aug 17 10:23:03 2015 +0800
usb: host: ehci-sys: delete useless bus_to_hcd conversion
The ehci platform device's drvdata is the pointer of struct usb_hcd
already, so we doesn't need to call bus_to_hcd conversion again.
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 475908bc4d29b95b24c03206f673f46b41e7124d
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 09:59:12 2015 -0700
Revert "usb: interface authorization: Declare authorized attribute"
This reverts commit 484ebaedecc5ddf778a30ee1efab367cbee27030 as the
signed-off-by address is invalid.
Cc: Stefan Koch <stefan.koch10@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ae9c02b421139c4c44340b019e250a9969a91613
Author: Alex Smith <alex.smith@xxxxxxxxxx>
Date: Fri Jul 24 17:24:27 2015 +0100
dmaengine: jz4780: Kill tasklets before unregistering the device
Tasklets may have been scheduled as a result of an earlier interrupt
that could still be running. Kill them before unregistering the
device.
Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@xxxxxxxxxx>
Cc: dmaengine@xxxxxxxxxxxxxxx
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit d509a83cea8a64478c7899f28e961543b6569cfc
Author: Alex Smith <alex.smith@xxxxxxxxxx>
Date: Fri Jul 24 17:24:26 2015 +0100
dmaengine: jz4780: Don't use devm_*_irq() functions
We must explicitly free the IRQ before the device is unregistered in
case any device interrupt still occurs, so there's no point in using
the managed variations of the IRQ functions. Change to the regular
versions.
Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@xxxxxxxxxx>
Cc: dmaengine@xxxxxxxxxxxxxxx
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit d3597236fd30d76bef4ba8b4713013006842f117
Author: Alex Smith <alex.smith@xxxxxxxxxx>
Date: Fri Jul 24 17:24:25 2015 +0100
dmaengine: jz4780: Remove request type number definitions header
The header just includes definitions of hardware-specific numbers which
can be written directly in the device tree, there's no need for a public
header containing these definitions.
Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@xxxxxxxxxx>
Cc: dmaengine@xxxxxxxxxxxxxxx
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 026fd406c81b8a2936e77342a255d55534f92061
Author: Alex Smith <alex.smith@xxxxxxxxxx>
Date: Fri Jul 24 17:24:24 2015 +0100
dmaengine: jz4780: Ensure channel is on correct controller in filter
When scanning for a free DMA channel, the filter function should ensure
that the channel is on the controller that it was requested to be on in
the DT.
Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@xxxxxxxxxx>
Cc: dmaengine@xxxxxxxxxxxxxxx
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit d3273e10ad871e903456a875e1062514cd13a244
Author: Alex Smith <alex.smith@xxxxxxxxxx>
Date: Fri Jul 24 17:24:23 2015 +0100
dmaengine: jz4780: Use dma_get_slave_channel when requesting a specific
channel
When the DT requests a specific channel to use it is not necesssary
to scan through all DMA channels in the system. Just return the
requested channel using dma_get_slave_channel().
Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@xxxxxxxxxx>
Cc: dmaengine@xxxxxxxxxxxxxxx
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 839896ef3fdacf3a27460b6f6dabc6ac1475a00c
Author: Alex Smith <alex.smith@xxxxxxxxxx>
Date: Fri Jul 24 17:24:22 2015 +0100
dmaengine: jz4780: Fix error handling/signedness issues
There are a some signedness bugs such as testing for < 0 on unsigned
return values. Additionally there are some cases where functions which
should return NULL on error actually return a PTR_ERR value which can
result in oopses on error. Fix these issues.
Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@xxxxxxxxxx>
Cc: dmaengine@xxxxxxxxxxxxxxx
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit dc578f314e2471ca93a4c1f80988ecc781836f72
Author: Alex Smith <alex.smith@xxxxxxxxxx>
Date: Fri Jul 24 17:24:21 2015 +0100
dmaengine: jz4780: Fall back on smaller transfer sizes where necessary
For some reason the controller does not support 8 byte transfers (but
does support all other powers of 2 up to 128). In this case fall back
to 4 bytes. In addition, fall back to 128 bytes when any larger power
of 2 would be possible within the alignment constraints, as this is
the maximum supported.
It makes no sense to outright reject 8 or >128 bytes just because the
alignment constraints make those the maximum possible size given the
parameters for the transaction. For instance, this can result in a DMA
from/to an 8 byte aligned address failing.
It is perfectly safe to fall back to smaller transfer sizes, the only
consequence is reduced transfer efficiency, which is far better than
not allowing the transfer at all.
Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@xxxxxxxxxx>
Cc: dmaengine@xxxxxxxxxxxxxxx
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 46fa516869f4b57f9eb63db02c76642abfb9f682
Author: Alex Smith <alex.smith@xxxxxxxxxx>
Date: Fri Jul 24 17:24:20 2015 +0100
dmaengine: jz4780: Fix up dmaengine API function prototypes
Several function prototypes did not match the dmaengine API they were
implementing, resulting in build warnings. Correct these.
Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx>
Cc: Vinod Koul <vinod.koul@xxxxxxxxx>
Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@xxxxxxxxxx>
Cc: dmaengine@xxxxxxxxxxxxxxx
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 12e1a6a0f16168346cb8f33aff135ed523a9f097
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 09:58:45 2015 -0700
Revert "usb: interface authorization: Introduces the default interface
authorization"
This reverts commit 1d958bef45030acfc5578263e9de3bb07032b8da as the
signed-off-by address is invalid.
Cc: Stefan Koch <stefan.koch10@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 8c2ea97a3a4124628de2ed9a1f891c706788468a
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 09:58:26 2015 -0700
Revert "usb: interface authorization: Control interface probing and
claiming"
This reverts commit de7718bd9c4d3db96991a98c2a0cb38258a04e47 as the
signed-off-by address is invalid.
Cc: Stefan Koch <stefan.koch10@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 5651440e453910f3a1f795e66db5d16291c3ba44
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 09:58:04 2015 -0700
Revert "usb: interface authorization: Introduces the USB interface
authorization"
This reverts commit ef0909c50fe63be3f9aa09bdf4db7efaa5919be9 as the
signed-off-by address is invalid.
Cc: Stefan Koch <stefan.koch10@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 4d924d7a81627663720223b5c4330c18d8063fb6
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 09:57:43 2015 -0700
Revert "usb: interface authorization: SysFS part of USB interface
authorization"
This reverts commit 187b3d75bbfba45a38b5d1d3656c0f11f6f6f2d0 as the
signed-off-by address is invalid.
Cc: Stefan Koch <stefan.koch10@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit dba3398381dd1175c74721c97d1daf8fc5939276
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 09:57:15 2015 -0700
Revert "usb: interface authorization: Documentation part"
This reverts commit 6ef2bf71764708f7c58ee9300acd8df05dbaa06f as the
signed-off-by address is invalid.
Cc: Stefan Koch <stefan.koch10@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit a1b93ab71587b8b44d45d114937cb4e75f9a5f27
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 09:56:04 2015 -0700
Revert "usb: interface authorization: Use a flag for the default device
authorization"
This reverts commit 3cf1fc80655d3af7083ea4b3615e5f8532543be7 as the
signed-off-by address is invalid.
Cc: Stefan Koch <stefan.koch10@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 1d15f21dc8030c4511964819b89b50e39d5a7013
Author: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Date: Tue Aug 18 17:26:45 2015 +0530
ASoC: tegra: Revert part of "ASoC: tegra: Convert to managed resources"
Revert the problematic part of commit 470805eb9f31 ("ASoC: tegra:
Convert to managed resources"). Before this commit, PM cleanup was
performed after the component was unregistered. But returning
directly will skip PM cleanup. So, to be on safe side it is better
to use snd_soc_register_component instead of
devm_snd_soc_register_component.
Signed-off-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit ac9bd0ef5d3eefe9a21a7df6819937e3aa265203
Author: Yanchang Li <yl22@xxxxxxx>
Date: Mon Jul 27 05:50:21 2015 +0000
dmaengine: sirf: clear pending DMA interrupt when DMA terminates
If DMA interrupt comes and is latched by IRQ controller during the
execution of dma_terminate_all(), dma_irq routine will be executed
after dma terminated, and it will cause kernel panic.
We clear DMA interrupts in dma_terminate_all() to avoid this useless
interrupt.
Signed-off-by: Yanchang Li <Yanchang.Li@xxxxxxx>
Signed-off-by: Barry Song <Baohua.Song@xxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit df48f3ff95c432cc3469e0df67da76ffcf2237af
Author: Joachim Eastwood <manabian@xxxxxxxxx>
Date: Sat Jul 11 14:12:07 2015 +0200
doc: dt: dma: add bindings for lpc1850-dmamux
Add device tree bindings documentation for the
lpc1850-dmamux DMA router.
Signed-off-by: Joachim Eastwood <manabian@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit e5f4ae84be7421010780984bdc121eac15997327
Author: Joachim Eastwood <manabian@xxxxxxxxx>
Date: Sat Jul 11 14:12:06 2015 +0200
dmaengine: add driver for lpc18xx dmamux
Add support for DMA on NXP LPC18xx/43xx platforms which has
a multiplexer in front of the PL080 dma request lines.
The mux is a single register in the LPC18xx/43xx CREG block
and can multiplex up to 4 request lines to each of the 16
lines on the PL080.
Signed-off-by: Joachim Eastwood <manabian@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit fbd7e41005a4daa676e3f516d07aeff0a81dca2b
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Sat Jul 11 14:12:05 2015 +0200
doc: dt: dma: add binding doc for pl08x
This introduces device tree bindings for the PL08x DMA controllers
when used with fixed signal assignment per channel, i.e. if each
channel on the PL08x is assigned precisely one burst/single signal
set.
[je: remove channel sub-node parsing, use cell value to assign AHB]
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Joachim Eastwood <manabian@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit aa4734da66744230af1ad2b468dcc7fea53cd637
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Sat Jul 11 14:12:04 2015 +0200
dmaengine: pl08x: support dt channel assignment
Add support for assigning DMA channels from a device tree.
[je: remove channel sub-node parsing, dynamic channel creation on xlate]
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Joachim Eastwood <manabian@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 4a736d156d6de171f2c8453f5a6911e40e9aab0a
Author: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Date: Tue Aug 18 08:15:32 2015 +0200
dmaengine: pxa_dma: fix debug information
This fixes the following error:
drivers/dma/pxa_dma.c: In function â??dbg_show_requester_chanâ??:
drivers/dma/pxa_dma.c:192:2: error: void value not ignored as it ought to
be
pos += seq_printf(s, "DMA channel %d requester :\n", phy->idx);
^
drivers/dma/pxa_dma.c:197:8: error: void value not ignored as it ought to
be
!!(drcmr & DRCMR_MAPVLD));
^
scripts/Makefile.build:258: recipe for target 'drivers/dma/pxa_dma.o'
failed
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit b48362d8aaf32aeb4a75f5c556c652ffeeb1be5d
Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Date: Tue Aug 18 16:18:29 2015 +0200
hrtimer: Unconfuse switch_hrtimer_base() a bit
The variable called "this_base" is confusing because its name suggests
it's of "struct hrtimer_clock_base" type, along with "base" and "new_base"
which doesn't help understanding this complicated function.
Make its name clearer and fix the misleading comment while at it.
[ tglx: Fixed the comment for real ]
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439907509-9553-3-git-send-email-fweisbec@xxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 662b3e194656cc713d51d52780fb71f499c46619
Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Date: Tue Aug 18 16:18:28 2015 +0200
hrtimer: Simplify get_target_base() by returning current base
Instead of fetching again the current cpu base, just take it from the
parameter.
Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439907509-9553-2-git-send-email-fweisbec@xxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 84eac6196c4b3930fc81f9bcd76c4a1a2161fd34
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Fri Aug 14 17:58:01 2015 +0800
ASoC: wm8741: Drop misleading readable_reg callback implementation
regmap_readable() returns false if map->format.format_write is set.
For .reg_bits = 7, .val_bits = 9, setting,
map->format.format_write = regmap_format_7_9_write;
Even current code has implemented map->readable_reg, regmap_readable()
still returns false anyway. Thus drop the misleading readable_reg callback
implementation.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit b2b1ec9b55ed0840956db15f823c4a73383c08be
Author: Matias Bjørling <m@xxxxxxxxxxx>
Date: Tue Aug 18 10:13:41 2015 -0600
NVMe: removed unused nn var from nvme_dev_add
The logic in nvme_dev_add to enumerate namespaces was moved to
nvme_dev_scan. When moved, the nn variable is no longer used. This patch
removes it.
Fixes: a5768aai ("NVMe: Automatic namespace rescan")
Signed-off-by: Matias Bjørling <m@xxxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 649953b5b89dc308747797810812747333d971cd
Author: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Date: Tue Aug 18 23:45:55 2015 +0800
PCI: xilinx: Fix typo in function name
There's a typo in commit e39758e0ea76 in linux-next, which incorrectly
spells "msi_desc_to_pci_sysdata()" as "msi_desc_to_pci_sys_data()" and
causes build failure:
> ../drivers/pci/host/pcie-xilinx.c:235:3: error: implicit declaration
of function 'msi_desc_to_pci_sys_data'
[-Werror=implicit-function-declaration]
Fixes: e39758e0ea76 "PCI: Use helper functions to access fields in struct
msi_desc"
Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Mark Brown <broonie@xxxxxxxxxx>
Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Michal Simek <michal.simek@xxxxxxxxxx>
Cc: Sören Brinkmann <soren.brinkmann@xxxxxxxxxx>
Cc: Srikanth Thokala <sthokal@xxxxxxxxxx>
Cc: Rob Herring <robh@xxxxxxxxxx>
Cc: Yijing Wang <wangyijing@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439912763-10645-1-git-send-email-jiang.liu@xxxxxxxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit 84f8bd86cc8977c344df572169f7ec10b8188cfa
Author: Mike Snitzer <snitzer@xxxxxxxxxx>
Date: Tue Aug 18 10:31:09 2015 -0400
dm thin: optimize async discard submission
__blkdev_issue_discard_async() doesn't need to worry about further
splitting because the upper layer blkdev_issue_discard() will have
already handled splitting bios such that the bi_size isn't
overflowed.
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Acked-by: Joe Thornber <ejt@xxxxxxxxxx>
commit a6bf49db8c94d194d1c197deba2935468026ec89
Merge: 74f4e0c ecc7c51
Author: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
Date: Tue Aug 18 17:20:11 2015 +0300
Merge tag 'iwlwifi-next-for-kalle-2015-08-18' of
https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
* polish the Miracast operation
* fix a few power consumption issues
* scan cleanup
* fixes for D0i3 system state
* add paging for devices that support it
* add again the new RBD allocation model
* add more options to the firmware debug system
* add support for frag SKBs in Tx
commit d1c48038b849e9df0475621a52193a62424a4e87
Author: Andrew Duggan <aduggan@xxxxxxxxxxxxx>
Date: Thu Jul 30 14:49:00 2015 -0700
HID: i2c-hid: Only disable irq wake if it was successfully enabled during
suspend
Enabling irq wake could potentially fail and calling disable_irq_wake
after a failed call to enable_irq_wake could result in an unbalanced irq
warning. This patch warns if enable_irq_wake fails and avoids other
potential issues caused by calling disable_irq_wake on resume after
enable_irq_wake failed during suspend.
Signed-off-by: Andrew Duggan <aduggan@xxxxxxxxxxxxx>
Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
commit 76703be827a7867c28b904562bc78ed1314698bc
Author: Jason Gerecke <killertofu@xxxxxxxxx>
Date: Mon Aug 17 17:41:53 2015 -0700
HID: wacom: Use tablet-provided touch height/width values for INTUOSHT
The current generation of "Intuos" tablets (i.e. INTUOSHT) report touch
width and height data just like the "Intuos Pro" do. This commit changes
the code to allow these tablets to use the appropriate codepath instead
of the one intended for Intuos5/Bamboo.
Signed-off-by: Jason Gerecke <jason.gerecke@xxxxxxxxx>
Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
commit 931830aa5c251e0803523213428f777a48bde254
Author: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>
Date: Thu Aug 13 11:11:27 2015 -0400
HID: gembird: add new driver to fix Gembird JPD-DualForce 2
This gamepad advertise 5 absolute axis while 4 are actually used.
The second Z axis shows some garbage, so it has to be ignored by HID.
The first Z axis and the Rz one are actually Rx and Ry. Remap them.
We could also just remap and ignore the axis in .input_mapping(). I
went ahead with .report_fixup() first, so here it is.
Reported-by: Orivej Desh <orivej@xxxxxx>
Tested-by: Orivej Desh <orivej@xxxxxx>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>
Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
commit 96231b2686b53f71838a335bdc404cb5285d1a01
Author: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Date: Tue Aug 18 09:14:15 2015 +0100
ARM: 8419/1: dma-mapping: harmonize definition of DMA_ERROR_CODE
All architectures except arm that define DMA_ERROR_CODE are casting it
to (dma_addr_t) - as it is always compared to dma_addr_t in arm as well
this could be harmonized.
Signed-off-by: Nicholas Mc Guire <hofrat@xxxxxxxxx>
Acked-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 8901925d32232adb57ba1b4c26d0c0f9d521a78c
Author: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Date: Mon Aug 17 03:59:52 2015 +0100
ARM: 8417/1: refactor bitops functions with BIT_MASK() and BIT_WORD()
Use BIT_MASK() and BIT_WORD() rather than hard-coding the size
of the "long" type.
Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit da4f295b4aeca0bca4ab406e70fb7087f93ede39
Author: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Date: Mon Aug 17 03:45:35 2015 +0100
ARM: 8416/1: Feroceon: use of_iomap() to map register base
The chain of of_address_to_resource() and ioremap() can be replaced
with of_iomap().
Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Acked-by: Olof Johansson <olof@xxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit a5f4c561b3b19a9bc43a81da6382b0098ebbc1fb
Author: Stefan Agner <stefan@xxxxxxxx>
Date: Thu Aug 13 00:01:52 2015 +0100
ARM: 8415/1: early fixmap support for earlycon
Add early fixmap support, initially to support permanent, fixed
mapping support for early console. A temporary, early pte is
created which is migrated to a permanent mapping in paging_init.
This is also needed since the attributes may change as the memory
types are initialized. The 3MiB range of fixmap spans two pte
tables, but currently only one pte is created for early fixmap
support.
Re-add FIX_KMAP_BEGIN to the index calculation in highmem.c since
the index for kmap does not start at zero anymore. This reverts
4221e2e6b316 ("ARM: 8031/1: fixmap: remove FIX_KMAP_BEGIN and
FIX_KMAP_END") to some extent.
Cc: Mark Salter <msalter@xxxxxxxxxx>
Cc: Kees Cook <keescook@xxxxxxxxxxxx>
Cc: Laura Abbott <lauraa@xxxxxxxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Cc: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Signed-off-by: Stefan Agner <stefan@xxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 6dc2e1bf8e0025db2ff8a35ee3e0bd88203d4402
Author: Vladimir Zapolskiy <vladimir_zapolskiy@xxxxxxxxxx>
Date: Mon May 18 15:32:20 2015 +0300
drm: bridge/dw_hdmi: fix register I2CM_ADDRESS register name
I2CM_ADDRESS became a MESS, fix it, also change guarding define
to __DW_HDMI_H__ , since the driver is not IMX specific.
Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@xxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit b872a8e16b3fb17c3fe1e97f4ed0803f4a740aae
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Jun 5 12:22:46 2015 +0100
drm: bridge/dw_hdmi: fix phy enable/disable handling
The dw_hdmi enable/disable handling is particularly weak in several
regards:
* The hotplug interrupt could call hdmi_poweron() or hdmi_poweroff()
while DRM is setting a mode, which could race with a mode being set.
* Hotplug will always re-enable the phy whenever it detects an active
hotplug signal, even if DRM has disabled the output.
Resolve all of these by introducing a mutex to prevent races, and a
state-tracking bool so we know whether DRM wishes the output to be
enabled. We choose to use our own mutex rather than ->struct_mutex
so that we can still process interrupts in a timely fashion.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 2fada109cfb7dbfd52f472140d6477a27a1f0d6d
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Tue Jul 28 12:21:34 2015 +0100
drm: bridge/dw_hdmi: rename dw_hdmi_phy_enable_power()
dw_hdmi_phy_enable_power() is not about enabling and disabling power.
It is about allowing or preventing power-down mode being entered - the
register is documented as "Power-down enable (active low 0b)."
This can be seen as the bit has no effect when the HDMI phy is
operational on iMX6 hardware.
Rename the function to dw_hdmi_phy_enable_powerdown() to reflect the
documentation, make it take a bool for the 'enable' argument, and invert
the value to be written.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 552e67859c3ae9277ed26d5393d733207d129dae
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Sat Jun 6 11:04:00 2015 +0100
drm: bridge/dw_hdmi: avoid enabling interface in mode_set
On a mode set, DRM makes the following sequence of calls:
* for_each_encoder
* bridge mode_fixup
* encoder mode_fixup
* crtc mode_fixup
* for_each_encoder
* bridge disable
* encoder prepare
* bridge post_disable
* disable unused encoders
* crtc prepare
* crtc mode_set
* for_each_encoder
* encoder mode_set
* bridge mode_set
* crtc commit
* for_each_encoder
* bridge pre_enable
* encoder commit
* bridge enable
dw_hdmi enables the HDMI output in both the bridge mode_set() and also
the bridge enable() step. This is duplicated work - we can avoid the
setup in mode_set() and just do it in the enable() stage. This
simplifies the code a little.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit f709ec07e38a714f8a959f28b3e0388cfb1b2540
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Tue Jul 21 16:09:39 2015 +0100
drm: bridge/dw_hdmi: enable audio only if sink supports audio
Only enable audio support if the sink supports audio in some form, as
defined via its EDID. We discover this capability using the generic
drm_detect_monitor_audio() function.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 05b1342f5014b7c100834ae179dd90d1a1da7366
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Tue Jul 21 15:35:52 2015 +0100
drm: bridge/dw_hdmi: clean up HDMI vs DVI mode handling
The FSL kernel detects the HDMI vendor id, and uses this to set
hdmi->edid_cfg.hdmi_cap, which is then used to set mdvi appropriately,
rather than detecting whether we are outputting a CEA mode. Update
the dw_hdmi code to use this logic, but lets eliminate the mdvi
variable, prefering the more verbose "hdmi->sink_is_hdmi" instead.
Use the generic drm_detect_hdmi_monitor() to detect a HDMI sink.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 8add41900e2177b20c28b64d13d8da8088c9606b
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Wed Jul 22 11:14:00 2015 +0100
drm: bridge/dw_hdmi: don't support any pixel doubled modes
As mentioned in the previous commit, the dw-hdmi driver does not support
pixel doubled modes at present; it does not configure the PLL correctly
for these modes. Therefore, filter out the double-clocked modes as we
presently are unable to support them.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit d10ca826b71b4c1c3ecab846528881aa0cf24266
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Tue Jul 21 11:25:00 2015 +0100
drm: bridge/dw_hdmi: remove pixel repetition setting for all VICs
dw_hdmi sets a pixel repetition factor of 1 for VICs 10-15, 25-30 and
35-38. However, DRM uses their native resolutions in its timing
information. For example, VIC 14 can be 1440x480 with no repetition,
or 720x480 with one pixel repetition. As DRM uses 1440 pixels per line
for this video mode, we need no pixel repetition.
In any case, pixel repetition appears broken in dw_hdmi.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit b90120a9660884b8f11bbb9904fbaa4c12d17e0a
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Mar 27 12:59:58 2015 +0000
drm: bridge/dw_hdmi: introduce interfaces to enable and disable audio
iMX6 devices suffer from an errata (ERR005174) where the audio FIFO can
be emptied while it is partially full, resulting in misalignment of the
audio samples.
To prevent this, the errata workaround recommends writing N as zero
until the audio FIFO has been loaded by DMA. Writing N=0 prevents the
HDMI bridge from reading from the audio FIFO, effectively disabling
audio.
This means we need to provide the audio driver with a pair of functions
to enable/disable audio. These are dw_hdmi_audio_enable() and
dw_hdmi_audio_disable().
A spinlock is introduced to ensure that setting the CTS/N values can't
race, ensuring that the audio driver calling the enable/disable
functions (which are called in an atomic context) can't race with a
modeset.
Tested-by: Yakir Yang <ykk@xxxxxxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit b5814fff27c6d0212b86306bdd01fe3aea99cabb
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Mar 27 12:50:58 2015 +0000
drm: bridge/dw_hdmi: introduce interface to setting sample rate
Introduce dw_hdmi_set_sample_rate(), which allows us to configure the
audio sample rate, setting the CTS/N values appropriately.
Tested-by: Yakir Yang <ykk@xxxxxxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit b91eee8cd8a547e43e271e5908e16c4a53c9416d
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Mar 27 23:27:17 2015 +0000
drm: bridge/dw_hdmi: remove mhsyncpolarity/mvsyncpolarity/minterlaced
Remove the struct hdmi_vmode mhsyncpolarity/mvsyncpolarity/minterlaced
members, which are only used within a single function. We can directly
reference the appropriate mode->flags instead.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 4b9bcaa7f18ef7c599963464d282bc769997f83b
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Sat Jun 6 00:12:41 2015 +0100
drm: bridge/dw_hdmi: use our own drm_device
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit a1b9f2ae213dd085bbe3c9fa68c5c4af5db9c77b
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Jun 5 12:18:09 2015 +0100
drm: bridge/dw_hdmi: remove unused 'regmap' struct member
This driver does not make use of regmaps, let's remove this unnecessary
structure member.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit d083c312cba2735566af9598cb281ea2ae6b729a
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Mar 27 23:14:16 2015 +0000
drm: bridge/dw_hdmi: simplify hdmi_config_AVI() a little
When a YCBCR format is selected, we can merely copy the colorimetry
information directly as we use the same definitions for both the
unpacked AVI info frame and the hdmi_data_info structure.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit d4ac4cb69e79e3175329e03262354beef6aab38b
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Mar 27 20:06:50 2015 +0000
drm: bridge/dw_hdmi: use drm_hdmi_avi_infoframe_from_display_mode()
Use drm_hdmi_avi_infoframe_from_display_mode() to compose the AVI
frame.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit f879b38f9155e85dc30a2e1e7d18b06251a7f9f8
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Fri Mar 27 12:53:29 2015 +0000
drm: bridge/dw_hdmi: clean up hdmi_set_clk_regenerator()
Clean up hdmi_set_clk_regenerator() by allowing it to take the audio
sample rate and ratio directly, rather than hiding it inside the
function. Raise the unsupported pixel clock/sample rate message from
debug to error level as this results in audio not working correctly.
Tested-by: Yakir Yang <ykk@xxxxxxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 39cc1535fe1e401c523065f7b219ac1cd76e4a7d
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Tue Mar 31 18:34:11 2015 +0100
drm: bridge/dw_hdmi: clean up phy configuration
The phy configuration is dependent on the SoC, and we look up values for
some of the registers in SoC specific data. However, we had partially
programmed the phy before we had successfully looked up the clock rate.
Also, we were only checking that we had a valid configuration for the
currctrl register.
Move all these lookups to the start of this function instead, so we can
check that all lookups were successful before beginning to program the
phy.
Tested-by: Yakir Yang <ykk@xxxxxxxxxxxxxx>
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 36b8ae0d608696cb8b48639813ec22be99c4a8e6
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Tue Mar 31 18:23:16 2015 +0100
drm: imx/dw_hdmi: move phy comments
The phy comments in dw_hdmi.c applied to the iMX6 version. Move these
comments to the iMX6 dw_hdmi-imx data along side the data.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit 627563d1696b8978b550ed192acc1bc8fc461da5
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Sat Mar 28 18:13:52 2015 +0000
drm/edid: add function to help find SADs
Add a function to find the start of the SADs in the ELD. This
complements the helper to retrieve the SAD count.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
commit d9232a3da8683cd9c9854a858bcca968fe5f3bca
Author: Ian Munsie <imunsie@xxxxxxxxxxx>
Date: Thu Jul 23 16:43:56 2015 +1000
cxl: Add alternate MMIO error handling
userspace programs using cxl currently have to use two strategies for
dealing with MMIO errors simultaneously. They have to check every read
for a return of all Fs in case the adapter has gone away and the kernel
has not yet noticed, and they have to deal with SIGBUS in case the
kernel has already noticed, invalidated the mapping and marked the
context as failed.
In order to simplify things, this patch adds an alternative approach
where the kernel will return a page filled with Fs instead of delivering
a SIGBUS. This allows userspace to only need to deal with one of these
two error paths, and is intended for use in libraries that use cxl
transparently and may not be able to safely install a signal handler.
This approach will only work if certain constraints are met. Namely, if
the application is both reading and writing to an address in the problem
state area it cannot assume that a non-FF read is OK, as it may just be
reading out a value it has previously written. Further - since only one
page is used per context a write to a given offset would be visible when
reading the same offset from a different page in the mapping (this only
applies within a single context, not between contexts).
An application could deal with this by e.g. making sure it also reads
from a read-only offset after any reads to a read/write offset.
Due to these constraints, this functionality must be explicitly
requested by userspace when starting the context by passing in the
CXL_START_WORK_ERR_FF flag.
Signed-off-by: Ian Munsie <imunsie@xxxxxxxxxxx>
Acked-by: Michael Neuling <mikey@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit fc9e9cbf4e48f28525edd27e285820988f1a54b1
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Fri Aug 7 09:59:11 2015 +0200
powerpc/nvram: use kmemdup rather than duplicating its implementation
The patch was generated using fixed coccinelle semantic patch
scripts/coccinelle/api/memdup.cocci [1].
[1]: http://permalink.gmane.org/gmane.linux.kernel/2014320
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Nathan Fontenot <nfont@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 2e16acc5ee3626bcd32e2252c8260b65efde7b36
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Fri Aug 7 09:59:12 2015 +0200
powerpc/pseries: use kmemdup rather than duplicating its implementation
The patch was generated using fixed coccinelle semantic patch
scripts/coccinelle/api/memdup.cocci [1].
[1]: http://permalink.gmane.org/gmane.linux.kernel/2014320
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Nathan Fontenot <nfont@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 39bfd715b4837433a86c168c610880e9ae2185ae
Author: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Date: Thu Jul 30 09:26:51 2015 +1000
powerpc/eeh: Disable automatically blocked PCI config
pcibios_set_pcie_reset_state() could be called to complete
reset request when passing through PCI device, flag
EEH_PE_ISOLATED is set before saving the PCI config sapce.
On some Broadcom adapters, EEH_PE_CFG_BLOCKED is automatically
set when the flag EEH_PE_ISOLATED is marked. It caused bogus
data saved from the PCI config space, which will be restored
to the PCI adapter after the reset. Eventually, the hardware
can't work with corrupted data in PCI config space.
The patch fixes the issue with eeh_pe_state_mark_no_cfg(), which
doesn't set EEH_PE_CFG_BLOCKED when seeing EEH_PE_ISOLATED on the
PE, in order to avoid the bogus data saved and restored to the PCI
config space.
Reported-by: Rajanikanth H. Adaveeshaiah <rajanikanth.ha@xxxxxxxxxx>
Signed-off-by: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit dd497154d359ba9d2d3e71075bed794b93b47b48
Author: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Date: Tue Aug 18 10:57:40 2015 +1000
powerpc: Export include/uapi/asm/eeh.h
This adds include/uapi/asm/eeh.h to kbuild so that the header
file will be exported automatically with below command. The
header file was added by commit ed3e81ff2016 ("powerpc/eeh: Move PE
state constants around")
make INSTALL_HDR_PATH=/tmp/headers \
SRCARCH=powerpc headers_install
Signed-off-by: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit e0ad784b65a64a617179598addb417d49dd4e08f
Author: Vaibhav Jain <vaibhav@xxxxxxxxxxxxxxxxxx>
Date: Fri Jul 3 10:41:20 2015 +0530
powerpc/pseries: enable RTC class support
A working rtc kernel driver is needed so that hwclock can synchronize
system clock to rtc during shutdown/boot. We already have a powernv
platform rtc driver located at drivers/rtc/rtc-opal.c. However it depends
on CONFIG_RTC_CLASS which is disabled by default. Hence the driver isn't
enabled and not compiled for the powernv kernel.
We fix this by enabling rtc class support in pseries defconfig which
enables this driver and compiles it into the pseries kernel. In case
CONFIG_PPC_POWERNV is not enabled we fallback to 'Generic RTC support'
driver which emulates the legacy 'PC RTC driver'.
Signed-off-by: Vaibhav Jain <vaibhav@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 1d805440a364b4a68562e70119d8f94456698e55
Author: Nikunj A Dadhania <nikunj@xxxxxxxxxxxxxxxxxx>
Date: Thu Jul 2 11:09:01 2015 +0530
powerpc/numa: initialize distance lookup table from drconf path
In some situations, a NUMA guest that supports
ibm,dynamic-memory-reconfiguration node will end up having flat NUMA
distances between nodes. This is because of two problems in the
current code.
1) Different representations of associativity lists.
There is an assumption about the associativity list in
initialize_distance_lookup_table(). Associativity list has two forms:
a) [cpu,memory]@x/ibm,associativity has following
format:
<N> <N integers>
b) ibm,dynamic-reconfiguration-memory/ibm,associativity-lookup-arrays
<M> <N> <M associativity lists each having N integers>
M = the number of associativity lists
N = the number of entries per associativity list
Fix initialize_distance_lookup_table() so that it does not assume
"case a". And update the caller to skip the length field before
sending the associativity list.
2) Distance table not getting updated from drconf path.
Node distance table will not get initialized in certain cases as
ibm,dynamic-reconfiguration-memory path does not initialize the
lookup table.
Call initialize_distance_lookup_table() from drconf path with
appropriate associativity list.
Reported-by: Bharata B Rao <bharata@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Nikunj A Dadhania <nikunj@xxxxxxxxxxxxxxxxxx>
Acked-by: Anton Blanchard <anton@xxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 53522982fc3c254bb4444c336cb005c8636930c8
Author: Andrew Donnellan <andrew.donnellan@xxxxxxxxxxx>
Date: Fri Aug 7 13:45:54 2015 +1000
powerpc/powernv: move dma_get_required_mask from pnv_phb to
pci_controller_ops
Simplify the dma_get_required_mask call chain by moving it from pnv_phb to
pci_controller_ops, similar to commit 763d2d8df1ee ("powerpc/powernv:
Move dma_set_mask from pnv_phb to pci_controller_ops").
Previous call chain:
0) call dma_get_required_mask() (kernel/dma.c)
1) call ppc_md.dma_get_required_mask, if it exists. On powernv, that
points to pnv_dma_get_required_mask() (platforms/powernv/setup.c)
2) device is PCI, therefore call pnv_pci_dma_get_required_mask()
(platforms/powernv/pci.c)
3) call phb->dma_get_required_mask if it exists
4) it only exists in the ioda case, where it points to
pnv_pci_ioda_dma_get_required_mask() (platforms/powernv/pci-ioda.c)
New call chain:
0) call dma_get_required_mask() (kernel/dma.c)
1) device is PCI, therefore call
pci_controller_ops.dma_get_required_mask
if it exists
2) in the ioda case, that points to pnv_pci_ioda_dma_get_required_mask()
(platforms/powernv/pci-ioda.c)
In the p5ioc2 case, the call chain remains the same -
dma_get_required_mask() does not find either a ppc_md call or
pci_controller_ops call, so it calls __dma_get_required_mask().
Signed-off-by: Andrew Donnellan <andrew.donnellan@xxxxxxxxxxx>
Reviewed-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 73b341efda6664afbb0b6884eae60f04208b4128
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Fri Aug 7 16:19:47 2015 +1000
powerpc/mm: Drop CONFIG_PPC_HAS_HASH_64K
The relation between CONFIG_PPC_HAS_HASH_64K and CONFIG_PPC_64K_PAGES is
painfully complicated.
But if we rearrange it enough we can see that PPC_HAS_HASH_64K
essentially depends on PPC_STD_MMU_64 && PPC_64K_PAGES.
We can then notice that PPC_HAS_HASH_64K is used in files that are only
built for PPC_STD_MMU_64, meaning it's equivalent to PPC_64K_PAGES.
So replace all uses and drop it.
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
commit 55f8b5b82fe7ab21da4153ed177b6fe17b1d59a3
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Fri Aug 7 16:19:46 2015 +1000
powerpc/mm: Simplify page size kconfig dependencies
For config options with only a single value, guarding the single value
with 'if' is the same as adding a 'depends' statement. And it's more
standard to just use 'depends'.
And if the option has both an 'if' guard and a 'depends' we can collapse
them into a single 'depends' by combining them with &&.
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
commit 953005770ec3b52132a4cdbdbce74bd0de2b8490
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Fri Aug 7 16:19:45 2015 +1000
powerpc/mm: Drop the 64K on 4K version of pte_pagesize_index()
Now that support for 64k pages with a 4K kernel is removed, this code is
unreachable.
CONFIG_PPC_HAS_HASH_64K can only be true when CONFIG_PPC_64K_PAGES is
also true.
But when CONFIG_PPC_64K_PAGES is true we include pte-hash64.h which
includes pte-hash64-64k.h, which defines both pte_pagesize_index() and
crucially __real_pte, which means this definition can never be used.
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
commit 57fb907da89977640ef183556a621336c1348fa0
Author: Emil Medve <Emilian.Medve@xxxxxxxxxxxxx>
Date: Wed Mar 25 00:28:48 2015 -0500
iommu/fsl: Really fix init section(s) content
'0f1fb99 iommu/fsl: Fix section mismatch' was intended to address the
modpost
warning and the potential crash. Crash which is actually easy to trigger
with a
'unbind' followed by a 'bind' sequence. The fix is wrong as
fsl_of_pamu_driver.driver gets added by bus_add_driver() to a couple of
klist(s) which become invalid/corrupted as soon as the init sections are
freed.
Depending on when/how the init sections storage is reused various/random
errors
and crashes will happen
'cd70d46 iommu/fsl: Various cleanups' contains annotations that go
further down
the wrong path laid by '0f1fb99 iommu/fsl: Fix section mismatch'
Now remove all the incorrect annotations from the above mentioned patches
(not
exactly a revert) and those previously existing in the code, This fixes
the
modpost warning(s), the unbind/bind sequence crashes and the random
errors/crashes
Fixes: 0f1fb99b62ce ("iommu/fsl: Fix section mismatch")
Fixes: cd70d4659ff3 ("iommu/fsl: Various cleanups")
Signed-off-by: Emil Medve <Emilian.Medve@xxxxxxxxxxxxx>
Acked-by: Varun Sethi <Varun.Sethi@xxxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Tested-by: Madalin Bucur <Madalin.Bucur@xxxxxxxxxxxxx>
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit f444f1f898d7c4bbe45d12ffe3f38349ff83ec4a
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Fri Aug 7 16:19:44 2015 +1000
powerpc/cell: Drop support for 64K local store on 4K kernels
Back in the olden days we added support for using 64K pages to map the
SPU (Synergistic Processing Unit) local store on Cell, when the main
kernel was using 4K pages.
This was useful at the time because distros were using 4K pages, but
using 64K pages on the SPUs could reduce TLB pressure there.
However these days the number of Cell users is approaching zero, and
supporting this option adds unpleasant complexity to the memory
management code.
So drop the option, CONFIG_SPU_FS_64K_LS, and all related code.
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Acked-by: Jeremy Kerr <jk@xxxxxxxxxx>
commit 74b5037baa2011a2799e2c43adde7d171b072f9e
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Fri Aug 7 16:19:43 2015 +1000
powerpc/mm: Fix pte_pagesize_index() crash on 4K w/64K hash
The powerpc kernel can be built to have either a 4K PAGE_SIZE or a 64K
PAGE_SIZE.
However when built with a 4K PAGE_SIZE there is an additional config
option which can be enabled, PPC_HAS_HASH_64K, which means the kernel
also knows how to hash a 64K page even though the base PAGE_SIZE is 4K.
This is used in one obscure configuration, to support 64K pages for SPU
local store on the Cell processor when the rest of the kernel is using
4K pages.
In this configuration, pte_pagesize_index() is defined to just pass
through its arguments to get_slice_psize(). However pte_pagesize_index()
is called for both user and kernel addresses, whereas get_slice_psize()
only knows how to handle user addresses.
This has been broken forever, however until recently it happened to
work. That was because in get_slice_psize() the large kernel address
would cause the right shift of the slice mask to return zero.
However in commit 7aa0727f3302 ("powerpc/mm: Increase the slice range to
64TB"), the get_slice_psize() code was changed so that instead of a
right shift we do an array lookup based on the address. When passed a
kernel address this means we index way off the end of the slice array
and return random junk.
That is only fatal if we happen to hit something non-zero, but when we
do return a non-zero value we confuse the MMU code and eventually cause
a check stop.
This fix is ugly, but simple. When we're called for a kernel address we
return 4K, which is always correct in this configuration, otherwise we
use the slice mask.
Fixes: 7aa0727f3302 ("powerpc/mm: Increase the slice range to 64TB")
Reported-by: Cyril Bur <cyrilbur@xxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
commit cf27ec930be906e142c752f9161197d69ca534d7
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Tue Aug 11 16:48:32 2015 +0100
iommu/io-pgtable-arm: Unmap and free table when overwriting with block
When installing a block mapping, we unconditionally overwrite a non-leaf
PTE if we find one. However, this can cause a problem if the following
sequence of events occur:
(1) iommu_map called for a 4k (i.e. PAGE_SIZE) mapping at some address
- We initialise the page table all the way down to a leaf entry
- No TLB maintenance is required, because we're going from invalid
to valid.
(2) iommu_unmap is called on the mapping installed in (1)
- We walk the page table to the final (leaf) entry and zero it
- We only changed a valid leaf entry, so we invalidate leaf-only
(3) iommu_map is called on the same address as (1), but this time for
a 2MB (i.e. BLOCK_SIZE) mapping)
- We walk the page table down to the penultimate level, where we
find a table entry
- We overwrite the table entry with a block mapping and return
without any TLB maintenance and without freeing the memory used
by the now-orphaned table.
This last step can lead to a walk-cache caching the overwritten table
entry, causing unexpected faults when the new mapping is accessed by a
device. One way to fix this would be to collapse the page table when
freeing the last page at a given level, but this would require expensive
iteration on every map call. Instead, this patch detects the case when
we are overwriting a table entry and explicitly unmaps the table first,
which takes care of both freeing and TLB invalidation.
Cc: <stable@xxxxxxxxxxxxxxx>
Reported-by: Brian Starkey <brian.starkey@xxxxxxx>
Tested-by: Brian Starkey <brian.starkey@xxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 5b9fb5e6c6c74666f88f34bd0db183b9c4269d97
Author: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Date: Wed Jan 7 10:25:41 2015 +0100
drm: atmel-hlcdc: add support for sama5d4 SoCs
Describe capabilities of the HLCDC IP found on sama5d4 SoCs and add a
new entry to the atmel_hlcdc_of_match table.
Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
commit 6b22cadce2175c997435d93cd3ef9b0389c45ad7
Author: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Date: Wed Jan 7 10:12:41 2015 +0100
drm: atmel-hlcdc: add support for at91sam9n12 SoC
Describe capabilities of the HLCDC IP found on at91sam9n12 SoC and add a
new entry to the atmel_hlcdc_of_match table.
Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
commit 348ef85f6216c1a11726a165a7f32b8516aa8014
Author: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Date: Wed Jan 7 09:30:20 2015 +0100
drm: atmel-hlcdc: add support for at91sam9x5 SoCs
Describe capabilities of the HLCDC IP found on at91sam9x5 SoCs and add a
new entry to the atmel_hlcdc_of_match table.
Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
commit 923f869846014ac56937690a7cc968414a1e92d0
Author: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Date: Tue Jan 6 11:18:09 2015 +0100
drm: atmel-hlcdc: add RGB565 and RGB444 output support
The HLCDC IP supports RGB565 and RGB444 output formats.
Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
commit aa690a9edc5750bb5955b524dd7db842e36004eb
Author: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Date: Fri Jul 31 15:10:26 2015 +0200
drm: atmel-hlcdc: add the missing DRM_ATOMIC flag
The atmel-hlcdc driver already supports atomic operations, add the
missing DRM_ATOMIC flag to expose the atomic features to userspace.
Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
commit e14c71c849f838a4618fe46f5b6a0414c07891d1
Author: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
Date: Mon Apr 20 13:43:26 2015 +0200
drm: atmel-hlcdc: add PRIME support
Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>
commit a9c909ce8c7853b4fc16055c50eb50d91e20cb93
Author: Andy Lutomirski <luto@xxxxxxxxxx>
Date: Mon Aug 17 12:22:52 2015 -0700
selftests/x86: Add syscall_nt selftest
I've had this sitting around for a while. Add it to the
selftests tree. Far Cry running under Wine depends on this
behavior.
Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Brian Gerst <brgerst@xxxxxxxxx>
Cc: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/ee4d63799a9e5294b70930618b71d04d2770eb2d.1439838962.git.luto@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 33f3df41d03879ab86c7f2d650e67b655e0b85c8
Author: Andy Lutomirski <luto@xxxxxxxxxx>
Date: Mon Aug 17 12:22:51 2015 -0700
selftests/x86: Disable sigreturn_64
sigreturn_64 was broken by ed596cde9425 ("Revert x86 sigcontext
cleanups"). Turn it off until we have a better fix.
Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Brian Gerst <brgerst@xxxxxxxxx>
Cc: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/a184e75ff170a0bcd76bf376c41cad2c402fe9f7.1439838962.git.luto@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit a5dd19249607474ed680f16b4f5e8477d2b68689
Merge: 6b7e265 512255a
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Tue Aug 18 09:39:47 2015 +0200
Merge branch 'x86/urgent' into x86/asm to fix up conflicts and to pick up
fixes
Conflicts:
arch/x86/entry/entry_64_compat.S
arch/x86/math-emu/get_address.c
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit ecc7c518b3017821a6b26fb5fdaa548afa8ee236
Author: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
Date: Mon Aug 17 15:54:41 2015 +0300
iwlwifi: mvm: fix a race in D0i3 vs. Tx path
When we enter D0i3, we must stop TXing otherwise the
sequence number we use might conflict with the firmware's
internal TX. In order to do so, we have
IWL_MVM_STATUS_IN_D0I3 which should prevent any Tx while we
enter D0i3. There is a bug in this code since we may Tx even
if IWL_MVM_STATUS_IN_D0I3 is set. This can happen as long as
mvm->d0i3_ap_sta_id is not set.
To make sure that we don't have any packet in the Tx path
while we set mvm->d0i3_ap_sta_id, call synchronize_net only
after we already set mvm->d0i3_ap_sta_id.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit b3df22475423a99cc1f6c4b202970fa89a4d9716
Author: David Spinadel <david.spinadel@xxxxxxxxx>
Date: Thu Aug 6 10:26:50 2015 +0300
iwlwifi: mvm: don't disconnect on beacon loss in D0I3
Currently if we wake up during D0I3 due to beacon loss we disconnect
immediately. This behaviour causes redundant disconnection, which could
be prevented by polling as it is usually done in mac80211.
Instead, we prefer reporting beacon loss and let mac80211 try polling
before disconnection.
Signed-off-by: David Spinadel <david.spinadel@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit e192cd121dbe009f67eddd5171d588994b15486c
Author: Adrien Schildknecht <adrien+dev@xxxxxxxxxxx>
Date: Fri Aug 14 02:35:32 2015 +0200
iwlwifi: out-of-bounds access in iwl_init_sband_channels
KASan error report:
==================================================================
BUG: KASan: out of bounds access in iwl_init_sband_channels+0x207/0x260
[iwlwifi] at addr ffff8800c2d0aac8
Read of size 4 by task modprobe/329
==================================================================
Both loops of this function compare data from the 'chan' array and then
check if the index is valid.
The 2 conditions should be inverted to avoid an out-of-bounds access.
Signed-off-by: Adrien Schildknecht <adrien+dev@xxxxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit da0fa5ebb254d1617455ace9af1ce2f1d375a95d
Author: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
Date: Sun Aug 16 10:39:49 2015 +0300
iwlwifi: bump mvm firmware API to 16
The driver is now able to handle -16.ucode.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 783eaee6dbf475827b5fbdb13c17c54510aaa95e
Author: Alexander Bondar <alexander.bondar@xxxxxxxxx>
Date: Tue Jul 28 16:50:51 2015 +0300
iwlwifi: rs: disable MIMO only if allowed in configuration
Fix bug where MIMO is disabled for low latency TX on P2P VIF
regardless of configuration. Make it dependent on
IWL_MVM_RS_DISABLE_P2P_MIMO compilation option. Change configuration
so that MIMO will be disabled only in SDIO platforms.
Signed-off-by: Alexander Bondar <alexander.bondar@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 74f4e0cc61080f63f28e8d519bdf437957e64217
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Fri Aug 14 00:21:45 2015 +0200
bcma: switch GPIO portions to use GPIOLIB_IRQCHIP
This switches the BCMA GPIO driver to use GPIOLIB_IRQCHIP to
handle its interrupts instead of rolling its own copy of the
irqdomain handling etc.
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Hauke Mehrtens <hauke@xxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 1165dd900cc8de3addbc8bef7e6196b07799d25e
Author: Miaoqing Pan <miaoqing@xxxxxxxxxxxxxxxx>
Date: Wed Aug 12 14:20:46 2015 +0800
ath9k: add correct MAC/BB name for ar9561
MAC/BB name is"????" if the MAC/BB is unknown.
Signed-off-by: Miaoqing Pan <miaoqing@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit fc645df093926d8cd33a9dd9b6532ff3fd937193
Author: Guy Mishol <guym@xxxxxx>
Date: Tue Aug 11 10:02:57 2015 +0300
wl18xx: add diversity statistics
Add diversity statistics and sync the driver
statistics acx and debugfs representation
with the current fw api.
Signed-off-by: Guy Mishol <guym@xxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit c48276cbbeaedd49cdf32f2b734b4a1ec6d6ccad
Author: Eliad Peller <eliad@xxxxxxxxxx>
Date: Tue Aug 11 10:02:56 2015 +0300
wl18xx: update statistics acx and debugfs files
Sync the driver statistics acx and debugfs representation
with the current fw api.
Signed-off-by: Eliad Peller <eliad@xxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit f10746fef3dfa8546808989f71c3543db832f374
Author: Adrien Schildknecht <adrien+dev@xxxxxxxxxxx>
Date: Tue Aug 11 00:25:53 2015 +0200
rt2x00: adjust EEPROM_SIZE for rt2500usb
rt2500usb_validate_eeprom() read data up to 0x6e (EEPROM_CALIBRATE_OFFSET)
but only 0x6a bytes has been allocated and read from the eeprom.
This lead to out-of-bound accesses and invalid values for
EEPROM_BBPTUNE_R17 and EEPROM_CALIBRATE_OFFSET.
Change the EEPROM_SIZE to 0x6e in order to retrieve all the fields.
Tested with a rt2570 device.
Signed-off-by: Adrien Schildknecht <adrien+dev@xxxxxxxxxxx>
Acked-by: Stanislaw Gruszka <sgruszka@xxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit bafc6e4cd897ef14015d8d32a04ee9bfa8d91370
Author: John Linville <linville@xxxxxxxxxxxxx>
Date: Mon Aug 10 12:05:39 2015 -0400
mwl8k: refactor some conditionals for clarity
CC [M] drivers/net/wireless/mwl8k.o
drivers/net/wireless/mwl8k.c: In function â??mwl8k_bss_info_changedâ??:
drivers/net/wireless/mwl8k.c:3290:2: warning: â??ap_mcs_ratesâ?? may be
used uninitialized in this function [-Wmaybe-uninitialized]
memcpy(cmd->mcs_set, mcs_rates, 16);
^
drivers/net/wireless/mwl8k.c:4987:5: note: â??ap_mcs_ratesâ?? was
declared here
u8 ap_mcs_rates[16];
^
The warning was bogus. But the conditionals were rather complicated,
with multiple redundant checks. This consolidates the checking and
makes it more readable IMHO.
Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 9ff4b6de26a72f76450943548ee7d9d779eeaac5
Author: Taehee Yoo <ap420073@xxxxxxxxx>
Date: Tue Apr 7 03:13:00 2015 +0900
rtlwifi: rtl8192cu: Remove and replace routine in hw.c and mac.c
I remove duplicated routines which related rtl92cu_set_hw_reg().
1. rtl92c_set_qos() and HW_VAR_AC_PARAM routine are similar code.
so i replace code with rtlpriv->cfg->ops->set_hw_reg().
2. rtl92c_set_mac_addr() and 'HW_VAR_ETHER_ADDR' case at
rtl92cu_set_hw_reg() routine are similar code.
so i removed rtl92c_set_mac_addr() function.
also it was not used anywhere.
3. remove HW_VAR_ACM_CTRL routine in rtl92cu_set_hw_reg().
if rtl_usb->acm_method is not EACMWAY2_SW, HW_VAR_ACM_CTRL is called
from HW_VAR_AC_PARAM. but it never called. because acm_method is always
EACMWAY2_SW. so i remove acm_method check routine
and HW_VAR_ACM_CTRL routine.
both usb and pci interface is not used HW_VAR_ACM_CTRL.
but i can't test pci interface module, so i didn't modify pci code.
Signed-off-by: Taehee Yoo <ap420073@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit bf27cea49502799be15beab3567ea2bd9901ad2f
Author: Taehee Yoo <ap420073@xxxxxxxxx>
Date: Tue Mar 31 00:55:32 2015 +0900
rtlwifi: rtl8192cu: remove duplicated routine in hw.c and mac.c
rtl92c_set_xxx_filter is same routine with rtl92cu_set_hw_reg.
so i remove those functions that are rtl92c_set_xxx_filter.
(rtl92c_get_xxx_filter is also same reason.)
also i add code updating struct rtl_mac member variable in the
rtl92cu_set_hw_reg.
after that, no more _update_mac_setting is not useful. thus i remove that.
Signed-off-by: Taehee Yoo <ap420073@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 15f6d96ded057b898312b0a088a964d585a779b1
Merge: 94e92a7 8f9c98d
Author: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
Date: Tue Aug 18 08:44:22 2015 +0300
Merge tag 'mac80211-next-for-davem-2015-08-14' mac80211-next.git
iwlwifi needs new mac80211 patches so merge mac80211-next.git to
wireless-drivers-next.git.
commit 0b233dc7167884f95f08e796ac6a6767ae7d0d70
Merge: f376d4a 65d7ab8
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 17 21:33:06 2015 -0700
Merge branch 'Identifier-Locator-Addressing'
Tom Herbert says:
====================
net: Identifier Locator Addressing - Part I
This patch set provides rudimentary support for Identifier Locator
Addressing or ILA. The basic concept of ILA is that we split an IPv6
address into a 64 bit locator and 64 bit identifier. The identifier is
the identity of an entity in communication ("who"), and the locator
expresses the location of the entity ("where"). Applications
use externally visible address that contains the identifier.
When a packet is actually sent, a translation is done that
overwrites the first 64 bits of the address with a locator.
The packet can then be forwarded over the network to the host where
the addressed entity is located. At the receiver, the reverse
translation is done so the that the application sees the original,
untranslated address. Presumably an external control plane will
provide identifier->locator mappings.
v2:
- Fix compilation erros when LWT not configured
- Consolidate ILA into a single ila.c
v3:
- Change pseudohdr argument od inet_proto_csum_replace functions to
be a bool
v4:
- In ila_build_state check locator being in netlink params before
allocating tunnel state
The data path for ILA is a simple NAT translation that only operates
on the upper 64 bits of a destination address in IPv6 packets. The
basic process is:
1) Lookup 64 bit identifier (lower 64 bits of destination)
2) If a match is found
a) Overwrite locator (upper 64 bits of destination) with
the new locator
b) Adjust any checksum that has destination address included in
pseudo header
3) Send or receive packet
ILA is a means to implement tunnels or network virtualization without
encapsulation. Since there is no encapsulation involved, we assume that
stateless support in the network for IPv6 (e.g. RSS, ECMP, TSO, etc.)
just works. Also, since we're minimally changing the packet many of
the worries about encapsulation (MTU, checksum, fragmentation) are
not relevant. The downside is that, ILA is not extensible like other
encapsulations (GUE for instance) so it might not be appropriate for
all use cases. Also, this only makes sense to do in IPv6!
A key aspect of ILA is performance. The intent is that ILA would be
used in data centers in virtualizing tasks or jobs. In the fullest
incarnation all intra data center communications might be targeted to
virtual ILA addresses. This is basically adding a new virtualization
capability to the existing services in a datacenter, so there is a
strong expectation is that this does not degrade performance for
existing applications.
Performance seems to be dependent on how ILA is hooked into kernel.
ILA can be implemented under some different models:
- Mechanically it is a form a stateless DNAT
- It can be thought of as a type of (source) routing
- As a functional replacement of encapsulation
In this patch set we hook into the data path using Light Weight
Tunnels (LWT) infrastructure. As part of that, we add support in LWT
to redirect dst input. iproute will be modified to take a new ila encap
type. ILA can be configured like:
ip route add 3333:0:0:1:5555:0:2:0/128 \
encap ila 2001:0:0:2 via 2401:db00:20:911a:face:0:27:0
ip -6 addr add 3333:0:0:1:5555:0:1:0/128 dev eth0
ip route add table local local 2001:0:0:1:5555:0:1:0/128
encap ila 3333:0:0:1 dev lo
So sending to destination 3333:0:0:1:5555:0:2:0 will have destination
of 2001:0:0:2:5555:0:2:0 on the wire.
Performance results are below. With ILA we see about a 10% drop in
pps compared to non-ILA. Much of this drop can be attributed to the
loss of early demux on input (translation occurs after it is attempted).
We will address this in the next patch set. Also, IPvlan input path
does not work with ILA since the routing is bypassed-- this will
be addressed in a future patch.
Performance testing:
Performing netperf TCP_RR with 200 clients:
Non-ILA baseline
84.92% CPU utilization
1861922.9 tps
93/163/330 50/90/99% latencies
ILA single destination
83.16% CPU utilization
1679683.4 tps
105/180/332 50/90/99% latencies
References:
Slides from netconf:
http://vger.kernel.org/netconf2015Herbert-ILA.pdf
Slides from presentation at IETF:
https://www.ietf.org/proceedings/92/slides/slides-92-nvo3-1.pdf
I-D:
https://tools.ietf.org/html/draft-herbert-nvo3-ila-00
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 65d7ab8de582bc668e3dabb6ff48f750098a6e78
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 13:42:27 2015 -0700
net: Identifier Locator Addressing module
Adding new module name ila. This implements ILA translation. Light
weight tunnel redirection is used to perform the translation in
the data path. This is configured by the "ip -6 route" command
using the "encap ila <locator>" option, where <locator> is the
value to set in destination locator of the packet. e.g.
ip -6 route add 3333:0:0:1:5555:0:1:0/128 \
encap ila 2001:0:0:1 via 2401:db00:20:911a:face:0:25:0
Sets a route where 3333:0:0:1 will be overwritten by
2001:0:0:1 on output.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit abc5d1ff3e8f9b4a9d274818459b123e31981dc9
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 13:42:26 2015 -0700
net: Add inet_proto_csum_replace_by_diff utility function
This function updates a checksum field value and skb->csum based on
a value which is the difference between the old and new checksum.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4b048d6d9d0b0b90e1e94f2393796bbf1fa8df4e
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 13:42:25 2015 -0700
net: Change pseudohdr argument of inet_proto_csum_replace* to be a bool
inet_proto_csum_replace4,2,16 take a pseudohdr argument which indicates
the checksum field carries a pseudo header. This argument should be a
boolean instead of an int.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2536862311d2276454ddef9dc36d6551a4b400fd
Author: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 13:42:24 2015 -0700
lwt: Add support to redirect dst.input
This patch adds the capability to redirect dst input in the same way
that dst output is redirected by LWT.
Also, save the original dst.input and and dst.out when setting up
lwtunnel redirection. These can be called by the client as a pass-
through.
Signed-off-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f376d4adfdd2d860aea3e99aa86e98324621ece7
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 17 21:24:59 2015 -0700
enic: Fix sparse warning in vnic_devcmd_init().
>> drivers/net/ethernet/cisco/enic/vnic_dev.c:1095:13: sparse: incorrect
type in assignment (different address spaces)
drivers/net/ethernet/cisco/enic/vnic_dev.c:1095:13: expected void
*res
drivers/net/ethernet/cisco/enic/vnic_dev.c:1095:13: got void
[noderef] <asn:2>*
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ecf842f65c76f7dc2420a5295dfbf01ec7232320
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 17 21:22:26 2015 -0700
mlx5e: Fix sparse warnings in mlx5e_handle_csum().
>> drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:173:44: sparse:
incorrect type in argument 1 (different base types)
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:173:44: expected
restricted __sum16 [usertype] n
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:173:44: got
restricted __be16 [usertype] check_sum
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c7f5408493aeb01532927b2276316797a03ed6ee
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Wed Mar 4 14:07:22 2015 -0500
inode: rename i_wb_list to i_io_list
There's a small consistency problem between the inode and writeback
naming. Writeback calls the "for IO" inode queues b_io and
b_more_io, but the inode calls these the "writeback list" or
i_wb_list. This makes it hard to an new "under writeback" list to
the inode, or call it an "under IO" list on the bdi because either
way we'll have writeback on IO and IO on writeback and it'll just be
confusing. I'm getting confused just writing this!
So, rename the inode "for IO" list variable to i_io_list so we can
add a new "writeback list" in a subsequent patch.
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Josef Bacik <jbacik@xxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Tested-by: Dave Chinner <dchinner@xxxxxxxxxx>
commit 6c3af955935223217f23ef0ae672d3842418ec50
Author: Horia Geant? <horia.geanta@xxxxxxxxxxxxx>
Date: Mon Aug 17 15:24:10 2015 +0300
crypto: caam - add support for LS1021A
LS1021A is a QorIQ SoC having little endian CAAM.
There are a few differences b/w QorIQ and i.MX from CAAM perspective:
1. i.MX platforms are somewhat special wrt. 64-bit registers:
-big endian format at 64-bit level: MSW at address+0 and LSW at address+4
-little endian format at 32-bit level (within MSW and LSW)
and thus need special handling.
2. No CCM (clock controller module) for QorIQ.
No CAAM clocks to enable / disable.
A new Kconfig option - CRYPTO_DEV_FSL_CAAM_LE - is added to indicate
CAAM is little endian (*). It is hidden from the user (to avoid
misconfiguration); when adding support for a new platform with LE CAAM,
either the Kconfig needs to be updated or the corresponding defconfig
needs to indicate that CAAM is LE.
(*) Using a DT property to provide CAAM endianness would not allow
for the ifdeffery.
In order to keep changes to a minimum, the following changes
are postponed:
-endianness fix of the last word in the S/G (rsvd2, bpid, offset),
fields are always 0 anyway;
-S/G format fix for i.MX7 (yes, i.MX7 support was not added yet,
but still...)
Signed-off-by: Horia Geant? <horia.geanta@xxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit c1ae632ad2608d0214291a64ca719f900ffef14b
Author: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Date: Fri Aug 14 07:24:23 2015 -0700
crypto: qat - Don't move data inside output buffer
Change memcpy to memmove because the copy is done within the same buffer.
Signed-off-by: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 3c5f0ed78e976be705218cad62acf6a68e9d121e
Author: Leonidas Da Silva Barbosa <leosilva@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 10:14:16 2015 -0300
crypto: vmx - Fixing GHASH Key issue on little endian
GHASH table algorithm is using a big endian key.
In little endian machines key will be LE ordered.
After a lxvd2x instruction key is loaded as it is,
LE/BE order, in first case it'll generate a wrong
table resulting in wrong hashes from the algorithm.
Bug affects only LE machines.
In order to fix it we do a swap for loaded key.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Leonidas S Barbosa <leosilva@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 1d4aa0b4c1816e8ca92a6aadb0d8f6b43c56c0d0
Author: Leonidas Da Silva Barbosa <leosilva@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 10:12:22 2015 -0300
crypto: vmx - Fixing AES-CTR counter bug
AES-CTR is using a counter 8bytes-8bytes what miss match with
kernel specs.
In the previous code a vadduwm was done to increment counter.
Replacing this for a vadduqm now considering both cases counter
8-8 bytes and full 16bytes.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Leonidas S Barbosa <leosilva@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 4524cd093fa8f03b198e095ebbb679c30839559c
Author: Jaiprakash Singh <b44839@xxxxxxxxxxxxx>
Date: Fri Jul 10 17:11:01 2015 +0800
powerpc/t1023rdb/dts: set ifc nand chip select from 2 to 1
IFC NAND chip select is wrongly mapped to 2 in reg property of
NAND node. Due to this kernel is not able probe NAND flash. Set
chip select to 1 in reg property.
Signed-off-by: Jaiprakash Singh <b44839@xxxxxxxxxxxxx>
Signed-off-by: Shengzhou Liu <Shengzhou.Liu@xxxxxxxxxxxxx>
Signed-off-by: Scott Wood <scottwood@xxxxxxxxxxxxx>
commit 163e60c169752b2e817735d28d3bd2d73cd268f3
Author: Wang Dongsheng <dongsheng.wang@xxxxxxxxxxxxx>
Date: Fri Aug 14 11:12:10 2015 +0800
powerpc/mpc85xx:Add SCFG device tree support of T104x
Signed-off-by: Wang Dongsheng <dongsheng.wang@xxxxxxxxxxxxx>
Signed-off-by: Scott Wood <scottwood@xxxxxxxxxxxxx>
commit c8254e27fd34cdd21febd5b1caca409117914332
Author: Wang Dongsheng <dongsheng.wang@xxxxxxxxxxxxx>
Date: Fri Aug 14 11:12:09 2015 +0800
powerpc/85xx: Add binding for SCFG
SCFG provides SoC specific configuration and status registers for
the chip. Add this for powerpc platform.
Signed-off-by: Wang Dongsheng <dongsheng.wang@xxxxxxxxxxxxx>
Signed-off-by: Scott Wood <scottwood@xxxxxxxxxxxxx>
commit 0d748ec5eaedfa0802e02df6b5912d32c752f88e
Author: Priyanka Jain <Priyanka.Jain@xxxxxxxxxxxxx>
Date: Thu Jul 30 10:33:55 2015 +0530
powerpc/fsl-booke: Add T1040D4RDB/T1042D4RDB board support
T1040D4RDB/T1042D4RDB are Freescale Reference Design Board
which can support T1040/T1042 QorIQ Power
Architectureâ?¢ processor respectively
T1040D4RDB/T1042D4RDB board Overview
-------------------------------------
- SERDES Connections, 8 lanes supporting:
- PCI
- SGMII
- SATA 2.0
- QSGMII(only for T1040D4RDB)
- DDR Controller
- Supports rates of up to 1600 MHz data-rate
- Supports one DDR4 UDIMM
-IFC/Local Bus
- NAND flash: 1GB 8-bit NAND flash
- NOR: 128MB 16-bit NOR Flash
- Ethernet
- Two on-board RGMII 10/100/1G ethernet ports.
- PHY #0 remains powered up during deep-sleep
- CPLD
- Clocks
- System and DDR clock (SYSCLK, â??DDRCLKâ??)
- SERDES clocks
- Power Supplies
- USB
- Supports two USB 2.0 ports with integrated PHYs
- Two type A ports with 5V@xxxx per port.
- SDHC
- SDHC/SDXC connector
- SPI
- On-board 64MB SPI flash
- I2C
- Devices connected: EEPROM, thermal monitor, VID controller
- Other IO
- Two Serial ports
- ProfiBus port
Add support for T1040/T1042D4RDB board:
-add device tree
-Add entry in corenet_generic.c
Signed-off-by: Priyanka Jain <Priyanka.Jain@xxxxxxxxxxxxx>
Signed-off-by: Scott Wood <scottwood@xxxxxxxxxxxxx>
commit 32d3c4ff01e0c765594b7dd8f5c539e9dca92223
Author: Hou Zhiqiang <B48286@xxxxxxxxxxxxx>
Date: Mon Aug 10 17:39:45 2015 +0800
powerpc/85xx: Remove unused pci fixup hooks on c293pcie
The c293pcie board is an endpoint device and it doesn't need PM,
so remove hooks pcibios_fixup_phb and pcibios_fixup_bus.
Signed-off-by: Hou Zhiqiang <B48286@xxxxxxxxxxxxx>
Signed-off-by: Scott Wood <scottwood@xxxxxxxxxxxxx>
commit 69399ee9cbcb00bbdd9ff6fafafde23ef404d40f
Author: Kevin Hao <haokexin@xxxxxxxxx>
Date: Thu Aug 13 19:51:36 2015 +0800
powerpc/e6500: hw tablewalk: optimize a bit for tcd lock acquiring codes
It makes no sense to put the instructions for calculating the lock
value (cpu number + 1) and the clearing of eq bit of cr1 in lbarx/stbcx
loop. And when the lock is acquired by the other thread, the current
lock value has no chance to equal with the lock value used by current
cpu. So we can skip the comparing for these two lock values in the
lbz/bne loop.
Signed-off-by: Kevin Hao <haokexin@xxxxxxxxx>
Signed-off-by: Scott Wood <scottwood@xxxxxxxxxxxxx>
commit e5e55cc08c76134e38526a66b3bd30b1b71bbf63
Author: Kevin Hao <haokexin@xxxxxxxxx>
Date: Thu Aug 13 19:51:35 2015 +0800
powerpc/e6500: remove the stale TCD_LOCK macro
Since we moved the "lock" to be the first element of
struct tlb_core_data in commit 82d86de25b9c ("powerpc/e6500: Make TLB
lock recursive"), this macro is not used by any code. Just delete it.
Signed-off-by: Kevin Hao <haokexin@xxxxxxxxx>
Signed-off-by: Scott Wood <scottwood@xxxxxxxxxxxxx>
commit e8c4b3dfe17a7e83ea134d6a857f9a3e8e71357f
Author: Jason Jin <Jason.Jin@xxxxxxxxxxxxx>
Date: Mon Aug 17 15:50:57 2015 +0800
powerpc: Add a vga alias node for P1022
In u-boot, when set the video as console, the name 'vga' is used
as a general name for the video device, during the fdt_fixup_stdout
process, the 'vga' name is used to search in the dtb to setup the
'linux,stdout-path' node. Though the P1022 DIU is not VGA-compatible
device, to meet the 'vga' name used in u-boot, the vga alias node is
added for P1022 in this patch. At the same time, a display alias is
also added so that no other components grow dependencies on the vga
alias node.
Signed-off-by: Jason Jin <Jason.Jin@xxxxxxxxxxxxx>
Signed-off-by: Wang Dongsheng <dongsheng.wang@xxxxxxxxxxxxx>
Signed-off-by: Scott Wood <scottwood@xxxxxxxxxxxxx>
commit 228b687d9e20f367e4d5ea8723e3abbf0892db61
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Aug 17 07:21:43 2015 -0700
hwmon: (ltc2978) Add support for LTC3886
LTC3886 is a is a dual PolyPhase DC/DC synchronous step-down switching
regulator controller. It is mostly command compatible to LTC3883,
but supports two phases instead of one.
Suggested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Tested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 52aae6af71e0e78e25c64e13266917bb323984d5
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Aug 17 06:38:01 2015 -0700
hwmon: (ltc2978) Add support for LTC2980 and LTM2987
LTC2980 and LTM2987 are command compatible to LTC2977. They consist of
two LTC2977 on a single die, and are instantiated as two separate chips,
each supporting eight channels.
Suggested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Tested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit acb092cdf9a285fd4706bc6ffd5f99840d53bba5
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Aug 17 06:27:56 2015 -0700
hwmon: (ltc2978) Add missing chip IDs for LTC2978 and LTC3882
Add additional chip ID for an older revision of LTC2978, as well
as two chip IDs for LTC3882. Turns out the LTC3882 does support the
LTC2978_MFR_SPECIAL_ID register, and reading it returns its chip ID,
but the register is undocumented.
Suggested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Tested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 00c83371911836c47654e1de5b4706a0e578922a
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Aug 17 06:21:01 2015 -0700
hwmon: (ltc2978) Use correct ID mask to detect all chips
Per information from Linear Technologies, the ID mask is 12 bit
for all chips of this series. Use this mask to detect chips to ensure
that all chip revisions are detected.
Suggested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Tested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 5e8018fc61423e677398d4ad4d72df70b9788e77
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Fri Aug 14 16:03:40 2015 +0200
netfilter: nf_conntrack: add efficient mark to zone mapping
This work adds the possibility of deriving the zone id from the skb->mark
field in a scalable manner. This allows for having only a single template
serving hundreds/thousands of different zones, for example, instead of the
need to have one match for each zone as an extra CT jump target.
Note that we'd need to have this information attached to the template as
at
the time when we're trying to lookup a possible ct object, we already need
to know zone information for a possible match when going into
__nf_conntrack_find_get(). This work provides a minimal implementation for
a possible mapping.
In order to not add/expose an extra ct->status bit, the zone structure has
been extended to carry a flag for deriving the mark.
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit deedb59039f111c41aa5a54ee384c8e7c08bc78a
Author: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Date: Fri Aug 14 16:03:39 2015 +0200
netfilter: nf_conntrack: add direction support for zones
This work adds a direction parameter to netfilter zones, so identity
separation can be performed only in original/reply or both directions
(default). This basically opens up the possibility of doing NAT with
conflicting IP address/port tuples from multiple, isolated tenants
on a host (e.g. from a netns) without requiring each tenant to NAT
twice resp. to use its own dedicated IP address to SNAT to, meaning
overlapping tuples can be made unique with the zone identifier in
original direction, where the NAT engine will then allocate a unique
tuple in the commonly shared default zone for the reply direction.
In some restricted, local DNAT cases, also port redirection could be
used for making the reply traffic unique w/o requiring SNAT.
The consensus we've reached and discussed at NFWS and since the initial
implementation [1] was to directly integrate the direction meta data
into the existing zones infrastructure, as opposed to the ct->mark
approach we proposed initially.
As we pass the nf_conntrack_zone object directly around, we don't have
to touch all call-sites, but only those, that contain equality checks
of zones. Thus, based on the current direction (original or reply),
we either return the actual id, or the default NF_CT_DEFAULT_ZONE_ID.
CT expectations are direction-agnostic entities when expectations are
being compared among themselves, so we can only use the identifier
in this case.
Note that zone identifiers can not be included into the hash mix
anymore as they don't contain a "stable" value that would be equal
for both directions at all times, f.e. if only zone->id would
unconditionally be xor'ed into the table slot hash, then replies won't
find the corresponding conntracking entry anymore.
If no particular direction is specified when configuring zones, the
behaviour is exactly as we expect currently (both directions).
Support has been added for the CT netlink interface as well as the
x_tables raw CT target, which both already offer existing interfaces
to user space for the configuration of zones.
Below a minimal, simplified collision example (script in [2]) with
netperf sessions:
+--- tenant-1 ---+ mark := 1
| netperf |--+
+----------------+ | CT zone := mark [ORIGINAL]
[ip,sport] := X +--------------+ +--- gateway ---+
| mark routing |--| SNAT |-- ... +
+--------------+ +---------------+ |
+--- tenant-2 ---+ | ~~~|~~~
| netperf |--+ +-----------+ |
+----------------+ mark := 2 | netserver |------ ... +
[ip,sport] := X +-----------+
[ip,port] := Y
On the gateway netns, example:
iptables -t raw -A PREROUTING -j CT --zone mark --zone-dir ORIGINAL
iptables -t nat -A POSTROUTING -o <dev> -j SNAT --to-source <ip>
--random-fully
iptables -t mangle -A PREROUTING -m conntrack --ctdir ORIGINAL -j
CONNMARK --save-mark
iptables -t mangle -A POSTROUTING -m conntrack --ctdir REPLY -j
CONNMARK --restore-mark
conntrack dump from gateway netns:
netperf -H 10.1.1.2 -t TCP_STREAM -l60 -p12865,5555 from each tenant
netns
tcp 6 431995 ESTABLISHED src=40.1.1.1 dst=10.1.1.2 sport=5555
dport=12865 zone-orig=1
src=10.1.1.2 dst=10.1.1.1 sport=12865
dport=1024
[ASSURED] mark=1 secctx=system_u:object_r:unlabeled_t:s0
use=1
tcp 6 431994 ESTABLISHED src=40.1.1.1 dst=10.1.1.2 sport=5555
dport=12865 zone-orig=2
src=10.1.1.2 dst=10.1.1.1 sport=12865
dport=5555
[ASSURED] mark=2 secctx=system_u:object_r:unlabeled_t:s0
use=1
tcp 6 299 ESTABLISHED src=40.1.1.1 dst=10.1.1.2 sport=39438 dport=33768
zone-orig=1
src=10.1.1.2 dst=10.1.1.1 sport=33768 dport=39438
[ASSURED] mark=1 secctx=system_u:object_r:unlabeled_t:s0
use=1
tcp 6 300 ESTABLISHED src=40.1.1.1 dst=10.1.1.2 sport=32889 dport=40206
zone-orig=2
src=10.1.1.2 dst=10.1.1.1 sport=40206 dport=32889
[ASSURED] mark=2 secctx=system_u:object_r:unlabeled_t:s0
use=2
Taking this further, test script in [2] creates 200 tenants and runs
original-tuple colliding netperf sessions each. A conntrack -L dump in
the gateway netns also confirms 200 overlapping entries, all in
ESTABLISHED
state as expected.
I also did run various other tests with some permutations of the script,
to mention some: SNAT in random/random-fully/persistent mode, no zones (no
overlaps), static zones (original, reply, both directions), etc.
[1]
http://thread.gmane.org/gmane.comp.security.firewalls.netfilter.devel/57412/
[2] https://paste.fedoraproject.org/242835/65657871/
Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
commit 2af0a709134f842b67151d6b97d512184fcc4ad6
Author: Loic Poulain <loic.poulain@xxxxxxxxx>
Date: Mon Aug 17 16:00:21 2015 +0200
Bluetooth: hci_bcm: Use non-sleep version of gpio_set_value
We should not sleep while holding a spinlock.
bcm_gpio_set_power is called while holding the bcm_device_list lock.
Signed-off-by: Loic Poulain <loic.poulain@xxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit dc028da54ed353edd44dca88b7eb19fd5126c354
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Sun Aug 16 17:13:27 2015 -0600
inet: Move VRF table lookup to inlined function
Table lookup compiles out when VRF is not enabled.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 808d28c468a89e8680396d98aea96024b6f5afdc
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Sun Aug 16 10:26:49 2015 -0600
net: Fix docbook warning for IFF_VRF_MASTER enum
kbuild test robot reported:
tree: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
master
head: d52736e24fe2e927c26817256f8d1a3c8b5d51a0
commit: 4e3c89920cd3a6cfce22c6f537690747c26128dd [751/762] net: Introduce
VRF related flags and helpers
reproduce: make htmldocs
>> Warning(include/linux/netdevice.h:1293): Enum value 'IFF_VRF_MASTER'
not described in enum 'netdev_priv_flags'
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2f52bdcf6ba1bd81597b1505a222430676548b3a
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Sun Aug 16 07:49:20 2015 -0600
net: Updates to netif_index_is_vrf
As Eric noted netif_index_is_vrf is not called with rcu_read_lock held,
so wrap the dev_get_by_index_rcu in rcu_read_lock and unlock.
If VRF is not enabled or oif is 0 skip the device lookup. In both cases
index cannot be the VRF master.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9cd3778cd7e8f165675705511cfcd4ea6eb88d27
Merge: 0aa65cc bbceefc
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 17 15:51:36 2015 -0700
Merge branch 'mlx5e-next'
Achiad Shochat says:
====================
Driver updates 16-Aug-2015
This patchset contains bug fixes, new RSS and pause parameters ethtool
options, and support for RX CHECKSUM_COMPLETE.
Patchset was applied and tested over commit adc6310 ("Merge branch
'mv88e6xxx-switchdev-fdb'").
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit bbceefce9adfc9cf7b4110727c96c841ba8c7964
Author: Achiad Shochat <achiad@xxxxxxxxxxxx>
Date: Sun Aug 16 16:04:52 2015 +0300
net/mlx5e: Support RX CHECKSUM_COMPLETE
Only for packets with first ethertype set to IPv4/6 for now.
Signed-off-by: Achiad Shochat <achiad@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3c2d18ef22df1bdccfb11a5b85b29e4e61b9d9c6
Author: Achiad Shochat <achiad@xxxxxxxxxxxx>
Date: Sun Aug 16 16:04:51 2015 +0300
net/mlx5e: Support ethtool get/set_pauseparam
Only rx/tx pause settings.
Autoneg setting is currently not supported.
Signed-off-by: Achiad Shochat <achiad@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6fa1bcab6be6e9bd93f80e345c7e9a4ec7861df9
Author: Achiad Shochat <achiad@xxxxxxxxxxxx>
Date: Sun Aug 16 16:04:50 2015 +0300
net/mlx5e: Ethtool link speed setting fixes
- Port speed settings are applied by the device only upon
port admin status transition from DOWN to UP.
So we enforce this transition regardless of the port's
current operation state (which may be occasionally DOWN if
for example the network cable is disconnected).
- Fix the PORT_UP/DOWN device interface enum
- Set the local_port bit in the device PAOS register
- EXPORT the PAOS (Port Administrative and Operational Status)
register set/query access functions.
Signed-off-by: Achiad Shochat <achiad@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d9a40271cfe625950dc4ef0cbd8429c0d28e62d1
Author: Achiad Shochat <achiad@xxxxxxxxxxxx>
Date: Sun Aug 16 16:04:49 2015 +0300
net/mlx5e: HW LRO changes/fixes
- Change the maximum LRO session size from 16KB to 64KB
- Reduce the LRO session timeout from 512us to 32us in
order to reduce the TCP latency of non-LRO'ed flows.
- Fix skb_shinfo(skb)->gso_size and set skb_shinfo(skb)->gso_type.
- Fix a bug accessing un-initialized mdev pointer.
Signed-off-by: Achiad Shochat <achiad@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e842b1001dc9b90cc62b489b07ff18e123c8c858
Author: Achiad Shochat <achiad@xxxxxxxxxxxx>
Date: Sun Aug 16 16:04:48 2015 +0300
net/mlx5e: Support smaller RX/TX ring sizes
We un-intentionally limited the minimum rings size too much.
TX minimum ring size reduced from 128 to 64.
RX minimum ring size reduced from 128 to 2.
Signed-off-by: Achiad Shochat <achiad@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2d75b2bc8a8c0ce5567a6ecef52e194d117efe3f
Author: Achiad Shochat <achiad@xxxxxxxxxxxx>
Date: Sun Aug 16 16:04:47 2015 +0300
net/mlx5e: Add ethtool RSS configuration options
- get_rxfh_key_size
- get_rxfh_indir_size
- get/set_rxfh indirection table and RSS Toeplitz hash key
- get_rxnfc
Signed-off-by: Achiad Shochat <achiad@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 936896e9080b84b0e8b9b23e84fb734e91f5ba6d
Author: Achiad Shochat <achiad@xxxxxxxxxxxx>
Date: Sun Aug 16 16:04:46 2015 +0300
net/mlx5e: Make RSS indirection table size a constant
The indirection table size was defined by a variable that
was actually assigned a constant value.
Since we do not have any forseen intension to make it configurable
we simply made it a constant.
We also limit the number of channels such that the RSS indirection
table could always populate all RX rings.
Signed-off-by: Achiad Shochat <achiad@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 57afead5445de85658e3fa3811ef0cdbf5ed73bf
Author: Achiad Shochat <achiad@xxxxxxxxxxxx>
Date: Sun Aug 16 16:04:45 2015 +0300
net/mlx5e: Have a single RSS Toeplitz hash key
No need to generate a unique key per TIR.
Generating a single key per netdev and copying it to all
its TIRs.
Signed-off-by: Achiad Shochat <achiad@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0aa65cc0c2ca7e3908b1e4ae7946d909a4882249
Merge: 863960b c0015bf
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 17 15:41:21 2015 -0700
Merge branch 'for-upstream' of
git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
Johan Hedberg says:
====================
pull request: bluetooth-next 2015-08-16
Here's what's likely the last bluetooth-next pull request for 4.3:
- 6lowpan/802.15.4 refactoring, cleanups & fixes
- Document 6lowpan netdev usage in Documentation/networking/6lowpan.txt
- Support for UART based QCA Bluetooth controllers
- Power management support for Broeadcom Bluetooth controllers
- Change LE connection initiation to always use passive scanning first
- Support for new Silicon Wave USB ID
Please let me know if there are any issues pulling. Thanks.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e97fedb9ef9868ff24d588be781906cf7c1b59ae
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Wed Mar 4 13:40:00 2015 -0500
sync: serialise per-superblock sync operations
When competing sync(2) calls walk the same filesystem, they need to
walk the list of inodes on the superblock to find all the inodes
that we need to wait for IO completion on. However, when multiple
wait_sb_inodes() calls do this at the same time, they contend on the
the inode_sb_list_lock and the contention causes system wide
slowdowns. In effect, concurrent sync(2) calls can take longer and
burn more CPU than if they were serialised.
Stop the worst of the contention by adding a per-sb mutex to wrap
around wait_sb_inodes() so that we only execute one sync(2) IO
completion walk per superblock superblock at a time and hence avoid
contention being triggered by concurrent sync(2) calls.
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Josef Bacik <jbacik@xxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Tested-by: Dave Chinner <dchinner@xxxxxxxxxx>
commit 74278da9f70d84d715601fe794567a6d2bfdf078
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Wed Mar 4 12:37:22 2015 -0500
inode: convert inode_sb_list_lock to per-sb
The process of reducing contention on per-superblock inode lists
starts with moving the locking to match the per-superblock inode
list. This takes the global lock out of the picture and reduces the
contention problems to within a single filesystem. This doesn't get
rid of contention as the locks still have global CPU scope, but it
does isolate operations on different superblocks form each other.
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Josef Bacik <jbacik@xxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Tested-by: Dave Chinner <dchinner@xxxxxxxxxx>
commit cbedaac63481dea52327127a9f1c60f092bd6b07
Author: Josef Bacik <jbacik@xxxxxx>
Date: Thu Mar 12 08:19:11 2015 -0400
inode: add hlist_fake to avoid the inode hash lock in evict
Some filesystems don't use the VFS inode hash and fake the fact they
are hashed so that all the writeback code works correctly. However,
this means the evict() path still tries to remove the inode from the
hash, meaning that the inode_hash_lock() needs to be taken
unnecessarily. Hence under certain workloads the inode_hash_lock can
be contended even if the inode is never actually hashed.
To avoid this add hlist_fake to test if the inode isn't actually
hashed to avoid taking the hash lock on inodes that have never been
hashed. Based on Dave Chinner's
inode: add IOP_NOTHASHED to avoid inode hash lock in evict
basd on Al's suggestions. Thanks,
Signed-off-by: Josef Bacik <jbacik@xxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Tested-by: Dave Chinner <dchinner@xxxxxxxxxx>
commit d353d7587d02116b9732d5c06615aed75a4d3a47
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Wed Mar 4 11:16:36 2015 -0500
writeback: plug writeback at a high level
Doing writeback on lots of little files causes terrible IOPS storms
because of the per-mapping writeback plugging we do. This
essentially causes imeediate dispatch of IO for each mapping,
regardless of the context in which writeback is occurring.
IOWs, running a concurrent write-lots-of-small 4k files using fsmark
on XFS results in a huge number of IOPS being issued for data
writes. Metadata writes are sorted and plugged at a high level by
XFS, so aggregate nicely into large IOs. However, data writeback IOs
are dispatched in individual 4k IOs, even when the blocks of two
consecutively written files are adjacent.
Test VM: 8p, 8GB RAM, 4xSSD in RAID0, 100TB sparse XFS filesystem,
metadata CRCs enabled.
Kernel: 3.10-rc5 + xfsdev + my 3.11 xfs queue (~70 patches)
Test:
$ ./fs_mark -D 10000 -S0 -n 10000 -s 4096 -L 120 -d
/mnt/scratch/0 -d /mnt/scratch/1 -d /mnt/scratch/2 -d
/mnt/scratch/3 -d /mnt/scratch/4 -d /mnt/scratch/5 -d
/mnt/scratch/6 -d /mnt/scratch/7
Result:
wall sys create rate Physical write IO
time CPU (avg files/s) IOPS Bandwidth
----- ----- ------------ ------ ---------
unpatched 6m56s 15m47s 24,000+/-500 26,000 130MB/s
patched 5m06s 13m28s 32,800+/-600 1,500 180MB/s
improvement -26.44% -14.68% +36.67% -94.23% +38.46%
If I use zero length files, this workload at about 500 IOPS, so
plugging drops the data IOs from roughly 25,500/s to 1000/s.
3 lines of code, 35% better throughput for 15% less CPU.
The benefits of plugging at this layer are likely to be higher for
spinning media as the IO patterns for this workload are going make a
much bigger difference on high IO latency devices.....
Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
Signed-off-by: Josef Bacik <jbacik@xxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxx>
Tested-by: Dave Chinner <dchinner@xxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
commit 863960b4c5c564819b153d53cffdf3f68283eaa2
Merge: 2ea273d 373fb08
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 17 15:25:30 2015 -0700
Merge branch 'enic-devcmd2'
Govindarajulu Varadarajan says:
====================
enic: add devcmd2
This series adds new devcmd2 support. The first two patches are code
refactoring.
devcmd is an interface for driver to communicate with fw/adaptor. It
involves writing data to hardware registers and waiting for the result.
This mechanism does not scale well. The queuing of "no wait" devcmds is
done in firmware memory rather than on the host. Firmware memory is a
rather more scarce and valuable resource than host memory. A devcmd storm
from one vf can disrupt the service on other pf/vf. The lack of flow
control allows for possible denial of server from one VM to another.
Devcmd2 uses work queue to post the devcmds, just like tx work queue. This
allows better flow control.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 373fb0873d4325a7afa04aec29ced0c122d1f8a9
Author: Govindarajulu Varadarajan <_govind@xxxxxxx>
Date: Sun Aug 16 01:44:54 2015 +0530
enic: add devcmd2
devcmd is an interface for driver to communicate with fw/adaptor. It
involves writing data to hardware registers and waiting for the result.
This mechanism does not scale well. The queuing of "no wait" devcmds is
done in firmware memory rather than on the host. Firmware memory is a
rather more scarce and valuable resource than host memory. A devcmd storm
from one vf can disrupt the service on other pf/vf. The lack of flow
control allows for possible denial of server from one VM to another.
Devcmd2 uses work queue to post the devcmds, just like tx work queue. This
allows better flow control.
Initialize devcmd2, if fails we fall back to devcmd1.
Also change the driver version.
Signed-off-by: N V V Satyanarayana Reddy <nalreddy@xxxxxxxxx>
Signed-off-by: Govindarajulu Varadarajan <_govind@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit fda3f52bdbbe576d78ca9ea84912b48fa51f0e90
Author: Govindarajulu Varadarajan <_govind@xxxxxxx>
Date: Sun Aug 16 01:44:53 2015 +0530
enic: add devcmd2 resources
Add devcmd resources to vnic_res_type. Add data types used by devcmd.
Signed-off-by: N V V Satyanarayana Reddy <nalreddy@xxxxxxxxx>
Signed-off-by: Govindarajulu Varadarajan <_govind@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6a3c2f838c69406688ed0dbae473c3a08eeb5519
Author: Govindarajulu Varadarajan <_govind@xxxxxxx>
Date: Sun Aug 16 01:44:52 2015 +0530
enic: use netdev_<foo> or dev_<foo> instead of pr_<foo>
pr_info does not give any details about the interface involved. This patch
uses netdev_info for printing the message. Use dev_info where netdev is
not
ready.
Signed-off-by: Govindarajulu Varadarajan <_govind@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8b89f3a19de05992a70f727072b65f3ea1397075
Author: Govindarajulu Varadarajan <_govind@xxxxxxx>
Date: Sun Aug 16 01:44:51 2015 +0530
enic: move struct definition from .c to .h file
Some of the structure definitions are in .c file to make them private to
that file. This patch moves the struct definition to .h file, So that
their
definitions are accessible from other files.
Signed-off-by: Govindarajulu Varadarajan <_govind@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7e94d6c4ab69562423fdc18801050a84462c2787
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 16:55:18 2015 -0500
NFS: Don't fsync twice for O_SYNC/IS_SYNC files
generic_file_write_iter() will already do an fsync on our behalf
if the file descriptor is O_SYNC or the file is marked as IS_SYNC.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit e824410ffcf4b245296b56c6fdf7b9797fce8c3e
Author: Keith Busch <keith.busch@xxxxxxxxx>
Date: Wed Aug 12 16:17:54 2015 -0600
NVMe: Set queue max segments
This sets the queue's max segment size to match the device's
capabilities. The default of 128 is usable until a device's transfer
capability exceeds 512k, assuming a device page size of 4k. Many nvme
devices exceed that transfer limit, so this lets the block layer know what
kind of commands it to allow to form rather than unnecessarily split them.
One additional segment is added to account for a transfer that may start
in the middle of a page.
Signed-off-by: Keith Busch <keith.busch@xxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 2ea273d76a4869c097c6b1a1070162add2f66a6e
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 17 14:37:06 2015 -0700
net: Export bpf_prog_create_from_user().
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ec120da6f0fe59f175c2a8faa0a7700280c39644
Author: Ian Morris <ipm@xxxxxxxxxxxxxxxx>
Date: Fri Aug 14 22:43:38 2015 +0100
ipv6: trivial whitespace fix
Change brace placement to be in line with coding standards
Signed-off-by: Ian Morris <ipm@xxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f4a3e90ba5739cfd761b6befadae9728bd3641ed
Author: Phil Sutter <phil@xxxxxx>
Date: Sat Aug 15 00:37:15 2015 +0200
rhashtable-test: extend to test concurrency
After having tested insertion, lookup, table walk and removal, spawn a
number of threads running operations on the same rhashtable. Each of
them will:
1) insert it's own set of objects,
2) lookup every successfully inserted object and finally
3) remove objects in several rounds until all of them have been removed,
making sure the remaining ones are still found after each round.
This should put a good amount of load onto the system and due to
synchronising thread startup via two semaphores also extensive
concurrent table access.
The default number of ten threads returned within half a second on my
local VM with two cores. Running 200 threads took about four seconds. If
slow systems suffer too much from this though, the default could be
lowered or even set to zero so this extended test does not run at all by
default.
Signed-off-by: Phil Sutter <phil@xxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c1f066d4ee0bde4bb0ff4ac295218b631729e0de
Merge: 2bd736f 53cf037
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 17 14:31:42 2015 -0700
Merge tag 'batman-adv-for-davem' of git://git.open-mesh.org/linux-merge
Antonio Quartulli says:
====================
Included changes:
- avoid integer overflow in GW selection routine
- prevent race condition by making capability bit changes atomic (use
clear/set/test_bit)
- fix synchronization issue in mcast tvlv handler
- fix crash on double list removal of TT Request objects
- fix leak by puring packets enqueued for sending upon iface removal
- ensure network header pointer is set in skb
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2bd736fa0d8a1da90e6ccaa6a79e56a8d2ae60c4
Merge: 90eb7fa 8f9c98d
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 17 14:25:04 2015 -0700
Merge tag 'mac80211-next-for-davem-2015-08-14' of
git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Johannes Berg says:
====================
Another pull request for the next cycle, this time with quite
a bit of content:
* mesh fixes/improvements from Alexis, Bob, Chun-Yeow and Jesse
* TDLS higher bandwidth support (Arik)
* OCB fixes from Bertold Van den Bergh
* suspend/resume fixes from Eliad
* dynamic SMPS support for minstrel-HT (Krishna Chaitanya)
* VHT bitrate mask support (Lorenzo Bianconi)
* better regulatory support for 5/10 MHz channels (Matthias May)
* basic support for MU-MIMO to avoid the multi-vif issue (Sara Sharon)
along with a number of other cleanups.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 18df8a87badac0ab05679df9bd44b5033e30d97c
Author: kbuild test robot <fengguang.wu@xxxxxxxxx>
Date: Tue Aug 18 04:50:36 2015 +0800
dlm: sctp_accept_from_sock() can be static
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: David Teigland <teigland@xxxxxxxxxx>
commit 90eb7fa51ccb9af58c437581af73c4a1d5fd2b9f
Merge: a1c234f 30da679
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 17 14:22:48 2015 -0700
Merge branch 'bpf_fanout'
Willem de Bruijn says:
====================
packet: add cBPF and eBPF fanout modes
Allow programmable fanout modes. Support both classical BPF programs
passed directly and extended BPF programs passed by file descriptor.
One use case is packet steering by deep packet inspection, for
instance for packet steering by application layer header fields.
Separate the configuration of the fanout mode and the configuration
of the program, to allow dynamic updates to the latter at runtime.
Changes
v1 -> v2:
- follow SO_LOCK_FILTER semantics on filter updates
- only accept eBPF programs of type BPF_PROG_TYPE_SOCKET_FILTER
- rename PACKET_FANOUT_BPF to PACKET_FANOUT_CBPF to match
man 2 bpf usage: "classic" vs. "extended" BPF.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 30da679e679dbe7bb103c5d9c137ec5a070b7150
Author: Willem de Bruijn <willemb@xxxxxxxxxx>
Date: Fri Aug 14 22:31:37 2015 -0400
selftests/net: test extended BPF fanout mode
Test PACKET_FANOUT_EBPF by inserting a program into the the kernel
with bpf(), then attaching it to the fanout group. Observe the same
payload-based distribution as in the PACKET_FANOUT_CBPF test.
Signed-off-by: Willem de Bruijn <willemb@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 95e22792fa5460e579a69171777ff79d8725be29
Author: Willem de Bruijn <willemb@xxxxxxxxxx>
Date: Fri Aug 14 22:31:36 2015 -0400
selftests/net: test classic bpf fanout mode
Test PACKET_FANOUT_CBPF by inserting a cBPF program that selects a
socket by payload. Requires modifying the test program to send
packets with multiple payloads.
Also fix a bug in testing the return value of mmap()
Signed-off-by: Willem de Bruijn <willemb@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f2e520956a1ab636698f8160194c9b8ac0989aab
Author: Willem de Bruijn <willemb@xxxxxxxxxx>
Date: Fri Aug 14 22:31:35 2015 -0400
packet: add extended BPF fanout mode
Add fanout mode PACKET_FANOUT_EBPF that accepts an en extended BPF
program to select a socket.
Update the internal eBPF program by passing to socket option
SOL_PACKET/PACKET_FANOUT_DATA a file descriptor returned by bpf().
Signed-off-by: Willem de Bruijn <willemb@xxxxxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Acked-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 47dceb8ecdc1c3ad1818dfea3d659a05b74c3fc2
Author: Willem de Bruijn <willemb@xxxxxxxxxx>
Date: Fri Aug 14 22:31:34 2015 -0400
packet: add classic BPF fanout mode
Add fanout mode PACKET_FANOUT_CBPF that accepts a classic BPF program
to select a socket.
This avoids having to keep adding special case fanout modes. One
example use case is application layer load balancing. The QUIC
protocol, for instance, encodes a connection ID in UDP payload.
Also add socket option SOL_PACKET/PACKET_FANOUT_DATA that updates data
associated with the socket group. Fanout mode PACKET_FANOUT_CBPF is the
only user so far.
Signed-off-by: Willem de Bruijn <willemb@xxxxxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Acked-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Acked-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 00dcffaebf7b4ab0524c56694c22de6b0eb22feb
Author: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Date: Tue Aug 11 19:22:25 2015 -0300
dlm: fix reconnecting but not sending data
There are cases on which lowcomms_connect_sock() is called directly,
which caused the CF_WRITE_PENDING flag to not bet set upon reconnect,
specially on send_to_sock() error handling. On this last, the flag was
already cleared and no further attempt on transmitting would be done.
As dlm tends to connect when it needs to transmit something, it makes
sense to always mark this flag right after the connect.
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Signed-off-by: David Teigland <teigland@xxxxxxxxxx>
commit acee4e527d5f069351f835602b23602d01de5e1f
Author: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Date: Tue Aug 11 19:22:24 2015 -0300
dlm: replace BUG_ON with a less severe handling
BUG_ON() is a severe action for this case, specially now that DLM with
SCTP will use 1 socket per association. Instead, we can just close the
socket on this error condition and return from the function.
Also move the check to an earlier stage as it won't change and thus we
can abort as soon as possible.
Although this issue was reported when still using SCTP with 1-to-many
API, this cleanup wouldn't be that simple back then because we couldn't
close the socket and making sure such event would cease would be hard.
And actually, previous code was closing the association, yet SCTP layer
is still raising the new data event. Probably a bug to be fixed in SCTP.
Reported-by: <tan.hu@xxxxxxxxxx>
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Signed-off-by: David Teigland <teigland@xxxxxxxxxx>
commit ee44b4bc054afc586c92558a225055ef9fd25d17
Author: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Date: Tue Aug 11 19:22:23 2015 -0300
dlm: use sctp 1-to-1 API
DLM is using 1-to-many API but in a 1-to-1 fashion. That is, it's not
needed but this causes it to use sctp_do_peeloff() to mimic an
kernel_accept() and this causes a symbol dependency on sctp module.
By switching it to 1-to-1 API we can avoid this dependency and also
reduce quite a lot of SCTP-specific code in lowcomms.c.
The caveat is that now DLM won't always use the same src port. It will
choose a random one, just like TCP code. This allows the peers to
attempt simultaneous connections, which now are handled just like for
TCP.
Even more sharing between TCP and SCTP code on DLM is possible, but it
is intentionally left for a later commit.
Note that for using nodes with this commit, you have to have at least
the early fixes on this patchset otherwise it will trigger some issues
on old nodes.
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Signed-off-by: David Teigland <teigland@xxxxxxxxxx>
commit 356344c4c36dc960f90a3457dd67fe2efcf92417
Author: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Date: Tue Aug 11 19:22:22 2015 -0300
dlm: fix not reconnecting on connecting error handling
If we don't clear that bit, lowcomms_connect_sock() will not schedule
another attempt, and no further attempt will be done.
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Signed-off-by: David Teigland <teigland@xxxxxxxxxx>
commit 0d737a8cfd8341d6ba8215443a3ddfe5ddd4e51a
Author: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Date: Tue Aug 11 19:22:21 2015 -0300
dlm: fix race while closing connections
When a connection have issues DLM may need to close it. Therefore we
should also cancel pending workqueues for such connection at that time,
and not just when dlm is not willing to use this connection anymore.
Also, if we don't clear CF_CONNECT_PENDING flag, the error handling
routines won't be able to re-connect as lowcomms_connect_sock() will
check for it.
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Signed-off-by: David Teigland <teigland@xxxxxxxxxx>
commit 28926a0965a943f7c1586342f9482a6e41b4f0c9
Author: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Date: Tue Aug 11 19:22:20 2015 -0300
dlm: fix connection stealing if using SCTP
When using SCTP and accepting a new connection, DLM currently validates
if the peer trying to connect to it is one of the cluster nodes, but it
doesn't check if it already has a connection to it or not.
If it already had a connection, it will be overwritten, and the new one
will be used for writes, possibly causing the node to leave the cluster
due to communication breakage.
Still, one could DoS the node by attempting N connections and keeping
them open.
As said, but being explicit, both situations are only triggerable from
other cluster nodes, but are doable with only user-level perms.
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Signed-off-by: David Teigland <teigland@xxxxxxxxxx>
commit 75e3b37d059856a972a5bf2bdfeac0f0f2db9ea3
Author: Luiz Capitulino <lcapitulino@xxxxxxxxxx>
Date: Tue Aug 11 16:40:43 2015 -0400
hrtimer: Drop return code of hrtimer_switch_to_hres()
It's not checked by the caller.
Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxx>
Link: http://lkml.kernel.org/r/20150811164043.538241ef@xxxxxxxxxx
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
commit a1c234f95cae2d293047bb6c36e7a4840dbac815
Author: Jiri Benc <jbenc@xxxxxxxxxx>
Date: Fri Aug 14 16:40:40 2015 +0200
lwtunnel: rename ip lwtunnel attributes
We already have IFLA_IPTUN_ netlink attributes. The IP_TUN_ attributes
look
very similar, yet they serve very different purpose. This is confusing for
anyone trying to implement a user space tool supporting lwt.
As the IP_TUN_ attributes are used only for the lightweight tunnels,
prefix
them with LWTUNNEL_IP_ instead to make their purpose clear. Also, it's
more
logical to have them in lwtunnel.h together with the encap enum.
Fixes: 3093fbe7ff4b ("route: Per route IP tunnel metadata via lightweight
tunnel")
Signed-off-by: Jiri Benc <jbenc@xxxxxxxxxx>
Acked-by: Thomas Graf <tgraf@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 62ee783bf1f872ba879e088a669b04afebee899b
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Aug 17 13:45:36 2015 -0700
smsc911x: Fix crash seen if neither ACPI nor OF is configured or used
Commit 0b50dc4fc971 ("Convert smsc911x to use ACPI as well as DT") makes
the call to smsc911x_probe_config() unconditional, and no longer fails if
there is no device node. device_get_phy_mode() is called unconditionally,
and if there is no phy node configured returns an error code. This error
code is assigned to phy_interface, and interpreted elsewhere in the code
as valid phy mode. This in turn causes qemu to crash when running a
variant of realview_pb_defconfig.
qemu: hardware error: lan9118_read: Bad reg 0x86
Fixes: 0b50dc4fc971 ("Convert smsc911x to use ACPI as well as DT")
Cc: Jeremy Linton <jeremy.linton@xxxxxxx>
Cc Graeme Gregory <graeme.gregory@xxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c87acb2558db7a870575dd8e14ded2e5acbdc295
Merge: fbaff3e e69948a
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 17 14:05:14 2015 -0700
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next
Steffen Klassert says:
====================
pull request (net-next): ipsec-next 2015-08-17
1) Fix IPv6 ECN decapsulation for IPsec interfamily tunnels.
From Thomas Egerer.
2) Use kmemdup instead of duplicating it in xfrm_dump_sa().
From Andrzej Hajda.
3) Pass oif to the xfrm lookups so that it gets set on the flow
and the resolver routines can match based on oif.
From David Ahern.
4) Add documentation for the new xfrm garbage collector threshold.
From Alexander Duyck.
Please pull or let me know if there are problems.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 05906dec7d7daf197b9b773295c95ad6b9af2a5a
Author: Bas Nieuwenhuizen <bas@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 20:08:40 2015 +0200
drm/amdgpu: wait on page directory changes. v2
Pagetables can be moved and therefore the page directory update can be
necessary
for the current cs even if none of the the bo's are moved. In that
scenario
there is no fence between the sdma0 and gfx ring, so we add one.
v2 (chk): rebased
Signed-off-by: Bas Nieuwenhuizen <bas@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit b325a789c7e6554a14fae3c2310ee22fa4ca7cf6
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Aug 14 12:50:12 2015 +0200
drm/amdgpu: Select BACKLIGHT_LCD_SUPPORT
Explicitly select BACKLIGHT_LCD_SUPPORT to satisfy the direct dependency
of BACKLIGHT_CLASS_DEVICE.
Cc: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 33610527907d532e5abedc2b1026b4992726c3b0
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Aug 14 12:50:11 2015 +0200
drm/radeon: Select BACKLIGHT_LCD_SUPPORT
Explicitly select BACKLIGHT_LCD_SUPPORT to satisfy the direct dependency
of BACKLIGHT_CLASS_DEVICE.
Cc: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 432a4ff8b7224908a8bbc34b598f48af3f42b827
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Aug 12 11:46:04 2015 +0200
drm/amdgpu: cleanup sheduler rq handling v2
Rework run queue implementation, especially remove the odd list handling.
v2: cleanup the code only, no algorithem change.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit c3b95d4f9e460704e184ded7af60b9c4898f6181
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Fri Aug 14 14:55:27 2015 +0800
drm/amdgpu: move prepare work out of scheduler to cs_ioctl
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 1c8f805af9af445a42b8dbda5f620752996cba44
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Thu Aug 13 13:04:06 2015 +0800
drm/amdgpu: fix unnecessary wake up
decrease CPU extra overhead.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 6d1d0ef7433caf1df920116bfd445aa698a7f37d
Author: monk.liu <monk.liu@xxxxxxx>
Date: Fri Aug 14 13:36:41 2015 +0800
drm/amdgpu: fix duplicated mapping invoke bug
fix the bug that there is duplicated bo_update_mapping issued
Signed-off-by: monk.liu <monk.liu@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 1939e3e265d2fb984b56829c51f5843bfc6d5292
Author: monk.liu <monk.liu@xxxxxxx>
Date: Thu Aug 13 16:19:54 2015 +0800
drm/amdgpu: drop bo_list_clone when no scheduler
bo_list_clone() will take a lot of time when bo_list hold too much
elements, like above 7000
Signed-off-by: Monk.Liu <monk.liu@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Jammy Zhou <jammy.zhou@xxxxxxx>
commit a895c222e7ab5f50ec10e209cd4548ecd5dd9443
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Thu Aug 13 13:20:20 2015 -0400
drm/amdgpu: disable GPU reset by default
It's not validated yet and causes more harm than good.
Avoids spurious resets.
Reviewed-by: Leo Liu <leo.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit a8f5bf0b220c28b1b600a5ff3cae0b53c5c2079b
Author: monk.liu <monk.liu@xxxxxxx>
Date: Wed Aug 12 17:56:52 2015 +0800
drm/amdgpu: fix type mismatch error
remaining timeout returned by amdgpu_fence_wait_any can be larger than
max int value, thus the truncated 32 bit value in r ends up being
negative while its original long value is positive.
Signed-off-by: monk.liu <monk.liu@xxxxxxx>
Reviewed-by: Michel Dänzer <michel.daenzer@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <jammy.zhou@xxxxxxx>
commit 281b42230175608dec0cd8dab9908250e7aa36a9
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Wed Aug 12 12:58:31 2015 +0800
drm/amdgpu: add reference for **fence
fix fence is released when pass to **fence sometimes.
add reference for it.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 1ffd265243803ac5de9927dfc32541f41da2acf3
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 11 17:29:52 2015 +0200
drm/amdgpu: fix waiting for all fences before flipping
Otherwise we might see corruption.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 4127a59e0b3f914ae8d9843d521a07e117db045a
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 11 16:35:54 2015 +0200
drm/amdgpu: fix UVD return code checking
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Tested-and-Reviewed-by: Leo Liu <leo.liu@xxxxxxx>
commit 5b232c2a717684d0dffc27e50bf05e1fb72f9d6e
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Aug 10 14:16:24 2015 +0200
drm/amdgpu: remove scheduler fence list v2
Unused and missing proper locking.
v2: add locking comment to commit message.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx> (v1)
commit 05caae8515e12073f4a3beb048e0d289cbe687b7
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Aug 10 14:04:12 2015 +0200
drm/amdgpu: remove amd_sched_wait_emit v2
Not used any more.
v2: remove amd_sched_emit as well.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 2983e5cef33b48dede6c023230cc0b54d6f67362
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Aug 10 14:20:55 2015 +0200
drm/amdgpu: remove unecessary scheduler fence callbacks
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit db789d34514b1b1bec20b30f9ae0b61c36f028b8
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Aug 10 17:27:23 2015 +0200
drm/amdgpu: fix scheduler fence implementation
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 5516ab86a873efc78fc356b0979294203f1cffb0
Author: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Thu Jul 9 23:32:50 2015 +0200
drm/amdgpu: don't grab dev->struct_mutex in pm functions
Similar to radeon, except that amdgpu doesn't even use struct_mutex to
protect anything like the shared z buffer (sane gpu architecture,
yay!). And the code already grabs the globa adev->ring_lock, so this
code can't race with itself. Which makes struct_mutex completely
redundnant. Remove it.
Cc: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: "Christian König" <christian.koenig@xxxxxxx>
Reviewed-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit db4448f78d5982997751120ca358c97a7f96e122
Author: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Thu Jul 9 23:32:49 2015 +0200
drm/amdgpu: Don't take dev->struct_mutex in bo_force_delete
It really doesn't protect anything which doesn't have other locks
already. Also this is run from driver unload code so not much need for
locks anyway.
Same changes as for radeon really.
Cc: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: "Christian König" <christian.koenig@xxxxxxx>
Reviewed-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 34ddc3e9d1781a4914c673013c0eaca3ae642641
Author: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Thu Jul 9 23:32:48 2015 +0200
drm/radeon: Don't take dev->struct_mutex in pm functions
We already grab 2 device-global locks (write-sema rdev->pm.mclk_lock
and rdev->ring_lock), adding another global mutex won't serialize this
code more. And since there's really nothing interesting that gets
protected in radeon by dev->struct mutex (we only have the global z
buffer owners and it's still serializing gem bo destruction in the drm
core - which is irrelevant since radeon uses ttm anyway internally)
this doesn't add protection. Remove it.
Cc: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: "Christian König" <christian.koenig@xxxxxxx>
Reviewed-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 42192a941e427440e642623c64bda4486c527a54
Author: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Thu Jul 9 23:32:47 2015 +0200
drm/radeon: Don't take dev->struct_mutex in bo_force_delete
It really doesn't protect anything which doesn't have other locks
already. Also this is run from driver unload code so not much need for
locks anyway.
Cc: Alex Deucher <alexander.deucher@xxxxxxx>
Cc: "Christian König" <christian.koenig@xxxxxxx>
Reviewed-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit c548b345d15092bf46469a0339d41ae3e106987d
Author: Christian König <christian.koenig@xxxxxxx>
Date: Fri Aug 7 20:22:40 2015 +0200
drm/amdgpu: remove VI hw bug workaround v3
The workaround simply doesn't work because VM mappings
are controlled by userspace not the kernel.
Additional to that this is just a performance problem
which happens if you have holes in your VM mapping.
v2: adjust virtual addr alignment as well.
v3: fix trivial warning
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Monk Liu <monk.liu@xxxxxxx> (v1)
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx> (v2)
commit 00d2a2b21dbd6010247d44cd0cd05e5bc40af8e6
Author: Christian König <christian.koenig@xxxxxxx>
Date: Fri Aug 7 16:15:36 2015 +0200
drm/amdgpu: cleanup amdgpu_fence_ring_wait_seq
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 68ed3de43428def8ca0105bb53da8863ba456114
Author: Christian König <christian.koenig@xxxxxxx>
Date: Fri Aug 7 15:57:21 2015 +0200
drm/amdgpu: remove duplicate amdgpu_fence_process implementation
Looks like that somehow got missed while during porting the radeon
changes.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 02bc0650bc930105346773253e5bf33c2917c601
Author: Christian König <christian.koenig@xxxxxxx>
Date: Fri Aug 7 13:53:36 2015 +0200
drm/amdgpu: remove amdgpu_fence_wait
It was just a wrapper for fence_wait anyway.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 713293b82563006df3cc91582b5b36b092481d76
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 6 20:44:47 2015 +0200
drm/amdgpu: use the reservation obj wait for the UVD msg
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 3cdb8119d95411ddbca9f9af13b72e4afce6e6d2
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Aug 6 17:49:25 2015 +0200
drm/amdgpu: remove amdgpu_fence_signaled
The common kernel function does the same thing.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit f556cb0caeec1ba9b8e5e2aa85b47e76277f5d4b
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Sun Aug 2 11:18:04 2015 +0800
drm/amd: add scheduler fence implementation (v2)
scheduler fence is based on kernel fence framework.
v2: squash in Christian's build fix
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 4af9f07ccdac96e16f7a0ddaf983891a29ebd11a
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 3 12:57:31 2015 +0800
drm/amdgpu: use kernel submit helper in vm
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 953e8fd4e734857f6dabbaf325035bf10c4a9c7a
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Thu Aug 6 15:19:12 2015 +0800
drm/amdgpu: use amd_sched_job in its backend ops
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 6f0e54a964932d3d5252ac1ff7ab153c984a5d51
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Aug 5 21:22:10 2015 +0200
drm/amdgpu: cleanup and fix scheduler fence handling v2
v2: rebased
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> (v1)
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 91404fb20825418fd9ab8e6533bc336e1ffc748e
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Aug 5 18:33:21 2015 +0200
drm/amdgpu: merge amd_sched_entity and amd_context_entity v2
Avoiding a couple of casts.
v2: rename c_entity to entity as well
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 4cd7f42cf8f57512b13a13bb7dcbeabb644f5264
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Aug 5 18:18:52 2015 +0200
drm/amdgpu: fix coding style in a couple of places
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit ddf94d33d6434199be08f8965f63d408e2787539
Author: Christian König <christian.koenig@xxxxxxx>
Date: Wed Aug 5 18:11:14 2015 +0200
drm/amdgpu: remove unused parent entity
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 4cef92670bc908aaa48771fc9c72f4bcfb7d6a35
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Wed Aug 5 19:52:14 2015 +0800
drm/amdgpu: process sched job exactly triggered by fence signal
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 80de5913cf31c86d64547af0715de4822c9b1abe
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Wed Aug 5 19:07:08 2015 +0800
Revert "drm/amdgpu: return new seq_no for amd_sched_push_job"
This reverts commit d1d33da8eb86b8ca41dd9ed95738030df5267b95.
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
Conflicts:
drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
commit 47f38501f11fa45d8a7797f1965448c1e20049d4
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 4 17:51:05 2015 +0200
drm/amdgpu: cleanup amdgpu_ctx inti/fini v2
Cleanup the kernel context handling.
v2: rebased
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx> (v1)
commit 0e89d0c16b9446a094215e71734e583c438bf83d
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 4 16:58:36 2015 +0200
drm/amdgpu: stop leaking the ctx id into the scheduler v2
Id's are for the IOCTL ABI only.
v2: remove tgid as well
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit efd4ccb59a4acb8b85835d6b053362dbacee40f9
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 4 16:20:31 2015 +0200
drm/amdgpu: cleanup ctx_mgr init/fini
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 34cb581a7d99401cad0e1c43b528690885435f5b
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Aug 4 11:54:48 2015 +0200
drm/amdgpu: fix bo list handling in CS
We didn't initialized the mutex in the cloned bo list resulting in nice
warnings from lockdep. Also fixes error handling in this function.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 351dba73691fc632b269f531bbce80157f79c5b3
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Aug 3 20:39:12 2015 +0200
drm/amdgpu: reorder the code to avoid forward declerations
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 7484667c6a8a9122d139a287454bc9c8799c3def
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Aug 4 11:30:09 2015 +0800
drm/amdgpu: move sched job process from isr to fence callback
This way can avoid interrupt lost, and can process sched job exactly.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 27f6642d066ecea7b535dd9b24e2f41e54f3dd85
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Mon Aug 3 10:27:57 2015 +0800
drm/amdgpu: add amd_sched_next_queued_seq function
This function is used to get the next queued sequence number
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 63ad8d5882fcd466861fdbe51fc3a119b894d9a3
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Fri Jul 31 17:54:29 2015 +0800
drm/amdgpu: make last_handled_seq atomic
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit f95b7e3e8664fbea4e60f15e7e8a975e4b2b7c3f
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Fri Jul 31 17:18:15 2015 +0800
drm/amdgpu: add amd_sched_commit
This function is to update last_emitted_v_seq and wake up the waiters.
It should be called by driver in the run_job backend function
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit ea199cc9f825f3ef5aab3db5f00dcc639f8a8b02
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Fri Jul 31 16:47:28 2015 +0800
drm/amdgpu: return new seq_no for amd_sched_push_job
It is clean to update last_queued_v_seq in the scheduler module
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit dd01d071957ded58d9bae3d3bf6061ada1d84692
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Thu Jul 30 17:19:52 2015 +0800
drm/amdgpu: some code refinement v2
Fix the code alignment, etc.
v2: rebase the code
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 03d3a3e634894259a27979f4a372273162611e78
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 3 20:02:43 2015 +0800
drm/amdgpu: fix null pointer by previous cleanup
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 1763552ee8a7f39a1788d24e27b50d4dee383520
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 3 11:43:19 2015 +0800
drm/amdgpu: add kernel fence in ib_submit_kernel_helper
every sbumission should be able to get a fence.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <jammy.zhou@xxxxxxx>
commit ed88a0ee7ff53c292350fc5d38eae161c2372d51
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 3 13:22:35 2015 +0800
drm/amdgpu: use kernel fence for sdma ib test
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <jammy.zhou@xxxxxxx>
commit ab3cb0ce9e865c53f2027068f49a0edb40666f3f
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 3 13:19:43 2015 +0800
drm/amdgpu: use kernel fence for gfx ib test
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <jammy.zhou@xxxxxxx>
commit 6863bc8bb3750049d1b63574ef29cbf94d52eb47
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 3 16:19:29 2015 +0800
drm/amdgpu: use kernel fence in amdgpu_test
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <jammy.zhou@xxxxxxx>
commit ed40bfb81af54fcdc1b96ffdeb14d69458234642
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 3 13:28:16 2015 +0800
drm/amdgpu: use kernel fence for vce ib test
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <jammy.zhou@xxxxxxx>
commit 0e3f154a9eb9f7a5ec365c4586a606ba882a3f15
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 3 13:11:04 2015 +0800
drm/amdgpu: change uvd ib test to use kernel fence directly
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <jammy.zhou@xxxxxxx>
commit bb1e38a4bead5025ecca90544f0f733f59996b13
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 3 18:19:38 2015 +0800
drm/amdgpu: use kernel fence for last_pt_update
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <jammy.zhou@xxxxxxx>
commit e40a31159b72742224c249cf57c5313be7ccd629
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Aug 3 11:38:09 2015 +0800
drm/amdgpu: use kernel fence diretly in amdgpu_bo_fence
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <jammy.zhou@xxxxxxx>
commit 1d7dd229f5dded247bc8800f8f4551d3d6314afa
Author: Christian König <christian.koenig@xxxxxxx>
Date: Fri Jul 31 14:31:49 2015 +0200
drm/amdgpu: clean up amd sched wait_ts and wait_signal
Remove code not used at the moment.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 7fc11959018f8ba2d92025679a72339da18a74ad
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Jul 30 11:53:42 2015 +0200
drm/amdgpu: stop using addr to check for BO move v3
It is theoretically possible that a swapped out BO gets the
same GTT address, but different backing pages while being swapped in.
Instead just use another VA state to note updated areas.
Ported from not upstream yet radeon commit with the same name.
v2: fix some bugs in the original implementation found in the radeon code.
v3: squash in VCE/UVD fix
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 7f06c236b964db3d8d086c5a0087b2eb4de3bf7a
Author: monk.liu <monk.liu@xxxxxxx>
Date: Thu Jul 30 18:28:12 2015 +0800
drm/amdgpu: move wait_queue_head from adev to ring (v2)
thus unnecessary wake up could be avoid between rings
v2:
move wait_queue_head to fence_drv from ring
Signed-off-by: monk.liu <monk.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit e29551556e055f463fb80cfb07e1cb15641e60a3
Author: monk.liu <monk.liu@xxxxxxx>
Date: Thu Jul 30 18:26:18 2015 +0800
drm/amdgpu: re-implement fence_default_wait
use fence_wait_any to implement fence_default_wait
Signed-off-by: monk.liu <monk.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 332dfe907bef6f299f5844f947c4e141eebb8091
Author: monk.liu <monk.liu@xxxxxxx>
Date: Thu Jul 30 15:19:05 2015 +0800
drm/amdgpu: new implement for fence_wait_any (v2)
origninal method will sleep/schedule at the granurarity of HZ/2 and
based on seq signal method, the new implement is based on kernel fance
interface, no unnecessary schedule at all
v2: replace logic of original amdgpu_fence_wait_any
Signed-off-by: monk.liu <monk.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 2e536084f24f99f0a2cc0b6ce38ad8298ea58b22
Author: monk.liu <monk.liu@xxxxxxx>
Date: Thu Jul 30 14:56:18 2015 +0800
drm/amdgpu: use kernel fence interface when possible
Signed-off-by: monk.liu <monk.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 8128765ce5fb68e3b34a8f524791d5758514f511
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Fri Jul 3 14:18:26 2015 +0800
drm/amdgpu: use scheduler for VCE ib test
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 7b5ec431770ac581aa23d460f670cfb97c14280d
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Fri Jul 3 14:08:18 2015 +0800
drm/amdgpu: use scheduler for UVD ib test
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 0011fdaa4dab19bf545a28c0d4d164bba4745d29
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Jun 1 15:33:20 2015 +0800
drm/amdgpu: use gpu scheduler for sdma ib test
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 42d13693c01f895d7918ed49c65c0c4844027314
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Jun 1 15:16:03 2015 +0800
drm/amdgpu: Use gpu scheduler for gfx ring ib test
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 3c704e934d07bcb5fdf9725db190e2ae60fba1bd
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Wed Jul 29 10:33:14 2015 +0800
drm/amdgpu: add helper function for kernel submission
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit d1ff9086c1b8e67390161599006a34056b437a72
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Thu Jul 30 17:59:43 2015 +0800
drm/amdgpu: fix seq in ctx_add_fence
if enabling scheduler, then the queued seq is assigned
when pushing job before emitting job.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 51b9db27d07869cf565ba135e97e2ed5f858612e
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Jul 28 17:31:04 2015 +0800
drm/amdgpu: wait forever for wait emit
the job must be emitted by scheduler, otherwise scheduler is abnormal.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 4afcb30383bef8bf972c6aae47995ef314e5f8a1
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Thu Jul 30 16:44:05 2015 +0800
drm/amdgpu: add amdgpu.sched_hw_submission option
This option can be used to specify the max number of submissions in the
active HW queue. The default value is 2 now.
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 1333f723fb6f1356a54135586f1ede44dcaa9652
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Thu Jul 30 16:36:58 2015 +0800
drm/amdgpu: add amdgpu.sched_jobs option
This option can be used to specify the max job number in the job queue,
and it is 16 by default.
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit c0044bc2c62dc3267f2a555ed8342181516008a5
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Thu Jul 30 16:24:53 2015 +0800
drm/amdgpu: silent the message for GPU scheduler creation
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 1d3897e056d2ff2bb3b17e054aa75d36adacaacc
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Jul 27 15:40:35 2015 +0200
drm/amdgpu: fix syncing to VM updates
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit afe10081498fdf2c5b92c7fcc534e49544218fb9
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Jul 28 16:11:52 2015 +0800
drm/amdgpu: add check for callback
it is possible that the callback isn't defined sometimes.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Christian K?nig <christian.koenig@xxxxxxx>
commit 02b9f0bfd49da01629eef6d250c477490047acd6
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Wed May 27 18:23:34 2015 +0800
drm/amdgpu: add enable_scheduler module option
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 176e1ab1b534368d0cd338a010aaea99067c3c6e
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Fri Jul 24 10:49:47 2015 +0800
drm/amdgpu: protect fence_process from multiple context
fence_process may be called from kthread, user thread and interrupt
context.
it is possible to called concurrently, then will wake up fence queue
multiple times.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit e0d8f3c34e54b7f7563360131e89be0d9405d436
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Jul 21 17:43:41 2015 +0800
drm/amdgpu: add sched isr to fence process
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit d5fc5e82a3127b8839c4a4457f3b950a009737a7
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Jul 21 16:52:10 2015 +0800
drm/amdgpu: dispatch job for vm
use kernel context to submit command for vm
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 23ca0e4e478836dcb93a54aa68cb48fbc66fb0ed
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Jul 6 13:42:58 2015 +0800
drm/amdgpu: add kernel ctx support (v2)
v2: rebase against kfd changes
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 4274f5d45cf11f88d7380702a7147b70553ddd6e
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Jul 21 16:04:39 2015 +0800
drm/amdgpu: prepare job before push to sw queue for pte ring
user mode will still use pte ring as a normal ring.
if the prepare job generates another command(update pte) on its ring in
scheduler,
then will kill scheduler which is going to waiting later job but pending
running job.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 4b559c90bc1870313f02cceef680884519af6b2b
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Jul 21 15:53:04 2015 +0800
drm/amdgpu: make sure the fence is emitted before ring to get it.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit b43a9a7e87d2bbb8d0c6ae4ff06dcc604f00e31a
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Jul 21 15:13:53 2015 +0800
drm/amdgpu: use scheduler user seq instead of previous user seq
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 049fc527b4641f99e573b26f1a726a3eadd0cc25
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Jul 21 14:36:51 2015 +0800
drm/amdgpu: dispatch jobs in cs
BO validation is moved to scheduler except usrptr which must be validated
in user process
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 372bc1e18ca961ef51997df235e822aed6283726
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Jul 21 13:47:05 2015 +0800
drm/amdgpu: add bo list copy
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit c1b69ed0c62f9d86599600f4c1a3bd82db1b7362
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Jul 21 13:45:14 2015 +0800
drm/amdgpu: add backend implementation of gpu scheduler (v2)
v2: fix rebase breakage
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 2c4888a0d392b206eb348d4fc6dec539eee2c534
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Jul 21 13:19:45 2015 +0800
drm/amdgpu: disable hw semaphore with scheduler
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 9cb7e5a91f6cd4dc018cca7120d2da067f816d3a
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Tue Jul 21 13:17:19 2015 +0800
drm/amdgpu: add context entity init
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit b80d8475c1fdf5f4bcabb65168b2e8a9c3d77731
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Sun Aug 16 22:55:02 2015 -0400
drm/amdgpu: add scheduler initialization
1. Add kernel parameter option, default 0
2. Add scheduler initialization for amdgpu
Signed-off-by: Chunming Zhou <David1.Zhou@xxxxxxx>
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit a72ce6f84109c1dec1ab236d65979d3250668af3
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Fri May 22 18:55:07 2015 +0800
drm/amd: add basic scheduling framework
run queue:
A set of entities scheduling commands for the same ring. It
implements the scheduling policy that selects the next entity to
emit commands from.
entity:
A scheduler entity is a wrapper around a job queue or a group of
other entities. This can be used to build hierarchies of entities.
For example all job queue entities belonging to the same process
may be placed in a higher level entity and scheduled against other
process entities.
Entities take turns emitting jobs from their job queue to the
corresponding hardware ring, in accordance with the scheduler policy.
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@xxxxxxx>
Signed-off-by: Chunming Zhou <David1.Zhou@xxxxxxx>
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Acked-by: Christian K?nig <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 2da78e21d153d333778d6566f159be06548418f9
Author: David Zhang <david1.zhang@xxxxxxx>
Date: Sat Jul 11 23:13:40 2015 +0800
drm/amdgpu: Enable the Fiji DID 0x7300 support
Signed-off-by: David Zhang <david1.zhang@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit d07f5c4c235670fa4686eb08cb6211eb3bd0c864
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Thu Aug 6 11:51:23 2015 -0400
drm/amdgpu: remove VM workaround for Fiji
The bug is fixed in fiji.
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 188a9bcd6cbe55c6fea23309548741d8e34bb590
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Mon Jul 27 14:24:14 2015 -0400
drm/amdgpu: add support for VCE 3.x on Fiji
VCE on fiji is single pipe only.
Reviewed-by: David Zhang <david1.zhang@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 974ee3db0ff88e5413b734e634119d1e8a10a77f
Author: David Zhang <david1.zhang@xxxxxxx>
Date: Wed Jul 8 17:32:15 2015 +0800
drm/amdgpu: Add Fiji support to the UVD 6.0 IP module
Signed-off-by: David Zhang <david1.zhang@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 1a5bbb669597d7c47da2d7fd03ed7c33989257b8
Author: David Zhang <david1.zhang@xxxxxxx>
Date: Wed Jul 8 17:29:27 2015 +0800
drm/amdgpu: Add Fiji support to the SDMA 3.0 IP module
Signed-off-by: David Zhang <david1.zhang@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit af15a2d51dba75498b7802fd67399a093961ddc4
Author: David Zhang <david1.zhang@xxxxxxx>
Date: Thu Jul 30 19:42:11 2015 -0400
drm/amdgpu: Add Fiji support to the GFX 8.0 IP module (v2)
v2: agd5f: fix the rb setup.
Signed-off-by: David Zhang <david1.zhang@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 843908604d72a1988d94936d9c34768eb8de97a6
Author: David Zhang <david1.zhang@xxxxxxx>
Date: Wed Jul 8 01:28:20 2015 +0800
drm/amdgpu: Add Fiji support to the DCE 10.0 IP module (v2)
v2: agd5f: fix up XDMA golden settings
Signed-off-by: David Zhang <david1.zhang@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 8e711e1a1ad3a95883ae15deead593d22e57c3f1
Author: David Zhang <david1.zhang@xxxxxxx>
Date: Wed Jul 8 01:23:25 2015 +0800
drm/amdgpu: Add Fiji support to SMC and DPM (v2)
v2: agd5f: prepare for release
Signed-off-by: David Zhang <david1.zhang@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit d1c4dcfb76a0053ca7bcc90608b3699ac1e1b39d
Author: David Zhang <david1.zhang@xxxxxxx>
Date: Wed Jul 8 19:13:25 2015 +0800
drm/amdgpu: Add Fiji smu 7.1.3 headers (v2)
v2: agd5f: prepare for release
Signed-off-by: David Zhang <david1.zhang@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit aa8a3b5395f61ee2418ea33c6f2d95b432a13f35
Author: David Zhang <david1.zhang@xxxxxxx>
Date: Wed Jul 8 21:40:31 2015 +0800
drm/amdgpu: Add Fiji support to IH module
Signed-off-by: David Zhang <david1.zhang@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 127a262853a4ca8a9284f58241c733ff074f8327
Author: David Zhang <david1.zhang@xxxxxxx>
Date: Wed Jul 8 01:11:52 2015 +0800
drm/amdgpu: Add Fiji support to the GMC 8.5 IP module
Signed-off-by: David Zhang <david1.zhang@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 48299f95f75b695329c53a33dd6673ccf1b5a03f
Author: David Zhang <david1.zhang@xxxxxxx>
Date: Wed Jul 8 01:05:16 2015 +0800
drm/amdgpu: Add Fiji DID 0x7300 common support
Signed-off-by: David Zhang <david1.zhang@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 41548ef78bbf26994546ea5225ad4b4c1bf96d1f
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Fri Jul 31 17:20:14 2015 -0400
drm/amdgpu: handle conditional support for CIK properly
gfx7 support is not necessary or available if CIK support
is not enabled.
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit e60b344f6c0eff03362b5083db746ef5442c4b36
Author: monk.liu <monk.liu@xxxxxxx>
Date: Fri Jul 17 18:39:25 2015 +0800
drm/amdgpu: optimize amdgpu_parser_init
use kmalloc_array instead of kcalloc where appropriate and other
cleanups.
Signed-off-by: monk.liu <monk.liu@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 2f7d10b393c83acd3eedc3d6ab94dce29ac6a890
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Wed Jul 22 11:29:01 2015 +0800
drm/amdgpu: merge amdgpu_family.h into amd_shared.h (v2)
Make the definitions common for all driver components
v2: fix kfd
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit fa9f1d4e86f67a4df03e153d9b9cd1bd1838767c
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Tue Jul 21 21:17:16 2015 +0800
drm/amdgpu: add some pptable definitions
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 0b2daf09cf3c9893872d68f0ce9a3f4b7e3ff06c
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Tue Jul 21 17:41:48 2015 +0800
drm/amdgpu: add some common definitions to amd_shared.h
Add GPU family definitions and timeout value for IP components.
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit c7890fea04acbaa89f572adcd9efe0b2d390a8e7
Author: Marek Olšák <marek.olsak@xxxxxxx>
Date: Sat Jul 11 12:08:46 2015 +0200
drm/amdgpu: allow userspace to read more debug registers
Feel free to suggest more.
Signed-off-by: Marek Olšák <marek.olsak@xxxxxxx>
Acked-by: Michel Dänzer <michel.daenzer@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
commit 8e9198d0698a4a748bac9a7b33ed1300cf5f3793
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Sun Aug 16 22:51:50 2015 -0400
drm/amdgpu: move some atombios definitions to common folder (v2)
the definitions can be shared by different IP components.
v2: fix include path
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 5430a3ffb0b1902e8aea4ed2ba256b1263126e8d
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Jul 21 18:02:21 2015 +0200
drm/amdgpu: fix UVD/VCE fence handling
We need to return the sequence number to userspace
even when we don't use user fences.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 5ceb54c68a28fc8af5cf8d32c4fde29c97dd3c18
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Wed Aug 5 12:41:48 2015 -0400
drm/amdgpu: add fence suspend/resume functions
Added to:
- handle draining the ring on suspend
- properly enable/disable interrupts on suspend and resume
Fix breakages from:
commit 467ee3be53d240d08beed2e82a941e820c1ac323
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Jun 1 14:14:32 2015 +0800
drm/amdgpu: always enable EOP interrupt v2
Tested-by: Audrey Grodzovsky <audrey.grodzovsky@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit c6a4079badc2f0eda69a028622c7080a284ae147
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Mon Jun 1 14:14:32 2015 +0800
drm/amdgpu: always enable EOP interrupt v2
v2 (chk): always enable EOP interrupt, independent of scheduler,
remove now unused delayed_irq handling.
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 7f8a5290f5b6c14dd1d295e2508e0dd193a9fda5
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Jul 20 16:09:40 2015 +0200
drm/amdgpu: rework vm_grab_id interface
This makes assigning VM IDs independent from the use of VM IDs.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit fc8fa5e428ae937f79a36ccbe303fa871ffbbbf7
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Jul 20 15:47:30 2015 +0200
drm/amdgpu: no updates shouldn't cause vm flush v2
v2 (chk): split fix from original patch
Signed-off-by: monk.liu <monk.liu@xxxxxxx>
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit cf6f1d39496e9b5dd62953f8dca9f995d80ab4ff
Author: Christian König <christian.koenig@xxxxxxx>
Date: Sat Jul 18 19:20:05 2015 +0200
drm/amdgpu: fix signed overrun in amdgpu_ctx_get_fence
Otherwise the first 16 fences of a context will always signal immediately.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit cdecb65b4eaba1d45abbfe34b724664f65623531
Author: Christian König <christian.koenig@xxxxxxx>
Date: Thu Jul 16 12:01:06 2015 +0200
drm/amdgpu: fix context memory leak
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
commit 0753b45242059f523a6238ec2741a4436db2fbd0
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Jul 7 18:44:01 2015 +0200
drm/amdgpu: remove amdgpu_fence_recreate
It's not used any more.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 21c16bf634e62cf9673946f509b469e7f0953ecf
Author: Christian König <christian.koenig@xxxxxxx>
Date: Tue Jul 7 17:24:49 2015 +0200
drm/amdgpu: add user fence context map v2
This is a prerequisite for the GPU scheduler to make the order
of submission independent from the order of execution.
v2: properly implement the locking
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 91e1a5207edec9e4f888e44478a9a254186e0ba8
Author: Christian König <christian.koenig@xxxxxxx>
Date: Mon Jul 6 22:06:40 2015 +0200
drm/amdgpu: deal with foreign fences in amdgpu_sync
This also requires some error handling from the callers of that function.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 0b492a4c92050862a9780b941d52c05923fcd669
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Sun Aug 16 22:48:26 2015 -0400
drm/amdgpu: cleanup context structure v2
The comment is misleading and incorrect, remove it.
Printing the id is completely meaningless and this practice
can cause a race conditions on command submission.
The flags and hangs fields are completely unused.
Give all fields a common indentation.
v2: remove fpriv reference and unused flags as well, fix debug message.
Signed-off-by: Christian König <christian.koenig@xxxxxxx>
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx>
commit 404b2fa3385565b1c472a0482f6564a1550fc8d1
Author: rezhu <rezhu@xxxxxxx>
Date: Fri Aug 7 13:37:56 2015 +0800
drm/amdgpu: add cgs_interface for pg and cg
v3: check whether ip_blocks is enable
v2: add break in the for loop.
Signed-off-by: Rex zhu <rezhu@xxxxxxx>
commit 97baee7170099dac2ce5671d3bb9cb364194b052
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Tue Jul 21 17:02:44 2015 +0800
drm/amdgpu: fix some typo for cgs definitions
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit bf3911b06fa9c551b852af563fed393a02e48a7a
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Wed May 13 18:58:05 2015 +0800
drm/amdgpu: add cgs_get_firmware_info interface v2
This new interface can be used by IP components to retrieve the
firmware information from the core driver.
v2: fix one typo
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Signed-off-by: Rex Zhu <Rex.Zhou@xxxxxxx>
Signed-off-by: Young Yang <Young.Yang@xxxxxxx>
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 57ff96cf471a30104c1ffdc49d237942d4908608
Author: Chunming Zhou <david1.zhou@xxxxxxx>
Date: Fri Apr 24 17:38:20 2015 +0800
drm/amdgpu: implement cgs gpu memory callbacks
This implements the cgs interface for allocating
GPU memory.
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Signed-off-by: Chunming Zhou <david1.zhou@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 25da442779041e5fac7ceba552264fda55106e3f
Author: Chunming Zhou <David1.Zhou@xxxxxxx>
Date: Fri May 22 12:14:04 2015 -0400
drm/amdgpu: add atom interfaces for CGS
This implements the interface for atombios command
and data table access.
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Signed-off-by: Chunming Zhou <David1.Zhou@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 0cf3be21782f8d5b74cce98a2b934e14ef418ef3
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Tue Jul 28 14:24:53 2015 -0400
drm/amdgpu: Implement irq interfaces for CGS
This implements the irq src registrar.
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Signed-off-by: Chunming Zhou <David1.Zhou@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 97cb7f6e6c4d7d78de7e174d8776a95ef7fd1e8a
Author: Chunming Zhou <David1.Zhou@xxxxxxx>
Date: Fri May 22 11:33:31 2015 -0400
drm/amdgpu: Implement the pciconfig callbacks for CGS
This implements the pciconfig register accessors.
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Signed-off-by: Chunming Zhou <David1.Zhou@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit aba684d87a4d6805feddc7c4bc77c3c24f913ed1
Author: Chunming Zhou <David1.Zhou@xxxxxxx>
Date: Fri May 22 11:29:30 2015 -0400
drm/amdgpu: Implement mmio callbacks for CGS
This implements the MMIO register accessors.
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Signed-off-by: Chunming Zhou <David1.Zhou@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit d03846af92750f83d36ff2110a0cee444979b2a2
Author: Chunming Zhou <David1.Zhou@xxxxxxx>
Date: Tue Jul 28 14:20:03 2015 -0400
drm/amd: Add CGS interfaces
CGS (Common Graphics Services) is an AMD cross component
abstraction layer to designed to better encapsulate
specific IP block drivers so different teams can effectively
work on differnet IP block drivers independently. It provides
a common interface for things like accessing registers,
allocating GPU memory, and registering interrupt sources.
The plan is to eventually move more and more IP drivers to
this interface. The first user is the ACP IP driver.
Reviewed-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Signed-off-by: Chunming Zhou <David1.Zhou@xxxxxxx>
Acked-by: Christian König <christian.koenig@xxxxxxx>
Acked-by: Alex Deucher <alexander.deucher@xxxxxxx>
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 553de19a0e2f21809bc3864d40308864652521eb
Author: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Date: Sat Aug 15 08:01:55 2015 +0530
ASoC: davinci-vcif: Use devm_snd_soc_register_component
Use resource managed function devm_snd_soc_register_component for
component registration instead of snd_soc_register_component.
Also, remove davinci_vcif_remove as it is now redundant.
Signed-off-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Acked-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 93576842718edf302b03f30b9915d3e704b0c78a
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Aug 17 12:30:58 2015 +0530
regulator: core: Use IS_ERR_OR_NULL()
Use IS_ERR_OR_NULL() rather than open coding it.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 507d7fc56154031a1d023d74e02ed9d3c4f4da31
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 17 12:59:42 2015 -0700
staging: wilc1000: fix build warning with setup_timer()
I forgot to properly cast a pointer to unsigned long in a conversion to
setup_timer() which resulted in a build warning. Fix that up.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit db93ec4f30f1826cc64560ffdf9cc6f2f4eff49f
Author: Raphaël Beamonte <raphael.beamonte@xxxxxxxxx>
Date: Mon Aug 17 15:28:28 2015 -0400
staging: wilc1000: remove DECLARE_WILC_BUFFER()
It was just a wrapper to initialize a variable. Initialize it
directly instead.
Signed-off-by: Raphaël Beamonte <raphael.beamonte@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit dec180c86425e4ffcf9699c6cbc6682a63e8d11c
Author: Raphaël Beamonte <raphael.beamonte@xxxxxxxxx>
Date: Mon Aug 17 15:28:26 2015 -0400
staging: wilc1000: remove void function return statements that are not
useful
Signed-off-by: Raphaël Beamonte <raphael.beamonte@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 30f93ca8323f0c21b789bea0f7db8e8e3a7915c6
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Aug 17 08:16:51 2015 +0530
regulator: core: Define regulator_set_voltage_triplet()
Voltage tolerance isn't necessarily same on both sides of the target
voltage and regulator_set_voltage_tol() wouldn't be suitable in such
cases.
Add another routine regulator_set_voltage_triplet(), which accepts
target, min and max voltages as arguments.
This first tries to set the voltage between the target voltage and the
upper limit, then fall back on the full range. The idea behind this is
to set regulator's voltage as close to the target voltage, as possible.
Based on regulator_set_voltage_tol().
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit da65e367b67e15fc41cbf646c506c802dd5213b7
Author: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Date: Mon Aug 17 11:43:59 2015 -0700
regulator: Regulator driver for the Qualcomm RPM
Driver for regulators exposed by the Resource Power Manager (RPM) found
in devices based on Qualcomm 8974 and newer platforms.
Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxxxxxx>
Acked-by: Andy Gross <agross@xxxxxxxxxxxxxx>
Tested-by: Tim Bird <tim.bird@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit a78d9a38a52fc0660e6efb8eaf6540f975db87c6
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 17 11:05:15 2015 +0900
staging: wilc1000: coreconfigurator.c: fix kmalloc error check
It is added and fixed error check when kmalloc is failed.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 0ac87998784e261e1080907da912afb562737c69
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 17 11:05:14 2015 +0900
staging: wilc1000: coreconfigurator.c: use kmalloc instead of WILC_MALLOC
The kmalloc is used to handle host interface message within kernel thread.
The manipulation of host interface message is not called on IRQ context
and I could not find any spinlock inside function.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 280f1fa0808ea6e3b6bd5b39d67a0bb0a35a6761
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 17 11:05:13 2015 +0900
staging: wilc1000: remove unused codes of gps8ConfigPacket
This patch removes unused codes of gps8ConfigPacket declared by global
variable.
It is allocated and freed memory within CoreConfiguratorInit and
CoreConfiguratorDeInit.
There is no used anywhere except within two functions.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit dc0ad74bc432eccb96f3249de20f3b2b468d0919
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 17 11:05:12 2015 +0900
staging: wilc1000: remove unnecessary void pointer cast
This patch removes unnecessary void pointer cast of WILC_MALLOC.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 355c06633e233a57155b827ebe99b91c35bc1f5c
Author: Jonathan Corbet <corbet@xxxxxxx>
Date: Thu Aug 13 17:52:02 2015 -0600
workqueue: fix some docbook warnings
There are some errors in the docbook comments in workqueue.h that cause
warnings when the docs are built; this only recently came to light because
these comments were not used until now. Fix the comments to make the
warnings go away.
The "args..." "fix" is a hack. kerneldoc doesn't deal properly with named
variadic arguments in macros, so all I've really achieved here is to make
it shut up. Fixing kerneldoc will have to wait for more time.
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
commit 9fba8e30f704d49627ab8a4a57213862206b3e5f
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 14:46:51 2015 -0500
SUNRPC: Drop double-underscores from __rpc_cmp_addr6()
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Fixes: 7b0ce60c0b20 ("SUNRPC: Drop double-underscores from
rpc_cmp_addr{4|6}()")
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 636dcf9716306bc93afffe8f968a3f232c42f6d7
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 17 11:05:11 2015 +0900
staging: wilc1000: remove WILC_NEW and WILC_NEW_EX
This patch removes WILC_NEW and WILC_NEW_EX defines that are not used
anywhere.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 5c07828f5db4c620a4f574b3a4bb0a0bba82826b
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 17 11:05:10 2015 +0900
staging: wilc1000: use kmalloc instead of WILC_NEW
WILC_NEW is replaced by kmallo with GFP_ATOMIC.
This kmalloc is inside a spin_lock_irqsave region.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 6e3f05bfc02b61adf50709c4a96f07314addeeb6
Author: Chandra S Gorentla <csgorentla@xxxxxxxxx>
Date: Sat Aug 15 12:23:31 2015 +0530
staging: wilc1000: Process WARN, INFO options of debug levels from user
This patch enables setting the module's debug options WARN and INFO in the
debugfs file 'wilc_debug_level'. This functionality allows the user to
enable logging of warnings and other information. Before this change,
writes to this debugfs file set only one option - DEBUG. Another option
that is enabled by default is ERR.
As a side effect, this patch removes the 'sparse' warning -
'warning: incorrect type in argument 2 (different address spaces)'.
Signed-off-by: Chandra S Gorentla <csgorentla@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit fbaff3ef859a86dc3df2128d2de9f8a6e255a967
Author: Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx>
Date: Thu Aug 13 18:34:03 2015 -0700
net: fix endian check warning in etherdevice.h
Sparse builds have been warning for a really long time now
that etherdevice.h has a conversion that is unsafe.
include/linux/etherdevice.h:79:32: warning: restricted __be16 degrades
to integer
This code change fixes the issue and generates the exact
same assembly before/after (checked on x86_64)
Fixes: 2c722fe1c821 (etherdevice: Optimize a few is_<foo>_ether_addr
functions)
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx>
CC: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit ee847a252664f54d06bcc6ab2864322cbcb52692
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Sat Aug 15 17:17:53 2015 -0700
hwmon: (ltc2978) Introduce helper functions for min and max values
The code used to determine historic low and high peaks is repeated
several times. Introduce helper functions to simplify it.
Tested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 8582bcc8ebb21375b37f337c58ca783b997a0355
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Sat Aug 15 17:02:09 2015 -0700
hwmon: (ltc2978) Introduce feature flags
It is becoming cumbersom to track per-chip feature support.
Introduce feature flag to simplify the code.
Tested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 2238835c5ce9f8eae5cb4dd6a6c05a6c82743282
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Wed Aug 12 21:05:38 2015 -0700
hwmon: (pmbus) Convert command register definitions to enum
This will simplify adding new virtual commands.
Tested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 649ca820dab3d76e12408b74af3e8e97abb07ae0
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Jun 8 09:56:20 2015 -0700
hwmon: (ltc2978) Add support for LTC2975
LTC2975 is mostly compatible to LTC2974, but supports input current
and power measurement.
Tested-by: Michael Jones <mike@xxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit f3ae683f09aff7c53dab8b85d2425d746c8e0d5f
Merge: 8f8ff913 4b46995
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Mon Aug 17 11:50:25 2015 -0700
Merge branch 'iff_no_queue'
Phil Sutter says:
====================
net: introduce IFF_NO_QUEUE as successor of zero tx_queue_len
This series adds a new private net_device flag indicating that a device
may
(and probably should) be used without a queueing discipline attached to
it.
This is already common practice for many virtual device types like e.g.
loopback, VLAN (802.1Q) or bridges (802.1D). The reason for this is that
these
devices lack an underlying layer which could impose back pressure and
therefore
making a TX queue necessary to not slow down senders.
Up to now, drivers being aware of the above applying to them set
dev->tx_queue_len to zero to indicate no qdisc should be attached to the
interface they drive and the kernel reacts upon this by assigning the noop
qdisc instead of the default pfifo_fast. This implicit agreement though
leads
to an inconvenient situation once a user tries to attach a real qdisc to
these
devices, as the formerly special tx_queue_len value becomes a regular one,
limiting the queue to zero packets and thus prevents any TX from
happening. To
overcome this, practically all qdisc implementations intercept and
sanitize the
malicious value.
With this series applied, drivers may signal the lack of need for a qdisc
without having to tamper with tx_queue_len, making fallbacks in qdiscs and
caveats in userspace unnecessary.
Upon upstream acceptance, this series will be followed up by a set of
patches
converting device drivers, adding a warning so out-of-tree driver authors
get
aware of this change and dropping all special handling of tx_queue_len in
net/sched/.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4b469955685d58c2f8198bf817fc661600b7e3d0
Author: Phil Sutter <phil@xxxxxx>
Date: Thu Aug 13 19:01:07 2015 +0200
net: sch_generic: react upon IFF_NO_QUEUE flag
Handle IFF_NO_QUEUE as alternative to tx_queue_len being zero.
Signed-off-by: Phil Sutter <phil@xxxxxx>
Acked-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit fa8187c96471c49419c25d4ec3299d17d3f274b2
Author: Phil Sutter <phil@xxxxxx>
Date: Thu Aug 13 19:01:06 2015 +0200
net: declare new net_device priv_flag IFF_NO_QUEUE
This private net_device flag can be set by drivers to inform that a
device runs fine without a qdisc attached. This was formerly done by
setting tx_queue_len to zero.
Signed-off-by: Phil Sutter <phil@xxxxxx>
Acked-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7c2dad99d60c86ec686b3bfdcb787c450a7ea89f
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 12:06:30 2015 -0400
NFS: Don't let the ctime override attribute barriers.
Chuck reports seeing cases where a GETATTR that happens to race
with an asynchronous WRITE is overriding the file size, despite
the attribute barrier being set by the writeback code.
The culprit turns out to be the check in nfs_ctime_need_update(),
which sees that the ctime is newer than the cached ctime, and
assumes that it is safe to override the attribute barrier.
This patch removes that override, and ensures that attribute
barriers are always respected.
Reported-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Fixes: a08a8cd375db9 ("NFS: Add attribute update barriers to NFS
writebacks")
Cc: stable@xxxxxxxxxxxxxxx # v4.0+
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 74918f937d9896aa2910cfe81f06499abd1dba59
Merge: 37bfcc1 5883055
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 13:36:32 2015 -0500
Merge branch 'layoutfixes'
* layoutfixes:
NFSv4.1/pnfs: Remove redundant wakeup in pnfs_send_layoutreturn()
NFSv4.1/pnfs: Remove redundant check in pnfs_layoutgets_blocked()
NFSv4.1/pnfs: Remove redundant lo->plh_block_lgets in layoutreturn
NFSv4.1/pnfs: Don't prevent layoutgets when doing return-on-close
NFSv4.1/pnfs: Fix serialisation of layout return and layoutget
NFSv4.1/pnfs: Remove redundant checks in pnfs_layoutgets_blocked()
pNFS: Tighten up locking around DS commit buckets
commit 37bfcc14b2b44ce03930eeb2c3de1c20f7da6fb9
Merge: eed889b 99b1a4c
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 13:36:22 2015 -0500
Merge branch 'bugfixes'
* bugfixes:
SUNRPC: Fix a thinko in xs_connect()
NFSv4.1/pNFS: Fix borken function _same_data_server_addrs_locked()
NFS: nfs_set_pgio_error sometimes misses errors
commit eed889b161ce4817e594c28906269d776f4806a5
Merge: aff8d8d d0f36c4
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 13:33:58 2015 -0500
Merge tag 'nfs-rdma-for-4.3' of
git://git.linux-nfs.org/projects/anna/nfs-rdma
NFS: NFS over RDMA Client Side Changes
These patches improve both client performance and scalability, most
notably
by increasing the maixmum allowed rsize and wsize and by increasing the
number
of RDMA "credits". There are also several bugfixes, such as correcting
how
WRITE compounds are encoded and fixing large NFS symlink operations.
Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
commit aff8d8dc4c34804c6a1de04f1b3313aa9063bf46
Author: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Date: Mon Jul 13 14:01:33 2015 -0400
NFS: Remove nfs_release()
And call nfs_file_clear_open_context() directly. This makes it obvious
that nfs_file_release() will always return 0.
Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit c4f83a5571981c92b028c8e9a9da827598905059
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 17 11:32:38 2015 -0700
staging: wilc1000: remove unneeded tstrWILC_MsgQueueAttrs typedef
No one uses it, so remove it and all of the NULL parameters being used
to pass it into the msg code.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ae09c31f66cc673bb8c64a5dbfdc04ab67f66d7e
Author: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Date: Mon Jul 13 14:01:32 2015 -0400
NFS: Rename nfs_commit_unstable_pages() to nfs_write_inode()
All nfs_write_inode() does is pass its arguments to
nfs_commit_unstable_pages(). Let's cut out the middle man and have
nfs_write_pages() do the work directly.
Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 3f10a6af4b577da2117907ac8420f27af81d57de
Author: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Date: Mon Jul 13 14:01:31 2015 -0400
NFS: Remove nfs41_server_notify_{target|highest}_slotid_update()
All these functions do is call nfs41_ping_server() without adding
anything. Let's remove them and give nfs41_ping_server() a better name
instead.
Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit fb2a525cf086bb080f84b0b748ee823ef79e539c
Author: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Date: Mon Jul 13 14:01:29 2015 -0400
NFS: Combine nfs_idmap_{init|quit}() and nfs_idmap_{init|quit}_keyring()
The idmap_init() and idmap_quit() functions only exist to call the
_keyring() version. Let's just call the keyring() functions directly.
Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit d8efa4e62505f5113e363572b5438b7be0d08b12
Author: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Date: Mon Jul 13 14:01:28 2015 -0400
NFS: Use RPC functions for matching sockaddrs
They already exist and do the exact same thing. Let's save ourselves
several lines of code!
Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 58cc8a55aa38655d472a4c381df465c9ab97b4d6
Author: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Date: Mon Jul 13 14:01:27 2015 -0400
SUNRPC: Add an rpc_cmp_addr_port() function
This function is to help determine if two sockaddrs are really the same
socket.
Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 7b0ce60c0b203a2a037f308e387152acbf99c445
Author: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Date: Mon Jul 13 14:01:26 2015 -0400
SUNRPC: Drop double-underscores from rpc_cmp_addr{4|6}()
I'm planning on using these functions inside the client, so remove the
underscores to make it feel like I'm using a public interface.
Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit c7e9668e78eab69b7ade9897bea1fbd77dd18775
Author: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Date: Mon Jul 13 14:01:25 2015 -0400
NFS: Rename nfs_readdir_free_pagearray() and nfs_readdir_large_page()
nfs_readdir_xdr_to_array() uses both a cache array and an array of
pages, so I rename these functions to make it clearer how the code
works. nfs_readdir_large_page() becomes nfs_readdir_alloc_pages()
because this function has absolutely nothing to do with setting up a
large page. nfs_readdir_free_pagearray() becomes
nfs_readdir_free_pages() to stay consistent with the new alloc_pages()
function.
Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 0b936e37df8111ea727263a5a246b58e05b7aa1b
Author: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Date: Mon Jul 13 14:01:24 2015 -0400
NFS: Remove unused variable "pages_ptr"
This variable is initialized to NULL and is never modified before being
passed to nfs_readdir_free_large_page(). But that's okay, because
nfs_readdir_free_large_page() only seems to exist as a way of calling
nfs_readdir_free_pagearray() without this parameter. Let's simplify by
removing pages_ptr and nfs_readdir_free_pagearray().
Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 9ca308506062fc4a4ee8ca7ad2f71033c831c2fb
Author: Baolin Wang <baolin.wang@xxxxxxxxxx>
Date: Wed Jul 29 20:18:31 2015 +0800
time: Introduce timespec64_to_jiffies()/jiffies_to_timespec64()
The conversion between struct timespec and jiffies is not year 2038
safe on 32bit systems. Introduce timespec64_to_jiffies() and
jiffies_to_timespec64() functions which use struct timespec64 to
make it ready for 2038 issue.
Cc: Prarit Bhargava <prarit@xxxxxxxxxx>
Cc: Richard Cochran <richardcochran@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxx>
Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
commit 8758a240e2d74c5932ab51a73377e6507b7fd441
Author: Baolin Wang <baolin.wang@xxxxxxxxxx>
Date: Wed Jul 29 20:09:43 2015 +0800
time: Introduce current_kernel_time64()
The current_kernel_time() is not year 2038 safe on 32bit systems
since it returns a timespec value. Introduce current_kernel_time64()
which returns a timespec64 value.
Cc: Prarit Bhargava <prarit@xxxxxxxxxx>
Cc: Richard Cochran <richardcochran@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxx>
Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
commit 19a46fe57a005a884ccb38419071f772ac2fca2b
Author: Baolin Wang <baolin.wang@xxxxxxxxxx>
Date: Wed Jul 29 19:58:15 2015 +0800
time: Introduce struct itimerspec64
The struct itimerspec is not year 2038 safe on 32bit systems due to
the limitation of the struct timespec members. Introduce itimerspec64
which uses struct timespec64 instead and provide conversion functions.
Cc: Prarit Bhargava <prarit@xxxxxxxxxx>
Cc: Richard Cochran <richardcochran@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxx>
Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
commit 7494e9eedee2121305a48af4fbbcedb69a2c2b93
Author: Xunlei Pang <pang.xunlei@xxxxxxxxxx>
Date: Sun Jul 26 18:45:39 2015 +0800
time: Add the common weak version of update_persistent_clock()
The weak update_persistent_clock64() calls update_persistent_clock(),
if the architecture defines an update_persistent_clock64() to replace
and remove its update_persistent_clock() version, when building the
kernel the linker will throw an undefined symbol error, that is, any
arch that switches to update_persistent_clock64() will have this issue.
To solve the issue, we add the common weak update_persistent_clock().
Cc: Prarit Bhargava <prarit@xxxxxxxxxx>
Cc: Richard Cochran <richardcochran@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Signed-off-by: Xunlei Pang <pang.xunlei@xxxxxxxxxx>
Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
commit ce603281468cf1be0a70a45fdaef761db134b900
Author: Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
Date: Fri Jul 10 15:59:26 2015 -0400
nfs: remove some dead code in ff_layout_pg_get_mirror_count_write
We already know that pg_lseg is NULL here.
Signed-off-by: Jeff Layton <jeff.layton@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit e1d7ba8735551ed79c7a0463a042353574b96da3
Author: Wang YanQing <udknight@xxxxxxxxx>
Date: Tue Jun 23 18:38:54 2015 +0800
time: Always make sure wall_to_monotonic isn't positive
Two issues were found on an IMX6 development board without an
enabled RTC device(resulting in the boot time and monotonic
time being initialized to 0).
Issue 1:exportfs -a generate:
"exportfs: /opt/nfs/arm does not support NFS export"
Issue 2:cat /proc/stat:
"btime 4294967236"
The same issues can be reproduced on x86 after running the
following code:
int main(void)
{
struct timeval val;
int ret;
val.tv_sec = 0;
val.tv_usec = 0;
ret = settimeofday(&val, NULL);
return 0;
}
Two issues are different symptoms of same problem:
The reason is a positive wall_to_monotonic pushes boot time back
to the time before Epoch, and getboottime will return negative
value.
In symptom 1:
negative boot time cause get_expiry() to overflow time_t
when input expire time is 2147483647, then cache_flush()
always clears entries just added in ip_map_parse.
In symptom 2:
show_stat() uses "unsigned long" to print negative btime
value returned by getboottime.
This patch fix the problem by prohibiting time from being set to a value
which
would cause a negative boot time. As a result one can't set the
CLOCK_REALTIME
time prior to (1970 + system uptime).
Cc: Prarit Bhargava <prarit@xxxxxxxxxx>
Cc: Richard Cochran <richardcochran@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Wang YanQing <udknight@xxxxxxxxx>
[jstultz: reworded commit message]
Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
commit de4a95faf173be1e798c37ca486dfcb234a0941b
Author: Karsten Blees <karsten.blees@xxxxxxxxx>
Date: Thu Jun 25 14:13:55 2015 +0200
time: Fix nanosecond file time rounding in timespec_trunc()
timespec_trunc() avoids rounding if granularity <= nanoseconds-per-jiffie
(or TICK_NSEC). This optimization assumes that:
1. current_kernel_time().tv_nsec is already rounded to TICK_NSEC (i.e.
with HZ=1000 you'd get 1000000, 2000000, 3000000... but never
1000001).
This is no longer true (probably since hrtimers introduced in 2.6.16).
2. TICK_NSEC is evenly divisible by all possible granularities. This may
be true for HZ=100, 250, 1000, but obviously not for HZ=300 /
TICK_NSEC=3333333 (introduced in 2.6.20).
Thus, sub-second portions of in-core file times are not rounded to on-disk
granularity. I.e. file times may change when the inode is re-read from
disk
or when the file system is remounted.
This affects all file systems with file time granularities > 1 ns and <
1s,
e.g. CEPH (1000 ns), UDF (1000 ns), CIFS (100 ns), NTFS (100 ns) and FUSE
(configurable from user mode via struct fuse_init_out.time_gran).
Steps to reproduce with e.g. UDF:
$ dd if=/dev/zero of=udfdisk count=10000 && mkudffs udfdisk
$ mkdir udf && mount udfdisk udf
$ touch udf/test && stat -c %y udf/test
2015-06-09 10:22:56.130006767 +0200
$ umount udf && mount udfdisk udf
$ stat -c %y udf/test
2015-06-09 10:22:56.130006000 +0200
Remounting truncates the mtime to 1 µs.
Fix the rounding in timespec_trunc() and update the documentation.
timespec_trunc() is exclusively used to calculate inode's [acm]time
(mostly
via current_fs_time()), and always with super_block.s_time_gran as second
argument. So this can safely be changed without side effects.
Note: This does _not_ fix the issue for FAT's 2 second mtime resolution,
as super_block.s_time_gran isn't prepared to handle different ctime /
mtime / atime resolutions nor resolutions > 1 second.
Cc: Prarit Bhargava <prarit@xxxxxxxxxx>
Cc: Richard Cochran <richardcochran@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Karsten Blees <blees@xxxxxxx>
Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
commit 38bf985b05625df3fbbc1dbf543bdd2da447c2af
Author: John Stultz <john.stultz@xxxxxxxxxx>
Date: Wed May 27 16:44:48 2015 -0700
timer_list: Add the base offset so remaining nsecs are accurate for non
monotonic timers
I noticed for non-monotonic timers in timer_list, some of the
output looked a little confusing.
For example:
#1: <0000000000000000>, posix_timer_fn, S:01, hrtimer_start_range_ns,
leap-a-day/2360
# expires at 1434412800000000000-1434412800000000000 nsecs [in
1434410725062375469 to 1434410725062375469 nsecs]
You'll note the relative time till the expiration "[in xxx to
yyy nsecs]" is incorrect. This is because its printing the delta
between CLOCK_MONOTONIC time to the CLOCK_REALTIME expiration.
This patch fixes this issue by adding the clock offset to the
"now" time which we use to calculate the delta.
Cc: Prarit Bhargava <prarit@xxxxxxxxxx>
Cc: Daniel Bristot de Oliveira <bristot@xxxxxxxxxx>
Cc: Richard Cochran <richardcochran@xxxxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Cc: Jiri Bohac <jbohac@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>
Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
commit 8bb28975823aee062f82b99ddacc499601c0cfd1
Author: Christoph Hellwig <hch@xxxxxx>
Date: Mon Aug 17 18:41:01 2015 +0200
pnfs: move common blocklayout XDR defintions to nfs4.h
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 513d6d7a9591d7c5ebb5f05465942185db9299a4
Author: Christoph Hellwig <hch@xxxxxx>
Date: Mon Aug 17 18:41:00 2015 +0200
pnfs/blocklayout: pass proper file mode to blkdev_get/put
We generally want to read and write to a block device that's used by
the pNFS block layout client (and even if it's read only the server
has no way of telling us). Add FMODE_WRITE to the mode argument
so that we don't incorrectly tell the block driver that we want a
read-only open.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 2bd3c63a333c364cfde4701b51f82e1fae106a88
Author: Christoph Hellwig <hch@xxxxxx>
Date: Mon Aug 17 18:40:59 2015 +0200
pnfs/blocklayout: reject too long signatures
Instead of overwriting kernel memory reject too long signatures.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 68596bd188e5e621c28a2f6fc0a3dd80a606d16b
Author: Christoph Hellwig <hch@xxxxxx>
Date: Mon Aug 17 18:40:58 2015 +0200
pnfs/blocklayout: set up layoutupdate_pages properly
We need to replace the __be32 with a void pointer to do proper
arithmentics
on the virtual addresses so that we can get the right page pointers.
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 29662fa646b41492a9c298a83399126f94847e93
Author: Christoph Hellwig <hch@xxxxxx>
Date: Mon Aug 17 18:40:57 2015 +0200
pnfs/blocklayout: calculate layoutupdate size correctly
We need to include the first u32 for the number of entries. Add a helper
for the calculation instead of opencoding it so that it's in one place.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 18e3b739fdc826481c6a1335ce0c5b19b3d415da
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Sat Aug 15 21:52:10 2015 +0800
NFS: Fix a NULL pointer dereference of migration recovery ops for v4.2
client
---Steps to Reproduce--
<nfs-server>
# cat /etc/exports
/nfs/referal *(rw,insecure,no_subtree_check,no_root_squash,crossmnt)
/nfs/old *(ro,insecure,subtree_check,root_squash,crossmnt)
<nfs-client>
# mount -t nfs nfs-server:/nfs/ /mnt/
# ll /mnt/*/
<nfs-server>
# cat /etc/exports
/nfs/referal
*(rw,insecure,no_subtree_check,no_root_squash,crossmnt,refer=/nfs/old/@nfs-server)
/nfs/old *(ro,insecure,subtree_check,root_squash,crossmnt)
# service nfs restart
<nfs-client>
# ll /mnt/*/ --->>>>> oops here
[ 5123.102925] BUG: unable to handle kernel NULL pointer dereference at
(null)
[ 5123.103363] IP: [<ffffffffa03ed38b>]
nfs4_proc_get_locations+0x9b/0x120 [nfsv4]
[ 5123.103752] PGD 587b9067 PUD 3cbf5067 PMD 0
[ 5123.104131] Oops: 0000 [#1]
[ 5123.104529] Modules linked in: nfsv4(OE) nfs(OE) fscache(E) nfsd(OE)
xfs libcrc32c iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi coretemp
crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel ppdev
vmw_balloon parport_pc parport i2c_piix4 shpchp auth_rpcgss nfs_acl vmw_vmci
lockd grace sunrpc vmwgfx drm_kms_helper ttm drm mptspi serio_raw
scsi_transport_spi e1000 mptscsih mptbase ata_generic pata_acpi [last unloaded:
nfsd]
[ 5123.105887] CPU: 0 PID: 15853 Comm: ::1-manager Tainted: G
OE 4.2.0-rc6+ #214
[ 5123.106358] Hardware name: VMware, Inc. VMware Virtual Platform/440BX
Desktop Reference Platform, BIOS 6.00 05/20/2014
[ 5123.106860] task: ffff88007620f300 ti: ffff88005877c000 task.ti:
ffff88005877c000
[ 5123.107363] RIP: 0010:[<ffffffffa03ed38b>] [<ffffffffa03ed38b>]
nfs4_proc_get_locations+0x9b/0x120 [nfsv4]
[ 5123.107909] RSP: 0018:ffff88005877fdb8 EFLAGS: 00010246
[ 5123.108435] RAX: ffff880053f3bc00 RBX: ffff88006ce6c908 RCX:
ffff880053a0d240
[ 5123.108968] RDX: ffffea0000e6d940 RSI: ffff8800399a0000 RDI:
ffff88006ce6c908
[ 5123.109503] RBP: ffff88005877fe28 R08: ffffffff81c708a0 R09:
0000000000000000
[ 5123.110045] R10: 00000000000001a2 R11: ffff88003ba7f5c8 R12:
ffff880054c55800
[ 5123.110618] R13: 0000000000000000 R14: ffff880053a0d240 R15:
ffff880053a0d240
[ 5123.111169] FS: 0000000000000000(0000) GS:ffffffff81c27000(0000)
knlGS:0000000000000000
[ 5123.111726] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 5123.112286] CR2: 0000000000000000 CR3: 0000000054cac000 CR4:
00000000001406f0
[ 5123.112888] Stack:
[ 5123.113458] ffffea0000e6d940 ffff8800399a0000 00000000000167d0
0000000000000000
[ 5123.114049] 0000000000000000 0000000000000000 0000000000000000
00000000a7ec82c6
[ 5123.114662] ffff88005877fe18 ffffea0000e6d940 ffff8800399a0000
ffff880054c55800
[ 5123.115264] Call Trace:
[ 5123.115868] [<ffffffffa03fb44b>] nfs4_try_migration+0xbb/0x220 [nfsv4]
[ 5123.116487] [<ffffffffa03fcb3b>] nfs4_run_state_manager+0x4ab/0x7b0
[nfsv4]
[ 5123.117104] [<ffffffffa03fc690>] ? nfs4_do_reclaim+0x510/0x510 [nfsv4]
[ 5123.117813] [<ffffffff810a4527>] kthread+0xd7/0xf0
[ 5123.118456] [<ffffffff810a4450>] ? kthread_worker_fn+0x160/0x160
[ 5123.119108] [<ffffffff816d9cdf>] ret_from_fork+0x3f/0x70
[ 5123.119723] [<ffffffff810a4450>] ? kthread_worker_fn+0x160/0x160
[ 5123.120329] Code: 4c 8b 6a 58 74 17 eb 52 48 8d 55 a8 89 c6 4c 89 e7
e8 4a b5 ff ff 8b 45 b0 85 c0 74 1c 4c 89 f9 48 8b 55 90 48 8b 75 98 48 89 df
<41> ff 55 00 3d e8 d8 ff ff 41 89 c6 74 cf 48 8b 4d c8 65 48 33
[ 5123.121643] RIP [<ffffffffa03ed38b>]
nfs4_proc_get_locations+0x9b/0x120 [nfsv4]
[ 5123.122308] RSP <ffff88005877fdb8>
[ 5123.122942] CR2: 0000000000000000
Fixes: ec011fe847 ("NFS: Introduce a vector of migration recovery ops")
Cc: stable@xxxxxxxxxxxxxxx # v3.13+
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 2b5f12eac0ce4e6ffa5788400750da0a60fe8678
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 17 11:20:57 2015 -0700
staging: wilc1000: delete wilc_osconfig.h
This .h file isn't needed at all, so delete it, and the one line that
added it to the build.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 6e53191d6e15b7afb71dfbd3134c567fcc4eb2cd
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 17 11:17:57 2015 -0700
staging: wilc1000: delete wilc_log.h
The macros are not used in the driver at all, except in one commented
out line, so just remove the .h file so that no one thinks it is a good
idea to add any code to use them in the future.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 97fd0f07d4d3f71c20ef4a4f5a65eb461290ca1c
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 17 11:12:49 2015 -0700
staging: wilc1000: delete wilc_timer.h
It is no longer needed at all, so remove this header file.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 9eb066438b01bc70ef915987f881d3e57e698a30
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 17 11:10:55 2015 -0700
staging: wilc1000: remove WILC_TimerStart()
It was a wrapper around mod_timer() so replace it with the real timer
call and remove wilc_timer.c as it's now empty.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 99b1a4c32ad22024ac6198a4337aaec5ea23168f
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Aug 13 15:33:51 2015 -0400
SUNRPC: Fix a thinko in xs_connect()
It is rather pointless to test the value of transport->inet after
calling xs_reset_transport(), since it will always be zero, and
so we will never see any exponential back off behaviour.
Also don't force early connections for SOFTCONN tasks. If the server
disconnects us, we should respect the exponential backoff.
Cc: stable@xxxxxxxxxxxxxxx # 4.0+
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 6f536936b79bd4b5cea8fb0e5b8b0bce8cd1ea4a
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Thu Aug 13 10:59:07 2015 -0400
NFSv4.1/pNFS: Fix borken function _same_data_server_addrs_locked()
- Switch back to using list_for_each_entry(). Fixes an incorrect test
for list NULL termination.
- Do not assume that lists are sorted.
- Finally, consider an existing entry to match if it consists of a subset
of the addresses in the new entry.
Cc: stable@xxxxxxxxxxxxxxx # 4.0+
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit e9ae58aeee8842a50f7e199d602a5ccb2e41a95f
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 12:57:07 2015 -0500
NFS: nfs_set_pgio_error sometimes misses errors
We should ensure that we always set the pgio_header's error field
if a READ or WRITE RPC call returns an error. The current code depends
on 'hdr->good_bytes' always being initialised to a large value, which
is not always done correctly by callers.
When this happens, applications may end up missing important errors.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 0643558f85e740019e0632072c55e8b2f79a8d7d
Author: Koro Chen <koro.chen@xxxxxxxxxxxx>
Date: Mon Aug 17 19:16:51 2015 +0800
ASoC: mediatek: Remove AIF widgets for backend DAIs
DAPM core already creates widgets for DAIs. It is not necessary
to declare them by SND_SOC_DAPM_AIF_IN/SND_SOC_DAPM_AIF_OUT.
Furthermore, original codes use backend DAI's stream name to be the AIF
widget name. It causes the same widget to be created twice, and after
commit 92fa12426741 ("ASoC: dapm: Add new widgets to the end of the
widget list") the first created widget (by snd_soc_dapm_new_controls)
is used, not the 2nd created one (by snd_soc_dapm_new_dai_widgets),
so audio path is broken.
Signed-off-by: Koro Chen <koro.chen@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 8f8ff9135b28a7560a5627aceaf289e3f0d4cd64
Author: Richard Alpe <richard.alpe@xxxxxxxxxxxx>
Date: Mon Aug 17 14:15:10 2015 +0200
tipc: don't sanity check non-existing TLV (NL compat)
A zero length payload means that no TLV (Type Length Value) data has
been passed. Prior to this patch a non-existing TLV could be sanity
checked with TLV_OK() resulting in random behavior where a user
sending an empty message occasionally got a incorrect "operation not
supported" message back.
Signed-off-by: Richard Alpe <richard.alpe@xxxxxxxxxxxx>
Reviewed-by: Erik Hugne <erik.hugne@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit da3cc2da7c08dc1f4371a4cc2eb83b22a0cf83a8
Author: Yuval Mintz <Yuval.Mintz@xxxxxxxxxx>
Date: Mon Aug 17 08:28:25 2015 +0300
bnx2: Fix bandwidth allocation for some MF modes
Management firmware tells driver in case bandwidth configuration for
a specific function exists, but [regretably] the same field has different
meanings depending on the multi-function mode - it can either be
a percentile value or an actual speed.
For newer multi-function modes current logic is incorrect -
driver understands values as actual speeds instead of percentages,
causing the resulting chip configuration to be incorrect.
Signed-off-by: Yuval Mintz <Yuval.Mintz@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 672cfeeb93e572f108965cf964c3e2a869a549cc
Merge: 92f2618 ac22a1d
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 17 09:12:15 2015 -0700
Merge tag 'extcon-next-for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into
char-misc-testing
Chanwoo writes:
Update extcon for v4.3
This patchset include the function update of extcon drivers without
critical
update and fix minor issue of extcon drivers.
Detailed description for patchset:
1. Update the extcon drivers:
- Update the logic of microphone detection for extcon-arizona driver
- Support GPIO based USB ID detection of extcon-palmas driver
2. Fix minor issues:
- Clean code and remove the opitonal print_state() function pointer from
extcon
core driver
- Clear interrupt bit state before requesting irq on extcon-max778433
driver
- Fix signedness bugs of extcon core driver
commit 02dc2723f2b0b94bb3e47c08e1543b84b1836086
Merge: 1724856 26c78da
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 17 09:09:51 2015 -0700
Merge tag 'usb-serial-4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-next
Johan writes:
USB-serial updates for v4.3-rc1
Here's a fix for a long-standing issue with the pl2303 divisor
calculations that affects some non-standard baudrates that were enabled
in v3.18.
Adding support for newer Edgeport devices and firmware required changes
to the io_ti driver and also exposed some issues with the driver's
current firmware handling.
Included is also a URL comment-typo fix.
Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>
commit 3a6b0605c73d1d695f6d4e49289deaa3fa3e73ee
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Mon Aug 17 11:51:35 2015 -0300
Revert "[media] ARM: DT: STi: STiH407: Add c8sectpfe LinuxDVB DT node"
There are some missing dependencies at the DT, as it looks for
an I2C bus named "ssc2", but this is not defined.
Probably, it misses some dependencies from some other tree.
For now, revert this patch, to avoid build breakages.
This reverts commit 5d8877b6ae0d47897b821b8a11a2e8dee9a22686.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit b2887410f0d00f376b250f78d34654b4ac093900
Author: Vasanthakumar Thiagarajan <vthiagar@xxxxxxxxxxxxxxxx>
Date: Thu Aug 13 21:10:54 2015 +0530
ath10k: fill in wmi 10.4 command handlers for addba/delba debug commands
WMI 10.4 uses the same command interface as QCA988X for addba/delba
debug wmi commands. Fill wmi_10_4_ops table with the functions used
for QCA988X for these commands.
With this change, the following debugfs entries can be used to
configure the aggregation mode and to send addba request,
addba response and delba respectively in manual aggregation mode
for QCA99X0 chip.
/sys/kernel/debug/ieee80211/phyX/netdev:wlanX/stations/XX:XX:XX:XX:XX:XX/aggr_mode
/sys/kernel/debug/ieee80211/phyX/netdev:wlanX/stations/XX:XX:XX:XX:XX:XX/addba
/sys/kernel/debug/ieee80211/phyX/netdev:wlanX/stations/XX:XX:XX:XX:XX:XX/addba_resp
/sys/kernel/debug/ieee80211/phyX/netdev:wlanX/stations/XX:XX:XX:XX:XX:XX/delba
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 2b0a2e0d7c2f12d06575fdc2a0f5cc04b131202d
Author: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
Date: Fri Aug 14 11:13:34 2015 +0300
ath10k: handle 10.4 firmware phyerr event
Header format of 10.4 firmware phyerr event is not alligned
with pre 10.4 firmware. Introduce new wmi handlers to parse
10.4 firmware specific phyerror event header.
With changes covered in this patch, radar detection works on
qca9x0 hw 2.0 which uses 10.4 firmware.
Signed-off-by: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 991adf71a6cd993c3e6a1a0d8ea9f88b2fa51b95
Author: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
Date: Fri Aug 14 11:13:29 2015 +0300
ath10k: refactor phyerr event handlers
Existing phyerr event handlers directly uses phyerr header format
(ie, struct wmi_phyerr and struct wmi_phyerr_event) in the code
exactly on how firmware packs it. This is the problem in 10.4 fw
specific phyerr event handling where it uses different phyerror
header format. Before adding 10.4 specific handler, little bit of
refactor is done in existing phyerr handlers.
Two new abstracted structures (struct wmi_phyerr_ev_hdr_arg and
struct wmi_phyerr_ev_arg) are introduced to remove dependency of using
firmware specific header format in the code. So that firmware specific
phyerror handlers can populate values to abstracted structures and
the following code can use abstracted struct for further operation.
.pull_phyerr_hdr is added newly to pull common phyerr header info
like tsf, buf_len, number of phyerr packed. Existing .pull_phyerr
handler is changed and called to parse every sub phyerrs in the event.
Validated these refactoring on qca988x hw2.0 using fw 10.2.4 version.
Signed-off-by: Raja Mani <rmani@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit f4bbb8290143b61904a082e9c6d69b6633721925
Author: Nicholas Mc Guire <hofrat@xxxxxxxxx>
Date: Thu Aug 13 15:38:31 2015 +0300
wil6210: match wait_for_completion_timeout return type
Return type of wait_for_completion_timeout is unsigned long not int.
As remain is exclusively used for wait_for_completion_timeout here its
type is simply changed to unsigned long.
API conformance testing for completions with coccinelle spatches are being
used to locate API usage inconsistencies:
./drivers/net/wireless/ath/wil6210/wmi.c:827
int return assigned to unsigned long
Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m,
CONFIG_WIL6210=m
Patch is against 4.1-rc3 (localversion-next is -next-20150514)
Signed-off-by: Nicholas Mc Guire <hofrat@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 8674d909fabf49140e266f124af68daa3ac93ab3
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Thu Aug 13 14:10:46 2015 +0200
ath10k: split ap/ibss wep key install process
Apparently it's not safe to install both pairwise
and groupwise keys on AP vdevs as it can cause
traffic to stop working in some multi-vif
(WPA+WEP) cases.
Fixes: ce90b27128c2 ("ath10k: fix multiple key static wep with ibss")
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 01ec8472009c973413d4dc6fb198f0cc40abb9b4
Author: Clemens Gruber <clemens.gruber@xxxxxxxxxxxx>
Date: Thu Jul 23 17:19:02 2015 +0200
pwm-pca9685: Support changing the output frequency
Previously, period_ns and duty_ns were only used to determine the
ratio of ON and OFF time, the default frequency of 200 Hz was never
changed.
The PCA9685 however is capable of changing the PWM output frequency,
which is expected when changing the period.
This patch configures the prescaler accordingly, using the formula
and notes provided in the PCA9685 datasheet.
Bounds checking for the minimum and maximum frequencies, last updated
in revision v.4 of said datasheet, is also added.
The prescaler is only touched if the period changed, because we have to
put the chip into sleep mode to unlock the prescale register.
If it is changed, the PWM output frequency changes for all outputs,
because there is one prescaler per chip. This is documented in the
PCA9685 datasheet and in the comments.
If the duty cycle is not changed at the same time as the period, then
we restart the PWM output using the duty cycle to period ratio from
before the period change.
When using LEDs for example, previously set brightness levels stay the
same when the frequency changes.
Cc: Thierry Reding <thierry.reding@xxxxxxxxx>
Cc: Steffen Trumtrar <s.trumtrar@xxxxxxxxxxxxxx>
Signed-off-by: Clemens Gruber <clemens.gruber@xxxxxxxxxxxx>
Signed-off-by: Thierry Reding <thierry.reding@xxxxxxxxx>
commit 4a627b52e47ee09348773a981f2097f69ff349ee
Author: Clemens Gruber <clemens.gruber@xxxxxxxxxxxx>
Date: Thu Jul 23 17:19:01 2015 +0200
pwm-pca9685: Fix several driver bugs
Problems:
- When duty_ns == period_ns, the full OFF bit was not cleared and the
PWM output of the PCA9685 stayed off.
- When duty_ns == period_ns and the catch-all channel was used, the
ALL_LED_OFF_L register was not cleared.
- The full ON bit was not cleared when setting the OFF time, therefore
the exact OFF time was ignored when setting a duty_ns < period_ns
Solution: Clear both OFF registers when setting full ON and clear the
full ON bit when changing the OFF registers.
Cc: Thierry Reding <thierry.reding@xxxxxxxxx>
Cc: Steffen Trumtrar <s.trumtrar@xxxxxxxxxxxxxx>
Signed-off-by: Clemens Gruber <clemens.gruber@xxxxxxxxxxxx>
Signed-off-by: Thierry Reding <thierry.reding@xxxxxxxxx>
commit 22d109c1bb312dbf321f3d0ab1b0ed94f1a7e304
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Mon Aug 17 08:20:09 2015 +0200
nbd: flags is a u32 variable
The flags variable is used as u32 variable. This patch changes the type
to be u32.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit cad73b2703cff68b140d68221eeecd5a30322b44
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Mon Aug 17 08:20:08 2015 +0200
nbd: Rename functions for clearness of recv/send path
This patch renames functions so that it is clear what the function does.
Otherwise it is not directly understandable what for example 'do_it'
means.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 696697cb50e4b57d4163d59a496ad9e52f6bff8a
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Mon Aug 17 08:20:07 2015 +0200
nbd: Change 'disconnect' to be boolean
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Acked-by: Pavel Machek <pavel@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 30d53d9c11b6c2f71253a2be582969d7e6fa7f10
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Mon Aug 17 08:20:06 2015 +0200
nbd: Add debugfs entries
Add some debugfs files that help to understand the internal state of
NBD. This exports the different sizes, flags, tasks and so on.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 6521d39a64b3f9c3acb0fd25a34cfaf9a40e548e
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Mon Aug 17 08:20:05 2015 +0200
nbd: Remove variable 'pid'
This patch uses nbd->task_recv to determine the value of the previously
used variable 'pid' for sysfs.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit e78273c80b213806ec7c51176ec81e034fe5cb9f
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Mon Aug 17 08:20:04 2015 +0200
nbd: Move clear queue debug message
This message was a warning without a reason. This patch moves it into
nbd_clear_que and transforms it to a debug message.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 193918307f4e66eb6a811f30795991c6f7680b34
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Mon Aug 17 08:20:03 2015 +0200
nbd: Remove 'harderror' and propagate error properly
Instead of a variable 'harderror' we can simply try to correctly
propagate errors to the userspace.
This patch removes the harderror variable and passes errors through
error pointers and nbd_do_it back to the userspace.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Acked-by: Pavel Machek <pavel@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 260bbce403e2ac601b422fd926f48b9924051f92
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Mon Aug 17 08:20:02 2015 +0200
nbd: restructure sock_shutdown
This patch restructures sock_shutdown to avoid having the main code path
in an if block.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Acked-by: Pavel Machek <pavel@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 36e47bee7c9bc7771aad6e972dea92e2324338a4
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Mon Aug 17 08:20:01 2015 +0200
nbd: sock_shutdown, remove conditional lock
Move the conditional lock from sock_shutdown into the surrounding code.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Acked-by: Pavel Machek <pavel@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 7e2893a16d3e71035a38122a77bc55848a29f0e4
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Mon Aug 17 08:20:00 2015 +0200
nbd: Fix timeout detection
At the moment the nbd timeout just detects hanging tcp operations. This
is not enough to detect a hanging or bad connection as expected of a
timeout.
This patch redesigns the timeout detection to include some more cases.
The timeout is now in relation to replies from the server. If the server
does not send replies within the timeout the connection will be shut
down.
The patch adds a continous timer 'timeout_timer' that is setup in one of
two cases:
- The request list is empty and we are sending the first request out to
the server. We want to have a reply within the given timeout,
otherwise we consider the connection to be dead.
- A server response was received. This means the server is still
communicating with us. The timer is reset to the timeout value.
The timer is not stopped if the list becomes empty. It will just trigger
a timeout which will directly leave the handling routine again as the
request list is empty.
The whole patch does not use any additional explicit locking. The
list_empty() calls are safe to be used concurrently. The timer is locked
internally as we just use mod_timer and del_timer_sync().
The patch is based on the idea of Michal Belczyk with a previous
different implementation.
Cc: Michal Belczyk <belczyk@xxxxxxxxxxxxx>
Cc: Hermann Lauer <Hermann.Lauer@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Tested-by: Hermann Lauer <Hermann.Lauer@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit fe0aea7978d25d8df6c128481b8111e76d972657
Author: Jonathan Richardson <jonathar@xxxxxxxxxxxx>
Date: Mon Jun 15 14:21:01 2015 -0700
pwm: kona: Modify settings application sequence
Update the driver so that settings are applied in accordance with the
most recent version of the hardware spec. The revised sequence clears
the trigger bit, waits 400ns, writes settings, sets the trigger bit,
and waits another 400ns. This corrects an issue where occasionally a
requested change was not properly reflected in the PWM output.
Reviewed-by: Arun Ramamurthy <arunrama@xxxxxxxxxxxx>
Reviewed-by: Scott Branden <sbranden@xxxxxxxxxxxx>
Tested-by: Scott Branden <sbranden@xxxxxxxxxxxx>
Reviewed-by: Tim Kryger <tim.kryger@xxxxxxxxx>
Signed-off-by: Jonathan Richardson <jonathar@xxxxxxxxxxxx>
Signed-off-by: Thierry Reding <thierry.reding@xxxxxxxxx>
commit db0fa0cb015794dd19f664933d49c6ce902ec1e1
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Mon Aug 17 08:13:26 2015 -0600
scatterlist: use sg_phys()
Coccinelle cleanup to replace open coded sg to physical address
translations. This is in preparation for introducing scatterlists that
reference __pfn_t.
// sg_phys.cocci: convert usage page_to_phys(sg_page(sg)) to sg_phys(sg)
// usage: make coccicheck COCCI=sg_phys.cocci MODE=patch
virtual patch
@@
struct scatterlist *sg;
@@
- page_to_phys(sg_page(sg)) + sg->offset
+ sg_phys(sg)
@@
struct scatterlist *sg;
@@
- page_to_phys(sg_page(sg))
+ sg_phys(sg) & PAGE_MASK
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 89e2a8404e4415da1edbac6ca4f7332b4a74fae2
Author: Christoph Hellwig <hch@xxxxxx>
Date: Fri Aug 7 18:15:15 2015 +0200
crypto/omap-sham: remove an open coded access to ->page_link
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
[hch: split from a larger patch by Dan]
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Acked-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit da81ed16bdb3bc1bf92e6cb3340915a3204d5ace
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Fri Aug 7 18:15:14 2015 +0200
scatterlist: remove open coded sg_unmark_end instances
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
[hch: split from a larger patch by Dan]
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit c56f6d1270b9fc31144b59106bc8590c2acf4a8e
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Fri Aug 7 18:15:13 2015 +0200
crypto: replace scatterwalk_sg_chain with sg_chain
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
[hch: split from a larger patch by Dan]
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Acked-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 02c4de53add1b799f5663d5e9c8e9a5d9366a507
Author: Christoph Hellwig <hch@xxxxxx>
Date: Fri Aug 7 18:15:12 2015 +0200
target/rd: always chain S/G list
The rd sg lists are never passed to hardware, so use S/G chaining
unonditionally.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 10c95ed9aa2970e05fedb4ac8b3ce1b934dab17b
Author: Christoph Hellwig <hch@xxxxxx>
Date: Fri Aug 7 18:15:11 2015 +0200
scatterlist: allow limited chaining without ARCH_HAS_SG_CHAIN
There are a couple of uses of struct scatterlist that never go to
the dma_map_sg() helper and thus don't care about ARCH_HAS_SG_CHAIN
which indicates that we can map chained S/G list.
The most important one is the crypto code, which currently has
to open code a few helpers to always allow chaining. This patch
removes a few #ifdef ARCH_HAS_SG_CHAIN statements so that we can
switch the crypto code to these common helpers.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 5efb1d5489520ce72232bbc28e9156f0ebddc44e
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:42 2015 +0300
perf tools: Take Intel PT into use
To record an AUX area, the weak function auxtrace_record__init() must be
implemented.
Equally to decode an AUX area, the AUX area tracing type must be added
to the perf_event__process_auxtrace_info() function.
This patch makes those two changes plus hooks up default config for the
intel_pt PMU. Also some brief documentation is provided for using the
tools with intel_pt.
Commiter note:
E.g:
[root@perf4 ~]# dmesg
451 [0.405807] Performance Events: PEBS fmt2+, 16-deep LBR, Broadwell
events, full-width counters, Intel PMU driver.
[root@perf4 ~]# perf --version
perf version 4.1.g53874a
[root@perf4 ~]# perf record -e intel_pt//u -a sleep 10
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.383 MB perf.data ]
[root@perf4 ~]# perf evlist
intel_pt//u
sched:sched_switch
dummy:u
[root@perf4 ~]# perf report --stdio
# To display the perf.data header info, please use
--header/--header-only options.
#
#
# Total Lost Samples: 0
#
# Samples: 0 of event 'intel_pt//u'
# Event count (approx.): 0
#
# Overhead Command Shared Object Symbol
# ........ ....... ............. ......
#
# Samples: 393 of event 'sched:sched_switch'
# Event count (approx.): 393
#
# Overhead Command Shared Object Symbol
# ........ .............. ................ ..............
49.62% swapper [kernel.vmlinux] [k] __schedule
10.69% rcu_sched [kernel.vmlinux] [k] __schedule
6.62% rcuos/0 [kernel.vmlinux] [k] __schedule
5.60% kworker/0:1 [kernel.vmlinux] [k] __schedule
3.56% rcuos/3 [kernel.vmlinux] [k] __schedule
3.05% kworker/u384:2 [kernel.vmlinux] [k] __schedule
2.54% kworker/2:0 [kernel.vmlinux] [k] __schedule
2.54% tuned [kernel.vmlinux] [k] __schedule
<SNIP>
# Samples: 0 of event 'dummy:u'
# Event count (approx.): 0
#
# Overhead Command Shared Object Symbol
# ........ ....... ............. ......
# Samples: 28 of event 'instructions:u'
# Event count (approx.): 5030172
#
# Overhead Command Shared Object Symbol
# ........ .......... ...................
................................
#
21.43% tuned libpython2.7.so.1.0 [.] PyEval_EvalFrameEx
|
---PyEval_EvalFrameEx
|
|--83.33%-- PyEval_EvalCodeEx
| PyEval_EvalFrameEx
| |
| |--60.00%-- PyEval_EvalCodeEx
| | PyEval_EvalFrameEx
| | PyEval_EvalFrameEx
| |
| --40.00%-- PyEval_EvalFrameEx
|
--16.67%-- PyEval_EvalFrameEx
PyEval_EvalCodeEx
PyEval_EvalFrameEx
PyEval_EvalCodeEx
PyEval_EvalFrameEx
PyEval_EvalFrameEx
14.29% tuned libpython2.7.so.1.0 [.] _PyType_Lookup
|
---_PyType_Lookup
_PyObject_GenericGetAttrWithDict
PyEval_EvalFrameEx
PyEval_EvalCodeEx
PyEval_EvalFrameEx
PyEval_EvalCodeEx
PyEval_EvalFrameEx
|
|--75.00%-- PyEval_EvalFrameEx
|
--25.00%-- PyEval_EvalCodeEx
PyEval_EvalFrameEx
PyEval_EvalFrameEx
3.57% irqbalance irqbalance [.] 0x0000000000004038
|
---0x4038
0x4761
0x4761
0x4761
0x49f1
0x2295
3.57% irqbalance libc-2.17.so [.]
__GI_____strtoull_l_internal
|
---__GI_____strtoull_l_internal
0x6f49
0x229a
3.57% irqbalance libc-2.17.so [.] __strchrnul
|
---__strchrnul
vfprintf
__vsprintf_chk
__sprintf_chk
0x2724
0x4038
0x2331
3.57% irqbalance libc-2.17.so [.] __strstr_sse42
|
---__strstr_sse42
0x71e0
0x229f
# And now to some userspace ftrace on uninstrumented binaries 8-) :
# Hand edited to make it a bit more compact, replacing
/home/acme/bin/perf
# with /bin/perf:
[root@perf4 ~]# perf script
perf 8921 [3] 7.310889: 1 branches:u: 0 [unknown]
([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.310889: 1 branches:u: 7fcecadbf25f __GI___ioctl
(/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310889: 1 branches:u: 481694
perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310889: 1 branches:u: 481630
perf_evlist__enable (/bin/perf) => 4816d8 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310889: 1 branches:u: 4816de
perf_evlist__enable (/bin/perf) => 48164f perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310889: 1 branches:u: 481652
perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310889: 1 branches:u: 481684
perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf)
perf 8921 [3] 7.310889: 1 branches:u: 41d250 ioctl@plt
(/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.310889: 1 branches:u: 7fcecadbf255 __GI___ioctl
(/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown])
perf 8921 [3] 7.310890: 1 branches:u: 0 [unknown]
([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.310890: 1 branches:u: 7fcecadbf25f __GI___ioctl
(/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310890: 1 branches:u: 481694
perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310890: 1 branches:u: 481652
perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310890: 1 branches:u: 481684
perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf)
perf 8921 [3] 7.310890: 1 branches:u: 41d250 ioctl@plt
(/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.310890: 1 branches:u: 7fcecadbf255 __GI___ioctl
(/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown])
perf 8921 [3] 7.310893: 1 branches:u: 0 [unknown]
([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.310893: 1 branches:u: 7fcecadbf25f __GI___ioctl
(/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310893: 1 branches:u: 4816a8
perf_evlist__enable (/bin/perf) => 4815f8 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310893: 1 branches:u: 4815fe
perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310893: 1 branches:u: 481652
perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310893: 1 branches:u: 481684
perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf)
perf 8921 [3] 7.310893: 1 branches:u: 41d250 ioctl@plt
(/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.310893: 1 branches:u: 7fcecadbf255 __GI___ioctl
(/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown])
perf 8921 [3] 7.310956: 1 branches:u: 0 [unknown]
([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.310956: 1 branches:u: 7fcecadbf25f __GI___ioctl
(/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310956: 1 branches:u: 481694
perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310956: 1 branches:u: 481630
perf_evlist__enable (/bin/perf) => 4816d8 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310956: 1 branches:u: 4816de
perf_evlist__enable (/bin/perf) => 48164f perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310956: 1 branches:u: 481652
perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310956: 1 branches:u: 481684
perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf)
perf 8921 [3] 7.310956: 1 branches:u: 41d250 ioctl@plt
(/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.310956: 1 branches:u: 7fcecadbf255 __GI___ioctl
(/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown])
perf 8921 [3] 7.310961: 1 branches:u: 0 [unknown]
([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.310961: 1 branches:u: 7fcecadbf25f __GI___ioctl
(/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310961: 1 branches:u: 481694
perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310961: 1 branches:u: 481652
perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310961: 1 branches:u: 481684
perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf)
perf 8921 [3] 7.310961: 1 branches:u: 41d250 ioctl@plt
(/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.310961: 1 branches:u: 7fcecadbf255 __GI___ioctl
(/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown])
perf 8921 [3] 7.310968: 1 branches:u: 0 [unknown]
([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.310968: 1 branches:u: 7fcecadbf25f __GI___ioctl
(/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310968: 1 branches:u: 4816a8
perf_evlist__enable (/bin/perf) => 4815f8 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310968: 1 branches:u: 4815fe
perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310968: 1 branches:u: 481652
perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.310968: 1 branches:u: 481684
perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf)
perf 8921 [3] 7.310968: 1 branches:u: 41d250 ioctl@plt
(/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.310968: 1 branches:u: 7fcecadbf255 __GI___ioctl
(/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown])
perf 8921 [3] 7.311040: 1 branches:u: 0 [unknown]
([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.311040: 1 branches:u: 7fcecadbf25f __GI___ioctl
(/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.311040: 1 branches:u: 481694
perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.311040: 1 branches:u: 481630
perf_evlist__enable (/bin/perf) => 4816d8 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.311040: 1 branches:u: 4816de
perf_evlist__enable (/bin/perf) => 48164f perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.311040: 1 branches:u: 481652
perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.311040: 1 branches:u: 481684
perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf)
perf 8921 [3] 7.311040: 1 branches:u: 41d250 ioctl@plt
(/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.311040: 1 branches:u: 7fcecadbf255 __GI___ioctl
(/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown])
perf 8921 [3] 7.311046: 1 branches:u: 0 [unknown]
([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.311046: 1 branches:u: 7fcecadbf25f __GI___ioctl
(/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.311046: 1 branches:u: 481694
perf_evlist__enable (/bin/perf) => 481614 perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.311046: 1 branches:u: 481652
perf_evlist__enable (/bin/perf) => 48165f perf_evlist__enable (/bin/perf)
perf 8921 [3] 7.311046: 1 branches:u: 481684
perf_evlist__enable (/bin/perf) => 41d250 ioctl@plt (/bin/perf)
perf 8921 [3] 7.311046: 1 branches:u: 41d250 ioctl@plt
(/bin/perf) => 7fcecadbf250 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.311046: 1 branches:u: 7fcecadbf255 __GI___ioctl
(/usr/lib64/libc-2.17.so) => 0 [unknown] ([unknown])
perf 8921 [3] 7.311050: 1 branches:u: 0 [unknown]
([unknown]) => 7fcecadbf257 __GI___ioctl (/usr/lib64/libc-2.17.so)
perf 8921 [3] 7.311050: 1 branches:u: 7fcecadbf25f __GI___ioctl
(/usr/lib64/libc-2.17.so) => 481689 perf_evlist__enable (/bin/perf)
:
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-8-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 90e457f7be0870052724b2d9c2c106e5847f2c19
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:41 2015 +0300
perf tools: Add Intel PT support
Add support for Intel Processor Trace.
Intel PT support fits within the new auxtrace infrastructure. Recording
is supporting by identifying the Intel PT PMU, parsing options and
setting up events.
Decoding is supported by queuing up trace data by cpu or thread and then
decoding synchronously delivering synthesized event samples into the
session processing for tools to consume.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-7-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit f4aa081949e7b6b01e711229c5a47ee3482a169c
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:40 2015 +0300
perf tools: Add Intel PT decoder
Add support for decoding an Intel Processor Trace.
Intel PT trace data must be 'decoded' which involves walking the object
code and matching the trace data packets.
The decoder requests a buffer of binary data via a get_trace()
call-back, which it decodes using instruction information which it gets
via another call-back walk_insn().
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-6-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 53af92849d793662e943d61bb16f7d3eb2d7a072
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:39 2015 +0300
perf tools: Add Intel PT log
Add a facility to log Intel Processor Trace decoding. The log is
intended for debugging purposes only.
The log file name is "intel_pt.log" and is opened in the current
directory. The log contains a record of all packets and instructions
decoded and can get very large (10 MB would be a small one).
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-5-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 237fae79f50d2d0c7bdeb039bc2c87fc6d52c7e7
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Thu Aug 13 10:14:55 2015 +0300
perf tools: Add Intel PT instruction decoder
Add support for decoding instructions for Intel Processor Trace. The
kernel x86 instruction decoder is copied for this.
This essentially provides intel_pt_get_insn() which takes a binary
buffer, uses the kernel's x86 instruction decoder to get details of the
instruction and then categorizes it for consumption by an Intel PT
decoder.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439450095-30122-1-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit a4e925905c98fb83538c164878946d77d0df1433
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:37 2015 +0300
perf tools: Add Intel PT packet decoder
Add support for decoding Intel Processor Trace packets.
This essentially provides intel_pt_get_packet() which takes a buffer of
binary data and returns the decoded packet.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-3-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 55ea4ab4260f42b824450faa47fe4d129fce0918
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Jul 17 19:33:36 2015 +0300
perf auxtrace: Add Intel PT as an AUX area tracing type
Add the Intel Processor Trace type constant PERF_AUXTRACE_INTEL_PT.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1437150840-31811-2-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 835095653ebfe4b16596a30db1c4e7c414014b5e
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Thu Aug 13 12:40:56 2015 +0300
perf tools: Add a helper function to probe whether cpu-wide tracing is
possible
Add a helper function to probe whether cpu-wide tracing is possible.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439458857-30636-2-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit f0ee3b467ab7a74ffce75190259eb59dbf30ecad
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Aug 14 15:50:06 2015 +0300
perf symbols: Fix annotation of vdso
Older kernels attempt to prelink vdso to its virtual address. To permit
annotation using objdump, the map__rip_2objdump() calculation must
result in that same address which we can infer from the start and offset
of the text section.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
Link:
http://lkml.kernel.org/r/1439556606-11297-1-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 3d7245b0946c13a97e3a10213b8fd0152972a0d5
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Fri Aug 14 10:11:34 2015 +0300
perf annotate: Fix 32-bit compilation error in util/annotate.c
Fix the following 32-bit compilation errors:
util/annotate.c: In function â??addr_map_symbol__account_cyclesâ??:
util/annotate.c:643:3: error: format â??%lxâ?? expects argument of type
â??long unsigned intâ??, but argument 4 has type â??u64â?? [-Werror=format=]
pr_debug2("BB with bad start: addr %lx start %lx sym %lx saddr %lx\n",
^
util/annotate.c:643:3: error: format â??%lxâ?? expects argument of type
â??long unsigned intâ??, but argument 5 has type â??u64â?? [-Werror=format=]
util/annotate.c:643:3: error: format â??%lxâ?? expects argument of type
â??long unsigned intâ??, but argument 6 has type â??u64â?? [-Werror=format=]
These were introduced by the patch:
"perf report: Add infrastructure for a cycles histogram"
Also change the 'saddr' variable from 'unsigned long' to 'u64'
noting that theoretically we could be processing data captured
on a 64-bit machine but processing it on a 32-bit machine.
Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Fixes: d4957633bf9d ("perf report: Add infrastructure for a cycles
histogram")
Link:
http://lkml.kernel.org/r/1439536294-18241-1-git-send-email-adrian.hunter@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 09c14459f2622ccacdff13461c5c864bff80cc07
Author: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Date: Fri Jul 10 15:28:10 2015 +0900
pwm: pca9685: Drop owner assignment
i2c_driver does not need to set an owner because i2c_register_driver()
will set it.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Thierry Reding <thierry.reding@xxxxxxxxx>
commit 21df89a5667de5fcd061753d3833e7dfcf5509d3
Author: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Date: Fri Aug 7 15:30:44 2015 +0800
drm/amdgpu: fix one warning message
In function 'amdgpu_uvd_cs_pass2':
warning: 'min_ctx_size' may be used uninitialized in this function
buf_sizes[0x4] = min_ctx_size;
^
note: 'min_ctx_size' was declared here
unsigned image_size, tmp, min_dpb_size, num_dpb_buffer, min_ctx_size;
^
Signed-off-by: Jammy Zhou <Jammy.Zhou@xxxxxxx>
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 7322d6c98dd214252bd697f8dde64a3576977fab
Author: Jiri Olsa <jolsa@xxxxxxxxxx>
Date: Thu Aug 13 09:17:24 2015 +0200
perf script: Initialize callchain_param.record_mode
Milian Wolff reported non functional DWARF unwind under perf script. The
reason is that perf script does not properly configure
callchain_param.record_mode, which is needed by unwind code.
Stealing the code from report and leaving the place for more
initialization code in a hope we could merge it with
report__setup_sample_type one day.
Reported-by: Milian Wolff <mail@xxxxxxxxxx>
Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Tested-by: Milian Wolff <milian.wolff@xxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Link: http://lkml.kernel.org/r/20150813071724.GA21322@xxxxxxxxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 9c8fb548fb242b462657151eb9c5dd6b6def5b62
Author: Vasanthakumar Thiagarajan <vthiagar@xxxxxxxxxxxxxxxx>
Date: Wed Aug 12 16:24:05 2015 +0530
ath10k: add cycle/rx_clear counters frequency to hw_params
The frequency at which cycle/rx_clear counters are running might
change from one target type to another. QCA99X0 is running the
counters at 150Mhz while QCA9888X and QCA6174 are running at 88Mhz.
Add a new entry to hw_params to store the target specific frequency
and use it in msecs conversion. This change fixes inconsistent
channel active/busy time.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 3d2a2e293e9578f59b182c8e5ad7b54ec4e28318
Author: Vasanthakumar Thiagarajan <vthiagar@xxxxxxxxxxxxxxxx>
Date: Wed Aug 12 16:24:04 2015 +0530
ath10k: fix invalid survey reporting for QCA99X0
There are three WMI_CHAN_INFO events reported per channel
in QCA99X0 firmware. First one is a notification at the begining
of the channel dwell time with cmd_flag as CHAN_INFO_START(cmd_flag = 0),
second one is a notification at the end of the dwell time with cmd_flag
CHAN_INFO_PRE_COMPLETE (cmd_flag = 2) and the third is the indication
with CHAN_INFO_COMPLETE (cmd_flag = 1) which is the last indication for
the channel. Since there is a new state before the completion, the handler
is to fixed so that the counts are deducted from the ones reported with
CHAN_INFO_START rather than the ones reported with CHAN_INFO_PRE_COMPLETE.
Without this fix there will be lots of 0 msecs reported as active
and busy time.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit d0465208206c7c6859afffc405570c1921e2d896
Author: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Thu Jul 23 10:53:51 2015 -0400
drm/radeon/dce6: assign different audio pins to each encoder
This allows you to send different audio to each audio capable
display.
Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
commit 6d2d51ecfff13f5f6ffc476dccf4d5b2668072eb
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Fri Aug 7 09:08:21 2015 +0200
ath10k: wake up queue upon vif creation
Vif's vdev_id is used as queue number. However due
to the tx pausing design in ath10k it was possible
for a new interface to be created with its tx
queue stopped (via ieee80211_stop_queues). This
could in turn leave the interface inoperable until
ath10k_mac_tx_unlock() was called.
This problem only affected multi-vif scenarios when
new interfaces were created some time later after
other interfaces have been running for some time
and had Tx queue full at some point prior.
Possible manifestation of the bug was
authentication timeout for a client vif.
Fixes: 96d828d45e16 ("ath10k: rework tx queue locking")
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 6e146f5c41da7e9601fe92fb4d06b45431dbf95b
Author: Thierry Reding <thierry.reding@xxxxxxxxx>
Date: Mon Jul 27 12:00:23 2015 +0200
pwm: Add to device-drivers documentation
Add a short introductory text along with API documentation generated
from kerneldoc comments for the PWM framework.
Signed-off-by: Thierry Reding <thierry.reding@xxxxxxxxx>
commit 048838027667872a75d3af40c51a22088bafd968
Author: Thierry Reding <thierry.reding@xxxxxxxxx>
Date: Mon Jul 27 11:58:32 2015 +0200
pwm: Clean up kerneldoc
Clean up kerneldoc in preparation for including the PWM documentation in
DocBook.
Signed-off-by: Thierry Reding <thierry.reding@xxxxxxxxx>
commit 6bc7064a69fc5b1f774771ea9e2c50e497311766
Author: Thierry Reding <thierry.reding@xxxxxxxxx>
Date: Mon Jul 27 11:57:28 2015 +0200
pwm: Remove useless whitespace
Remove useless tabs used for padding in structure definitions as well as
some blank lines.
Signed-off-by: Thierry Reding <thierry.reding@xxxxxxxxx>
commit 3a73d1a6f22bf13044056543ad43b2a304ee0022
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Thu Aug 6 14:46:54 2015 +0200
ath10k: wake up offchannel queue properly
Once HTT Tx queue got full offchannel queue was
stopped and never woken up again. This broke, e.g.
P2P. This could be reproduced after running a lot
of traffic enough to saturate 100% of the driver
Tx queue and then trying to send offchannel
traffic.
Fixes: 96d828d45e16 ("ath10k: rework tx queue locking")
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit a0a8bcf4670c2c696e6e83742539a5e0dd7a62d6
Author: Grygorii Strashko <grygorii.strashko@xxxxxx>
Date: Mon Aug 17 15:35:23 2015 +0300
gpiolib: irqchip: use different lockdep class for each gpio irqchip
Since IRQ chip helpers were introduced drivers lose ability to
register separate lockdep classes for each registered GPIO IRQ
chip and the gpiolib now is using shared lockdep class for
all GPIO IRQ chips (gpiochip_irq_lock_class).
As result, lockdep will produce warning when there are min two
stacked GPIO chips and all of them are interrupt controllers.
HW configuration which generates lockdep warning (TI dra7-evm):
[SOC GPIO bankA.gpioX]
<- irq - [pcf875x.gpioY]
<- irq - DevZ.enable_irq_wake(pcf_gpioY_irq);
The issue was reported in [1] and discussed [2].
=============================================
[ INFO: possible recursive locking detected ]
4.2.0-rc6-00013-g5d050ed-dirty #55 Not tainted
---------------------------------------------
sh/63 is trying to acquire lock:
(class){......}, at: [<c009b91c>] __irq_get_desc_lock+0x50/0x94
but task is already holding lock:
(class){......}, at: [<c009b91c>] __irq_get_desc_lock+0x50/0x94
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(class);
lock(class);
*** DEADLOCK ***
May be due to missing lock nesting notation
7 locks held by sh/63:
#0: (sb_writers#4){.+.+.+}, at: [<c016bbb8>] vfs_write+0x13c/0x164
#1: (&of->mutex){+.+.+.}, at: [<c01debf4>] kernfs_fop_write+0x4c/0x1a0
#2: (s_active#36){.+.+.+}, at: [<c01debfc>] kernfs_fop_write+0x54/0x1a0
#3: (pm_mutex){+.+.+.}, at: [<c009758c>] pm_suspend+0xec/0x4c4
#4: (&dev->mutex){......}, at: [<c03f77f8>] __device_suspend+0xd4/0x398
#5: (&gpio->lock){+.+.+.}, at: [<c009b940>]
__irq_get_desc_lock+0x74/0x94
#6: (class){......}, at: [<c009b91c>] __irq_get_desc_lock+0x50/0x94
stack backtrace:
CPU: 0 PID: 63 Comm: sh Not tainted 4.2.0-rc6-00013-g5d050ed-dirty #55
Hardware name: Generic DRA74X (Flattened Device Tree)
[<c0016e24>] (unwind_backtrace) from [<c0013338>] (show_stack+0x10/0x14)
[<c0013338>] (show_stack) from [<c05f6b24>] (dump_stack+0x84/0x9c)
[<c05f6b24>] (dump_stack) from [<c00903f4>] (__lock_acquire+0x19c0/0x1e20)
[<c00903f4>] (__lock_acquire) from [<c0091098>] (lock_acquire+0xa8/0x128)
[<c0091098>] (lock_acquire) from [<c05fd61c>]
(_raw_spin_lock_irqsave+0x38/0x4c)
[<c05fd61c>] (_raw_spin_lock_irqsave) from [<c009b91c>]
(__irq_get_desc_lock+0x50/0x94)
[<c009b91c>] (__irq_get_desc_lock) from [<c009c4f4>]
(irq_set_irq_wake+0x20/0xfc)
[<c009c4f4>] (irq_set_irq_wake) from [<c0393ac4>]
(pcf857x_irq_set_wake+0x24/0x54)
[<c0393ac4>] (pcf857x_irq_set_wake) from [<c009c560>]
(irq_set_irq_wake+0x8c/0xfc)
[<c009c560>] (irq_set_irq_wake) from [<c04a02ac>]
(gpio_keys_suspend+0x70/0xd4)
[<c04a02ac>] (gpio_keys_suspend) from [<c03f6a00>]
(dpm_run_callback+0x50/0x124)
[<c03f6a00>] (dpm_run_callback) from [<c03f7830>]
(__device_suspend+0x10c/0x398)
[<c03f7830>] (__device_suspend) from [<c03f90f0>]
(dpm_suspend+0x134/0x2f4)
[<c03f90f0>] (dpm_suspend) from [<c0096e20>]
(suspend_devices_and_enter+0xa8/0x728)
[<c0096e20>] (suspend_devices_and_enter) from [<c00977cc>]
(pm_suspend+0x32c/0x4c4)
[<c00977cc>] (pm_suspend) from [<c0096060>] (state_store+0x64/0xb8)
[<c0096060>] (state_store) from [<c01dec64>] (kernfs_fop_write+0xbc/0x1a0)
[<c01dec64>] (kernfs_fop_write) from [<c016b280>] (__vfs_write+0x20/0xd8)
[<c016b280>] (__vfs_write) from [<c016bb0c>] (vfs_write+0x90/0x164)
[<c016bb0c>] (vfs_write) from [<c016c330>] (SyS_write+0x44/0x9c)
[<c016c330>] (SyS_write) from [<c000f500>] (ret_fast_syscall+0x0/0x54)
Lets fix it by using separate lockdep class for each registered GPIO
IRQ Chip. This is done by wrapping gpiochip_irqchip_add call into macros.
The implementation of this patch inspired by solution done by Nicolas
Boichat for regmap [3]
[1] http://www.spinics.net/lists/linux-gpio/msg05844.html
[2] http://www.spinics.net/lists/linux-gpio/msg06021.html
[3] http://www.spinics.net/lists/arm-kernel/msg429834.html
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: Roger Quadros <rogerq@xxxxxx>
Reported-by: Roger Quadros <rogerq@xxxxxx>
Tested-by: Roger Quadros <rogerq@xxxxxx>
Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit d5cf00c7ac2bf6b9d10c393b1e3b7551176c7f40
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Mon Aug 17 15:06:52 2015 +0200
ALSA: hda/eld - Add const to possible places
Similar like the previous fix to hda_proc.c, adding const prefix will
save our world (a little bit).
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 1d260d7b3b03f96dfbc9781ec046edc729220f09
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Mon Aug 17 14:57:32 2015 +0200
ALSA: hda/proc - Fix racy string access for power states
The power states in a proc file are printed in a racy manner on a
single static string buffer. Fix it by calling snd_iprintf() directly
for each state instead of processing on a temporary buffer.
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit cc75cdfe1d64585d82013632b81199b1e9f1da97
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Mon Aug 17 14:52:51 2015 +0200
ALSA: hda/proc - Add const to possible places
Many arrays in hda_proc.c are string arrays that should be covered by
const prefix for increasing the safety and reducing the size.
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit d2c6b63df5c143ea1535398e0874432277285765
Author: Takashi Iwai <tiwai@xxxxxxx>
Date: Mon Aug 17 14:44:24 2015 +0200
ALSA: hda - Make some helper functions local
A few helper functions to convert the pin information to strings have
been exported with assumption that they were used by other drivers.
But they are referred only in the proc interface in the end.
Let's make them local so that we can get rid of a few exports.
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit dd43c4e92fbb135dcbf02845578db60be56a453a
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 17 20:39:40 2015 +0800
crypto: null - Add missing Kconfig tristate for NULL2
This patch adds a missing tristate statement to Kconfig for the
new CRYPTO_NULL2 option.
Fixes: 149a39717dcc ("crypto: aead - Add type-safe geniv init/exit
helpers")
Reported-by: Stephan Mueller <smueller@xxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 54e466fde4816455cc5b1893b73c2f3c7ca52e49
Merge: 2c6625c 11cec15
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Mon Aug 17 14:16:59 2015 +0200
Merge tag 'tegra-for-4.3-iommu' of
git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/tegra
iommu/tegra-smmu: Changes for v4.3-rc1
A bunch of improvements by Russell King, along with a fix to restore
display support when using the SMMU. This was due to the SMMU driver
writing the wrong value of active TLB lines, effectively disabling the
TLB and causing massive underflows on the display controller because
of the latency introduced by the SMMU.
commit 9129c26da1711aba1e6295c28de8814301869732
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 17 18:04:17 2015 +0800
crypto: nx - Add forward declaration for struct crypto_aead
The file nx.h has function prototypes that use struct crypto_aead.
However, as crypto/aead.h is not included we don't have a definition
for it. This patch adds a forward declaration to fix this.
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit a26bcb04861db3061bb7db11ce905aa037111f81
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 17 17:45:27 2015 +0800
crypto: null - Use NULL2 in Makefile
The Kconfig option NULL2 has been added as CRYPTO_MANAGER now
depends indirectly on NULL2. However, the Makefile was not updated
to use the new option, resulting in potential build failures when
only NULL2 is enabled.
Fixes: 149a39717dcc ("crypto: aead - Add type-safe geniv init/exit
helpers")
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 57e104864bc4874a36796fd222d8d084dbf90b9b
Author: Addy Ke <addy.ke@xxxxxxxxxxxxxx>
Date: Tue Aug 11 01:27:18 2015 +0900
mmc: dw_mmc: add quirk for broken data transfer over scheme
This patch add a new quirk to add a s/w timer to notify the driver
to terminate current transfer and report a data timeout to the core,
if DTO interrupt does NOT come within the given time.
dw_mmc call mmc_request_done func to finish transfer depends on
DTO interrupt. If DTO interrupt does not come in sending data state,
the current transfer will be blocked.
We got the reply from synopsys:
There are two counters but both use the same value of [31:8] bits.
Data timeout counter doesn't wait for stop clock and you should get
DRTO even when the clock is not stopped.
Host Starvation timeout counter is triggered with stop clock condition.
This means that host should get DRTO and DTO interrupt.
But this case really exists, when driver reads tuning data from
card on RK3288-pink2 board. I measured waveforms by oscilloscope
and found that card clock was always on and data lines were always
holded high level in sending data state.
There are two possibility that data over interrupt doesn't come in
reading data state on RK3X SoCs:
- get command done interrupt, but doesn't get any data-related interrupt.
- get data error interrupt, but doesn't get data over interrupt.
Signed-off-by: Addy Ke <addy.ke@xxxxxxxxxxxxxx>
Signed-off-by: Heiko Stuebner <heiko@xxxxxxxxx>
Signed-off-by: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
commit 40a7a463a80ae9e3b85a9fd85cf704fb9ac28b6f
Author: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
Date: Thu Aug 6 16:23:26 2015 +0900
mmc: dw_mmc: print the message for deprecated property
supports-highspeed was deprecated.
If someone use it, we need to notice information for it.
Signed-off-by: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
commit 2b708df2b3edf6e91a4c8d89e7aedb0f861d0e41
Author: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
Date: Thu Aug 6 16:23:25 2015 +0900
mmc: dw_mmc: remove the unused blk_setting
"blk_setting" doesn't use anywhere.
Signed-off-by: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
commit 9e747b7e4af090a4974005f3064963026f519fcc
Author: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
Date: Thu Aug 6 16:23:24 2015 +0900
mmc: dw_mmc: fix the wrong condition checking
When num-slots is lower than 1, it's right that should be returned
-ENODEV.
Signed-off-by: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
commit 575c319dfe872fc8bf1d57b244fb40f497ab3a47
Author: Heiko Stuebner <heiko@xxxxxxxxx>
Date: Mon Aug 3 17:04:10 2015 +0200
mmc: dw_mmc: fix pio mode when internal dmac is enabled
The dw_mci_init_dma() may decide to not use dma, but pio instead, caused
by things like wrong dma settings in the system.
Till now the code dw_mci_init_slot() always assumed that dma is available
when CONFIG_MMC_DW_IDMAC was defined, ignoring the host->use_dma var
set during dma init.
So when now the dma init failed for whatever reason, the transfer sizes
would still be set for dma transfers, especially including the maximum
block-count calculated from host->ring_size and resulting in a
[ 4.991109] ------------[ cut here ]------------
[ 4.991111] kernel BUG at drivers/mmc/core/core.c:256!
[ 4.991113] Internal error: Oops - BUG: 0 [#1] SMP ARM
because host->ring_size is 0 in this case and the slot init code uses
the wrong code to calculate the values.
Fix this by selecting the correct calculations using the host->use_dma
variable instead of the CONFIG_MMC_DW_IDMAC config option.
Signed-off-by: Heiko Stuebner <heiko@xxxxxxxxx>
Signed-off-by: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
commit 0e3a22c044478b6114a767af4a765c0e33eddd53
Author: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>
Date: Mon Aug 3 15:07:21 2015 +0800
mmc: dw_mmc: Fix coding style issues
This patch fixes the following issues reported by checkpatch.pl:
- use -EINVAL instead of -ENOSYS, to fix warning message:
"ENOSYS means 'invalid syscall nr' and nothing else"
- split lines whose length is greater than 80 characters
- avoid quoted string split across lines
- use min_t instead of min, to fix warning message:
"min() should probably be min_t(int, cnt, host->part_buf_count)"
- fix missing a blank line after declarations
Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>
Signed-off-by: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
commit 5959b32e3636f9bfe3f869d1e440bc4a4d660965
Author: Alexey Brodkin <Alexey.Brodkin@xxxxxxxxxxxx>
Date: Thu Jun 25 11:25:07 2015 +0300
mmc: dw_mmc: handle data blocks > than 4kB if IDMAC is used
As per DW MobileStorage databook "each descriptor can transfer up to 4kB
of data in chained mode", moreover buffer size that is put in "des1" is
limited to 13 bits, i.e. for example on attempt to
IDMAC_SET_BUFFER1_SIZE(desc, 8192) size value that's effectively written
will be 0.
On the platform with 8kB PAGE_SIZE I see dw_mmc gets data blocks in
SG-list of 8kB size and that leads to unpredictable behavior of the
SD/MMC controller.
In particular on write to FAT partition of SD-card the controller will
stuck in the middle of DMA transaction.
Solution to the problem is simple - we need to pass large (> 4kB) data
buffers to the controller via multiple descriptors. And that's what
that change does.
What's interesting I did try original driver on same platform but
configured with 4kB PAGE_SIZE and may confirm that data blocks passed
in SG-list to dw_mmc never exeed 4kB limit - that explains why nobody
ever faced a problem I did.
Signed-off-by: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
Cc: Seungwon Jeon <tgih.jun@xxxxxxxxxxx>
Cc: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Cc: arc-linux-dev@xxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Jaehoon Chung <jh80.chung@xxxxxxxxxxx>
commit 7d70d476d0112b44bf93747934ff089c50549e6d
Author: Yangbo Lu <yangbo.lu@xxxxxxxxxxxxx>
Date: Fri Jul 10 11:44:03 2015 +0800
mmc: block: add fixup of broken CMD23 for Sandisk card
Some Sandisk cards(such as "SDMB-32" and "SDM032" cards)
can't support CMD23, and would generate CMD timeout. So add
FIX-UP for these two types Sandisk cards.
Error log:
mmcblk0: timed out sending SET_BLOCK_COUNT command, card status 0x400900
mmcblk0: timed out sending SET_BLOCK_COUNT command, card status 0x400900
mmcblk0: timed out sending SET_BLOCK_COUNT command, card status 0x400900
end_request: I/O error, dev mmcblk0, sector 0
Buffer I/O error on device mmcblk0, logical block 0
mmcblk0: timed out sending SET_BLOCK_COUNT command, card status 0x400900
Signed-off-by: Yangbo Lu <yangbo.lu@xxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 67b589a2ebe3f9705e8a70275cedec78447f803a
Author: Yangbo Lu <yangbo.lu@xxxxxxxxxxxxx>
Date: Fri Jul 10 11:42:37 2015 +0800
mmc: sdhci-esdhc: add default quirk SDHCI_QUIRK_NO_HISPD_BIT
eSDHC supports high speed mode, but has no enabling bit for it.
Add this quirk to avoid writing to eSDHC_PROCTL[DTW] by mistake.
Signed-off-by: Yangbo Lu <yangbo.lu@xxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit f13e5b9f3c625916d7658ba526574a5d24e4d664
Author: Yangbo Lu <yangbo.lu@xxxxxxxxxxxxx>
Date: Fri Jul 10 11:36:45 2015 +0800
mmc: sdio: avoid using NULL sdio_irq_thread pointer
For Freescale QorIQ LS1021AQDS board, there is a SDIO interrupt
in the process of resume without inserting SD adapter because of
some unknown issue. But the driver doesn't assign sdio_irq_thread
pointer. This will block the resume of kernel. This patch is used
to avoid using NULL sdio_irq_thread pointer.
Signed-off-by: Yangbo Lu <yangbo.lu@xxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 4c06654c47ee2ff5308b7e89994225ff81b48ef2
Author: Andreas Fenkart <afenkart@xxxxxxxxx>
Date: Tue Jul 7 20:38:44 2015 +0200
mmc: omap_hsmmc: regulator automatically released by devm
Signed-off-by: Andreas Fenkart <afenkart@xxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit f7f0f03506d00fc2939a8625ed141c2dda568fad
Author: Andreas Fenkart <afenkart@xxxxxxxxx>
Date: Tue Jul 7 20:38:43 2015 +0200
mmc: omap_hsmmc: call omap_hsmmc_set_power directly
If no pdata.set_power was set by the platform code, the driver
was updating pdata with its own fallback function. This is a no-no
since pdata shall be read-only.
This patch pushes the check 'pdata->set_power != NULL' down into
the fallback functions. If pdata.set_power is really set, it calls them
and exits, otherwise the fallback code is used.
Signed-off-by: Andreas Fenkart <afenkart@xxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit c21e678b256baec428662704138d85cfc593abf4
Author: Andreas Fenkart <afenkart@xxxxxxxxx>
Date: Tue Jul 7 19:53:10 2015 +0200
Documentation: dt: update ti,am33xx-hsmmc swakeup workaround
Before 5b83b2234be6733cf the driver was hard coding the wakeup irq to
be active low. The generic pm wakeirq does not override the active
high/low parameter, hence it must be specified correctly in the
device tree.
Mind that SDIO IRQ is active low as defined in the SDIO specification
Signed-off-by: Andreas Fenkart <afenkart@xxxxxxxxx>
Acked-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 135b0a284d9c2bcfb64a5f7d90c439ede8bc5e06
Author: Ivan T. Ivanov <ivan.ivanov@xxxxxxxxxx>
Date: Mon Jul 6 15:16:21 2015 +0300
mmc: sdhci: properly check card present state when quirk NO_CARD_NO_RESET
is set
Controller could have both NO_CARD_NO_RESET and BROKEN_CARD_DETECTION
quirks set. Use sdhci_do_get_cd() when applying NO_CARD_NO_RESET, which
properly check for BROKEN_CARD_DETECTION quirk.
Signed-off-by: Ivan T. Ivanov <ivan.ivanov@xxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit c31d22eb335d4e3d2016135038fac8daaa9708d6
Author: Ivan T. Ivanov <ivan.ivanov@xxxxxxxxxx>
Date: Mon Jul 6 15:16:20 2015 +0300
mmc: sdhci: don't use card state polling when CD GPIO is defined
There is no reason to use polling for card detection state change when
drivers are using dedicated GPIO for this. Don't poll in this case.
Signed-off-by: Ivan T. Ivanov <ivan.ivanov@xxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 88af56552b121295ba905db2523b1622fb4fc1e4
Author: Ivan T. Ivanov <ivan.ivanov@xxxxxxxxxx>
Date: Mon Jul 6 15:16:19 2015 +0300
mmc: sdhci: let GPIO based card detection have higher precedence
Controller could have BROKEN_CARD_DETECTION quirk set, but drivers
could use GPIO to detect card present state. Let, when defined, GPIO
take precedence, so drivers could properly detect card state and not
use polling.
Signed-off-by: Ivan T. Ivanov <ivan.ivanov@xxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 951b8c875ac905aa9d348c825c380e7ce66c0f62
Author: Ivan T. Ivanov <ivan.ivanov@xxxxxxxxxx>
Date: Mon Jul 6 14:53:38 2015 +0300
mmc: sdhci-msm: Boost controller core clock
Ensure SDCC is working with maximum clock otherwise card
detection could be extremely slow, up to 7 seconds.
Signed-off-by: Ivan T. Ivanov <ivan.ivanov@xxxxxxxxxx>
Reviewed-by: Georgi Djakov <georgi.djakov@xxxxxxxxxx>
Acked-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 829b6962f7e3cfc06f7c5c26269fd47ad48cf503
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Wed Jun 24 14:32:21 2015 +0300
mmc: block: don't use parameter prefix if built as module
It's excessive to use prefix for the parameters when you do
modprobe mmc-block mmcblk.perdev_minors=16
Make this available only for built-in case.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 8292adc6ba1d59fa227bcc43cec2ce207cbb588c
Author: Fabian Frederick <fabf@xxxxxxxxx>
Date: Tue Jun 16 21:15:15 2015 +0200
mmc: omap: use for_each_sg() for scatterlist parsing
See Documentation/DMA-API.txt - Part Id
Signed-off-by: Fabian Frederick <fabf@xxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 2d532d458b43ea273632bf1cbc56c040a4b40898
Author: Suneel Garapati <suneel.garapati@xxxxxxxxxx>
Date: Tue Jun 9 13:01:51 2015 +0530
mmc: sdhci-of-arasan: add quirks for broken clock base
adding SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN,SDHCI_QUIRK2_PRESET_VALUE_BROKEN
flags for arasan sdhc.
Signed-off-by: Suneel Garapati <suneel.garapati@xxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit d1955c3a9a1d89c53c9e7ce3b87799f8db1855c1
Author: Suneel Garapati <suneel.garapati@xxxxxxxxxx>
Date: Tue Jun 9 13:01:50 2015 +0530
mmc: sdhci: add quirk SDHCI_QUIRK_CLOCK_DIV_ZERO_BROKEN
adds quirk for controllers whose clock divider zero is broken,
sdhci_set_clock function will incorporate this modification.
Signed-off-by: Suneel Garapati <suneel.garapati@xxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 6464b71409511939efce1ae4fb4ec6e3483b11b2
Author: Daniel Mack <zonque@xxxxxxxxx>
Date: Sat Jun 6 23:15:22 2015 +0200
mmc: pxamci: switch over to dmaengine use
Switch over pxamci to dmaengine. This prepares the devicetree full
support of pxamci.
This was successfully tested on a PXA3xx board, as well as PXA27x.
Signed-off-by: Daniel Mack <zonque@xxxxxxxxx>
[adapted to pxa-dma]
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 642c28ab86f7666d2ac62a0dc391b4c3121f1d6e
Author: David Jander <david@xxxxxxxxxxx>
Date: Tue Jun 23 11:43:52 2015 +0200
mmc: core: Optimize case for exactly one erase-group budget
In the (not so unlikely) case that the mmc controller timeout budget is
enough for exactly one erase-group, the simplification of allowing one
sector has an enormous performance penalty. We optimize this special case
by introducing a flag that prohibits erase-group boundary crossing, so
that we can allow trimming more than one sector at a time.
Signed-off-by: David Jander <david@xxxxxxxxxxx>
Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
commit 1dc042885456dff457d0b758b69209dcafa688ec
Author: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>
Date: Wed Aug 12 11:30:59 2015 +0300
dmaengine: Make __dma_request_slave_channel_compat() name argument
constant
Inline function __dma_request_slave_channel_compat() doesn't modify "name"
argument but passes it to dma_request_slave_channel() which already takes
it as a constant.
Signed-off-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 0e95fb9ceb82433f4f910d1cece0f4d6b0c25c51
Author: Robert Jarzmik <rj@xxxxxxxxxxxxxx>
Date: Tue Aug 11 22:16:32 2015 +0200
dmaengine: pxa_dma: don't use config direction parameter
Don't use the direction passed in the configuration, and rely on each
transfer's direction to prepare the transfers. This will enable
future removal of direction parameter from dma_slave_config.
Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 272420214d261e97f08a4c555defb3924de06ae8
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Wed Aug 5 08:42:05 2015 +0530
dmaengine: Add DMA_CTRL_REUSE
This adds new descriptor flag for reusing a descriptor by submitting
multiple times by a client, for example video buffer.
Add helper APIs for this as well
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Acked-by:Robert Jarzmik <robert.jarzmik@xxxxxxx>
commit 7fa25937542358bfa01ef5c5a1e9a00bd164c000
Author: Alexandre Courbot <acourbot@xxxxxxxxxx>
Date: Mon Aug 17 17:23:52 2015 +0900
gpio/grgpio: fix deadlock in grgpio_irq_unmap()
As reported by Alexey Khoroshilov:
grgpio_irq_unmap() code looks quite suspicious regarding usage of
priv->bgc.lock spinlock.
It locks the spinlock in line 310:
spin_lock_irqsave(&priv->bgc.lock, flags);
and then it can call grgpio_set_imask() in line 317:
grgpio_set_imask(priv, i, 0);
But grgpio_set_imask() unconditionally locks the spinlock by itself.
Fix this by moving the spinlock acquisition outside of
grgpio_set_imask().
Found by Linux Driver Verification project (linuxtesting.org).
Reported-by: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
Cc: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
Cc: Andreas Larsson <andreas@xxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 58268e58e63550e24dee7d6125078ab2a2a22272
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Fri Aug 14 00:09:29 2015 -0300
crypto: amcc - Do a NULL check for pointer
Compare pointer-typed values to NULL rather than 0.
The semantic patch that makes this change is available
in scripts/coccinelle/null/badzero.cocci
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 5e4b8c1fcc70016f43926203ae1820c3b380d5cd
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 17:29:06 2015 +0800
crypto: aead - Remove CRYPTO_ALG_AEAD_NEW flag
This patch removes the CRYPTO_ALG_AEAD_NEW flag now that everyone
has been converted.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit b0d955ba4688fcba8112884931aea1f1e6f50f03
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 15:30:41 2015 +0800
crypto: aead - Remove old AEAD interfaces
Now that the AEAD conversion is complete we can rip out the old
AEAD interafce and associated code.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 0a139416eed5f05118cb05aba37470de68c55272
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 17:29:04 2015 +0800
crypto: qat - Remove reference to crypto_aead_crt
The qat driver uses crypto_aead_crt in order to get the authsize.
This patch replaces it with the crypto_aead_authsize helper instead.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit ba3749a719a6da4297fb8e1bb56ee06d74129c0f
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 17:29:02 2015 +0800
crypto: cryptd - Remove reference to crypto_aead_crt
Pretty soon the crypto_aead encrypt/decrypt hooks will disappear
as they are now always identical to those in struct aead_alg.
This patch replaces the references to these hooks with the ones
from aead_alg instead.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 376e0d697a8194a5ab684d7fc57b2ce5483bda53
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 17:29:01 2015 +0800
crypto: echainiv - Use generic geniv init/exit helpers
This patch replaces the echainiv init/exit handlers with the generic
geniv helpers.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 659e7f528317d5a97e5100abcaf6e00552c23417
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 17:28:59 2015 +0800
crypto: seqiv - Use generic geniv init/exit helpers
This patch replaces the seqiv init/exit handlers with the generic
geniv helpers.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 149a39717dcce3b6ba15285c9fc86e4423437e05
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 17:28:58 2015 +0800
crypto: aead - Add type-safe geniv init/exit helpers
This patch adds the helpers aead_init_geniv and aead_exit_geniv
which are type-safe and intended the replace the existing geniv
init/exit helpers.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 66008d4230f6e599275f1cf01db268fcaaadda44
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 17:28:56 2015 +0800
crypto: echainiv - Remove AEAD compatibility code
Now that we no longer have any legacy AEAD implementations the
compatibility code path can no longer be triggered. This patch
removes it.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 92932d03c2b3613f40ce49ff42088e814e403afc
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 17:28:54 2015 +0800
crypto: seqiv - Remove AEAD compatibility code
Now that we no longer have any legacy AEAD implementations the
compatibility code path can no longer be triggered. This patch
removes it.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 8a2cd1c4a7aa0b4a24eafd6914756be6fbe7f361
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 17:28:53 2015 +0800
crypto: seqiv - Remove seqniv
Now that IPsec no longer uses seqniv we can remove it.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit de0ded77b995552ad650d22748a507a1ede7fa72
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 17:28:52 2015 +0800
ipsec: Replace seqniv with seqiv
Now that seqniv is identical with seqiv we no longer need it.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Acked-by: Steffen Klassert <steffen.klassert@xxxxxxxxxxx>
commit 60333f7b5dccd0adcdcc7ec9eb3f9f1039e257ed
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 17:28:50 2015 +0800
crypto: user - Remove crypto_lookup_aead call
As IV generators are now standalone AEAD transforms, we no longer
need to use the crypto_lookup_aead call.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit aa1b6bb7d7f5cb0d21eacea3639da8cb24c5092a
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 17:28:49 2015 +0800
crypto: algboss - Remove reference to nivaead
This patch removes a legacy reference to nivaead which is no longer
used.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit adca3c38d807b341a965d0aba8721d0784d8471b
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Mon Aug 17 08:33:43 2015 +0200
nfc: netlink: Warning fix
When NFC_ATTR_VENDOR_DATA is not set, data_len is 0 and data is NULL.
Fixes the following warning:
net/nfc/netlink.c:1536:3: warning: 'data' may be used uninitialized
+in this function [-Wmaybe-uninitialized]
return cmd->doit(dev, data, data_len);
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 656bba306827a44ed73b3f93f75bb3147de17fae
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Sun Aug 16 11:45:48 2015 -0400
x86/smpboot: Remove APIC.wait_for_init_deassert and atomic init_deasserted
Both the per-APIC flag ".wait_for_init_deassert",
and the global atomic_t "init_deasserted"
are dead code -- remove them.
For all APIC types, "wait_for_master()"
prevents an AP from proceeding until the BSP has set
cpu_callout_mask, making "init_deasserted" {unnecessary}:
BSP: <de-assert INIT>
...
BSP: {set init_deasserted}
AP: wait_for_master()
set cpu_initialized_mask
wait for cpu_callout_mask
BSP: test cpu_initialized_mask
BSP: set cpu_callout_mask
AP: test cpu_callout_mask
AP: {wait for init_deasserted}
...
AP: <touch APIC>
Deleting the {dead code} above is necessary to enable
some parallelism in a future patch.
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Igor Mammedov <imammedo@xxxxxxxxxx>
Cc: Jan H. Schönherr <jschoenh@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Zhu Guihua <zhugh.fnst@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/de4b3a9bab894735e285870b5296da25ee6a8a5a.1439739165.git.len.brown@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit a9bcaa02a5104ace6a9d9e4a9cd9192a9e7744d6
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Sun Aug 16 11:45:47 2015 -0400
x86/smpboot: Remove SIPI delays from cpu_up()
MPS 1.4 example code shows the following required delays during processor
on-lining:
INIT
udelay(10,000)
SIPI
udelay(200)
SIPI
udelay(200) /* Linux actually implements this as udelay(300) */
Linux skips the udelay(10,000) on modern processors.
This patch removes the udelay(200) after each SIPI
on those same processors.
All three legacy delays can be restored by the cmdline
"cpu_init_udelay=10000".
As measured by analyze_suspend.py, this patch speeds
processor resume time on my desktop from 2.4ms to 1.8ms, per AP.
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Igor Mammedov <imammedo@xxxxxxxxxx>
Cc: Jan H. Schönherr <jschoenh@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Zhu Guihua <zhugh.fnst@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/a5dfdbc8fbfdd813784da204aad5677fe459ac37.1439739165.git.len.brown@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 2d99af8e8fd6c2dea11ab539f7aba69c37b845b4
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Sun Aug 16 11:45:46 2015 -0400
x86/smpboot: Remove udelay(100) when polling cpu_callin_map
After the BSP sends INIT/SIPI/SIP to the AP and sees the AP
in the cpu_initialized_map, it sets the AP loose via the
cpu_callout_map, and waits for it via the cpu_callin_map.
The BSP polls the cpu_callin_map with a udelay(100)
and a schedule() in each iteration.
The udelay(100) adds no value.
For example, on my 4-CPU dekstop, the AP finishes
cpu_callin() in under 70 usec and sets the cpu_callin_mask.
The BSP, however, doesn't see that setting until over 30 usec
later, because it was still running its udelay(100)
when the AP finished.
Deleting the udelay(100) in the cpu_callin_mask polling loop,
saves from 0 to 100 usec per Application Processor.
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Igor Mammedov <imammedo@xxxxxxxxxx>
Cc: Jan H. Schönherr <jschoenh@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Zhu Guihua <zhugh.fnst@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/0aade12eabeb89a688c929fe80856eaea0544bb7.1439739165.git.len.brown@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 6e38f1e79d16f4fa9e5cf06792500e11c96a6f84
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Sun Aug 16 11:45:45 2015 -0400
x86/smpboot: Remove udelay(100) when polling cpu_initialized_map
After the BSP sends the APIC INIT/SIPI/SIPI to the AP,
it waits for the AP to come up and indicate that it is alive
by setting its own bit in the cpu_initialized_mask.
Linux polls for up to 10 seconds for this to happen.
Each polling loop has a udelay(100) and a call to schedule().
The udelay(100) adds no value.
For example, on my desktop, the BSP waits for the
other 3 CPUs to come on line at boot for 305, 404, 405 usec.
For resume from S3, it waits 317, 404, 405 usec.
But when the udelay(100) is removed, the BSP waits
305, 310, 306 for boot, and 305, 307, 306 for resume.
So for both boot and resume, removing the udelay(100)
speeds online by about 100us in 2 of 3 cases.
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Cc: Igor Mammedov <imammedo@xxxxxxxxxx>
Cc: Jan H. Schönherr <jschoenh@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Zhu Guihua <zhugh.fnst@xxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/33ef746c67d2489cad0a9b1958cf71167232ff2b.1439739165.git.len.brown@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 5461bd81bf7f86503f393b0b1d57e69b1f1bd44e
Merge: 9491630 2c6625c
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Mon Aug 17 10:41:59 2015 +0200
Merge tag 'v4.2-rc7' into x86/boot, to refresh the branch before merging
new changes
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit ac49fbd1f9d437cca7234473850aef4165779383
Author: Dirk Behme <dirk.behme@xxxxxxxxx>
Date: Sat Jul 18 08:02:07 2015 +0200
Documentation: gpio: consumer: describe active low property
I've been searching for any documentation of 'the active-low property of
a GPIO'
already mentioned in this documenation. But couldn't find any. Add it.
Sigend-off-by: Dirk Behme <dirk.behme@xxxxxxxxx>
Acked-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
[Spelling, grammar fixes]
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 281786ea2cd03635648d1e2b131c6fbc0ed47b68
Author: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Date: Mon Aug 17 16:35:48 2015 +1000
selftests/powerpc: Install tempfile so the subpage_prot_file test works
We forgot to install the tempfile, so when the selftests are installed
and then run the subpage_prot_file test fails.
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 94e92a7bff2317bedd67ed7c46ac63e9affb7a99
Merge: 94fdc2e e04cafb
Author: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
Date: Mon Aug 17 11:23:03 2015 +0300
Merge ath-next from ath.git. Major changes in ath10k:
* add support for qca99x0 family of devices
* improve performance of tx_lock
* add support for raw mode (802.11 frame format) and software crypto
engine enabled via a module parameter
wil6210:
* implement TSO support
* support bootloader v1 and onwards
commit 60884ddecdc2f45fd2862b7e95c9ad858584f82b
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Wed Aug 5 08:42:06 2015 +0530
Documentation: dmaengine: Add DMA_CTRL_REUSE documentation
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Acked-by:Robert Jarzmik <robert.jarzmik@xxxxxxx>
commit 06f10e2f936424496d44e5541c220845c8c55345
Author: Vinod Koul <vinod.koul@xxxxxxxxx>
Date: Wed Aug 5 08:42:04 2015 +0530
Documentation: dmaengine: fix the DMA_CTRL_ACK documentation
As discussed recently the meaning of DMA_CTRL_ACK is that a desc cannot be
reused by provider until the client acknowledges receipt, i.e. has has a
chance to establish any dependency chains. So update documentation
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
Acked-by:Robert Jarzmik <robert.jarzmik@xxxxxxx>
commit 09659a5978e16a7f3676fd6cb41e21daa77ce9a6
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:49:11 2015 -0700
dmaengine: ioatdma: Clean up IOAT_COMPLETION_PENDING flag
IOAT_COMPLETION_PENDING flag was deprecated for v2 and v3 drivers but was
not cleaned up. Doing that now. The commit deprecated this flag was
4dec23d7 ioatdma: fix race between updating ioat->head and
IOAT_COMPLETION_PENDING.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit c7b0e8d7b5d1523ca3a85d3d3d9d113bb19a5668
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:49:05 2015 -0700
dmaengine: ioatdma: fixup kernel doc errors from dma.h
./scripts/kerne-doc is reporting errors on dma.h. Clean up all reported
errors.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit ef97bd0f59741ca1a555b69b8708f6601e35c3ed
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:49:00 2015 -0700
dmanegine: ioatdma: remove function ptrs in ioatdma_device
Since we are a "single" device driver now we no longer require the
function
pointers in ioatdma_device. Remove.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 3372de5813e4da8305002ff6ffbfc0c7012cb319
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:48:55 2015 -0700
dmaengine: ioatdma: removal of dma_v3.c and relevant ioat3 references
Moving the relevant functions to their respective .c files and removal of
dma_v3.c file. Also removed various ioat3 references when appropriate.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 599d49de7f69cb5a23e913db24e168ba2f09bd05
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:48:49 2015 -0700
dmaengine: ioatdma: move dma prep functions to single location
Move all DMA descriptor prepping functions to prep.c file. Fixup all
broken bits caused by the move.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit c0f28ce66ecfd9fa0ae662a2c7f3e68e537e77f4
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:48:43 2015 -0700
dmaengine: ioatdma: move all the init routines
Moving all the init routines to init.c and fixup anything broken during
the move.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 80b1973659949fbdcbfe9e086e2370313a9f1288
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:48:38 2015 -0700
dmaengine: ioatdma: move all sysfs related code
Move and fixup all sysfs related bits to sysfs.c file.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 885b201056e942f7deb66496b5c501d2a35d6c04
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:48:32 2015 -0700
dmaengine: ioatdma: remove dma_v2.*
Clean out dma_v2 and remove ioat2 calls since we are moving everything
to just ioat.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 55f878ec47e3ab560a046c9030a97b1048b74e8b
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:48:27 2015 -0700
dmaengine: ioatdma: fixup ioatdma_device namings
Changing the variable names for ioatdma_device to be consistently named
ioat_dma instead of device/dma in order to avoid confusion and distinct
from struct device. This will clearly indicate that it is an
ioatdma_device. This also make all the naming consistent that the dma
device is ioat_dma and all the channels are ioat_chan.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 5a976888c953a50336c2266bab894c1c098462b3
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:48:21 2015 -0700
dmaengine: ioatdma: clean up local dma channel data structure
Kill the common ioatdma channel structure and everything that is not
dma_chan to be ioat_dma_chan. Since we don't have to worry about v1
and v2 ioatdma anymore this makes it much cleaner and obvious for
maintenance.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 7f832645d0e5a0431e4ee02bae98e47ded32ac6f
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:48:16 2015 -0700
dmaengine: ioatdma: remove ioatdma v2 registration
Removal of support for ioatdma v2 device support.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 85596a19478da5125f3471a0c474b3f05a78e390
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:48:10 2015 -0700
dmaengine: ioatdma: remove ioat1 specific code
Cleaning up of ioat1 specific code as it is no longer supported
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit d73f277b329f46c13527c1090808421828671596
Author: Dave Jiang <dave.jiang@xxxxxxxxx>
Date: Tue Aug 11 08:48:04 2015 -0700
dmaengine: ioatdma: deprecating and removal of old ioatdma devices
Removal of any devices that are ioatdma pre-3.0. This is the first step
in attempting to clean up the ioatdma driver and remove hw no longer
supported.
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Acked-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 5484526ac120eb543e5a28610775f04014814d89
Author: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Date: Tue Aug 11 04:05:43 2015 -0400
dmaengine: ioatdma: fix u16 overflow in cleanup
If the allocation order is 16, then the u16 count will overflow and wrap
to zero when assigned the value 1 << 16.
Change the type of 'total_descs' to int, so that it is large enough to
store a value equal or greater than 1 << 16.
Signed-off-by: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Acked-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit 870ce49022d1a278e441d2cb7b92acae2416b510
Author: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Date: Tue Aug 11 04:05:42 2015 -0400
dmaengine: ioatdma: fix u16 overflow in reshape
If the allocation order is 16, then the u16 index will overflow and wrap
to zero instead of being equal or greater than 1 << 16. The loop
condition will always be true, and the loop will run until all the
memory resources are depleted.
Change the type of index 'i' to u32, so that it is large enough to store
a value equal or greater than 1 << 16.
Signed-off-by: Allen Hubbe <Allen.Hubbe@xxxxxxx>
Acked-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx>
commit efe3b616f88caa95dbe8636f4d0b3dcefca962bb
Author: Matt Ranostay <mranostay@xxxxxxxxx>
Date: Sun Aug 16 23:04:53 2015 -0700
Input: cap11xx - add LED support
Several cap11xx variants have LEDs that be can be controlled; let's plug
the driver into the LED subsystem.
Signed-off-by: Matt Ranostay <mranostay@xxxxxxxxx>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit 294947a5c7f6d228b70fcc51a89527e74a38a2c5
Merge: 6406e45 54fbde8
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Aug 17 16:03:48 2015 +1000
Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux
into drm-next
A couple of fixes from the previous pull request as well as gl3 support.
There is one drm core change, an export of a previously private function.
Take 2 implementing screen targets, this time with the fbdev code adjusted
accordingly.
Also there is an implementation of register-driven command buffers, that
overrides the FIFO ring for command processing. It's needed for our
upcoming
hardware revision.
* 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux: (35
commits)
drm/vmwgfx: Fix copyright headers
drm/vmwgfx: Add DX query support. Various fixes.
drm/vmwgfx: Add command parser support for a couple of DX commands
drm/vmwgfx: Command parser fixes for DX
drm/vmwgfx: Initial DX support
drm/vmwgfx: Update device includes for DX device functionality
drm: export the DRM permission check code
drm/vmwgfx: Fix crash when unloading vmwgfx v2
drm/vmwgfx: Fix framebuffer creation on older hardware
drm/vmwgfx: Fixed topology boundary checking for Screen Targets
drm/vmwgfx: Fix an uninitialized value
drm/vmwgfx: Fix compiler warning with 32-bit dma_addr_t
drm/vmwgfx: Kill a bunch of sparse warnings
drm/vmwgfx: Fix kms preferred mode sorting
drm/vmwgfx: Reinstate the legacy display system dirty callback
drm/vmwgfx: Implement fbdev on kms v2
drm/vmwgfx: Add a kernel interface to create a framebuffer v2
drm/vmwgfx: Avoid cmdbuf alloc sleeping if !TASK_RUNNING
drm/vmwgfx: Convert screen targets to new helpers v3
drm/vmwgfx: Convert screen objects to the new helpers
...
commit 6406e45cc6f4976ace2b6d23b76bb5f07541e68f
Merge: bef2c7b a33ee95
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Aug 17 15:53:05 2015 +1000
Merge tag 'drm/panel/for-4.3-rc1' of
git://anongit.freedesktop.org/tegra/linux into drm-next
drm/panel: Changes for v4.3-rc1
This introduces support for a couple of new panels and also contains
some work to restructure the directories to get more consistency, to
deal better with more panel and bridge drivers getting added.
* tag 'drm/panel/for-4.3-rc1' of
git://anongit.freedesktop.org/tegra/linux:
drm/bridge: Put Kconfig entries in a separate menu
drm/panel: Add support for LG LG4573 480x800 4.3" panel
drm/panel: Add display timing for Okaya RS800480T-7X0GP
of: Add Okaya Electric America vendor prefix
drm/panel: simple: Add support for NEC NL4827HC19-05B 480x272 panel
drm/panel: simple: Add support for AUO B080UAN01
drm/panel: simple: Correct minimum hsync length of the HannStar
HSD070PWW1 panel
drm/panel: simple: Add bus format for HannStar HSD070PWW1 LVDS panel
drm/bridge: Add vendor prefixes
drm/panel: Add Samsung prefix to panel drivers
drm/exynos: Remove PTN3460 dependency
commit bef2c7bd578e91c9c10983e0c15c4501127b77ca
Merge: 3ff8e50 459cc2c
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Aug 17 15:52:39 2015 +1000
Merge tag 'drm/tegra/for-4.3-rc1' of
git://anongit.freedesktop.org/tegra/linux into drm-next
drm/tegra: Changes for v4.3-rc1
There are a bunch of non-critical fixes here that I've collected over
the past few months, but the biggest part is Tegra210 support, in the
DC, DSI and SOR/HDMI drivers.
Also this finally restores DPMS with atomic mode-setting, something
that has been broken since the conversion and which I had originally
expected to take far less longer to fix.
* tag 'drm/tegra/for-4.3-rc1' of
git://anongit.freedesktop.org/tegra/linux: (41 commits)
drm/tegra: sor: Add HDMI support
drm/tegra: sor: Add Tegra210 eDP support
drm/tegra: dc: Implement atomic DPMS
drm/tegra: sor: Restore DPMS
drm/tegra: dsi: Restore DPMS
drm/tegra: hdmi: Restore DPMS
drm/tegra: rgb: Restore DPMS
drm/tegra: sor: Use DRM debugfs infrastructure for CRC
drm/tegra: sor: Write correct head state registers
drm/tegra: sor: Constify display mode
drm/tegra: sor: Reset the correct debugfs fields
drm/tegra: sor: Set minor after debugfs initialization
drm/tegra: sor: Provide error messages in probe
drm/tegra: sor: Rename registers for consistency
drm/tegra: dpaux: Disable interrupt when detached
drm/tegra: dpaux: Configure pads as I2C by default
drm/tegra: dpaux: Provide error message in probe
drm/tegra: dsi: Add Tegra210 support
drm/tegra: dsi: Add Tegra132 support
drm/tegra: dsi: Add Tegra124 support
...
commit 3ff8e5090c337a4eb26952d68587f450e012bd72
Merge: 3be6671 2a8cb48
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Aug 17 15:33:23 2015 +1000
Merge branch 'exynos-drm-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next
Summary:
- Clean up HDMI and MIXER parts
- Clean up legacy structures specific to Exynos DRM
. This patch series removes existing exyons_drm_display and
exynos_drm_encoder structures specific to Exynos DRM, and
makes them to replace with common drm_encoder structure.
With cleanup patch, we removes exynos_drm_encoder module.
- Clean up gem, dmabuf and buffer modules
. This patch series replaces existing Exynos DRM dmabuf codes
with common drm prime ones, and embeds all codes of exynos_drm_buf
into exynos_drm_gem module.
With cleanup patch, we removes exynos_drm_buf and exynos_drm_dmabuf
modules.
- And some fixups.
* 'exynos-drm-next' of
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: (53 commits)
drm/exynos: merge exynos_drm_buf.c to exynos_drm_gem.c
drm/exynos: use prime helpers
drm/exynos: remove function roundup_gem_size
drm/exynos: remove function update_vm_cache_attr
drm/exynos: remove function check_gem_flags
drm/exynos: use ERR_PTR instead of NULL in exynos_drm_gem_init
drm/exynos: remove unused fields of struct exynos_drm_gem_buf
drm/exynos: stop copying sg table
drm/exynos: remove function exynos_drm_gem_map_buf
drm/exynos: remove mutex locking in pagefault handler
drm/exynos: remove function convert_to_vm_err_msg
drm/exynos: stop using sgtable in page fault handler
drm/exynos: remove struct exynos_drm_encoder layer
drm/exynos: fold encoder setup into exynos_drm_load()
drm/exynos: remove exynos_drm_create_enc_conn()
drm/exynos: remove exynos_encoder's .commit() op
drm/exynos: remove extra call to exynos_dp_commit()
drm/exynos: remove extra call to hdmi_commit()
drm/exynos: remove struct exynos_drm_display
drm/exynos: simplify calculation of possible CRTCs
...
commit 1e3136789975f03e461798149309034e5213c1b4
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Sat Aug 15 10:54:07 2015 -0700
ipv4: fix refcount leak in fib_check_nh()
fib_lookup() forces FIB_LOOKUP_NOREF flag, while fib_table_lookup()
does not.
This patch solves the typical message at reboot time or device
dismantle :
unregister_netdevice: waiting for eth0 to become free. Usage count = 4
Fixes: 3bfd847203c6 ("net: Use passed in table for nexthop lookups")
Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Cc: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Acked-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 69034db79a8101dccdeb2b909b3aaa52001ab1ef
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Sat Jul 18 10:05:05 2015 +0300
xtensa: drop unused irq_err_count
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit 38fef73c21d117cf992fb5ec6e30630e54e13f4f
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Thu Jul 16 10:37:31 2015 +0300
xtensa: implement fake NMI
In case perf IRQ is the highest of the medium-level IRQs, and is alone
on its level, it may be treated as NMI:
- LOCKLEVEL is defined to be one level less than EXCM level,
- IRQ masking never lowers current IRQ level,
- new fake exception cause code, EXCCAUSE_MAPPED_NMI is assigned to that
IRQ; new second level exception handler, do_nmi, assigned to it
handles it as NMI,
- atomic operations in configurations without s32c1i still need to mask
all interrupts.
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit 98e298329e7b391293da5097817437292c842dc9
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Fri Jul 17 05:24:49 2015 +0300
xtensa: don't touch EXC_TABLE_FIXUP in _switch_to
There's no way _switch_to can produce double exceptions now, don't
enter/leave EXC_TABLE_FIXUP critical section.
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit 77d6273e79e3a86552fcf10cdd31a69b46ed2ce6
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Thu Jul 16 10:41:02 2015 +0300
xtensa: fix kernel register spilling
call12 can't be safely used as the first call in the inline function,
because the compiler does not extend the stack frame of the bounding
function accordingly, which may result in corruption of local variables.
If a call needs to be done, do call8 first followed by call12.
For pure assembly code in _switch_to increase stack frame size of the
bounding function.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit 7d5f6a9a2496c6e4f2a3b5db7743ff4e3a99738e
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Thu Jul 16 06:18:46 2015 +0300
xtensa: reorganize irq flags tracing
entry.s only disables IRQs on hardware IRQ, move trace_hardirqs_off call
into do_interrupt. Check actual intlevel that will be restored on return
from exception handler to decide if trace_hardirqs_on should be called.
Annotate IRQ on/off points in the TIF_* handling loop on return from
exception handler.
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit 18bc5b85aac08d35eeca174abc73238a4d5deb0b
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Fri Jun 26 04:11:08 2015 +0300
perf tools: xtensa: add DWARF register names
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit 9bd46da45edd9701bcb2a221d58afe7d01febd1d
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Sun Jun 14 01:41:25 2015 +0300
xtensa: implement counting and sampling perf events
Xtensa Performance Monitor Module has up to 8 32 bit wide performance
counters. Each counter may be enabled independently and can count any
single type of hardware performance events. Event counting may be enabled
and disabled globally (per PMM).
Each counter has status register with bits indicating if the counter has
been overflown and may be programmed to raise profiling IRQ on overflow.
This IRQ is used to rewind counters and allow for counting more than 2^32
samples for counting events and to report samples for sampling events.
For more details see Tensilica Debug User's Guide, chapter 8
"Performance monitor module".
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit af885de869a9d7086d50a2c250323f0bfd939fd4
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Thu Jun 4 13:42:22 2015 +0300
xtensa: count software page fault perf events
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit 3be66711b6adefad2a95c108161607d79729ea05
Merge: d3638ac d248b61
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Aug 17 14:33:11 2015 +1000
Merge branch 'msm-next' of git://people.freedesktop.org/~robclark/linux
into drm-next
1) includes all the drm/msm side of things for upstream kernel working
on dragonboard 410c (still some pending work on adv7533 bridge chip)
2) initial support for msm8x94 (snapdragon 810)
3) support for msm8x74v1 (in addition to existing v2 support)
4) support for dma planes on mdp5 (additional planes that cannot
scale/csc)
5) more yuv format support for mdp5 (single plane vyuy/uyvy/yuyv/yvyu,
two plane nv16/nv61, and three plane yuv420/yvu420)
6) rotation support for mdp5
7) initial hdcp support
8) fixes, etc
* 'msm-next' of git://people.freedesktop.org/~robclark/linux: (46 commits)
drm/msm/dsi: Introduce DSI configuration module
drm/msm/dsi: Make each PHY type compilation independent
drm/msm/dsi: Split PHY drivers to separate files
drm/msm/dsi: Return void from msm_dsi_phy_disable()
drm/msm/dsi: Specify bitmask to set source PLL
drm/msm/mdp: Clear pending interrupt status before enable interrupt
drm/msm/mdp5: Add rotation (hflip/vflip) support to MDP5 planes (v2)
drm/msm: add calls to prepare and unprepare panel
drm/msm/dsi: Modify dsi manager bridge ops to work with external bridges
drm/msm/dsi: Allow dsi to connect to an external bridge
drm/msm/dsi: Create a helper to check if there is a connected device
drm/msm/dsi: Refer to connected device as 'device' instead of 'panel'
drm/msm/dsi: Make TE gpio optional
drm/msm: mdp4 lvds: get panel node via of graph parsing
drm/msm: dsi host: Use device graph parsing to parse connected panel
drm/msm: dsi host: add missing of_node_put()
drm/msm: Enable clocks during enable/disable_vblank() callbacks
drm/msm/mdp5: Add support for msm8x74v1
drm/msm/mdp5: Add DMA pipe planes for MDP5
drm/msm/mdp: Add capabilities to MDP planes (v2)
...
commit ae0b7139ab49c986e798ca9a46b7ad763ea8b8ca
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Tue Jun 23 01:53:05 2015 +0300
xtensa: add profiling IRQ type to xtensa_irq_map
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit db8165f5d975533880f516fed142364ba3e6046e
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Thu Jun 4 13:41:27 2015 +0300
xtensa: select PERF_USE_VMALLOC for cache-aliasing configurations
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit 5fdf377d802ddd439fe16dd2e9e38039af535af2
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Thu Jun 25 07:27:16 2015 +0300
xtensa: move oprofile stack tracing to stacktrace.c
Old oprofile interface will share user stack tracing with new perf
interface. Move oprofile user/kernel stack tracing to stacktrace.c to
make it possible.
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit b6569439f1cec0ce15f647e2ba814431b5930b82
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Thu Jun 25 23:03:29 2015 +0300
xtensa: keep exception/interrupt stack continuous
Restore original a0 in the kernel exception stack frame. This way it
looks like the frame that got interrupt/exception did alloca (copy a0 and
a1 spilled under old stack to the new location as well) to save registers
and then did a call to handler.
The point where interrupt/exception was taken is not in the stack chain,
only in pt_regs (call4 from that address can be simulated to keep it in
the stack trace).
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit de7c1c7862c4072bc93155da2cd6921137cb87ae
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Sat Jun 27 07:31:12 2015 +0300
xtensa: clean up Kconfig dependencies for custom cores
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit c75959a6da19df2700556dc76861442e9716317d
Author: Max Filippov <jcmvbkbc@xxxxxxxxx>
Date: Mon May 25 06:55:05 2015 +0300
xtensa: reimplement DMA API using common helpers
- keep existing functionality: don't handle attributes, don't support
high memory;
- implement scatterlist primitives (map/unmap/sync);
- enable DMA API debug.
Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx>
commit d3638ac429ff0e8af81c1bc551cbd8da5c09e3d2
Merge: 4eebf60 75067dd
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Aug 17 14:14:34 2015 +1000
Merge tag 'drm-intel-next-fixes-2015-08-16' of
git://anongit.freedesktop.org/drm-intel into drm-next
Bunch more fixes for 4.3, most of it skl fallout. It's not quite all yet,
there's still a few more patches pending to enable DDI-E correctly on skl.
Also included the dpms atomic work from Maarten since atomic is just a
pain and not including would cause piles of conflicts right from the
start.
* tag 'drm-intel-next-fixes-2015-08-16' of
git://anongit.freedesktop.org/drm-intel: (67 commits)
drm/i915: Per-DDI I_boost override
drm/i915/skl: WaIgnoreDDIAStrap is forever, always init DDI A
drm/i915: fix checksum write for automated test reply
drm/i915: Contain the WA_REG macro
drm/i915: Remove the failed context from the fpriv->context_idr
drm/i915: Report IOMMU enabled status for GPU hangs
drm/i915: Check idle to active before processing CSQ
drm/i915: Set alternate aux for DDI-E
drm/i915: Set power domain for DDI-E
drm/i915: fix stolen bios_reserved checks
drm/i915: Use masked write for Context Status Buffer Pointer
drm/i915/skl WaDisableSbeCacheDispatchPortSharing
drm/i915: Spam less on dp aux send/receive problems
drm/i915: Handle return value in intel_pin_and_fence_fb_obj, v2.
drm/i915: Only update mode related state if a modeset happened.
drm/i915: Remove connectors_active.
drm/i915: Remove connectors_active from intel_dp.c, v2.
drm/i915: Remove connectors_active from sanitization, v2.
drm/i915: Get rid of dpms handling.
drm/i915: Make crtc checking use the atomic state, v2.
...
commit 4eebf60b7452fbd551fd7dece855ba7825a49cbc
Merge: 8f9cb50 2c6625c
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Mon Aug 17 14:13:53 2015 +1000
Merge tag 'v4.2-rc7' into drm-next
Linux 4.2-rc7
Backmerge master for i915 fixes
commit 5699f871d2d51ce40012501378670613d4d49214
Author: Danilo Cesar Lemes de Paula <danilo.cesar@xxxxxxxxxxxxxxx>
Date: Tue Jul 28 16:45:15 2015 -0300
scripts/kernel-doc: Adding cross-reference links to html documentation.
Functions, Structs and Parameters definitions on kernel documentation
are pure cosmetic, it only highlights the element.
To ease the navigation in the documentation we should use <links> inside
those tags so readers can easily jump between methods directly.
This was discussed in 2014[1] and is implemented by getting a list
of <refentries> from the DocBook XML to generate a database. Then it looks
for <function>,<structnames> and <paramdef> tags that matches the ones in
the database. As it only links existent references, no broken links are
added.
[1] - lists.freedesktop.org/archives/dri-devel/2014-August/065404.html
Signed-off-by: Danilo Cesar Lemes de Paula <danilo.cesar@xxxxxxxxxxxxxxx>
Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Cc: Stephan Mueller <smueller@xxxxxxxxxx>
Cc: Michal Marek <mmarek@xxxxxxx>
Cc: intel-gfx <intel-gfx@xxxxxxxxxxxxxxxxxxxxx>
Cc: dri-devel <dri-devel@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
commit 8c7dd08a8ccac3f0f3df6002dc8e86d3ca6c56a8
Author: Vaibhav Jain <vaibhav@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 12:28:38 2015 +0530
cxl: Plug irq_bitmap getting leaked in cxl_context
This patch plugs the leak of irq_bitmap, allocated as part of
initialization of cxl_context struct; during the call to
afu_allocate_irqs. The bitmap is now release during the call to function
afu_release_irqs.
Reported-by: Matthew R. Ochs <mrochs@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Vaibhav Jain <vaibhav@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 25901632c9323e5208cca66097a0b8f34c752606
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 14 17:41:27 2015 +1000
cxl: Add CONFIG_CXL_EEH symbol
CONFIG_CXL_EEH is for CXL's EEH related code.
Other drivers can depend on or #ifdef on this symbol to configure
PERST behaviour, allowing CXL to participate in the EEH process.
Reviewed-by: Cyril Bur <cyrilbur@xxxxxxxxx>
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit fe202fe95564023223ce1910c9e352f391abb1d5
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Fri Aug 14 22:33:40 2015 +0200
nfc: netlink: Add check on NFC_ATTR_VENDOR_DATA
NFC_ATTR_VENDOR_DATA is an optional vendor_cmd argument.
The current code was potentially using a non existing argument
leading to potential catastrophic results.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 94b85938ad21944afeff71d1cca68b094905e1b9
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Fri Aug 14 22:33:39 2015 +0200
nfc: st-nci: Remove pr_err in rcv_queue when ndlc header is unknown
spi phy needs to use ndlc_recv at every spi transaction causing
"unknown packet control byte" error message each time the header
is 00. Make this silent.
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit a6be357e9720a7f8e11e2997e60626179151d190
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Fri Aug 14 22:33:38 2015 +0200
nfc: st-nci: Add device tree documentation for spi phy
Add st-nci-spi phy devicetree documentation
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 2bc4d4f8c8f3ce863e3644736d1790b0684c7eb0
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Fri Aug 14 22:33:37 2015 +0200
nfc: st-nci: Add spi phy support for st21nfcb
st21nfcb does support another phy than i2c: spi.
st21nfcc does not support spi as the spi ios are used
by the AMS RF booster.
st21nfcb is not following NCI NFC Forum recommendations for spi
but rely on ST prioritary protocol ndlc as for i2c.
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 8b706884eac958ec16518315053f77e052627084
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Fri Aug 14 22:33:36 2015 +0200
nfc: st-nci: Free data with irrelevant NDLC PCB_SYNC value
PCB_SYNC different than PCB_TYPE_SUPERVISOR or PCB_TYPE_DATAFRAME
should be discarded.
Irrelevant data may be forwarded up to the ndlc state machine by
phys like spi to prevent missing potential data during "write"
transactions.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 1d816b6eb513498aa28a0ff1e4db7632bded1707
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Fri Aug 14 22:33:35 2015 +0200
nfc: st-nci: Remove data from ack_pending_q when receiving a SYNC_ACK
When receiving a NDLC PCB_SYNC_ACK the pending data was never
removed from ack_pending_q and cleared.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit daaf1e1f1640eb11259954d1d847d8a72ab5b938
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Fri Aug 14 22:33:34 2015 +0200
NFC: st-nci: fix use of uninitialized variables in error path
st_nci_hci_load_session() calls kfree_skb() on unitialized
variables skb_pipe_info and skb_pipe_list if the call to
nci_hci_connect_gate() failed. Reword the error path to not use
these variables when they are not initialized. While at it, there
seemed to be a memory leak because skb_pipe_info was only freed
once, after the for-loop, even though several ones were created
by nci_hci_send_cmd.
Cc: stable@xxxxxxxxxxxxxxx
Acked-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@xxxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 5a3570061a131309143a49e4bbdbce7e23f261e7
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Fri Aug 14 22:33:33 2015 +0200
NFC: st21nfca: fix use of uninitialized variables in error path
st21nfca_hci_load_session() calls kfree_skb() on unitialized
variables skb_pipe_info and skb_pipe_list if the call to
nfc_hci_connect_gate() failed. Reword the error path to not use
these variables when they are not initialized. While at it, there
seemed to be a memory leak because skb_pipe_info was only freed
once, after the for-loop, even though several ones were created
by nfc_hci_send_cmd.
Fixes: ec03ff1a8f9a
("NFC: st21nfca: Remove skb_pipe_list and skb_pipe_info
useless allocation")
Cc: stable@xxxxxxxxxxxxxxx
Acked-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@xxxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit e7723b33077b04648213f043bc22654c54e375e4
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Fri Aug 14 22:33:32 2015 +0200
nfc: st-nci: Fix non accurate comment for st_nci_i2c_read
Due to a copy and paste error st_nci_i2c_read still contains
st21nfca header comment.
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 30458aac63c89771d19f023083d64d018562812e
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Fri Aug 14 22:33:31 2015 +0200
nfc: st-nci: Fix typo when changing from st21nfcb to st-nci
Replace ST21NFCB with ST_NCI or st21nfcb with st_nci as it
was forgotten in commit "nfc: st-nci: Rename st21nfcb to st-nci"
ed06aeefdac348cfb91a3db5fe1067e3202afd70
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 76b733d15874128ee2d0365b4cbe7d51decd8d37
Author: Christophe Ricard <christophe.ricard@xxxxxxxxx>
Date: Fri Aug 14 22:33:30 2015 +0200
nfc: st-nci: Remove duplicate file platform_data/st_nci.h
commit "nfc: st-nci: Rename st21nfcb to st-nci" adds
include/linux/platform_data/st_nci.h duplicated with
include/linux/platform_data/st-nci.h.
Only drivers/nfc/st-nci/i2c.c uses platform_data/st_nci.h.
Cc: stable@xxxxxxxxxxxxxxx
Reported-by: Hauke Mehrtens <hauke@xxxxxxxxxx>
Signed-off-by: Christophe Ricard <christophe-h.ricard@xxxxxx>
Signed-off-by: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
commit 38e6a417f6205e98bef53c5530f5fddfea08e1c6
Author: Hans Verkuil <hverkuil@xxxxxxxxx>
Date: Wed Aug 12 04:14:28 2015 -0300
[media] horus3a: fix compiler warning
Shut up this compiler warning that I get during the daily build:
horus3a.c: In function 'horus3a_set_params':
horus3a.c:308:24: warning: 'rolloff' may be used uninitialized in this
function [-Wmaybe-uninitialized]
symbol_rate * (100 + rolloff), 200000) + 5;
^
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 82fde1a98eb9866347a1d3543fac4ab9a69aeb7d
Author: Abhilash Jindal <klock.android@xxxxxxxxx>
Date: Tue Aug 11 12:22:57 2015 -0300
[media] bt8xxx: Use monotonic time
Wall time obtained from do_gettimeofday is susceptible to sudden jumps
due to
user setting the time or due to NTP.
Monotonic time is constantly increasing time better suited for comparing
two
timestamps.
Signed-off-by: Abhilash Jindal <klock.android@xxxxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit e4d45dd81e67f9fe0e1af44bddd53c3d4eb061ea
Author: Abhilash Jindal <klock.android@xxxxxxxxx>
Date: Tue Aug 11 12:09:49 2015 -0300
[media] zoran: Use monotonic time
Wall time obtained from do_gettimeofday is susceptible to sudden jumps
due to
user setting the time or due to NTP.
Monotonic time is constantly increasing time better suited for comparing
two
timestamps.
Signed-off-by: Abhilash Jindal <klock.android@xxxxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 8f7a5f462a255b4395e5f0f08c045dc8af6efd55
Author: Mike Looijmans <mike.looijmans@xxxxxxxx>
Date: Tue Aug 11 09:21:07 2015 -0300
[media] i2c/adv7511: Fix license, set to GPL v2
Header claims GPL v2, so make the MODULE_LICENSE reflect that properly.
Signed-off-by: Mike Looijmans <mike.looijmans@xxxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 4284118058b2b4f217a050908a555d0e1ed58641
Author: Rob Taylor <rob.taylor@xxxxxxxxxxxxxxx>
Date: Thu Jul 23 09:21:43 2015 -0300
[media] media: rcar_vin: Reject videobufs that are too small for current
format
In videobuf_setup reject buffers that are too small for the configured
format. Fixes v4l2-compliance issue.
Signed-off-by: Rob Taylor <rob.taylor@xxxxxxxxxxxxxxx>
Reviewed-by: William Towle <william.towle@xxxxxxxxxxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 734f3f238587ffb6938700c4495dd5b5a54c4125
Author: Rob Taylor <rob.taylor@xxxxxxxxxxxxxxx>
Date: Thu Jul 23 09:21:42 2015 -0300
[media] media: rcar_vin: fill in bus_info field
Adapt rcar_vin_querycap() so that cap->bus_info is populated with
something meaningful/unique.
Signed-off-by: Rob Taylor <rob.taylor@xxxxxxxxxxxxxxx>
Signed-off-by: William Towle <william.towle@xxxxxxxxxxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 920a1bf30a361fc2c6d713a26deb3a488639def3
Author: William Towle <william.towle@xxxxxxxxxxxxxxx>
Date: Thu Jul 23 09:21:36 2015 -0300
[media] media: soc_camera: rcar_vin: Add BT.709 24-bit RGB888 input
support
This adds V4L2_MBUS_FMT_RGB888_1X24 input format support
which is used by the ADV7612 chip.
Modified to use MEDIA_BUS_FMT_* constants
Signed-off-by: Koji Matsuoka <koji.matsuoka.xm@xxxxxxxxxxx>
Signed-off-by: Simon Horman <horms+renesas@xxxxxxxxxxxx>
Signed-off-by: Yoshihiro Kaneko <ykaneko0929@xxxxxxxxx>
Signed-off-by: William Towle <william.towle@xxxxxxxxxxxxxxx>
Reviewed-by: Rob Taylor <rob.taylor@xxxxxxxxxxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit ab149b88eb23482cd9c203527bf4e612ee95b50f
Author: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Jul 21 10:09:10 2015 -0300
[media] tw68: Move PCI vendor and device IDs to pci_ids.h
This commits moves the Intersil/Techwell PCI vendor ID, and
the device IDs for the TW68 PCI video capture cards.
This will allow to support future Intersil/Techwell devices
without duplicating the IDs.
Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 823ea2a639611f79a3b4d3daff5ff722316342e7
Author: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
Date: Thu Feb 12 11:43:11 2015 -0200
[media] media: Correctly notify about the failed pipeline validation
On the place of the source entity name, the sink entity name was printed.
Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 78c66fbcec717b22fd9db4ddc95e543cfcf544af
Author: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Date: Wed May 20 04:08:30 2015 -0300
[media] v4l: omap3isp: Drop platform data support
Platforms using the OMAP3 ISP have all switched to DT, drop platform
data support.
Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Acked-by: Sakari Ailus <sakari.ailus@xxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 63540f01917c0d8b03b9813a0d6539469b163139
Author: Jan Kara <jack@xxxxxxx>
Date: Mon Jul 20 05:03:35 2015 -0300
[media] drm/exynos: Convert g2d_userptr_get_dma_addr() to use
get_vaddr_frames()
Convert g2d_userptr_get_dma_addr() to pin pages using get_vaddr_frames().
This removes the knowledge about vmas and mmap_sem locking from exynos
driver. Also it fixes a problem that the function has been mapping user
provided address without holding mmap_sem.
Acked-by: Inki Dae <inki.dae@xxxxxxxxxxx>
Signed-off-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 6690c8c78c745239bb1f22b23f3889a0a14c249b
Author: Jan Kara <jack@xxxxxxx>
Date: Mon Jul 13 11:55:50 2015 -0300
[media] media: vb2: Remove unused functions
Conversion to the use of pinned pfns made some functions unused. Remove
them. Also there's no need to lock mmap_sem in __buf_prepare() anymore.
Tested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit fb639eb39154312af8bf08c58cc0142179e0c224
Author: Jan Kara <jack@xxxxxxx>
Date: Mon Jul 13 11:55:49 2015 -0300
[media] media: vb2: Convert vb2_dc_get_userptr() to use frame vector
Convert vb2_dc_get_userptr() to use frame vector infrastructure. When we
are doing that there's no need to allocate page array and some code can
be simplified.
Tested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 5a9e4dec393a2c5a01be6adc63065059b367d532
Author: Jan Kara <jack@xxxxxxx>
Date: Mon Jul 13 11:55:48 2015 -0300
[media] media: vb2: Convert vb2_vmalloc_get_userptr() to use frame vector
Convert vb2_vmalloc_get_userptr() to use frame vector infrastructure.
When we are doing that there's no need to allocate page array and some
code can be simplified.
Tested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 3336c24f25ec932aab128cf7285ca90a4dbcb816
Author: Jan Kara <jack@xxxxxxx>
Date: Mon Jul 13 11:55:47 2015 -0300
[media] media: vb2: Convert vb2_dma_sg_get_userptr() to use frame vector
Tested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 21fb0cb7ec65a40b9f5f7cda59eba0eb2ae76473
Author: Jan Kara <jack@xxxxxxx>
Date: Mon Jul 13 11:55:46 2015 -0300
[media] vb2: Provide helpers for mapping virtual addresses
Provide simple helper functions to map virtual address range into an
array of pfns / pages.
Tested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 8a677b6eddfc3127ea36a710838ecd20502b1cb9
Author: Jan Kara <jack@xxxxxxx>
Date: Mon Jul 13 11:55:45 2015 -0300
[media] media: omap_vout: Convert omap_vout_uservirt_to_phys() to use
get_vaddr_pfns()
Convert omap_vout_uservirt_to_phys() to use get_vaddr_pfns() instead of
hand made mapping of virtual address to physical address. Also the
function leaked page reference from get_user_pages() so fix that by
properly release the reference when omap_vout_buffer_release() is
called.
Signed-off-by: Jan Kara <jack@xxxxxxx>
[hans.verkuil@xxxxxxxxx: remove unused variable]
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 8025e5ddf9c1cac0e632dad49a63abf7848b78cb
Author: Jan Kara <jack@xxxxxxx>
Date: Mon Jul 13 11:55:44 2015 -0300
[media] mm: Provide new get_vaddr_frames() helper
Provide new function get_vaddr_frames(). This function maps virtual
addresses from given start and fills given array with page frame numbers
of
the corresponding pages. If given start belongs to a normal vma, the
function
grabs reference to each of the pages to pin them in memory. If start
belongs to VM_IO | VM_PFNMAP vma, we don't touch page structures. Caller
must make sure pfns aren't reused for anything else while he is using
them.
This function is created for various drivers to simplify handling of
their buffers.
Signed-off-by: Jan Kara <jack@xxxxxxx>
Acked-by: Mel Gorman <mgorman@xxxxxxx>
Acked-by: Vlastimil Babka <vbabka@xxxxxxx>
Acked-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 0f6e2825ce916eed882996bb6e9148c13ecebefd
Author: Jan Kara <jack@xxxxxxx>
Date: Mon Jul 13 11:55:43 2015 -0300
[media] vb2: Push mmap_sem down to memops
Currently vb2 core acquires mmap_sem just around call to
__qbuf_userptr(). However since commit f035eb4e976ef5 (videobuf2: fix
lockdep warning) it isn't necessary to acquire it so early as we no
longer have to drop queue mutex before acquiring mmap_sem. So push
acquisition of mmap_sem down into .get_userptr memop so that the
semaphore is acquired for a shorter time and it is clearer what it is
needed for.
Note that we also need mmap_sem in .put_userptr memop since that ends up
calling vb2_put_vma() which calls vma->vm_ops->close() which should be
called with mmap_sem held. However we didn't hold mmap_sem in some code
paths anyway (e.g. when called via vb2_ioctl_reqbufs() ->
__vb2_queue_free() -> vb2_dma_sg_put_userptr()) and getting mmap_sem in
put_userptr() introduces a lock inversion with queue->mmap_lock in the
above mentioned call path.
Luckily this whole locking mess will get resolved once we convert
videobuf2 core to the new mm helper which avoids the need for mmap_sem
in .put_userptr memop altogether.
Signed-off-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 27c039750c8ff1297632e424a4674732cc4c3c70
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Tue Aug 11 12:18:33 2015 -0300
[media] sr030pc30: don't read a new pointer
sr030pc30_get_fmt() can only succeed if both info->curr_win and
info->curr_fmt are not NULL.
If one of those vars are null, the curent code would call:
ret = sr030pc30_set_params(sd);
If the curr_win is null, it will return -EINVAL, as it would be
expected. However, if curr_fmt is NULL, the function won't
set it.
The code will then try to read from it:
mf->code = info->curr_fmt->code;
mf->colorspace = info->curr_fmt->colorspace;
with obviouly won't work.
This got reported by smatch:
drivers/media/i2c/sr030pc30.c:505 sr030pc30_get_fmt() error: we
previously assumed 'info->curr_win' could be null (see line 499)
drivers/media/i2c/sr030pc30.c:507 sr030pc30_get_fmt() error: we
previously assumed 'info->curr_fmt' could be null (see line 499)
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit ab9a953b9f58ae695bbbe04a8540830bbae5d246
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Tue Aug 11 12:18:32 2015 -0300
[media] ov2659: get rid of unused values
Why to store the chosed values for prediv, postdiv and mult if
those won't be used?
drivers/media/i2c/ov2659.c: In function 'ov2659_pll_calc_params':
drivers/media/i2c/ov2659.c:912:35: warning: variable 's_mult' set but not
used [-Wunused-but-set-variable]
u32 s_prediv = 1, s_postdiv = 1, s_mult = 1;
^
drivers/media/i2c/ov2659.c:912:20: warning: variable 's_postdiv' set but
not used [-Wunused-but-set-variable]
u32 s_prediv = 1, s_postdiv = 1, s_mult = 1;
^
drivers/media/i2c/ov2659.c:912:6: warning: variable 's_prediv' set but
not used [-Wunused-but-set-variable]
u32 s_prediv = 1, s_postdiv = 1, s_mult = 1;
^
This is likely some leftover from some past change.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 12976516558c81f20757f6b0947823119ad87046
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Tue Aug 11 12:18:31 2015 -0300
[media] ov9650: remove an extra space
drivers/media/i2c/ov9650.c:1439 ov965x_detect_sensor() warn: inconsistent
indenting
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 1d88f831d20c10b5633cd71117917cd04a0735a8
Author: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Date: Tue Aug 11 12:18:30 2015 -0300
[media] tc358743: don't use variable length array for I2C writes
drivers/media/i2c/tc358743.c:148:19: warning: Variable length array is
used.
As the maximum size is 1026, we can't use dynamic var, as it
would otherwise spend 1056 bytes of the stack at i2c_wr() function.
So, allocate a buffer with the allowed maximum size together with
the state var.
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
Acked-by: Mats Randgaard <matrandg@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx>
commit 5d44595c2627f7edcd8c24a76b13bd115f9fc2da
Merge: fedf42b 93a1cee
Author: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
Date: Sun Aug 16 17:10:20 2015 +0200
Merge branch 'reset/ath79' into reset/next
commit bdfe0cbd746aa9b2509c2f6d6be17193cf7facd7
Author: Theodore Ts'o <tytso@xxxxxxx>
Date: Sun Aug 16 10:03:57 2015 -0400
Revert "ext4: remove block_device_ejected"
This reverts commit 08439fec266c3cc5702953b4f54bdf5649357de0.
Unfortunately we still need to test for bdi->dev to avoid a crash when a
USB stick is yanked out while a file system is mounted:
usb 2-2: USB disconnect, device number 2
Buffer I/O error on dev sdb1, logical block 15237120, lost sync page
write
JBD2: Error -5 detected when updating journal superblock for sdb1-8.
BUG: unable to handle kernel paging request at 34beb000
IP: [<c136ce88>] __percpu_counter_add+0x18/0xc0
*pdpt = 0000000023db9001 *pde = 0000000000000000
Oops: 0000 [#1] SMP
CPU: 0 PID: 4083 Comm: umount Tainted: G U OE
4.1.1-040101-generic #201507011435
Hardware name: LENOVO 7675CTO/7675CTO, BIOS 7NETC2WW (2.22 ) 03/22/2011
task: ebf06b50 ti: ebebc000 task.ti: ebebc000
EIP: 0060:[<c136ce88>] EFLAGS: 00010082 CPU: 0
EIP is at __percpu_counter_add+0x18/0xc0
EAX: f21c8e88 EBX: f21c8e88 ECX: 00000000 EDX: 00000001
ESI: 00000001 EDI: 00000000 EBP: ebebde60 ESP: ebebde40
DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
CR0: 8005003b CR2: 34beb000 CR3: 33354200 CR4: 000007f0
Stack:
c1abe100 edcb0098 edcb00ec ffffffff f21c8e68 ffffffff f21c8e68
f286d160
ebebde84 c1160454 00000010 00000282 f72a77f8 00000984 f72a77f8
f286d160
f286d170 ebebdea0 c11e613f 00000000 00000282 f72a77f8 edd7f4d0
00000000
Call Trace:
[<c1160454>] account_page_dirtied+0x74/0x110
[<c11e613f>] __set_page_dirty+0x3f/0xb0
[<c11e6203>] mark_buffer_dirty+0x53/0xc0
[<c124a0cb>] ext4_commit_super+0x17b/0x250
[<c124ac71>] ext4_put_super+0xc1/0x320
[<c11f04ba>] ? fsnotify_unmount_inodes+0x1aa/0x1c0
[<c11cfeda>] ? evict_inodes+0xca/0xe0
[<c11b925a>] generic_shutdown_super+0x6a/0xe0
[<c10a1df0>] ? prepare_to_wait_event+0xd0/0xd0
[<c1165a50>] ? unregister_shrinker+0x40/0x50
[<c11b92f6>] kill_block_super+0x26/0x70
[<c11b94f5>] deactivate_locked_super+0x45/0x80
[<c11ba007>] deactivate_super+0x47/0x60
[<c11d2b39>] cleanup_mnt+0x39/0x80
[<c11d2bc0>] __cleanup_mnt+0x10/0x20
[<c1080b51>] task_work_run+0x91/0xd0
[<c1011e3c>] do_notify_resume+0x7c/0x90
[<c1720da5>] work_notify
Code: 8b 55 e8 e9 f4 fe ff ff 90 90 90 90 90 90 90 90 90 90 90 55 89
e5 83 ec 20 89 5d f4 89 c3 89 75 f8 89 d6 89 7d fc 89 cf 8b 48 14 <64> 8b 01 89
45 ec 89 c2 8b 45 08 c1 fa 1f 01 75 ec 89 55 f0 89
EIP: [<c136ce88>] __percpu_counter_add+0x18/0xc0 SS:ESP 0068:ebebde40
CR2: 0000000034beb000
---[ end trace dd564a7bea834ecd ]---
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=101011
Signed-off-by: Theodore Ts'o <tytso@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 3c22a0ed597c1ff33eddeafd04be5e6ce544262d
Author: Avri Altman <avri.altman@xxxxxxxxx>
Date: Wed Aug 5 23:07:42 2015 +0300
iwlwifi: mvm: Enable power management on low-latency bss
Currently the driver disable power management on all low-latency
interfaces, while it should disable it on WiDi interfaces only.
Non-P2P interfaces that runs voice and video traffic should enable
power management.
Signed-off-by: Avri Altman <avri.altman@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 7c4f084372ed35aef3e8c6e6b1f1b1dc3235987a
Author: Arik Nemtsov <arik@xxxxxxxxxx>
Date: Thu Apr 30 18:31:45 2015 +0300
iwlwifi: mvm: support TDLS wider-bandwidth
When TDLS support is declared by the FW, set the bit indicating wider-BW
support as well.
Signed-off-by: Arik Nemtsov <arikx.nemtsov@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 5b9d47cdde1aacaac9b9dcefe44ee3493dc5fd87
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Tue Aug 11 00:45:03 2015 +0300
iwlwifi: mvm: fix a range check in debugfs code
The &mvm->tof_data.range_req.ap[] array has IWL_MVM_TOF_MAX_APS elements
so the check should be >= instead of >. Also the test can underflow so
I have changed "i" to unsigned.
Fixes: ce7929186a39 ('wlwifi: mvm: add basic Time of Flight (802.11mc
FTM) support')
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 3cd6e2f768851a760c072f0f84b9688b1755d24d
Author: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Date: Thu Jul 16 15:42:14 2015 +0300
iwlwifi: convert hex_dump_to_buffer() to %*ph
There is no need to use hex_dump_to_buffer() in the cases like this:
hexdump_to_buffer(buf, len, 16, 1, outbuf, outlen, false); /* len
<= 16 */
sprintf("%s\n", outbuf);
since it maybe easily converted to simple:
sprintf("%*ph\n", len, buf);
Note: it seems in one case the output is groupped by 2 bytes and looks
like a
typo. Thus, patch changes that to plain byte stream.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 1be5d8cc165d56b7267f5adc96d496a33c33219e
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date: Thu Jun 11 16:51:24 2015 +0200
iwlwifi: pass NAPI struct from transport layer
The mac80211 patch to pass the NAPI struct only changed iwlwifi to
store the NAPI struct, but we can do better: pass it directly from
the lower transport layer to the opmode during RX, and then on to
mac80211 from there.
When we add multiple RX queues, we can then pass the appropriate
NAPI struct properly.
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 473e0bc39bd5d2542e90edc622a65bd49206409d
Merge: 1a84e77 8f9c98d
Author: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
Date: Sun Aug 16 10:20:58 2015 +0300
Merge tag 'mac80211-next-for-davem-2015-08-14' into next
Another pull request for the next cycle, this time with quite
a bit of content:
* mesh fixes/improvements from Alexis, Bob, Chun-Yeow and Jesse
* TDLS higher bandwidth support (Arik)
* OCB fixes from Bertold Van den Bergh
* suspend/resume fixes from Eliad
* dynamic SMPS support for minstrel-HT (Krishna Chaitanya)
* VHT bitrate mask support (Lorenzo Bianconi)
* better regulatory support for 5/10 MHz channels (Matthias May)
* basic support for MU-MIMO to avoid the multi-vif issue (Sara Sharon)
along with a number of other cleanups.
commit 1a84e7716086be3b90e3b735725d0a14da28a69c
Author: Ayala Beker <ayala.beker@xxxxxxxxx>
Date: Wed Jul 22 13:54:31 2015 +0300
iwlwifi: mvm: add debug info to schedule scan complete message.
Add more information to schedule scan complete message.
Signed-off-by: Ayala Beker <ayala.beker@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 3b44a0ef12b9676914b25dcf3bf7f0cdd07de5b3
Author: David Spinadel <david.spinadel@xxxxxxxxx>
Date: Sun Jun 21 11:57:36 2015 +0300
iwlwifi: mvm: remove partial and full scan lists from lmac sched scan
Lmac sched scan supports partial scans, so we can set some channels to be
scanned on every scan iteration and others to be scanned only on some
iterations. Currently we set all channels to be scanned every iteration,
but still have some configuration of which iterations should be partial
and which should be full.
Remove all partial/full scan configuration to reduce confusions.
Signed-off-by: David Spinadel <david.spinadel@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 9437e9941025bc83d3dd43f2927019149029f667
Author: David Spinadel <david.spinadel@xxxxxxxxx>
Date: Mon Jun 22 13:20:00 2015 +0300
iwlwifi: mvm: simplify calculating scan dwells and other timing values
Remove timing values from iwl_mvm_scan_params and use defines and
arrays of values instead.
While at that fix few values and corner cases and align all OSs
to ChromeOS values.
Signed-off-by: David Spinadel <david.spinadel@xxxxxxxxx>
Reviewed-by: Luciano Coelho <luciano.coelho@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 80de4321a65c680dd7ce0138d88dc96e0d2a18fb
Author: Eliad Peller <eliadx.peller@xxxxxxxxx>
Date: Thu Jul 30 16:53:27 2015 +0300
iwlwifi: make sure d3_suspend/resume ops exist
We added calls to d3_suspend/resume trans ops during the
suspend/resume flow.
However, the wrapper code didn't verify the trans ops were
actually defined, resulting in panic when they were not
(such as in the case of sdio trans)
Fixes: 6dfb36c89dc2 ("iwlwifi: call d3_suspend/resume in d0i3 case as
well")
Signed-off-by: Eliad Peller <eliadx.peller@xxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
commit 395ae54bd8775508a9616817188cabbcd6f53260
Author: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
Date: Fri Aug 14 17:19:43 2015 -0500
ALSA: usb: handle descriptor with SYNC_NONE illegal value
The M-Audio Transit exposes an interface with a SYNC_NONE attribute.
This is not a valid value according to the USB audio classspec. However
there is a sync endpoint associated to this record. Changing the logic to
try to use this sync endpoint allows for seamless transitions between
altset 2 and altset 3. If any errors happen, the behavior remains the
same.
$ more /proc/asound/card1/stream0
M-Audio Transit USB at usb-0000:00:14.0-2, full speed : USB Audio
Playback:
Status: Stop
Interface 1
Altset 1
Format: S24_3LE
Channels: 2
Endpoint: 3 OUT (ADAPTIVE)
Rates: 48001 - 96000 (continuous)
Interface 1
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 3 OUT (NONE)
Rates: 8000 - 48000 (continuous)
Interface 1
Altset 3
Format: S16_LE
Channels: 2
Endpoint: 3 OUT (ASYNC)
Rates: 8000 - 48000 (continuous)
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 630184477e7eccb2b31ee4c20b6905ca5fa4b3a8
Author: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
Date: Fri Aug 14 17:19:42 2015 -0500
ALSA: usb: fix corrupted pointers due to interface setting change
When a transition occurs between alternate settings that do not use the
same synchronization method, the substream pointers were not reset.
This prevents audio from being played during the second transition.
Identified and tested with M-Audio Transit device
(0763:2006 Midiman M-Audio Transit)
Details of the issue:
First playback to adaptive endpoint:
$ aplay -Dhw:1,0 ~/24_96.wav
Playing WAVE '/home/plb/24_96.wav' : Signed 24 bit Little Endian in
3bytes,
Rate 96000 Hz, Stereo
[ 3169.297556] usb 1-2: setting usb interface 1:1
[ 3169.297568] usb 1-2: Creating new playback data endpoint #3
[ 3169.298563] usb 1-2: Setting params for ep #3 (type 0, 3 urbs), ret=0
[ 3169.298574] usb 1-2: Starting data EP @ffff880035fc8000
first playback to asynchronous endpoint:
$ aplay -Dhw:1,0 ~/16_48.wav
Playing WAVE '/home/plb/16_48.wav' : Signed 16 bit Little Endian,
Rate 48000 Hz, Stereo
[ 3204.520251] usb 1-2: setting usb interface 1:3
[ 3204.520264] usb 1-2: Creating new playback data endpoint #3
[ 3204.520272] usb 1-2: Creating new capture sync endpoint #83
[ 3204.521162] usb 1-2: Setting params for ep #3 (type 0, 4 urbs), ret=0
[ 3204.521177] usb 1-2: Setting params for ep #83 (type 1, 4 urbs), ret=0
[ 3204.521182] usb 1-2: Starting data EP @ffff880035fce000
[ 3204.521204] usb 1-2: Starting sync EP @ffff8800bd616000
second playback to adaptive endpoint: no audio and error on terminal:
$ aplay -Dhw:1,0 ~/24_96.wav
Playing WAVE '/home/plb/24_96.wav' : Signed 24 bit Little Endian in
3bytes,
Rate 96000 Hz, Stereo
aplay: pcm_write:1939: write error: Input/output error
[ 3239.483589] usb 1-2: setting usb interface 1:1
[ 3239.483601] usb 1-2: Re-using EP 3 in iface 1,1 @ffff880035fc8000
[ 3239.484590] usb 1-2: Setting params for ep #3 (type 0, 4 urbs), ret=0
[ 3239.484606] usb 1-2: Setting params for ep #83 (type 1, 4 urbs), ret=0
This last line shows that a sync endpoint is used when it shouldn't.
The sync endpoint is no longer valid and the pointers are corrupted
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 2a8cb48945408984cd04c850b293f467b32ec5af
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Sun Aug 16 14:38:49 2015 +0900
drm/exynos: merge exynos_drm_buf.c to exynos_drm_gem.c
The struct exynos_drm_gem_obj can have fields of the struct
exynos_drm_gem_buf then don't need to use exynos_drm_buf.c file.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 01ed50ddbd6f7b4fafcf366994949d5a1a8356c0
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Sun Aug 16 14:33:08 2015 +0900
drm/exynos: use prime helpers
The dma-buf codes of exynos drm is almost same with prime helpers. A
difference is that consider DMA_NONE when import dma-buf, but it's wrong
and we don't consider it any more, so we can use prime interface.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit eb57da880b00b6c68f971e077ff3e4db9ef0deae
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Jul 28 17:53:27 2015 +0900
drm/exynos: remove function roundup_gem_size
The function roundup_gem_size can be merged in exynos_drm_gem_create.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 211b8878c13fbd5f8ae8a7b68798d178cb5346b4
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Sun Aug 16 14:16:49 2015 +0900
drm/exynos: remove function update_vm_cache_attr
The function update_vm_cache_attr can be merged in exynos_drm_gem_mmap.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit c4130bcd6a80f29a5d0cabcef8f0341cfa812dff
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Sun Aug 16 14:15:06 2015 +0900
drm/exynos: remove function check_gem_flags
The function check_gem_flags is too simple, so it's better to move codes
in each consumer functions.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 5f3f42664fafa7dd88aee30a2ea77ca45c9362e7
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Jul 28 17:53:22 2015 +0900
drm/exynos: use ERR_PTR instead of NULL in exynos_drm_gem_init
For more correct error information.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 8e38976ee9aceec4231e7aa5aacf3c6e7aa41471
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Jul 28 17:53:21 2015 +0900
drm/exynos: remove unused fields of struct exynos_drm_gem_buf
The userptr, write and pfnmap of struct exynos_drm_gem_buf are not used
anywhere.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 67e93c808b486817193dbd1ff93ee03adb9eef28
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Jul 28 17:53:20 2015 +0900
drm/exynos: stop copying sg table
Already struct exynos_drm_gem_buf has pages of the buffer, so we don't
need to copy from sg table of the buffer to sg table of dma-buf
attachment, just can make sg table from pages of the buffer.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 0e9a2ee3bc1ee24be519312453ef93288b545ad3
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Jul 28 17:53:19 2015 +0900
drm/exynos: remove function exynos_drm_gem_map_buf
The exynos_drm_gem_map_buf can be merged in exynos_drm_gem_fault.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 67412d15afb7cc34943157c4bce2cf138b579fd1
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Jul 28 17:53:18 2015 +0900
drm/exynos: remove mutex locking in pagefault handler
There is no reason to use mutex locking in pagefault handler.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 23597e2642ca76883ef533d3e3947b859537fd49
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Jul 28 17:53:17 2015 +0900
drm/exynos: remove function convert_to_vm_err_msg
The convert_to_vm_err_msg is called just once by exynos_drm_gem_fault,
so it's simple not to use the function.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 8139951cae69637cc882e23f36fc45ecfa1ec814
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Jul 28 17:53:16 2015 +0900
drm/exynos: stop using sgtable in page fault handler
Already struct exynos_drm_gem_buf has pages of the buffer when buffer is
created, so just can use pages in page fault handler, we don't have to
make sgtable of the buffer. But this needs to construct pages of the
buffer that is imported from dma-buf prime.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 493f133f47750aa5566fafa9403617e3f0506f8c
Author: Len Brown <len.brown@xxxxxxxxx>
Date: Wed Mar 25 23:20:37 2015 -0400
intel_idle: Skylake Client Support
Skylake Client CPU idle Power states (C-states)
are similar to the previous generation, Broadwell.
However, Skylake does get its own table with updated
worst-case latency and average energy-break-even residency values.
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
commit 2b8376c803c4c1c02446520527b31161e8a3c066
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Sat Aug 15 12:14:08 2015 -0300
drm/exynos: remove struct exynos_drm_encoder layer
struct exynos_drm_encoder was justing wrapping struct drm_encoder, it had
only a drm_encoder member and the internal exynos_drm_encoders ops that
was directly mapped to the drm_encoder helper funcs.
So now exynos DRM uses struct drm_encoder directly, this removes
completely the struct exynos_drm_encoder.
v2: add empty .mode_fixup() and .mode_set() to DSI and DPI to avoid null
pointer.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 6cf272751be22a9ae6a6a9550854156dd812ff66
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 10:31:47 2015 -0300
drm/exynos: fold encoder setup into exynos_drm_load()
As we are removing the exynos encoder move the encoder setup operation
directly inside the exynos_drm_load()
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit a2986e8032bddbe237ed16e2e26c71f5416cd5fd
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 20:24:20 2015 -0300
drm/exynos: remove exynos_drm_create_enc_conn()
This functions was just hiding the encoder and connector creation in
a way that was less clean than if we get rid of it. For example,
exynos_encoder ops had .create_connector() defined only because we were
handing off the encoder and connector creation to
exynos_drm_create_enc_conn(). Without this function we can directly call
the create_connector function internally in the code, without the need of
any vtable access.
It also does some refactoring in the code like creating a bind function
for dpi devices.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit af8be3f6fe80262f29b5e353421392196ff626f0
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 20:24:19 2015 -0300
drm/exynos: remove exynos_encoder's .commit() op
.commit() is not used anymore, Exynos encoders now follow the
.enable()/.disable() semantics from drm atomic core, so remove this
callback.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 07fd6e1f9985399f08af0f7981eaed362512a5af
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 20:24:18 2015 -0300
drm/exynos: remove extra call to exynos_dp_commit()
exynos_dp_commit() was getting called twice by exynos encoder core, once
inside the .enable() call and another time by .commit() itself.
The remove of the second call caused the wake of a bug, the operations
orders inside exynos_dp_commit was wrong and we had to move
exynos_dp_start_video() to be the last operation in there.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit c2c099f2d97a039c5e1714c803dd9d20458c388f
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 20:24:17 2015 -0300
drm/exynos: remove extra call to hdmi_commit()
hdmi_commit() was getting called twice by exynos encoder core, once inside
the .enable() call and another time by .commit() itself.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit cf67cc9a29ac19c98bc4fa0e6d14b0c1f592d322
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Tue Aug 11 17:38:06 2015 +0900
drm/exynos: remove struct exynos_drm_display
This struct was just representing encoder information, it was a member of
struct exynos_drm_encoder, so any code trying to access encoder data would
have to go through the encoder struct, get the display struct and then get
the data it want.
During this patchset we also realized that the only data
exynos_drm_encoder needs to store is the drm_encoder parent and the
exynos_drm_encoder_ops.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit d1fa72d0a6e70057f6aa0d0f6187e4a49e261fa8
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 20:24:15 2015 -0300
drm/exynos: simplify calculation of possible CRTCs
All CRTCs can only be LCD, HDMI or VIDI, so basically all CRTCs will be a
possible CRTCs. This patch removes an extra function with switch that was
only checking if the CRTC type was one of those three above.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit a090f45ff0acae51aa0363a72e5c3b47332af9f9
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 20:24:14 2015 -0300
drm/exynos: remove unused .remove() and .check_mode() ops from display
These two display_ops are not used anywhere, remove them.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit b6f3c36183470bbbee9da1c0a8cc892e69f88c4f
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 20:24:13 2015 -0300
drm/exynos: remove wrappers for phy_power_{on,off}
phy_power_on() and phy_power_off() already checks for NULL pointer.
This patch removes the wrappers exynos_dp_phy_init() and
exynos_dp_phy_exit() since the only think they were doing was a check for
NULL phy.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit b6595dc7e1ccc0964862a5bd436a8f004b36c02f
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Mon Aug 10 21:37:04 2015 -0300
drm/exynos: split display's .dpms() into .enable() and .disable()
The DRM Core doesn't have a dpms() operation anymore, everything
now is enable() or disable().
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 08dd20099f3ce55a2ded0045b5a087aefea38cd8
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Thu Jul 16 12:23:39 2015 -0300
drm/exynos: return return value of exynos_crtc->enable_vblank
Instead of blindly ignore the return value of enable_vblank return it
to the upper DRM layer for error handling.
Suggested-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit d88d2463fecb13c67d8eec78c4b61671900deb94
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Thu Jul 16 12:23:38 2015 -0300
drm/exynos: unify exynos_drm_plane names with drm core
Rename crtc_{widht,height} to crtc_{w,h} and src_{width,height} to
src_{w,h} to make it similar to the atomic state names.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit a1bcc9da90ab44d29c38fc6e4a8dba633e97f3f3
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Thu Jul 16 12:23:37 2015 -0300
drm/exynos: remove unused fields from struct exynos_drm_plane
Now after the move to use drm_plane_state directly struct drm_plane_state
has many unused fields, along with others that weren't used before the
plane state change. Thus remove them all.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 2eeb2e5e6634dbb97bdda81f65f70e4b037028d5
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Mon Aug 3 14:40:44 2015 +0900
drm/exynos: use drm atomic state directly
For some fields the use of struct exynos_drm_plane filled with data from
the plane state just creates a source of duplicated information and
overhead. Here we change the crtc drivers to access the plane state
directly simplifying the code by not relying on a exynos internal struct.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 1e1d13932283419ddfdb60c73319cc0e753ded5b
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Mon Aug 3 14:39:36 2015 +0900
drm/exynos: pass struct exynos_drm_plane in update/enable
We already have the plane pointer in before calling .update_plane() or
disable_plane() so pass it directly to those calls avoiding a new
conversion from zpos to struct exynos_drm_plane.
v2: don't remove check for suspended in FIMD (comment by Joonyoung)
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 9cc7610a2375a94ec967f771ce74b51db0d43d1c
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Mon Aug 3 14:38:05 2015 +0900
drm/exynos: rename win_commit/disable to atomic-like names
Rename win_commit() helper to update_plane() and win_disable() to
disable_plane().
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit f59a89d05f1290d0cdaa588d29871e05cdec159b
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Thu Jul 16 12:23:33 2015 -0300
drm/exynos: remove duplicated check for suspend
The same check is placed twice in fimd/decon_update_plane(), remove
one of them.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit eafd540aeaae6f1c4d04fdf3959419716d23cdc5
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Thu Jul 16 12:23:32 2015 -0300
drm/exynos: use KMS version of DRM vblanks functions
Get rid of legacy DRM vblank function that are less clear to use.
The new ones basically requires only the crtc as parameters.
It also clean ups exynos_drm_crtc_finish_pageflip() parameters as a
consequence.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 451a8c0c59b3feebb5bf6a1ce1335e9f3e428355
Author: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Date: Thu Jul 16 12:23:31 2015 -0300
drm/exynos: pass the correct pipe number
Instead of giving -1 to as arg to drm_send_vblank_event() pass the
correct pipe number to it.
Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 43a3b866a9e73e9bd215ec3f36c71e42469e70c6
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Tue Jul 28 17:51:02 2015 +0900
drm/exynos: clear channels only when iommu is enabled
This is simplest solution about reported problem[1]. It's no problem to
clear channel only when iommu is enabled, if we consider that we cannot
recognize iommu errors when iommu is disabled and it have been valid
until now. But this cannot be nice solution.
[1] https://lkml.org/lkml/2015/7/21/404
Reported-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit eb7a3fc74c58be9c01cdbe23947ae9eb032e8365
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Thu Jul 2 21:49:39 2015 +0900
drm/exynos: remove drm_iommu_attach_device_if_possible
Already drm_iommu_attach_device checks whether support iommu internally.
It should clear channels always regardless iommu support. We didn't know
because we can detect the problem when iommu is enabled, so we don't
have to use drm_iommu_attach_device_if_possible and then we can remove
drm_iommu_attach_device_if_possible and clear_channels function pointer.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Tested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 735c21c3c802e9e89ce302ab40ea92f5d1151e02
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Wed Jul 15 12:04:39 2015 +0900
drm/exynos: move order to register vidi kms driver
The vidi is virtual kms driver and now it is registered earlier than
actual hw kms drivers, so it will occupy crtc index 0. Some users
assume the condition yet that actual hw kms driver has crtc index 0.
It may or may not be matter but let's arrange register order.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 0df5e4acf584ad1b1b5689d283e1e81655eefab1
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 08:25:43 2015 +0200
drm/exynos/mixer: replace MXR_INT_EN register cache with flag
Driver uses only VSYNC interrupts, so we need to cache VSYNC bit state
only.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit a44652e845739b88214adf9f40478f1ed037348d
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 08:25:42 2015 +0200
drm/exynos/mixer: simplify poweron flag
The driver uses bool protected by mutex to track power state.
The patch replaces this combo with single bit and atomic bitops.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit bf56608a73444037d6960204d81662ccbdebe282
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Thu Jul 2 21:49:38 2015 +0900
drm/exynos: remove unnecessary checking to support iommu
Already drm_iommu_attach_device and drm_iommu_detach_device check
whether support iommu internally, so we don't have to call
is_drm_iommu_supported before call them.
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Tested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit b24919575ea26937013a4380a604c4e8c0a71c81
Author: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Date: Thu Jul 2 21:49:37 2015 +0900
drm/exynos: remove to use ifdef CONFIG_ARM_DMA_USE_IOMMU
If CONFIG_ARM_DMA_USE_IOMMU is disable, CONFIG_DRM_EXYNOS_IOMMU also is
disable. When CONFIG_DRM_EXYNOS_IOMMU is disable,
is_drm_iommu_supported() returns always false, so we can remove to use
ifdef CONFIG_ARM_DMA_USE_IOMMU in is_drm_iommu_supported().
Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Tested-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 5149705dacfb24406634d2060880cd5605772540
Author: Hyungwon Hwang <human.hwang@xxxxxxxxxxx>
Date: Wed Jul 1 19:09:25 2015 +0900
drm/exynos: gsc: Handles the combination of rotation and flip
The unique results of all the combination of rotation and flip can
be represented by just 8 states. This patch handles all the combination
correctly.
Signed-off-by: Hyungwon Hwang <human.hwang@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 7b5102da0a9f008a5d59fa4e3cd9e6006848f3bd
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 16:28:12 2015 +0200
drm/exynos/hdmi: remove hdmi_v14_conf struct
The patch removes intermediate struct for HDMIv14 register configuration,
instead registry values are calculated on the fly.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit edb6e41201c626439a8f3687a0cc81c0d1f13c84
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 16:28:11 2015 +0200
drm/exynos/hdmi: remove hdmi_v13_conf struct
The patch removes intermediate struct for HDMIv13 register configuration,
instead registry values are calculated on the fly.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit c93aaebfd1945fd0c3efacad001906dd6bcbb3df
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 16:28:10 2015 +0200
drm/exynos/hdmi: remove redundant configuration fields
The patch removes redundant fields from hdmi_conf_regs. Their values
can be calculated from current_mode. This patch is the first step to
remove
whole hdmi_conf_regs structure.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit cd240cde91fa637449b564c08b31030073769ad7
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 16:28:09 2015 +0200
drm/exynos/hdmi: add driver data pointer to private context
The patch replaces duplicated driver data fields in private context with
pointer to driver data. It also simplifies driver data lookup code.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 882a0644fd3427a17d80ad14d1ca3a6228a3860f
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 16:28:08 2015 +0200
drm/exynos/hdmi: remove private lock code
Most of the code is called by drm core framework, so it is already
synchronized.
The only async function is irq routine which only calls drm framework so
it
does not need to be synchronized.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit ef6ce28bc7c529d4d0b8c699d26fb568208bc305
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 16:28:07 2015 +0200
drm/exynos/hdmi: Simplify HPD gpio handling
GPIO is tested only in hdmi_detect, so there is no reason to set it in
other places and to preserve its value in context.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit d36b3004ca2c99f39e9691ad8a10c02803ad28fc
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 16:28:06 2015 +0200
drm/exynos/hdmi: remove old platform data code
s5p_hdmi_platform_data were used before device tree introduction.
As HDMI driver is DT only we can drop this struct completely.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit e920efe6fe06b3d4a181a00c54ae00ee83545992
Author: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Date: Thu Apr 9 10:46:00 2015 +0200
drm/exynos/fimc: fix runtime pm support
Once pm_runtime_set_active() gets called, the kernel assumes that given
device has already enabled runtime pm and will call pm_runtime_suspend()
without matching pm_runtime_resume(). In case of DRM FIMC IPP driver,
this will result in calling clk_disable() without respective call to
clk_enable(). This patch removes call to pm_runtime_set_active() to
ensure that pm_runtime_suspend/resume calls will match.
Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 947710c6702a4916a7a01b3af4decb66ae7fc34f
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 08:25:41 2015 +0200
drm/exynos/mixer: always update INT_EN cache
INT_EN cache field was updated only by mixer_enable_vblank.
The patch adds update also by mixer_disable_vblank function.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit fc073248ceb56af8cedebff36bf1cdc5da3c6847
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 08:25:40 2015 +0200
drm/exynos/mixer: correct vsync configuration sequence
Specification advises to clear vsync indicator before configuring vsync.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 81a464df5c5cdb47c2c5e271f7440e011d694018
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 10:07:53 2015 +0200
drm/exynos/mixer: fix interrupt clearing
The driver used incorrect flags to clear interrupt status.
The patch fixes it.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 64ebd8904fab29ee0b76f923aac77da5caa0437d
Author: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Date: Thu Jul 9 08:25:38 2015 +0200
drm/exynos/hdmi: fix edid memory leak
edid returned by drm_get_edid should be freed.
The patch fixes it.
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit 988a47311952db42b3bf84be0dd515ca7d86aaa3
Author: Hyungwon Hwang <human.hwang@xxxxxxxxxxx>
Date: Wed Jul 1 19:09:24 2015 +0900
drm/exynos: gsc: fix wrong bitwise operation for swap detection
The bits for rotation are not used as exclusively. So GSC_IN_ROT_270 can
not be used for swap detection. The definition of it is same with
GSC_IN_ROT_MASK. It is enough to check GSC_IN_ROT_90 bit is set or not to
check whether width / height size swapping is needed.
Signed-off-by: Hyungwon Hwang <human.hwang@xxxxxxxxxxx>
Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx>
commit d248b61f611463cca906d5663a9a0de63ade97a9
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Thu Aug 13 17:49:29 2015 -0400
drm/msm/dsi: Introduce DSI configuration module
With more platforms supported, the DSI host
configuration array keeps expanding. This change
moves those to a separate dsi_cfg module.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 1bf4d7c5651a7cfcdcd77389b42d266441ecf444
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Thu Aug 13 17:45:53 2015 -0400
drm/msm/dsi: Make each PHY type compilation independent
On a certain platform, only one type of DSI PHY is used.
This change allows the user to only compile the PHY type
which is being used.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 5c8290284402bf7d2c12269402b3177b899c78b7
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Thu Aug 13 17:45:52 2015 -0400
drm/msm/dsi: Split PHY drivers to separate files
This change moves each PHY type specific code into
separate files.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 29e61690130adb1c27053558d2f21af88ae0334e
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Thu Aug 13 17:45:51 2015 -0400
drm/msm/dsi: Return void from msm_dsi_phy_disable()
We are not checking the return value from msm_dsi_phy_disable().
Change the return type to void.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit fae11c1106ad8304c09e3b9bf95dd6d03f4a5afa
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Thu Aug 13 17:45:50 2015 -0400
drm/msm/dsi: Specify bitmask to set source PLL
The bit position to configure source PLL will change
on new types of PHYs. The caller should pass down
this information.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 29f034d776209042f7aaaf1518a66841c1d42233
Author: jilai wang <jilaiw@xxxxxxxxxxxxxx>
Date: Wed Aug 5 15:33:29 2015 -0400
drm/msm/mdp: Clear pending interrupt status before enable interrupt
Pending interrupt status needs to be cleared before enable the
interrupt. Otherwise it's possible to get a pending interrupt instead
of an incoming interrupt.
Signed-off-by: Jilai Wang <jilaiw@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 8089082fae1975ad9d5abbd37c0ee8f688be28a0
Author: jilai wang <jilaiw@xxxxxxxxxxxxxx>
Date: Fri Jul 31 10:13:26 2015 -0400
drm/msm/mdp5: Add rotation (hflip/vflip) support to MDP5 planes (v2)
MDP5 SSPPs can flip the input source horizontally or vertically.
This change is to add this support to MDP5 planes.
v1: Initial change
v2: Use existing "rotation" property instead of creating msm specific
properties. In order to be compatiable with legacy non-atomic
set_property, switch to drm_atomic_helper_plane_set_property
helper function.
Signed-off-by: Jilai Wang <jilaiw@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 095022b9aa0546a0f3d3fb5f42c82b4004103864
Author: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
Date: Mon Jul 27 15:12:39 2015 +0100
drm/msm: add calls to prepare and unprepare panel
Prepare the panel before it's enabled and un-prepare after disable, this
will make sure that the regulators are switched on and off correctly.
Tested it on APQ8064 based IFC6410 with panel.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 09992e4d46935798b4a1cf3a734e6a0f3470f107
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Mon Aug 3 14:09:36 2015 +0530
drm/msm/dsi: Modify dsi manager bridge ops to work with external bridges
The dsi bridge ops call drm_panel functions to set up the connected
drm_panel. Add checks to make sure these aren't called when we're
connected to an external bridge.
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit c118e29033aa5b38b593ebd0e02f8b1224c20ed3
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Fri Jul 31 14:06:10 2015 +0530
drm/msm/dsi: Allow dsi to connect to an external bridge
There are platforms where the DSI output can be connected to another
encoder bridge chip (DSI to HDMI, DSI to LVDS etc).
Add support for external bridge support to the dsi driver. We assume that
the external bridge chip would be of the type drm_bridge. The dsi driver's
internal drm_bridge (msm_dsi->bridge) is linked to the external bridge's
drm_bridge struct.
In the case we're connected to an external bridge, we don't need to create
and manage a connector within our driver, it's the bridge driver's
responsibility to create one.
v2:
- Move the external bridge attaching stuff to dsi manager to make things
cleaner.
- Force the bridge to connect to a video mode encoder for now (the dsi
mode flags may have not been populated by modeset_init)
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 6f054ec5b9ced3041f29541ae79402198678fc06
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Mon Aug 3 14:08:33 2015 +0530
drm/msm/dsi: Create a helper to check if there is a connected device
Create a helper msm_dsi_device_connected() which checks whether we have a
device connected to the dsi host or not. This check gets messy when we
have support external bridges too. Having an inline function makes it
more legible.
For now, the check only consists of msm_dsi->panel being non-NULL. Later,
this will check if we have an external bridge or not.
This helper isn't used in dsi_connector related code as that's specific
to only when a drm_panel is connected.
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit a9ddac9c5765712fa7eace55feeaf7c4ac75e32b
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Mon Aug 3 14:05:45 2015 +0530
drm/msm/dsi: Refer to connected device as 'device' instead of 'panel'
We currently support only panels connected to dsi output. We're going to
also support external bridge chips now.
Change 'panel_node' to 'device_node' in the struct msm_dsi_host and
'panel_flags' to 'device_flags' in msm_dsi. This makes things sound a
bit more generic.
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 60d05cb4eabcfcab00784677c2a55ed1b9bda2ec
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Thu Jun 25 14:36:35 2015 +0530
drm/msm/dsi: Make TE gpio optional
Platforms containing only DSI video mode devices don't need a TE gpio.
Make TE gpio optional.
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 3d6df06249277aabaf895951855c4ed704b038bb
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Tue Jun 9 14:17:22 2015 +0530
drm/msm: mdp4 lvds: get panel node via of graph parsing
We currently get the output connected to LVDS by looking for a phandle
called 'qcom,lvds-panel' under the mdp DT node.
Use the more standard of_graph approach to create an lvds output port,
and retrieve the panel node from the port's endpoint data.
v3
- Fix return value checks of of_graph_* calls.
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit f7009d266d8b2f4b54da42399aaa536d74fe3e7c
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Thu Jun 25 11:43:40 2015 +0530
drm/msm: dsi host: Use device graph parsing to parse connected panel
The dsi host looks for the connected panel node by parsing for a child
named 'panel'. This hierarchy isn't very flexible. The connected
panel is forced to be a child to the dsi host, and hence, a mipi dsi
device. This isn't suitable for dsi devices that don't use mipi dsi
as their control bus.
Follow the of_graph approach of creating ports and endpoints to
represent the connections between the dsi host and the panel connected
to it. In our case, the dsi host will only have one output port, linked
to the panel's input port.
Update DT binding documentation with device graph usage info.
v3:
- Fix return value checks of of_graph_* calls.
- Don't make port a mandatory DT property
- Fix defer check when no panel node specified
- Rename parse_dt func to align with other dsi_host funcs
Reviewed-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 14bb28b0f91f868f081f71eb0c7b590e13527c3c
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Thu Jun 4 15:01:57 2015 +0530
drm/msm: dsi host: add missing of_node_put()
Decrement device node refcount if of_get_child_by_name is successfully
called.
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 78b1d470d57dd7a6e0efda63ebad97f0d44e817c
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Mon Jul 27 13:49:45 2015 -0400
drm/msm: Enable clocks during enable/disable_vblank() callbacks
AHB clock should be enabled before accessing registers during
enable/disable_vblank(). Since these 2 callbacks are called in
atomic context while clk_prepare may cause thread sleep, a work
is scheduled to control vblanks.
v2: fixup spinlock initialization
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
[add comment about cancel_work_sync() before drm_irq_uninstall()]
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 8a94b0aa372ebf7375c8ea861cb9bbf84b39d2df
Author: jilai wang <jilaiw@xxxxxxxxxxxxxx>
Date: Wed Jul 8 18:25:40 2015 -0400
drm/msm/mdp5: Add support for msm8x74v1
msm8x74v1 has different MDP5 version (v1.0) from msm8x74v2 (v1.2).
Add a separate config data to support msm8x74v1.
Signed-off-by: Jilai Wang <jilaiw@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 8155ad4ce67d2f3418a4a72144c10114d21f0ece
Author: jilai wang <jilaiw@xxxxxxxxxxxxxx>
Date: Tue Jul 7 17:17:28 2015 -0400
drm/msm/mdp5: Add DMA pipe planes for MDP5
This change is to add planes which use DMA pipes for MDP5.
Signed-off-by: Jilai Wang <jilaiw@xxxxxxxxxxxxxx>
[slight comment adjust to s/Construct public planes/Construct video
planes/ since DMA planes are public planes too, they just can't scale
or CSC]
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 3498409f0315b93f969f87c31d014a9819f6fa7d
Author: jilai wang <jilaiw@xxxxxxxxxxxxxx>
Date: Wed Jul 8 18:12:40 2015 -0400
drm/msm/mdp: Add capabilities to MDP planes (v2)
MDP planes can be implemented using different type of HW pipes,
RGB/VIG/DMA pipes for MDP5 and RGB/VG/DMA pipes for MDP4. Each type
of pipe has different HW capabilities such as scaling, color space
conversion, decimation... Add a variable in plane data structure
to specify the difference of each plane which comes from mdp5_cfg data
and use it to differenciate the plane operation.
V1: Initial change
V2: Fix a typo in mdp4_kms.h
Signed-off-by: Jilai Wang <jilaiw@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit bef799fb77dc30d32362b6850e997f1c29fc99eb
Author: Stephane Viau <sviau@xxxxxxxxxxxxxx>
Date: Mon Jul 6 16:35:31 2015 -0400
drm/msm/mdp5: add more YUV formats for MDP5
Add packed YUV422 and planar YUV420 formats to MDP supported
formats.
Signed-off-by: Stephane Viau <sviau@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 9cc137a3ffa3162a0d5af822149a5cec1b42c24e
Author: Wentao Xu <wentaox@xxxxxxxxxxxxxx>
Date: Mon Jul 6 16:35:30 2015 -0400
drm/msm/mdp5: use 2 memory clients for YUV formats on newer mdp5
Newer MDP5 uses 2 shared memory pool clients for certain YUV formats.
For example, if VIG0 is used to fetch data in YUYV format, it will use
VIG0_Y for Y component, and VIG0_Cr for UV packed.
Signed-off-by: Wentao Xu <wentaox@xxxxxxxxxxxxxx>
[rebase]
Signed-off-by: Stephane Viau <sviau@xxxxxxxxxxxxxx>
commit ff78a6b3771f48d1d5585e5d08ab4ae6fd606ab0
Author: Wentao Xu <wentaox@xxxxxxxxxxxxxx>
Date: Mon Jul 6 16:35:29 2015 -0400
drm/msm/mdp: mark if a MDP format is YUV at definition
This makes it easy to determine if a format is YUV. The old
method of using chroma sample type incorrectly marks YUV444 as
RGB format.
Signed-off-by: Wentao Xu <wentaox@xxxxxxxxxxxxxx>
[rebase]
Signed-off-by: Stephane Viau <sviau@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 02b3ee466443ba6780562fb2af5fe0ad5bf059f6
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Mon Jul 6 11:09:41 2015 +0200
drm/msm/dp: use flags argument of devm_gpiod_get to set direction
Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions)
which appeared in v3.17-rc1, the gpiod_get* functions take an additional
parameter that allows to specify direction and initial value for output.
Use this to simplify the driver. Furthermore this is one caller less
that stops us making the flags argument to gpiod_get*() mandatory.
Acked-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 328e1a633c9bc26c36ecd320246e4a9b2726e81a
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Fri Jul 3 10:09:46 2015 -0400
drm/msm/dsi: Save/Restore PLL status across PHY reset
Reset DSI PHY silently changes its PLL registers to reset status,
which will make cached status in clock driver invalid and result
in wrong output rate of link clocks. The current restore mechanism
in DSI PLL does not cover all the cases. This change is to recover
PLL status after PHY reset to match HW status with cached status
in clock driver.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit da882cd1ee132ecbb4a4848a6b0797ea2ed4bee7
Author: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Sat Jun 27 22:23:28 2015 +0200
drm/msm/dsi: One function call less in dsi_init() after error detection
The dsi_destroy() function was called in two cases by the dsi_init()
function
during error handling even if the passed variable contained a null
pointer.
* This implementation detail could be improved by adjustments for jump
targets according to the Linux coding style convention.
* Drop an unnecessary initialisation for the variable "msm_dsi" then.
Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
[add couple missing ERR_PTR()'s]
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit a60bbb2764b73a3f54c7462f3d28f960b7811682
Author: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Sat Jun 27 22:05:31 2015 +0200
drm/msm/dsi: Delete an unnecessary check before the function call
"dsi_destroy"
The dsi_destroy() function tests whether its argument is NULL and then
returns immediately. Thus the test around the call is not needed.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit b96b3a06d1211ba86674db99a6aafe39ef4cbed2
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Fri Jun 26 16:03:26 2015 -0400
drm/msm/mdp5: Allocate CTL0/1 for dual DSI single FLUSH
This change takes advantage of a HW feature that synchronize
flush operation on CTL1 to CTL0, to keep dual DSI pipes in
sync.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit c71716b17bc772e9c38f85a4b496bbfac0dd32f0
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Fri Jun 26 16:03:25 2015 -0400
drm/msm/mdp5: Allocate CTL for each display interface
In MDP5, CTL contains information of the whole pipeline whose
output goes down to a display interface. In various cases, one
interface may require 2 CRTCs, but only one CTL. Some interfaces
also require to use certain CTLs.
Instead of allocating CTL for each active CRTC, this change is to
associate a CTL with each interface.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 129877819c0a5f8d419fe67ae08a8a7c811afa5e
Author: jilai wang <jilaiw@xxxxxxxxxxxxxx>
Date: Thu Jun 25 17:37:42 2015 -0400
drm/msm/mdp5: Add plane blending operation support for MDP5 (v2)
This change is to add properties alpha/zpos/blend_mode to mdp5 plane
for alpha blending operation to generate the blended output.
v1: Initial change
v2: Change "premultilied" property to enum (Rob's comment)
Signed-off-by: Jilai Wang <jilaiw@xxxxxxxxxxxxxx>
[Don't actually expose alpha/premultiplied props to userspace yet
pending a chance for discussion and some userspace to exercise it]
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 4ff696eafaa50d6d649d256d20528b475104a500
Author: Rob Clark <robdclark@xxxxxxxxx>
Date: Tue Jul 28 11:05:03 2015 -0400
drm/msm: don't install plane properties on crtc
This was a hold-over from the pre-atomic days and legacy userspace that
only understood CRTCs. Fortunately we don't have any properties, so
this doesn't change anything. But before we start growing some plane
properties, we should fix this.
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 01199361c665245d557b8eefef56d648ddb3867a
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Thu Jun 25 11:29:24 2015 +0530
drm/msm/dsi: Report PHY errors only when they really occur
DSI PHY errors are falsely reported whenever a dsi error occurs. This is
because DSI_DLN0_PHY_ERR isn't only used as a status register, but also
used to mask PHY errors. Currently, we end up reading the mask bits too
and therefore always report errors.
Ignore the register mask bits and check for only the status/clear bits.
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 9b7a9fc29a48026d797cbf237121850c1c241df4
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Wed Jun 24 19:13:40 2015 -0400
drm/msm: Set different display size limitation on each target
The maximum output width of one pipeline depends on the LayerMixer's
capability. It may be different on each target. Also, MDP5 doesn't
have vertical limitation in one frame, as long as the pixel clock
can be supported.
This change obtains the maximum LM resolution from configuration
table and treat it as the whole pipe's limitation for MDP5. The size
limit on MDP4 is not changed.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
commit 5cf3a4553fc8395c4ad38077f8cee6c91f832393
Author: Rob Clark <robdclark@xxxxxxxxx>
Date: Mon Jul 27 20:52:50 2015 -0400
drm/msm/hdmi: standardize on lead chip for compatible names
For all of these devices, msm89xy was the lead chip, so standardize the
compatible names to align with convention used by rest of the qcom/msm
drivers.
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 3a84f8469e2687b9fdcf83d615b8001a2443566a
Author: Stephane Viau <sviau@xxxxxxxxxxxxxx>
Date: Fri Jun 19 16:04:47 2015 -0400
drm/msm: Add support for msm8x94
This change adds the MDP and HDMI support for msm8x94.
Note that HDMI PHY registers are not being accessed anymore from
the driver.
Signed-off-by: Stephane Viau <sviau@xxxxxxxxxxxxxx>
[rename compatible s/8x94/8994/ since preference is to not trust the
marketing folks who invent chip #'s but instead name things after the
lead chip.. we should rename some 80XY to 89XY to standardize on the
lead chip but leave that for another patch. Also, update dt bindings
doc]
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit da32855219f86f27cad1b12be2264ffb0b97b9fa
Author: Stephane Viau <sviau@xxxxxxxxxxxxxx>
Date: Fri Jun 19 16:04:46 2015 -0400
drm/msm/hdmi: remove ->reset() from HDMI PHY
->reset() currently only accesses HDMI core registers, and yet it
is located in hdmi_phy*. Since no PHY registers are being
accessed during ->reset(), it would be better to bring that
function in hdmi core module where HDMI core registers are
usually being accessed.
This will also help for msm8x94 for which no PHY registers
accesses are done (->phy_init == NULL) but the HDMI PHY reset
from HDMI core still needs to be done.
Note:
SW_RESET_PLL bit is not written in hdmi_phy_8x60_reset(); this
write should not affect anything if the corresponding field is
not writable.
Signed-off-by: Stephane Viau <sviau@xxxxxxxxxxxxxx>
[fixed warning about unused 'phy' in hpd_enable() while merging]
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit dcefc117cc192f215d04c4e7cbae6b76a9bafcf4
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Thu Jun 18 10:14:21 2015 -0400
drm/msm/dsi: Add support for msm8x94
DSI controller on msm8x94 is version 1.3, which requires different
power supplies and works with 20nm DSI PHY. This change is to add
the basic support for this version.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit ab8909b032ffccc15384879dd5798b8647d6ab8a
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Thu Jun 11 10:56:46 2015 -0400
drm/msm/dsi: Use pinctrl in DSI driver
Some targets use pinctrl framework to configure some
pins. This change allows DSI driver to set default and
sleep pinctrl status.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 678565c3cb2100a8f03c23592f13f6b78e69a590
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Wed Jun 10 13:18:18 2015 -0400
drm/msm/dsi: Rename *dual panel* to *dual DSI*
The current term of *dual panel* in DSI driver code causes confusion.
It is supposed to indicate the panel using two DSI links. Rename it
to *dual DSI*.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 13351cd17791694f2dcc96dc920e58b090b18c31
Author: Hai Li <hali@xxxxxxxxxxxxxx>
Date: Wed Jun 10 13:18:17 2015 -0400
drm/msm/dsi: Update source PLL selection in DSI PHY
The source PLL to be used by each DSI PHY should be decided by
DSI manager based on dual DSI information, while the register
programming to select PLL is different from one type of PHY to
another. This change adds the H/W difference to PHY configuration
and updates the interface between DSI manager and PHY.
With this change, PLL selection can be supported on different
targets.
Signed-off-by: Hai Li <hali@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit c6a57a50ad562a2e6fc6ac3218b710caea73a58b
Author: jilai wang <jilaiw@xxxxxxxxxxxxxx>
Date: Thu Apr 2 17:49:01 2015 -0400
drm/msm/hdmi: add hdmi hdcp support (V3)
Add HDMI HDCP support including HDCP PartI/II/III authentication.
V1: Initial Change
V2: Address Bjorn&Rob's comments
Refactor the authentication process to use single work instead
of multiple work for different authentication stages.
V3: Update to align with qcom SCM api.
Signed-off-by: Jilai Wang <jilaiw@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 2d3584eb871da2a6fa72e3d50781f33b0312589a
Author: Rob Clark <robdclark@xxxxxxxxx>
Date: Mon Jul 27 19:37:12 2015 -0400
drm/msm: update generated headers
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit c0015bf3a34961342a27b021672049e535ab36a1
Author: Alexander Aring <alex.aring@xxxxxxxxx>
Date: Sat Aug 15 11:00:33 2015 +0200
ieee802154: 6lowpan: fix non-lowpan wpan interfaces
We receive all 802.15.4 frames on the packet handler "lowpan_rcv" this
patch checks if the wpan device belongs to a lowpan interface.
Signed-off-by: Alexander Aring <alex.aring@xxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit 0751272880f3a0c74c786ecfaba2b3d98748482f
Author: Alexander Aring <alex.aring@xxxxxxxxx>
Date: Sat Aug 15 11:00:32 2015 +0200
ieee802154: 6lowpan: fix packet layer registration
This patch fixes 802.15.4 packet layer registration when mutliple
lowpan interfaces will be added. We need to register the packet layer at
the first lowpan interface and deregister it at the last interface. This
done by open_count variable which is protected by rtnl.
Additional do a quiet fix by adding dev_put(real_dev) when netdev
registration fails, which fix the refcount for the wpan dev.
Signed-off-by: Alexander Aring <alex.aring@xxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit 4481c0767e52eea674794de4b9123c9bc3d24f24
Author: Peter Poklop <peter.poklop@xxxxxxxxx>
Date: Sat Aug 15 20:47:09 2015 +0200
Bluetooth: btusb: mark 0c10:0000 devices with BTUSB_SWAVE
This patch enables quirk handling for Silicon Wave based devices and
fixes kernel bug with id 42985.
T: Bus=01 Lev=01 Prnt=01 Port=07 Cnt=04 Dev#= 6 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0c10 ProdID=0000 Rev=15.00
S: Manufacturer=SiW
S: Product=SiW
S: SerialNumber=340A05F61100
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr= 50mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
Signed-off-by: Peter Poklop <peter.poklop@xxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit e294a5371b2e0bd22d4a917d4c354a52a7057b6e
Author: Theodore Ts'o <tytso@xxxxxxx>
Date: Sat Aug 15 14:59:44 2015 -0400
ext4: ratelimit the file system mounted message
The xfstests ext4/305 will mount and unmount the same file system over
4,000 times, and each one of these will cause a system log message.
Ratelimit this message since if we are getting more than a few dozen
of these messages, they probably aren't going to be helpful.
Signed-off-by: Theodore Ts'o <tytso@xxxxxxx>
commit 50e0ee01382b8e08289d3db209738c5856fd25cf
Author: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Date: Fri Aug 14 19:11:09 2015 +0800
ASoC: fsl-asoc-card: add wm8960 support
add wm8960 support for fsl-asoc-card
Signed-off-by: Zidan Wang <zidan.wang@xxxxxxxxxxxxx>
Acked-by: Nicolin Chen <nicoleotsuka@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 0048b4837affd153897ed1222283492070027aa9
Author: Ming Lei <ming.lei@xxxxxxxxxxxxx>
Date: Sun Aug 9 03:41:51 2015 -0400
blk-mq: fix race between timeout and freeing request
Inside timeout handler, blk_mq_tag_to_rq() is called
to retrieve the request from one tag. This way is obviously
wrong because the request can be freed any time and some
fiedds of the request can't be trusted, then kernel oops
might be triggered[1].
Currently wrt. blk_mq_tag_to_rq(), the only special case is
that the flush request can share same tag with the request
cloned from, and the two requests can't be active at the same
time, so this patch fixes the above issue by updating tags->rqs[tag]
with the active request(either flush rq or the request cloned
from) of the tag.
Also blk_mq_tag_to_rq() gets much simplified with this patch.
Given blk_mq_tag_to_rq() is mainly for drivers and the caller must
make sure the request can't be freed, so in bt_for_each() this
helper is replaced with tags->rqs[tag].
[1] kernel oops log
[ 439.696220] BUG: unable to handle kernel NULL pointer dereference at
0000000000000158^M
[ 439.697162] IP: [<ffffffff812d89ba>] blk_mq_tag_to_rq+0x21/0x6e^M
[ 439.700653] PGD 7ef765067 PUD 7ef764067 PMD 0 ^M
[ 439.700653] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC ^M
[ 439.700653] Dumping ftrace buffer:^M
[ 439.700653] (ftrace buffer empty)^M
[ 439.700653] Modules linked in: nbd ipv6 kvm_intel kvm serio_raw^M
[ 439.700653] CPU: 6 PID: 2779 Comm: stress-ng-sigfd Not tainted
4.2.0-rc5-next-20150805+ #265^M
[ 439.730500] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
BIOS Bochs 01/01/2011^M
[ 439.730500] task: ffff880605308000 ti: ffff88060530c000 task.ti:
ffff88060530c000^M
[ 439.730500] RIP: 0010:[<ffffffff812d89ba>] [<ffffffff812d89ba>]
blk_mq_tag_to_rq+0x21/0x6e^M
[ 439.730500] RSP: 0018:ffff880819203da0 EFLAGS: 00010283^M
[ 439.730500] RAX: ffff880811b0e000 RBX: ffff8800bb465f00 RCX:
0000000000000002^M
[ 439.730500] RDX: 0000000000000000 RSI: 0000000000000202 RDI:
0000000000000000^M
[ 439.730500] RBP: ffff880819203db0 R08: 0000000000000002 R09:
0000000000000000^M
[ 439.730500] R10: 0000000000000000 R11: 0000000000000000 R12:
0000000000000202^M
[ 439.730500] R13: ffff880814104800 R14: 0000000000000002 R15:
ffff880811a2ea00^M
[ 439.730500] FS: 00007f165b3f5740(0000) GS:ffff880819200000(0000)
knlGS:0000000000000000^M
[ 439.730500] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b^M
[ 439.730500] CR2: 0000000000000158 CR3: 00000007ef766000 CR4:
00000000000006e0^M
[ 439.730500] Stack:^M
[ 439.730500] 0000000000000008 ffff8808114eed90 ffff880819203e00
ffffffff812dc104^M
[ 439.755663] ffff880819203e40 ffffffff812d9f5e 0000020000000000
ffff8808114eed80^M
[ 439.755663] Call Trace:^M
[ 439.755663] <IRQ> ^M
[ 439.755663] [<ffffffff812dc104>] bt_for_each+0x6e/0xc8^M
[ 439.755663] [<ffffffff812d9f5e>] ? blk_mq_rq_timed_out+0x6a/0x6a^M
[ 439.755663] [<ffffffff812d9f5e>] ? blk_mq_rq_timed_out+0x6a/0x6a^M
[ 439.755663] [<ffffffff812dc1b3>] blk_mq_tag_busy_iter+0x55/0x5e^M
[ 439.755663] [<ffffffff812d88b4>] ? blk_mq_bio_to_request+0x38/0x38^M
[ 439.755663] [<ffffffff812d8911>] blk_mq_rq_timer+0x5d/0xd4^M
[ 439.755663] [<ffffffff810a3e10>] call_timer_fn+0xf7/0x284^M
[ 439.755663] [<ffffffff810a3d1e>] ? call_timer_fn+0x5/0x284^M
[ 439.755663] [<ffffffff812d88b4>] ? blk_mq_bio_to_request+0x38/0x38^M
[ 439.755663] [<ffffffff810a46d6>] run_timer_softirq+0x1ce/0x1f8^M
[ 439.755663] [<ffffffff8104c367>] __do_softirq+0x181/0x3a4^M
[ 439.755663] [<ffffffff8104c76e>] irq_exit+0x40/0x94^M
[ 439.755663] [<ffffffff81031482>] smp_apic_timer_interrupt+0x33/0x3e^M
[ 439.755663] [<ffffffff815559a4>] apic_timer_interrupt+0x84/0x90^M
[ 439.755663] <EOI> ^M
[ 439.755663] [<ffffffff81554350>] ? _raw_spin_unlock_irq+0x32/0x4a^M
[ 439.755663] [<ffffffff8106a98b>] finish_task_switch+0xe0/0x163^M
[ 439.755663] [<ffffffff8106a94d>] ? finish_task_switch+0xa2/0x163^M
[ 439.755663] [<ffffffff81550066>] __schedule+0x469/0x6cd^M
[ 439.755663] [<ffffffff8155039b>] schedule+0x82/0x9a^M
[ 439.789267] [<ffffffff8119b28b>] signalfd_read+0x186/0x49a^M
[ 439.790911] [<ffffffff8106d86a>] ? wake_up_q+0x47/0x47^M
[ 439.790911] [<ffffffff811618c2>] __vfs_read+0x28/0x9f^M
[ 439.790911] [<ffffffff8117a289>] ? __fget_light+0x4d/0x74^M
[ 439.790911] [<ffffffff811620a7>] vfs_read+0x7a/0xc6^M
[ 439.790911] [<ffffffff8116292b>] SyS_read+0x49/0x7f^M
[ 439.790911] [<ffffffff81554c17>] entry_SYSCALL_64_fastpath+0x12/0x6f^M
[ 439.790911] Code: 48 89 e5 e8 a9 b8 e7 ff 5d c3 0f 1f 44 00 00 55 89
f2 48 89 e5 41 54 41 89 f4 53 48 8b 47 60 48 8b 1c d0 48 8b 7b 30 48 8b
53 38 <48> 8b 87 58 01 00 00 48 85 c0 75 09 48 8b 97 88 0c 00 00 eb 10
^M
[ 439.790911] RIP [<ffffffff812d89ba>] blk_mq_tag_to_rq+0x21/0x6e^M
[ 439.790911] RSP <ffff880819203da0>^M
[ 439.790911] CR2: 0000000000000158^M
[ 439.790911] ---[ end trace d40af58949325661 ]---^M
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 596f5aad2a704b72934e5abec1b1b4114c16f45b
Author: Ming Lei <ming.lei@xxxxxxxxxxxxx>
Date: Sun Aug 9 03:41:50 2015 -0400
blk-mq: fix buffer overflow when reading sysfs file of 'pending'
There may be lots of pending requests so that the buffer of PAGE_SIZE
can't hold them at all.
One typical example is scsi-mq, the queue depth(.can_queue) of
scsi_host and blk-mq is quite big but scsi_device's queue_depth
is a bit small(.cmd_per_lun), then it is quite easy to have lots
of pending requests in hw queue.
This patch fixes the following warning and the related memory
destruction.
[ 359.025101] fill_read_buffer: blk_mq_hw_sysfs_show+0x0/0x7d returned
bad count^M
[ 359.055595] irq event stamp: 15537^M
[ 359.055606] general protection fault: 0000 [#1] PREEMPT SMP
DEBUG_PAGEALLOC ^M
[ 359.055614] Dumping ftrace buffer:^M
[ 359.055660] (ftrace buffer empty)^M
[ 359.055672] Modules linked in: nbd ipv6 kvm_intel kvm serio_raw^M
[ 359.055678] CPU: 4 PID: 21631 Comm: stress-ng-sysfs Not tainted
4.2.0-rc5-next-20150805 #434^M
[ 359.055679] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
BIOS Bochs 01/01/2011^M
[ 359.055682] task: ffff8802161cc000 ti: ffff88021b4a8000 task.ti:
ffff88021b4a8000^M
[ 359.055693] RIP: 0010:[<ffffffff811541c5>] [<ffffffff811541c5>]
__kmalloc+0xe8/0x152^M
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit da0b5e40ab10f44019a1ecec09fadfcd5bdb76b6
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Sat Aug 15 11:38:13 2015 -0400
ext4: silence a format string false positive
Static checkers complain that the format string should be "%s". It does
not make a difference for the current code.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Theodore Ts'o <tytso@xxxxxxx>
commit 9810446836ab5a4b34a749bb77f3eb5836f982cc
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Sat Aug 15 11:30:31 2015 -0400
ext4: simplify some code in read_mmp_block()
My static check complains because we have:
if (!*bh)
return -ENOMEM;
if (*bh) {
The second check is unnecessary.
I've simplified this code by moving the "if (!*bh)" checks around. Also
Andreas Dilger says we should probably print a warning if sb_getblk()
fails.
[ Restructured the code so that we print a warning message as well if
the mmp block doesn't check out, and to print the error code to
disambiguate between the error cases. - TYT ]
Reviewed-by: Andreas Dilger <adilger@xxxxxxxxx>
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Theodore Ts'o <tytso@xxxxxxx>
commit c642dc9e1aaed953597e7092d7df329e6234096e
Author: Eric Sandeen <sandeen@xxxxxxxxxx>
Date: Sat Aug 15 10:45:06 2015 -0400
ext4: don't manipulate recovery flag when freezing no-journal fs
At some point along this sequence of changes:
f6e63f9 ext4: fold ext4_nojournal_sops into ext4_sops
bb04457 ext4: support freezing ext2 (nojournal) file systems
9ca9238 ext4: Use separate super_operations structure for no_journal
filesystems
ext4 started setting needs_recovery on filesystems without journals
when they are unfrozen. This makes no sense, and in fact confuses
blkid to the point where it doesn't recognize the filesystem at all.
(freeze ext2; unfreeze ext2; run blkid; see no output; run dumpe2fs,
see needs_recovery set on fs w/ no journal).
To fix this, don't manipulate the INCOMPAT_RECOVER feature on
filesystems without journals.
Reported-by: Stu Mark <smark@xxxxxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxxx>
Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
Signed-off-by: Theodore Ts'o <tytso@xxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 8129ed29644bf56ed17ec1bbbeed5c568b43d6a0
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Tue Aug 11 17:05:04 2015 +0200
change sb_writers to use percpu_rw_semaphore
We can remove everything from struct sb_writers except frozen
and add the array of percpu_rw_semaphore's instead.
This patch doesn't remove sb_writers->wait_unfrozen yet, we keep
it for get_super_thawed(). We will probably remove it later.
This change tries to address the following problems:
- Firstly, __sb_start_write() looks simply buggy. It does
__sb_end_write() if it sees ->frozen, but if it migrates
to another CPU before percpu_counter_dec(), sb_wait_write()
can wrongly succeed if there is another task which holds
the same "semaphore": sb_wait_write() can miss the result
of the previous percpu_counter_inc() but see the result
of this percpu_counter_dec().
- As Dave Hansen reports, it is suboptimal. The trivial
microbenchmark that writes to a tmpfs file in a loop runs
12% faster if we change this code to rely on RCU and kill
the memory barriers.
- This code doesn't look simple. It would be better to rely
on the generic locking code.
According to Dave, this change adds the same performance
improvement.
Note: with this change both freeze_super() and thaw_super() will do
synchronize_sched_expedited() 3 times. This is just ugly. But:
- This will be "fixed" by the rcu_sync changes we are going
to merge. After that freeze_super()->percpu_down_write()
will use synchronize_sched(), and thaw_super() won't use
synchronize() at all.
This doesn't need any changes in fs/super.c.
- Once we merge rcu_sync changes, we can also change super.c
so that all wb_write->rw_sem's will share the single ->rss
in struct sb_writes, then freeze_super() will need only one
synchronize_sched().
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxxx>
commit 853b39a7c82826b8413048feec7bf08e98ce7a84
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Wed Jul 22 20:21:13 2015 +0200
shift percpu_counter_destroy() into destroy_super_work()
Of course, this patch is ugly as hell. It will be (partially)
reverted later. We add it to ensure that other WIP changes in
percpu_rw_semaphore won't break fs/super.c.
We do not even need this change right now, percpu_free_rwsem()
is fine in atomic context. But we are going to change this, it
will be might_sleep() after we merge the rcu_sync() patches.
And even after that we do not really need destroy_super_work(),
we will kill it in any case. Instead, destroy_super_rcu() should
just check that rss->cb_state == CB_IDLE and do call_rcu() again
in the (very unlikely) case this is not true.
So this is just the temporary kludge which helps us to avoid the
conflicts with the changes which will be (hopefully) routed via
rcu tree.
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxxx>
commit bf3eac84c42da7017610abc8cfba64921ea92c76
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Tue Aug 11 17:26:29 2015 +0200
percpu-rwsem: kill CONFIG_PERCPU_RWSEM
Remove CONFIG_PERCPU_RWSEM, the next patch adds the unconditional
user of percpu_rw_semaphore.
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
commit 55cc156505f2e43fa45dbd4bfe8f9c9d848ca44c
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Tue Jul 21 20:26:44 2015 +0200
percpu-rwsem: introduce percpu_rwsem_release() and percpu_rwsem_acquire()
Add percpu_rwsem_release() and percpu_rwsem_acquire() for the users
which need to return to userspace with percpu-rwsem lock held and/or
pass the ownership to another thread.
TODO: change percpu_rwsem_release() to use rwsem_clear_owner(). We can
either fold kernel/locking/rwsem.h into include/linux/rwsem.h, or add
the non-inline percpu_rwsem_clear_owner().
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
commit 9287f6925ad9d8fb8c6283066b4f77fd87f123a9
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Tue Jul 21 17:45:57 2015 +0200
percpu-rwsem: introduce percpu_down_read_trylock()
Add percpu_down_read_trylock(), it will have the user soon.
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
commit 0e28e01f1e73015d8e1b8fa1cda071d0bd9a2600
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Tue Aug 11 16:28:29 2015 +0200
document rwsem_release() in sb_wait_write()
Not only we need to avoid the warning from lockdep_sys_exit(), the
caller of freeze_super() can never release this lock. Another thread
can do this, so there is another reason for rwsem_release().
Plus the comment should explain why we have to fool lockdep.
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxxx>
commit f4b554af9931585174d4913b482eacab75858964
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Mon Jul 20 00:50:55 2015 +0200
fix the broken lockdep logic in __sb_start_write()
1. wait_event(frozen < level) without rwsem_acquire_read() is just
wrong from lockdep perspective. If we are going to deadlock
because the caller is buggy, lockdep can't detect this problem.
2. __sb_start_write() can race with thaw_super() + freeze_super(),
and after "goto retry" the 2nd acquire_freeze_lock() is wrong.
3. The "tell lockdep we are doing trylock" hack doesn't look nice.
I think this is correct, but this logic should be more explicit.
Yes, the recursive read_lock() is fine if we hold the lock on a
higher level. But we do not need to fool lockdep. If we can not
deadlock in this case then try-lock must not fail and we can use
use wait == F throughout this code.
Note: as Dave Chinner explains, the "trylock" hack and the fat comment
can be probably removed. But this needs a separate change and it will
be trivial: just kill __sb_start_write() and rename do_sb_start_write()
back to __sb_start_write().
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxxx>
commit bee9182d955227f01ff3b80c4cb6acca9bb40b11
Author: Oleg Nesterov <oleg@xxxxxxxxxx>
Date: Sun Jul 19 23:48:20 2015 +0200
introduce __sb_writers_{acquired,release}() helpers
Preparation to hide the sb->s_writers internals from xfs and btrfs.
Add 2 trivial define's they can use rather than play with ->s_writers
directly. No changes in btrfs/transaction.o and xfs/xfs_aops.o.
Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxxx>
commit 93dee8eea02aefebe2d21128b5f742afe6671f23
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 20:28:32 2015 -0700
staging: wilc1000: remove WILC_TimerCreate()
It was just a wrapper around setup_timer() and could never fail, so just
call the real function, and fix up the function arguments of the
callbacks to be proper timer callback functions.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 4183e9794c751c5139e4599a0c512c7804575a82
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 20:11:16 2015 -0700
staging: wilc1000: remove WILC_TimerDestroy()
It was just a wrapper around del_timer_sync() so call that instead.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 8972d0fe41e1869b0c7f4c164ea7bffc073dd6b8
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 20:04:13 2015 -0700
staging: wilc1000: remove WILC_TimerStop()
It was just a wrapper around del_timer() so call that instead.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 334e1a5777290e118abcbb5aa5488c55961609b6
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 20:00:01 2015 -0700
staging: wilc1000: remove tstrWILC_TimerAttrs typedef
It was not used for anything, so remove it, and the variables in
wilc_timer.c that were being passed of its type.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit da711eb68e6f91b271a465cbcef3e96759840148
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 19:46:06 2015 -0700
staging: wilc1000: remove WILC_TimerHandle typedef
Use the proper structure (struct timer_list) instead, which makes things
much more readable.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 80e29c7a8045005e1a146d86aa4e4a8cce13688c
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 19:42:23 2015 -0700
staging: wilc1000: remove WILC_Sleep()
It was just a wrapper around usleep_range() so call that directly
instead and remove the now-empty file.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit bb7b1a76aad831d2c92998de928fdd8d987e00f8
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 19:34:43 2015 -0700
staging: wilc1000: remove commented out WILC_Sleep calls
It's not being called, so delete these lines.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 3e5f206c00f73f535c914eedc8b91f424c5a14ab
Merge: 0e38c35 fda4d57
Author: James Morris <james.l.morris@xxxxxxxxxx>
Date: Sat Aug 15 13:29:57 2015 +1000
Merge branch 'next' of git://git.infradead.org/users/pcmoore/selinux into
next
commit 601e4576594543200bde9201e4d23242e73a778b
Author: Ricard Wanderlof <ricard.wanderlof@xxxxxxxx>
Date: Thu Aug 13 15:10:19 2015 +0200
ASoC: ssm2518: Add explicit device tree support
Add OF match table to SSM2518 to allow direct matching without going
through I2C subsystem.
Signed-off-by: Ricard Wanderlof <ricardw@xxxxxxxx>
Acked-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit e235727173626edf87c63b415d0363b411da299e
Author: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Date: Fri Aug 14 22:58:51 2015 +0100
staging: vt6655: Replace typedef struct tagSTxDesc
Replace with struct vnt_tx_desc with all members the same.
volatile is removed from pointers as this generates warning
message.
Only the first four members of vnt_tx_desc need to be volatile.
Signed-off-by: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 543828599afc9cdd9012e363c7393e5ed102aa2a
Author: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Date: Fri Aug 14 22:58:50 2015 +0100
staging: vt6655: replace typedef struct tagDEVICE_TD_INFO and structure
Create struct vnt_td_info with members
mic_hdr
skb
buf
buf_dma
dwReqCount -> req_count
byFlags -> flags
In struct tagSTxDesc volatile is removed because it will generate a
warning
(in any case this member is not) and renaming td_info.
Signed-off-by: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 3a0989bb6cacb1f40273d4c397ea91cabe73bad8
Author: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Date: Fri Aug 14 22:58:49 2015 +0100
staging: vt6655: struct tagDEVICE_TD_INFO remove dwHeaderLength
dwHeaderLength is assigned a value but that is never used.
Remove variable.
Signed-off-by: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 531a9c524a54b7d232b6bf6631c460450dd41dbf
Author: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Date: Fri Aug 14 22:58:48 2015 +0100
staging: vt6655: struct tagDEVICE_TD_INFO resize dwReqCount.
dwReqCount is no bigger than u16
Signed-off-by: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 9cc8eac99c98000a414f916c1c58dab22c29474d
Author: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Date: Fri Aug 14 22:58:47 2015 +0100
staging: vt6655: replaced typedef struct tagTDES1
Create struct vnt_tdes1 that replaces members
wReqCount -> req_count
byTCR -> tcr
byReserved -> reserved
Signed-off-by: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 5235ff6a1df6fb0883f1a9020ab36e0db1c68064
Author: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Date: Fri Aug 14 22:58:46 2015 +0100
staging: vt6655: desc.h replace typedef struct tagTDES0
create struct vnt_tdes0 replacing used members
byTSR0 -> tsr0
byTSR1 -> tsr1
f1Owner -> owner
Narrowing endian differences to inside structure.
Signed-off-by: Malcolm Priestley <tvboxspy@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 36a24b4eb60eb8644394e319b2e5afc32be8c3a1
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 19:26:20 2015 -0700
staging: wilc1000: delete wilc_type.h
The .h file isn't needed at all, so just remove it.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit b6d9e0cb142bdae60872a9be392ed8b6e5dde243
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 19:19:19 2015 -0700
staging: wilc1000: remove WILC_MemoryFree
It's no longer needed, so remove the empty wrapper function.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 969effe9dcdccab865c7f57790f647ebc59df457
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 19:15:34 2015 -0700
staging: wilc1000: remove WILC_FREE_IF_TRUE macro
Just use kfree, as that's all it resolves itself to.
Cc: Johnny Kim <johnny.kim@xxxxxxxxx>
Cc: Rachel Kim <rachel.kim@xxxxxxxxx>
Cc: Dean Lee <dean.lee@xxxxxxxxx>
Cc: Chris Park <chris.park@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit cc6c16df806f3c263b7cde7d6961d80415f9aba8
Author: Yash Shah <yshah1@xxxxxxxxxxx>
Date: Fri Aug 14 06:06:13 2015 +0000
Staging: sm750fb: Fix "foo* bar" should be "foo *bar" errors
Fix "foo* bar" should be "foo *bar" errors as detected by
checkpatch.pl
Signed-off-by: Yash Shah <yshah1@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit f1126b1d0d7c0daf48f50e566c498912b31c459f
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Fri Aug 14 21:57:51 2015 +0530
staging: rtl8188eu: fix possible NULL dereference
dm_odm was being checked for NULL after dereferencing it. Lets check for
NULL first before derefenrencing it.
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 2b05df556e01f846fd67f8888add9919af55f35c
Author: Johnny Kim <johnny.kim@xxxxxxxxx>
Date: Thu Aug 13 13:41:21 2015 +0900
staging: wilc1000: clarify the argument type
This patch replaces the void pointer type in the host interface
functions which process the message from host thread by the real data
type, tstrWILC_WFIDrv because the void pointer type as the arguments
is not clear and concise. In addition, typecasting to the void pointer
type is removed becasue it is not necessary.
Signed-off-by: Johnny Kim <johnny.kim@xxxxxxxxx>
Signed-off-by: Tony Cho <tony.cho@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 11f58c88ddf8613dde976e0fe18afecefaf04195
Author: Johnny Kim <johnny.kim@xxxxxxxxx>
Date: Thu Aug 13 13:41:20 2015 +0900
staging: wilc1000: change void pointer type to real type
This patch changes the void pointer member of the tstrHostIFmsg to the
real data type because the void pointer type is ambiguous and not
readable.
Signed-off-by: Johnny Kim <johnny.kim@xxxxxxxxx>
Signed-off-by: Tony Cho <tony.cho@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 218dc407d4b275a6f96311ff8c4b70dd998fcf24
Author: Johnny Kim <johnny.kim@xxxxxxxxx>
Date: Thu Aug 13 13:41:19 2015 +0900
staging: wilc1000: replace WILC_WFIDrvHandle by tstrWILC_WFIDrv
The structure, WILC_WFIDrvHandle is used to save the pointer address
for the driver handler which is used throughout the driver but it's
not easy to understand what it means. In addition, it doesn't support
the 64 bit machine and also causes the warnings for the 64 bit build.
This patch replaces the WILC_WFIDrvHandle by the tstrWILC_WFIDrv
because the tstrWILC_WFIDrv is real structure to represent the driver
handler and reduces the 64 bit compile warnings. Also, typecasting to
WILC_WFIDrvHandle is not needed by using tstrWILC_WFIDrv as is.
Signed-off-by: Johnny Kim <johnny.kim@xxxxxxxxx>
Signed-off-by: Tony Cho <tony.cho@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 598f85bfaeeaac0272c8e79f314076e48d445bcf
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Tue Aug 11 10:32:42 2015 +0900
staging: wilc1000: remove WILC_FREE
Remove WILC_FREE that is replaced by kfree.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 49188af27211b218fffacb26df5e96bf4b7e616c
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Tue Aug 11 10:32:41 2015 +0900
staging: wilc1000: use kfree instead of WILC_FREE
Use kfree instead of WILC_FREE.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 9b45891aef5904c2a1e76881f3b44fe646d84b54
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Tue Aug 11 10:32:40 2015 +0900
staging: wilc1000: remove unused memory functions
This patch remove unused memory functions because some macros with this
memory function are deleted.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 96ac283d6490932ff5097259c18a4d03bdddb010
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Tue Aug 11 10:32:39 2015 +0900
staging: wilc1000: wilc_memory.h: remove unused define
Remove unused define macro that is never used.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 5a447f4c732e1eca3232effb354e1b18ae38215d
Author: Raphaël Beamonte <raphael.beamonte@xxxxxxxxx>
Date: Fri Aug 14 13:08:32 2015 -0400
Staging: gdm72xx: usb_ids: fix a macro coding style error
Fix a macro with complex value coding style error.
Signed-off-by: Raphaël Beamonte <raphael.beamonte@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 435009bba4d0449b611bc24ae5c9636ac5b2a00e
Author: Mateusz Kulikowski <mateusz.kulikowski@xxxxxxxxx>
Date: Wed Aug 12 21:54:49 2015 +0200
staging: rtl8192e: Fix log spamming in rtl8192_hard_data_xmit
This patch fixes issue generated by commit ca93dcba3a92
("staging: rtl8192e: Remove assert() macro")
One negation was missed in conversion, therefore
asserted message was always printed.
For 1MB file downloaded via http, ~500 messages
were generated.
Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@xxxxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit bda9e24909b58c90adb4dd03663d250a5c872fb8
Author: Junsu Shin <jjunes0@xxxxxxxxx>
Date: Tue Aug 11 17:44:56 2015 -0500
staging: vme: devices: add spaces around '-'
This is a patch to the vme_pio2_core.c that adds spaces around '-'.
Signed-off-by: Junsu Shin <jjunes0@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit a8f401f9e751eb5d1f6e9f66e45c84e390bc75bb
Author: Junsu Shin <jjunes0@xxxxxxxxx>
Date: Tue Aug 11 17:07:14 2015 -0500
staging: vme: devices: fix NULL comparison style
This is a patch to vme_pio2_core.c that fixes up the NULL comparison
style.
Signed-off-by: Junsu Shin <jjunes0@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 6c37e7445700fd49a0b86db86b5f2c20bc963fd5
Author: Junsu Shin <jjunes0@xxxxxxxxx>
Date: Tue Aug 11 16:36:05 2015 -0500
staging: vme: devices: remove blank line after open brace
This is a patch to the vme_pio2_core.c that removes blank line after open
brace '{'.
Signed-off-by: Junsu Shin <jjunes0@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit d5f0a90e60643fa63fffa88828c5552f3902a5bf
Author: Junsu Shin <jjunes0@xxxxxxxxx>
Date: Tue Aug 11 15:02:07 2015 -0500
staging: vme: devices: remove multiple blank lines
This is a patch to vm2_pio2_core.c that removes multiple blanks lines.
Signed-off-by: Junsu Shin <jjunes0@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit cf7281c9ae9a5f0435630f8e972bb4c6204565bc
Author: MichaÅ? KÄ?pieÅ? <kernel@xxxxxxxxxx>
Date: Tue Aug 11 14:07:00 2015 +0200
staging: unisys: make visorbus_dev_groups static
visorbus_dev_groups is not referenced outside visorbus_main.c, so it can
be declared static.
Found using sparse.
Signed-off-by: MichaÅ? KÄ?pieÅ? <kernel@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 110a66be3a26fe05318121412e3c36f7f1e80a12
Author: Prarit Bhargava <prarit@xxxxxxxxxx>
Date: Mon Aug 10 18:34:10 2015 -0400
drivers: staging: unisys: add MODULE_DEVICE_TABLE and temporary
MODULE_ALIAS lines to visornic
This patch adds an module alias and a MODULE_DEVICE_TABLE to autoload the
visornic driver when an appropriate device is created by the visorbus.
Note, the correct way of fixing this is adding functionality to
scripts/mod/file2alias.c for the visorbus bus type.
Signed-off-by: Prarit Bhargava <prarit@xxxxxxxxxx>
Signed-off-by: Benjamin Romer <benjamin.romer@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit beb12167080146c8cbaa204daae52b102c066166
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:30 2015 -0700
staging: rtl8192u: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ec9a0ffa494c7f9c6dbffea7f073ec72a77f1cdb
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:23 2015 -0700
staging: mt29f_spinand: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 35bb99bf6579f04981830d3275dcffd8b2b17edb
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:17 2015 -0700
staging: dgnc: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit fd8c5cb5ac30f26902b130f46e1180c18f006b2a
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:19 2015 -0700
staging: ft1000: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignment
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit b3ff291009c21ff1276a6470325ff6a5149c3b5f
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:33 2015 -0700
staging: wilc1000: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ee233d3e19d7a5624e872710b1a6f629a0e8ef4f
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:29 2015 -0700
staging: rtl8192e: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ebea63f66388e4bad2bce39cd12e5b77dc08c1a9
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:28 2015 -0700
staging: rtl8188eu: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ddc9bceb4c128aeec8107df816df1ceba4c68f8b
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:25 2015 -0700
staging: nvec: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit cd951ddc2d70e67ee0fc48181bedc27a9515ba78
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:18 2015 -0700
staging: fbtft: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit b239904d8f2bfa09956b1ac95009136e452f0923
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:26 2015 -0700
staging: octeon: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Acked-by: David Daney <david.daney@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit a5ee4695ec03ce8f7c236f568dc99b5366af1ce8
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:31 2015 -0700
staging: rtl8712: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit e075de610913d43d9d4682888cbee7856217103a
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:34 2015 -0700
staging: xgifb: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit f157d807b9fe44afa19e476b52d791a7377d9ad2
Author: Ioan-Adrian Ratiu <adi@xxxxxxxxxx>
Date: Fri Aug 14 12:57:06 2015 +0300
staging: lustre: ptlrpc: add missing include directive
Without including ptlrpc_internal.h, GCC gives prototype warnings
"pack_generic.c:642:5: warning: no previous prototype for ..."
and sparse also complains "pack_generic.c:642:5: warning: symbol
'lustre_unpack_req_ptlrpc_body' was not declared. ..."
Signed-off-by: Ioan-Adrian Ratiu <adi@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 94a99b46116e82aee359265a1ce48ebffe37a479
Author: Swee Hua Law <sweehua81@xxxxxxxxx>
Date: Tue Aug 11 21:32:29 2015 +0800
staging: lustre: Do not init global to NULL
Remove "= NULL" in global variable
Signed-off-by: Swee Hua Law <sweehua81@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 8150a97fdd095d0468fe75d0d5ce4c9e0cbaf3a3
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:21 2015 -0700
staging: lustre: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 049fbd9fcc848b667d9658618a4c09c706410813
Author: Swee Hua Law <sweehua81@xxxxxxxxx>
Date: Mon Aug 10 21:54:18 2015 +0800
staging: lustre: checkpatch: argument alignment for readability
Fix checkpatch problem: move last argument of the hlist..() back to same
line
Signed-off-by: Swee Hua Law <sweehua81@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit aa62a8415e77c7c46be483cba7b650e1748dcb44
Author: Swee Hua Law <sweehua81@xxxxxxxxx>
Date: Mon Aug 10 21:54:17 2015 +0800
staging: lustre: checkpatch: move */ block comment to next line
Fix checkpatch problem: move */ from end of line to new line
Signed-off-by: Swee Hua Law <sweehua81@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit bcffa060c1dfda25dc8a5b1244330de939550f10
Author: Swee Hua Law <sweehua81@xxxxxxxxx>
Date: Mon Aug 10 21:54:16 2015 +0800
staging: lustre: checkpatch: symbol == NULL should be !symbol
Fix checkpatch problem: change == NULL comparison to !symbol
Signed-off-by: Swee Hua Law <sweehua81@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 1b680a81814cebeafe7e01495d064188a3f2fa2f
Author: Swee Hua Law <sweehua81@xxxxxxxxx>
Date: Mon Aug 10 21:54:15 2015 +0800
staging: lustre: checkpatch: do not init global to NULL
Fix checkpatch problem: remove NULL assignment fro global variable
Signed-off-by: Swee Hua Law <sweehua81@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit a8365826553dc5f3d0cd4e05211b752a6f951fc8
Author: Patrick Boettcher <patrick.boettcher@xxxxxxxxx>
Date: Mon Aug 10 10:25:09 2015 +0200
staging: lustre-libcfs: make static-variable constant
This static can be made constant as it is never modified.
Found during sparse-cleanup.
Signed-off-by: Patrick Boettcher <patrick.boettcher@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 25bbe418f89bec661bcc0dfebcacd6705ed79de6
Author: Patrick Boettcher <patrick.boettcher@xxxxxxxxx>
Date: Mon Aug 10 10:25:08 2015 +0200
staging: lustre-libcfs: fix sparse warning
Fix sparse warnings of the following type:
warning: symbol '....' was not declared. Should it be static?
Signed-off-by: Patrick Boettcher <patrick.boettcher@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 0df4e3e9bbf8968d5ff079b0ace3de9c0b971021
Author: Shraddha Barke <shraddha.6596@xxxxxxxxx>
Date: Mon Aug 10 13:30:35 2015 +0530
Staging: unisys: Remove useless cast on void pointer
void pointers do not need to be cast to other pointer types.
The semantic patch used to find this:
@r@
expression x;
void* e;
type T;
identifier f;
@@
(
*((T *)e)
|
((T *)x)[...]
|
((T *)x)->f
|
- (T *)
e
)
Signed-off-by: Shraddha Barke <shraddha.6596@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 94858feccaada3f1810ff50dd21d33b1d4d95d56
Author: Shraddha Barke <shraddha.6596@xxxxxxxxx>
Date: Mon Aug 10 13:30:34 2015 +0530
Staging: lustre: libcfs: Remove unnecessary cast on void*
This patch does away with the cast on void * as it is unnecessary.
Semantic patch used is as follows:
@r@
expression x;
void* e;
type T;
identifier f;
@@
(
*((T *)e)
|
((T *)x)[...]
|
((T *)x)->f
|
- (void *)
e
)
Signed-off-by: Shraddha Barke <shraddha.6596@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 642ac6c0dceb6292065d08925e6ffd6ef1fbc7e1
Author: Shraddha Barke <shraddha.6596@xxxxxxxxx>
Date: Mon Aug 10 13:30:33 2015 +0530
Staging: wilc1000: Remove null check before kfree
kfree on NULL pointer is a no-op.
This patch uses the following semantic patch to find such an instance
where NULL check is present before kfree.
// <smpl>
@@ expression E; @@
- if (E != NULL) { kfree(E); }
+ kfree(E);
@@ expression E; @@
- if (E != NULL) { kfree(E); E = NULL; }
+ kfree(E);
+ E = NULL;
// </smpl>smpl>
Signed-off-by: Shraddha Barke <shraddha.6596@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 772a6e1fff9a8c942e982598632cfc41451e2e9a
Author: Jacob Kiefer <jtk54@xxxxxxxxxxx>
Date: Sun Aug 9 15:20:28 2015 -0400
staging: rtl8723au: Fix Sparse errors in rtw_security.c
This patch fixes the following sparse errors:
CHECK drivers/staging/rtl8723au/core/rtw_security.c
drivers/staging/rtl8723au/core/rtw_security.c:189:39: \
warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/core/rtw_security.c:189:39: \
expected unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:189:39: \
got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:197:39: \
warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/core/rtw_security.c:197:39: \
expected unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:197:39: \
got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:682:39: \
warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/core/rtw_security.c:682:39: \
expected unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:682:39: \
got restricted __le32 [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:694:39: \
warning: incorrect type in assignment (different base types)
drivers/staging/rtl8723au/core/rtw_security.c:694:39: \
expected unsigned int [unsigned] [usertype] <noident>
drivers/staging/rtl8723au/core/rtw_security.c:694:39: \
got restricted __le32 [usertype] <noident>
Signed-off-by: Jacob Kiefer <jtk54@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 071c19e73b605086a26d83ff911cdc6e6af0b3b8
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 10 11:33:22 2015 +0900
staging: wilc1000: remove wilc_strutils.c and wilc_strutils.h
Remove wilc_strutils.c and wilc_strutils.h that are not needed.
wilc_strutils.o is also removed in Makefile.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 9504f96492f477b20b97ec92d480f646b7e7a488
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 10 11:33:21 2015 +0900
staging: wilc1000: remove WILC_memcpy_INTERNAL
Remove WILC_memcpy_INTERNAL that is used in the WILC_memcpy
because WILC_memcpy is replaced by memcpy.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit f78d5f809ee248bea66fad9fa14fe62b8aec57af
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 10 11:33:20 2015 +0900
staging: wilc1000: remove WILC_memcpy function
Remove WILC_memcpy function that is changed to memcpy.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit d00d2ba33351007c752ed0e95adaa0d7728ec1b8
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 10 11:33:19 2015 +0900
staging: wilc1000: use memcpy instead of WILC_memcpy
Use memcpy instead of WILC_memcpy that is a custom function.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 31126a478fcc9020234d45576b432e7789081e0d
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 10 11:33:18 2015 +0900
staging: wilc1000: remove WILC_strncmp function
Remove WILC_strncmp function that is changed to strncmp.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 3f882895c717ec107820d7a53919110af702652d
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 10 11:33:17 2015 +0900
staging: wilc1000: use strncmp instead of WILC_strncmp
Use strncmp instead of WILC_strncmp.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 24e326ea2946863ea79d3b3af29815f5d49092b0
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 10 11:33:16 2015 +0900
staging: wilc1000: remove WILC_strncpy function
Remove WILC_strncpy function that is changed to strncpy.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 85b509f18a7f27d6cc296d62e96e4632c83161fd
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 10 11:33:15 2015 +0900
staging: wilc1000: Use strncpy instead of WILC_strncpy
Use strncpy instead of WILC_strncpy that is a custom function
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 1799cb6188beeff1b36c8968f942e9a15759b773
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 10 11:33:14 2015 +0900
staging: wilc1000: remove WILC_strlen function
Remove WILC_strlen function that is changed to strlen.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ff96dfb5b1739c84587be23f113078850a0cef4c
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 10 11:33:13 2015 +0900
staging: wilc1000: use strlen instead of WILC_strlen
Use strlen instead of WILC_strlen that is a custom function.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 7d2b212f88c369b11fc7c791d02d915ad0121d58
Author: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Date: Mon Aug 10 11:33:12 2015 +0900
staging: wilc1000: remove commented code
Remove commented code that is not used.
Signed-off-by: Chaehyun Lim <chaehyun.lim@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 358d577ce1a7c56c4300a5b773dbf98cf9c76ae2
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Fri Aug 14 11:54:05 2015 +0300
staging: comedi: me4000: use bitwise AND instead of logical
This was supposed to bitwise AND but there is a typo.
Fixes: 1a02387063fb ('staging: comedi: me4000: remove 'board' from
me4000_ai_insn_read()')
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Reviewed-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ad83dbd974feb2e2a8cc071a1d28782bd4d2c70e
Author: Ian Abbott <abbotti@xxxxxxxxx>
Date: Tue Aug 11 13:05:10 2015 +0100
staging: comedi: adl_pci7x3x: fix digital output on PCI-7230
The "adl_pci7x3x" driver replaced the "adl_pci7230" and "adl_pci7432"
drivers in commits 8f567c373c4b ("staging: comedi: new adl_pci7x3x
driver") and 657f77d173d3 ("staging: comedi: remove adl_pci7230 and
adl_pci7432 drivers"). Although the new driver code agrees with the
user manuals for the respective boards, digital outputs stopped working
on the PCI-7230. This has 16 digital output channels and the previous
adl_pci7230 driver shifted the 16 bit output state left by 16 bits
before writing to the hardware register. The new adl_pci7x3x driver
doesn't do that. Fix it in `adl_pci7x3x_do_insn_bits()` by checking
for the special case of the subdevice having only 16 channels and
duplicating the 16 bit output state into both halves of the 32-bit
register. That should work both for what the board actually does and
for what the user manual says it should do.
Fixes: 8f567c373c4b ("staging: comedi: new adl_pci7x3x driver")
Signed-off-by: Ian Abbott <abbotti@xxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # 3.13+, needs backporting for 3.7 to 3.12
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 1c38d03ea9b7b92f958ce6b3c2337413227bcb6b
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:50 2015 -0700
staging: comedi: hwdrv_apci3501: remove "magic" numbers in
apci3501_read_insn_timer()
Use register bit defines from addi_tcw.h to remove the "magic" numbers.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 0d5e03079de3332b9c3dbb5be24631502d0d676b
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:49 2015 -0700
staging: comedi: hwdrv_apci3501: remove "magic" numbers in
apci3501_write_insn_timer()
Use register bit defines from addi_tcw.h to remove the "magic" numbers.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 7dc68e350460c4c1620f79f23be70739845994ff
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:48 2015 -0700
staging: comedi: hwdrv_apci3501: remove "magic" numbers in
apci3501_config_insn_timer()
Use register bit defines from addi_tcw.h to remove the "magic" numbers.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 020e05e74d49fc4c5cecee1b779247ec8a243b1f
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:47 2015 -0700
staging: comedi: addi_apci_3501: remove "magic" numbers in
apci3501_interrupt()
Use register bit defines from addi_tcw.h to remove the "magic" numbers.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit cd5d0ae4814f4f943c97c83f7f2f393a99b4d3a0
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:46 2015 -0700
staging: comedi: addi_apci_3501: use addi_tcw.h for the timer registers
The APCI3501_TIMER_* register defines in this driver are that same as
the ADDI_TCW_* defines with an additional offset.
Add a 'tcw' (timer/counter/watchdog) member to the private data to
hold the address for the iobase of the registers. Use that and the
defines from addi_tcw.h to address the registers.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit f821bf57a41f4aaab5c3306fd81e729208ca1404
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:45 2015 -0700
staging: comedi: addi_apci_3501: rename CamelCase vars in
apci3501_interrupt()
Rename the CamelCase local variables.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 63316aae9102a3f7d0d94e32a43dad3b7b752cfe
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:44 2015 -0700
staging: comedi: addi_apci_3501: prefer using the BIT macro
Change the register bit defines to use the BIT macro.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit cd07fbf27b91c3c71812528ce39f9043ee1352e3
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:43 2015 -0700
staging: comedi: addi_apci_3501: rename private data 'i_IobaseAmcc'
Rename this CamelCase member of the private data.
Also, fix the type of the member, it holds a pci_resource_start()
address and should be an unsigned long.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit c85c26b8d0242da14732312dd99a8595d7a46e2c
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:42 2015 -0700
staging: comedi: hwdrv_apci3501: refactor apci3501_config_insn_timer()
The handling for the watchdog and timer modes is very similar. Refactor
this function to use a common code path for both modes.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit bde879ae6ef93cdaa927d1637995256277844239
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:41 2015 -0700
staging: comedi: hwdrv_apci3501: rename 'ul_Command1' in
apci3501_config_insn_timer()
Rename this CamelCase local variable.
For aesthetics, split the mask/set operations.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit f7f909e09fd0cc22499913933c9caee3000423e3
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:40 2015 -0700
staging: comedi: hwdrv_apci3501: refactor apci3501_read_insn_timer()
The handling of the ADDIDATA_WATCHDOG and ADDIDATA_TIMER is identical.
Refactor this function to use a common code path for both timer modes.
Remove the incorrect dev_err() noise. The subdevice is valid but the
timer_mode is not supported.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 626bb280d0516c7b4adee50cdd2b8ea377183f46
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:39 2015 -0700
staging: comedi: hwdrv_apci3501: refactor apci3501_write_insn_timer()
The handling of the ADDIDATA_WATCHDOG and ADDIDATA_TIMER is identical
except for the "stop" operation. Refactor this function to use a common
code path for both timer modes.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit e078d25639c0f8a5d97c879e276a2eba877dce62
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:38 2015 -0700
staging: comedi: hwdrv_apci3501: rename 'ul_Command1' in
apci3501_write_insn_timer()
Rename this CamelCase local variable.
For aesthetics, split the mask/set operations.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 4434a99eaab2cb3b214201d05f396c940033a6fe
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:37 2015 -0700
staging: comedi: addi_apci_3501: rename private data 'b_TimerSelectMode'
Rename this CamelCase member of the private data.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit a66f2017ec2daebfef9e7cdf4edeca7a362c7303
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 13:25:36 2015 -0700
staging: comedi: hwdrv_apci3501: remove useless read/mask to stop watchdog
The watchdog is stopped in apci3501_write_insn_timer() by writing a 0 to
the timer control register. There is no need to read the register first
and mask it (as done when the timer is used as a timer).
Reported-by: coverity (CID 1227052)
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 2be8ae5898af956560e9f722b327add05574a1f7
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 13:13:59 2015 -0700
staging: comedi: comedi_fops: absorb comedi_free_board_minor()
This function is only called by comedi_cleanup_board_minors() and the
'minor' parameter will always be < COMEDI_NUM_BOARD_MINORS.
For aesthetics, absorb the function and remove the unnecessary BUG_ON().
Split the comedi_clear_board_minor() out to clarify that the return value
is a comedi_device pointer.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit c4237a2b59432a6ebf73f813ad9e94ab408bb8f1
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 13:14:00 2015 -0700
staging: comedi: comedi_fops: remove BUG_ON() in
comedi_dev_get_from_board_minor()
This function is only called by comedi_dev_get_from_minor() and the
'minor'
value will always be < COMEDI_NUM_BOARD_MINORS. Remove the unnecessary
BUG_ON().
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 5104a8988723b405c9e033b7e57267ebdd387d4d
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 13:14:01 2015 -0700
staging: comedi: comedi_fops: remove BUG_ON() in
comedi_free_subdevice_minor()
Drivers should not crash the kernel.
This function is only called by comedi_device_detach_cleanup() and the
s->minor will always be valid or the device wouldn't have attached in
the first place.
Leave the checks for safety in accessing the comedi_subdevice_minor_table
array but remove the BUG_ON() calls.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 6b3703f4cb763d57ab26f2ad262a30cc7f87093c
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 13:14:02 2015 -0700
staging: comedi: comedi_fops: remove BUG_ON() in comedi_cleanup()
The BUG_ON() checks in this function are not necessary.
comedi_cleanup_board_minors() clears all the entries in the
comedi_board_minor_table array and will call comedi_device_cleanup()
for all attached devices. comedi_device_cleanup() will then
clear the entries in the comedi_subdevice_minor_table array with
comedi_free_subdevice_minor().
Remove the BUG_ON(), drivers should not crash the kernel.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 0bb6419ccf5b2548ade321d5337e9d3252a3d4a1
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 13:14:03 2015 -0700
staging: comedi: comedi_fops: remove remaining BUG_ON() checks
The BUG_ON() checks in comedi_subdevice_from_minor() and
comedi_dev_get_from_subdevice_minor() are not necessary.
The 'minor' numbers for a given comedi driver are setup by
comedi_dev_get_from_subdevice_minor() and will always be in
the correct range.
Drivers should not crash the kernel, remove the BUG_ON() checks.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 5babc1bc4d18f780200e3a794d2d553c6684554c
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:14 2015 -0700
staging: comedi: hwdrv_apci1564: remove magic numbers in
apci1564_counter_insn_read()
Use the bit defines from addi_tcw.h to remove the magic numbers in this
function.
Add the missing define for ADDI_TCW_STATUS_HARDWARE_TRIG.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit c6288a3bebd8a59364f9ca9871f0fd2ac11963b4
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:13 2015 -0700
staging: comedi: hwdrv_apci1564: tidy up apci1564_counter_insn_write()
Clear the gate and trig bits in the common code path.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 1f5d767fab593659cbebc91197c3f182f6e0d84a
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:12 2015 -0700
staging: comedi: hwdrv_apci1564: fix counter "mode" setting
According to the (broken) original driver, data[4] passed to this function
is the "timer mode". It appears the original code used the wrong shift to
set the bits.
Use the ADDI_TCW_CTRL_MODE() macro so that the correct bits get set.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 835f8fe9527b826d23b223fb5347ee2c3e670cee
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:11 2015 -0700
staging: comedi: hwdrv_apci1564: remove useless code in
apci1564_counter_insn_config()
The gate, trig, and ena, bits in the 'ctrl' are cleared at the start of
the function. There is no reason clear these bits for each step.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 18543b13fc99f0e90aead12ca9fc64145341278c
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:10 2015 -0700
staging: comedi: hwdrv_apci1564: remove magic number in
apci1564_timer_insn_read()
Use the bit define from addi_tcw.h to remove the magic number.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 9a2d58c7f87bb5a92b4be9fd61af77baa2c832ba
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:09 2015 -0700
staging: comedi: hwdrv_apci1564: tidy up apci1564_timer_insn_write()
Clear the gate and trig bits in the common code path.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit d9fca73c8014cbc971baa980c87caab8004b7c8c
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:08 2015 -0700
staging: comedi: hwdrv_apci1564: use addi_tcw.h defines
Use the ADDI_TCW_CTRL_REG bit defines in addi_tcw.h to remove the "magic"
numbers.
Add some missing bit defines and mask defines to addi_tcw.h to help
cleanup the code.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 836b8f2304a0363e98631f8cbccbe962d7dc23ab
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:07 2015 -0700
staging: comedi: addi_apci_1564: tidy up APCI1564_EEPROM_REG bit defines
Use the BIT() macro to define the bits.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 9f750d15a1d8387605745c89c21cf46d4ddd4cd0
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:06 2015 -0700
staging: comedi: addi_apci_1564: define the APCI1564_DI_IRQ_REG bits
Define the bits in this register. Remove the old defines in
hwdrv_apci1564.c.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit dbaa1490f989380b2e7a492d324441cc917628cb
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:05 2015 -0700
staging: comedi: addi_apci_1564: define the APCI1564_DO_IRQ_REG bits
Define the bits in this register.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit fa1219e03e73fb1ebba87eeb2aa1edbea518622d
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:04 2015 -0700
staging: comedi: addi_apci_1564: define the APCI1564_DO_INT_STATUS_REG
bits
Define the bits in this register.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 59c8f0dd76ac1358086ac79e177791683b1823d0
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:03 2015 -0700
staging: comedi: addi_apci_1564: define the APCI1564_DO_INT_CTRL_REG bits
Define the bits in this register. Remove the old defines in
hwdrv_apci1564.c.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit d5387751c34a6a02d715e4885239a05563a418b8
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:02 2015 -0700
staging: comedi: hwdrv_apci1564: remove unused defines
These defines are not used. Remove them.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 2afc5d49d03ffcd36ef5a50a52709539911ceb00
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 11:45:01 2015 -0700
staging: comedi: addi_tcw.h: prefer using the BIT macro
Use the BIT macro to define the register bits.
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 13d825edd4441dd3453de58d1bd2ade44d5ad2ab
Author: Aleksei Fedotov <lexa@xxxxxxxxx>
Date: Fri Aug 14 22:34:37 2015 +0300
staging: speakup: Fix warning reported by checkpatch
This patch fixes the checkpatch.pl warnings:
WARNING: Block comments use a trailing */ on a separate line
WARNING: Block comments use * on subsequent lines
Signed-off-by: Aleksey Fedotov <lexa@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ad9f92d2700d19cd680dbfdb5da3859d10f534d1
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:32 2015 -0700
staging: speakup: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Miscellanea:
o Reflow alignments
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit e4fde76b1667e86bf016f33c3ada33332e586b0d
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:27 2015 -0700
staging: olpc_dcon: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit f7f2c183043a79e1c6115c69314e3d0d2c5e061f
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:24 2015 -0700
staging: netlogic: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit f0f621ca7bac142ecc0516f91ed1199d9c374ff8
Author: Mike Rapoport <mike.rapoport@xxxxxxxxx>
Date: Wed Aug 12 21:08:50 2015 +0300
staging: android: update TODO
- remove "make sure things build as modules properly"
- remove kuid_t related remarks, they were relevant for logger, but it
is gone half year ago
- remove dead e-mail address of Brian Swetland
- add e-mail addresses of Arve Hjønnevåg and Riley Andrews
Signed-off-by: Mike Rapoport <mike.rapoport@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit d30649a8b61843bed98f772954e490b75cae2713
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:16 2015 -0700
staging: android: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit c71e16ef7a2b4c5251cef74b1065fbb76bb14d09
Author: Cristina Opriceana <cristina.opriceana@xxxxxxxxx>
Date: Tue Aug 11 13:20:53 2015 +0300
Staging: iio: trigger: Use braces on both branches of if statement
Fix style issue related to missing braces, detected by checkpatch.pl.
Signed-off-by: Cristina Opriceana <cristina.opriceana@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 2f3403ac2cdd7d76c531c5b3cf16b05d7a554f18
Author: Cristina Opriceana <cristina.opriceana@xxxxxxxxx>
Date: Tue Aug 11 13:18:18 2015 +0300
Staging: iio: trigger: Alignment should match open parenthesis
Fix alignment for function parameters as suggested by checkpatch.pl.
Signed-off-by: Cristina Opriceana <cristina.opriceana@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit d98d2ccb4ceb4f28408299d1cc3846ab6be7ec52
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:20 2015 -0700
staging: iio: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Acked-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 5132fcd1fb55eddf04c7a06ede75723d7870b797
Author: Adrian Remonda <adrianremonda@xxxxxxxxx>
Date: Fri Aug 14 12:18:04 2015 +0200
Staging: most: aim-cdev/cdev.c. Fix "missing static keyword" warnings
This is a patch to the most/aim_cdev.c file. It makes several
local functions and structures static to prevent global visibility.
Signed-off-by: Adrian Remonda <adrianremonda@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 23fe15fadf708c562140cd99e4dfd400afc5db8a
Author: Adrian Remonda <adrianremonda@xxxxxxxxx>
Date: Fri Aug 14 12:18:02 2015 +0200
Staging: most: hdm-usb/hdm_usb.c. Fix "missing static keyword" warnings
This is a patch to the most/hdm-usb/hdm_usb.c file. It
makes several local functions and structures static to prevent global
visibility.
Signed-off-by: Adrian Remonda <adrianremonda@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 04ca58372c5e4922d7463450ffdb5cdc3d0dd596
Author: Adrian Remonda <adrianremonda@xxxxxxxxx>
Date: Fri Aug 14 12:18:01 2015 +0200
Staging: most: mostcore/core.c. Fix "Using plain integer as NULL pointer"
warnings
This patch fixes the warning generated by sparse: "Using plain integer
as NULL pointer" by replacing the pointer test against 0 with a logical
test.
Signed-off-by: Adrian Remonda <adrianremonda@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit c942ea7a377edfde7a154f2edd8fde7cfea24de1
Author: Adrian Remonda <adrianremonda@xxxxxxxxx>
Date: Fri Aug 14 12:18:00 2015 +0200
Staging: most: mostcore/core.c. Fix "missing static keyword" warnings
This is a patch to the mostcore/core.c file. It makes
several local functions and structures static to prevent global
visibility.
Signed-off-by: Adrian Remonda <adrianremonda@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ddb98ce16158cb979f025eb73eaa44dce4cb1b36
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Aug 10 14:51:22 2015 -0700
staging: most: Remove unnecessary externs
Using 'extern' is not necessary for function prototypes.
Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 910bf1efe6f7f74b10e918768ddea3ad8b863f8b
Author: Tomas Melin <tomas.melin@xxxxxx>
Date: Sun Aug 9 17:08:41 2015 +0300
staging/most: fix return value for DIM_GetChannelState
Return NULL instead of 0 for invalid input.
Signed-off-by: Tomas Melin <tomas.melin@xxxxxx>
Acked-by: Christian Gromm <christian.gromm@xxxxxxxxxxxxx>
Signed-off-by: Andrey Shvetsov <andrey.shvetsov@xxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ad88aae057b9f952f1cbd2f5df8325b95ba7bb75
Author: Oleg Drokin <green@xxxxxxxxxxxxxx>
Date: Sat Aug 8 20:09:06 2015 -0400
staging/lustre/llite: get rid of unused ll_super_blocks list
ll_super_blocks became unused quite a while ago with switch
to the new CLIO code.
So this patch removes the list, ll_sb_lock spinlock that guards it
and superblock info ll_list linkage.
Signed-off-by: Oleg Drokin <green@xxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit d38c59e9ab203427f14ab6691529bac098adbacd
Author: Abhilash Jindal <klock.android@xxxxxxxxx>
Date: Tue Aug 11 10:31:53 2015 -0400
staging: comedi: serial2002: Use monotonic clock
Wall time obtained from do_gettimeofday is susceptible to sudden jumps
due to
user setting the time or due to NTP.
Monotonic time is constantly increasing time better suited for comparing
two
timestamps.
Signed-off-by: Abhilash Jindal <klock.android@xxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Reviewed-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 365741e6a6ab7f31ff885c26dd173d9590d1e8ca
Author: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 10:28:08 2015 -0700
staging: comedi: ni_usb6501: fix possible out-of-bounds access
Coverity reports a possible Out-of-bounds access (ARRAY_VS_SINGLETON)
with the 'const u8 *port' parameter passed to ni6501_port_command().
This param is an actual array for the SET_PORT_DIR operation, called
by ni6501_dio_insn_config(). But for the WRITE_PORT and READ_PORT
operations, called by ni6501_dio_insn_bits(), it is just the address
of an u8 local variable.
Fix the coverity issue by changing the parameter to an unsigned int
and pass the raw values from ni6501_dio_insn_config() and
ni6501_dio_insn_bits(). ni6501_port_command() then handles the masking
and shifting needed to load the value into the u8 transmit buffer.
For consistency, change the access of the 'bitmap' parameter from an
array access to a pointer operation.
Reported-by: coverity (CID 1248624)
Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 92f26189b181a65fcb1ff6220a4bf45d44502e4a
Author: Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>
Date: Thu Aug 13 19:06:05 2015 +0530
auxdisplay: ks0108: initialize local parport variable
The local variable ks0108_parport is used by other functions to write to
the parallel port. We missed initializing it when we converted the
driver to use new Parallel Port codes.
Fixes: 4edd70c133f3 ("auxdisplay: ks0108: use new parport device model")
Reported-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit c868cbb7e5c6d3c74b8d38c7c356444f2c807c28
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Tue Aug 11 10:21:23 2015 -0700
serial: imx: save and restore context in the suspend path
This change teaches the imx serial driver to save its
context and restore it across suspend and resume path.
To do so, it introduces serial_imx_restore_context()
and serial_imx_save_context() functions. They use
a shadow set of registers to save key registers
and restore them accordingly. These functions can
be reused on other situations, when the device
context is lost.
Cc: Fabio Estevam <festevam@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Jiri Slaby <jslaby@xxxxxxxx>
Cc: linux-serial@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit bc85734b126f813ba46265c2d3a84c8839cb2e54
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Tue Aug 11 10:21:22 2015 -0700
serial: imx: allow waking up on RTSD
This patch sets RTSDEN bit when going into idle (Stop mode).
We add the RTSDEN for the case RTS is sent from
the remote connection. This way we allow the system
to wakeup when RTS is received.
Cc: Fabio Stevam <festevam@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Jiri Slaby <jslaby@xxxxxxxx>
Cc: linux-serial@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 189550b8644ef5d00d3b744f7fd423cce2d7c9ec
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Tue Aug 11 10:21:21 2015 -0700
serial: imx: introduce serial_imx_enable_wakeup()
This change is a code reorganization. Here we introduce
serial_imx_enable_wakeup() helper function to do
the job of configuring and preparing wakeup sources
on imx serial device. The idea is to allow other
parts of the code to call this function whenever
the device is known to go to idle.
Cc: Fabio Estevam <festevam@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Jiri Slaby <jslaby@xxxxxxxx>
Cc: linux-serial@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 9e7b399d6528eac33a6fbfceb2b92af209c3454d
Author: Eduardo Valentin <edubezval@xxxxxxxxx>
Date: Tue Aug 11 10:21:20 2015 -0700
serial: imx: remove unbalanced clk_prepare
The current code attempts to prepare clk_per and clk_ipg
before using the device. However, the result is an extra
prepare call on each clock. Here is the output of uart
clocks (only uart enabled and used as console):
$ grep uart /sys/kernel/debug/clk/clk_summary
uart_serial 1 2 80000000 0 0
uart 1 2 66000000 0 0
This patch balances the calls of prepares. The result is:
$ grep uart /sys/kernel/debug/clk/clk_summary
uart_serial 1 1 80000000 0 0
uart 1 1 66000000 0 0
Cc: Fabio Estevam <festevam@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: Jiri Slaby <jslaby@xxxxxxxx>
Cc: linux-serial@xxxxxxxxxxxxxxx
Cc: linux-pm@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit eafb9eea7622d765effb1a06f8cf5eb31fa018f6
Author: John Ogness <john.ogness@xxxxxxxxxxxxx>
Date: Fri Aug 14 18:01:02 2015 +0200
serial: 8250: move rx_running out of the bitfield
That bitfield is modified by read + or + write operation. If someone
sets any of the other two bits it might render the lock useless.
While at it, remove other bitfields as well to avoid more such
errors.
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: John Ogness <john.ogness@xxxxxxxxxxxxx>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 830acf9e3044d4644f91b4418ef35a2094089946
Author: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Date: Fri Aug 14 17:52:07 2015 +0200
tty: serial: 8250_omap: do not use RX DMA if pause is not supported
The 8250-omap driver requires the DMA-engine driver to support the pause
command in order to properly turn off programmed RX transfer before the
driver stars manually reading from the FIFO.
The lacking support of the requirement has been discovered recently. In
order to stay safe here we disable RX-DMA completly on probe.
The rx_dma_broken assignment on probe could be removed once we working
pause function in omap-dma.
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit cbba3e6f7a1eb642cccf520f690d4a58b97a9588
Author: Qipeng Zha <qipeng.zha@xxxxxxxxx>
Date: Fri Aug 7 19:14:47 2015 +0800
serial:8250_dw: do not alter CTS and DCTS since AFE is enabled
Since the serial core is informed that this device is doing
automatic flow control, it is not necessary to alter CTS and
DCTS of the MSR as the core no longer attempts stop the port
in uart_handle_cts_change().
Signed-off-by: Huiquan Zhong <huiquan.zhong@xxxxxxxxx>
Signed-off-by: Qipeng Zha <qipeng.zha@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 2b9a8508cb7f50d1880e2b8bb43615afd228f738
Author: Johannes Thumshirn <jthumshirn@xxxxxxx>
Date: Thu Aug 6 09:16:38 2015 +0200
tty: serial: men_z135_uart.c: Don't initialize port->lock
port->lock get's initialized in uart_add_one_port(), no need to do it
in men_z135_probe().
Signed-off-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Reviewed-by: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 8117e347406278fd399b077add4e638cd017ae2d
Author: Johannes Thumshirn <jthumshirn@xxxxxxx>
Date: Thu Aug 6 09:16:37 2015 +0200
tty: serial: men_z135_uart.c: Fix race between IRQ and set_termios()
Fix panic caused by a race between men_z135_intr() and
men_z135_set_termios().
men_z135_intr() and men_z135_set_termios() both hold the struct
uart_port::lock
spinlock, but men_z135_intr() does a spin_lock_irqsave() and
men_z135_set_termios() does a normal spin_lock(), which can lead to a
deadlock
when an interrupt is called while the lock is being helt by
men_z135_set_termios().
This was discovered using a insmod, hardware looppback send/receive, rmmod
stress test.
Signed-off-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Reviewed-by: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx>
Cc: Andreas Werner <andreas.werner@xxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v4.0+
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 1d7002777a8fe8188caaa98d4a8eb4ed298fcdae
Author: Maciej S. Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Date: Sun Aug 2 23:15:05 2015 +0200
serial: 8250: bind to ALi Fast Infrared Controller (ALI5123)
This way this device can be used with irtty-sir -
at least on Toshiba Satellite A20-S103 it is not configured by default
and needs PNP activation before it starts to respond on I/O ports.
This device has actually its own driver (ali-ircc),
but this driver seems to be non-functional for a very long time
(see http://permalink.gmane.org/gmane.linux.irda.general/484
http://permalink.gmane.org/gmane.network.protocols.obex.openobex.user/943
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535070 ).
Signed-off-by: Maciej Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ffa34de03bcfbfa88d8352942bc238bb48e94e2d
Author: Maciej S. Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Date: Sun Aug 2 23:11:52 2015 +0200
serial: 8250: don't bind to SMSC IrCC IR port
SMSC IrCC SIR/FIR port should not be bound to by
(legacy) serial driver so its own driver (smsc-ircc2)
can bind to it.
Signed-off-by: Maciej Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit df57cf6a879502cd6e5559c1f2d6db12128e074f
Author: Stefan Wahren <stefan.wahren@xxxxxxxx>
Date: Tue Aug 11 11:46:01 2015 +0000
serial: mxs-auart: fix baud rate range
Currently mxs-auart doesn't care correctly about the baud rate divisor.
According to reference manual the baud rate divisor must be between
0x000000EC and 0x003FFFC0. So calculate the possible baud rate range
and use it for uart_get_baud_rate().
Signed-off-by: Stefan Wahren <stefan.wahren@xxxxxxxx>
Reviewed-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 17dc72cf3d8c6284cc34f29627f891268af07a55
Author: Juergen Borleis <jbe@xxxxxxxxxxxxxx>
Date: Fri Aug 7 12:47:04 2015 +0200
serial: mxs-auart: keep the AUART unit in reset state when not in use
Whenever the UART device driver gets closed from userland, the driver
disables the UART unit and then stops the clocks to save power.
The bit which disabled the UART unit is described as:
 "UART Enable. If this bit is set to 1, the UART is enabled. Data
transmission and reception occurs for the UART signals. When the
UART is disabled in the middle of transmission or reception, it
completes the current character before stopping."
The important part is the "it completes the current character". Whenever
a reception is ongoing when the UART gets disabled (including the clock
off) the statemachine freezes and "remembers" this state on the next
open() when re-enabling the unit's clock.
In this case we end up receiving an additional bogus character
immediately.
The solution in this change is to switch the AUART unit into its reset
state on close() and only release it from its reset state on the next
open().
Note: when the unit is also used as system console it is always 'in use',
so we cannot reset it on close().
Signed-off-by: Juergen Borleis <jbe@xxxxxxxxxxxxxx>
Reviewed-by: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 3fa30ac3b9a9220fa953eeb6d21b9ca578c67885
Author: Juergen Borleis <jbe@xxxxxxxxxxxxxx>
Date: Fri Aug 7 12:47:03 2015 +0200
serial: mxs-auart: use a function name to reflect what it really does
This function clears the reset the AUART unit is in after system start
to make it work.
Signed-off-by: Juergen Borleis <jbe@xxxxxxxxxxxxxx>
Reviewed-by: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 17248569499eae54b314fb05c4ff19fd47c9e99b
Author: Chase Metzger <chasemetzger15@xxxxxxxxx>
Date: Tue Aug 11 21:34:37 2015 -0700
usb: core: hub: Removed some warnings generated by checkpatch.pl
Removed some checkpatch.pl warnings saying there was an unwanted space
between
function names and their arguments.
Signed-off-by: Chase Metzger <chasemetzger15@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit e4df92279fd9e01532f65e5ba397877799ed6252
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 16:23:12 2015 +0200
USB: host: ohci-at91: merge loops in ohci_hcd_at91_drv_probe
ohci_hcd_at91_drv_probe() has four at91_for_each_port. They can be merged
into two loops without changing the driver behaviour.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit bd73bfcd44c0bdcf6efa238e5b21bdbf0778d6ce
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 16:23:11 2015 +0200
USB: host: ohci-at91: merge ohci_at91_of_init in ohci_hcd_at91_drv_probe
As device tree support is now mandatory, merge ohci_at91_of_init() in
ohci_hcd_at91_drv_probe().
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit be12be546baa26a1eeb59b78e2a616cd946e850a
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 16:23:10 2015 +0200
USB: host: ohci-at91: depend on OF
Make the driver depend on CONFIG_OF and remove the now useless #ifdef
Also, fix the Kconfig indentation.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit b4f194706dd98d6de21c97eeb888a75abbf75174
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 16:23:09 2015 +0200
USB: host: ohci-at91: move at91_usbh_data definition in c file
Move struct at91_usbh_data back in ohci-at91.c as this is the only user
left after switching all at91 platforms to DT only.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 3cf1fc80655d3af7083ea4b3615e5f8532543be7
Author: Stefan Koch <stefan.koch10@xxxxxxxxx>
Date: Sat Aug 8 11:32:56 2015 +0200
usb: interface authorization: Use a flag for the default device
authorization
With this patch a flag instead of a variable
is used for the default device authorization.
Signed-off-by: Stefan Koch <skoch@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 6ef2bf71764708f7c58ee9300acd8df05dbaa06f
Author: Stefan Koch <stefan.koch10@xxxxxxxxx>
Date: Sat Aug 8 11:32:55 2015 +0200
usb: interface authorization: Documentation part
This part adds the documentation for the interface authorization.
Signed-off-by: Stefan Koch <skoch@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 187b3d75bbfba45a38b5d1d3656c0f11f6f6f2d0
Author: Stefan Koch <stefan.koch10@xxxxxxxxx>
Date: Sat Aug 8 11:32:54 2015 +0200
usb: interface authorization: SysFS part of USB interface authorization
This introduces an attribute for each interface to
authorize (1) or deauthorize (0) it:
/sys/bus/usb/devices/INTERFACE/authorized
Signed-off-by: Stefan Koch <skoch@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit ef0909c50fe63be3f9aa09bdf4db7efaa5919be9
Author: Stefan Koch <stefan.koch10@xxxxxxxxx>
Date: Sat Aug 8 11:32:53 2015 +0200
usb: interface authorization: Introduces the USB interface authorization
The kernel supports the device authorization because of wireless USB.
These is usable for wired USB devices, too.
These new interface authorization allows to enable or disable
individual interfaces instead a whole device.
If a deauthorized interface will be authorized so the driver probing must
be triggered manually by writing INTERFACE to /sys/bus/usb/drivers_probe
Signed-off-by: Stefan Koch <skoch@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit de7718bd9c4d3db96991a98c2a0cb38258a04e47
Author: Stefan Koch <stefan.koch10@xxxxxxxxx>
Date: Sat Aug 8 11:32:52 2015 +0200
usb: interface authorization: Control interface probing and claiming
Driver probings and interface claims get rejected
if an interface is not authorized.
Signed-off-by: Stefan Koch <skoch@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 1d958bef45030acfc5578263e9de3bb07032b8da
Author: Stefan Koch <stefan.koch10@xxxxxxxxx>
Date: Sat Aug 8 11:32:51 2015 +0200
usb: interface authorization: Introduces the default interface
authorization
Interfaces are allowed per default.
This can disabled or enabled (again) by writing 0 or 1 to
/sys/bus/usb/devices/usbX/interface_authorized_default
Signed-off-by: Stefan Koch <skoch@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 484ebaedecc5ddf778a30ee1efab367cbee27030
Author: Stefan Koch <stefan.koch10@xxxxxxxxx>
Date: Sat Aug 8 11:32:50 2015 +0200
usb: interface authorization: Declare authorized attribute
The attribute authorized shows the authorization state for an interface.
Signed-off-by: Stefan Koch <skoch@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 088a3daeadf6f4123f54d5208b0ec7cbbfc8853f
Author: Kris Borer <kborer@xxxxxxxxx>
Date: Tue Aug 11 11:12:45 2015 -0400
usb: hub: remove assignment from if condition
Fix one occurrence of the checkpatch.pl error:
ERROR: do not use assignment in if condition
The semantic patch that makes this change is:
// <smpl>
@@
identifier i;
expression E, E2, E3;
statement S1, S2;
binary operator b;
@@
+ i = E;
if (
- (i = E)
+ i
b
... && E2 && E3 ) S1 else S2
// </smpl>
Signed-off-by: Kris Borer <kborer@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit e3ec4fda072c72c8ed014b58a3a4dd54b2b454bd
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Mon Aug 10 16:29:33 2015 +0200
usb: gadget: atmel: remove useless include
Definitions from linux/platform_data/atmel.h are not used, remove the
include.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 3290b1b818934a517a593159f39a3651dcf34518
Author: Kris Borer <kborer@xxxxxxxxx>
Date: Mon Aug 10 09:13:15 2015 -0400
usb: endpoint: convert spaces to tabs
Fix one occurrence of the checkpatch error:
ERROR: code indent should use tabs where possible
Signed-off-by: Kris Borer <kborer@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit 31b92d81e5d4574eb3d038642c7ba6ec66ea7db1
Author: Kris Borer <kborer@xxxxxxxxx>
Date: Sun Aug 9 21:48:18 2015 -0400
usb: otg_whitelist: remove whitespace
Fix one occurrence of the checkpatch error:
ERROR: space prohibited before open square bracket '['
Signed-off-by: Kris Borer <kborer@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit f8786a91548df6930643a052e40e5c0b7a8403a5
Author: Nikhil Badola <nikhil.badola@xxxxxxxxxxxxx>
Date: Thu Aug 6 14:51:27 2015 +0530
drivers: usb: fsl: Workaround for USB erratum-A005275
Incoming packets in high speed are randomly corrupted by h/w
resulting in multiple errors. This workaround makes FS as
default mode in all affected socs by disabling HS chirp
signalling.This errata does not affect FS and LS mode.
Forces all HS devices to connect in FS mode for all socs
affected by this erratum:
P3041 and P2041 rev 1.0 and 1.1
P5020 and P5010 rev 1.0 and 2.0
P5040, P1010 and T4240 rev 1.0
Signed-off-by: Ramneek Mehresh <ramneek.mehresh@xxxxxxxxxxxxx>
Signed-off-by: Nikhil Badola <nikhil.badola@xxxxxxxxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
commit d50f14805ec0f1cf50654e23559d1dcf81c68b26
Merge: 37a842d cfd093b
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 16:45:51 2015 -0700
Merge tag 'phy-for-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-next
Kishon writes:
phy: for 4.3
*) Add new NXP USB OTG PHY driver
*) Add vbus/id detection, extcon support and fixes in phy-sun4i-usb
driver
*) Add support to use phy-sun4i-usb driver for sun8i-a23 and sun8i-a33
SoCs
*) Other trivial code cleanups, dropping .owner assignment and constify
phy_ops
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
commit 37a842d36f63a047d94be2603d40d4407c949f1b
Merge: a3fbedf 96625ea
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 16:43:09 2015 -0700
Merge tag 'usb-ci-v4.3-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-next
Peter writes:
USB: chipidea updates for v4.3-rc1
The main changes are adding several system interfaces for
tuning performance, and each vendors can adjust them according
to their design configurations.
Others are tiny improvements, like more well siTD supports,
USB_DEVICE_A_HNP_SUPPORT supports, etc.
commit a3fbedf98fe9909cb2e406e2018ec437d64806f6
Merge: e6bbe1d 2f3cc24
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 16:41:11 2015 -0700
Merge tag 'usb-for-v4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next
Felipe writes:
usb: patches for v4.3 merge window
New support for Allwinne SoC on the MUSB driver has been added to the
list of
glue layers. MUSB also got support for building all DMA engines in one
binary;
this will be great for distros.
DWC3 now has no trace of dev_dbg()/dev_vdbg() usage. We will rely solely
on
tracing to debug DWC3. There was also a fix for memory corruption with
EP0 when
maxpacket size transfers are > 512 bytes.
Robert's EP capabilities flags is making EP selection a lot simpler. UDCs
are
now required to set these flags up when adding endpoints to the framework.
Other than these, we have the usual set of miscelaneous cleanups and minor
fixes.
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
commit 4c278394b0feb7aadc538be12ab0474b106a7255
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Tue Aug 11 16:01:30 2015 -0700
f2fs: avoid a build warning
If F2FS_CHECK_FS is turned off, we can get a build warning for unused
variable.
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 8c14bfadeac2a01b305ef4434907295b81b58db2
Author: Chao Yu <chao2.yu@xxxxxxxxxxx>
Date: Fri Aug 7 17:58:43 2015 +0800
f2fs: handle error of f2fs_iget correctly
In recover_orphan_inode, whenever f2fs_iget fail, we will make kernel
panic,
but it's not reasonable, because f2fs_iget can fail due to a lot of
reasons
including out of memory.
So we change error handling method as below:
a) when finding no entry for the orphan inode, bug_on for catching bugs;
b) for other reasons, report it to caller.
Signed-off-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 47e70ca46f9074efe6573263c0de5bef0af829de
Author: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Date: Tue Aug 11 10:17:27 2015 -0700
f2fs: do not assign a new segment for dio under space shortage
If there is not enough free segment, we should not assign a new segment
explicitly. Otherwise, we can run out of free segment.
Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
commit 4d283ec908e617fa28bcb06bce310206f0655d67
Author: Andy Lutomirski <luto@xxxxxxxxxx>
Date: Thu Aug 13 13:18:48 2015 -0700
x86/kvm: Rename VMX's segment access rights defines
VMX encodes access rights differently from LAR, and the latter is
most likely what x86 people think of when they think of "access
rights".
Rename them to avoid confusion.
Cc: kvm@xxxxxxxxxxxxxxx
Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
commit 657c63f0af2d0b44446c840cd42228ef1ebcdce4
Author: Wentao Xu <wentaox@xxxxxxxxxxxxxx>
Date: Fri Jun 19 14:03:42 2015 -0400
drm/msm/mdp5: release SMB (shared memory blocks) in various cases
Release all blocks after the pipe is disabled, even when vsync
didn't happen in some error cases. Allow requesting SMB multiple
times before configuring to hardware, by releasing blocks not
programmed to hardware yet for shrinking case.
This fixes a potential leak of shared memory pool blocks.
Signed-off-by: Wentao Xu <wentaox@xxxxxxxxxxxxxx>
Tested-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit a9702ca23edae7b72dcff266a0c5ae56f6af0fa5
Author: Wentao Xu <wentaox@xxxxxxxxxxxxxx>
Date: Mon Jun 22 11:53:42 2015 -0400
drm/msm: change to uninterruptible wait in atomic commit
The atomic commit cannot easily undo and return an error once the
state is swapped. Change to uninterruptible wait, and ignore the
timeout error.
Signed-off-by: Wentao Xu <wentaox@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 507d71b1fa91e2ea5887fcc347d5e71605e113f8
Author: Archit Taneja <architt@xxxxxxxxxxxxxx>
Date: Fri Jun 26 15:49:43 2015 +0530
drm/msm: mdp4: Fix drm_framebuffer dereference crash
mdp4_get_frame_format() can dereference a drm_framebuffer when it's NULL.
Call it in mdp4_plane_mode_set only when we know fb is non-NULL.
Signed-off-by: Archit Taneja <architt@xxxxxxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit bbcc71872a57cb4642c15423ae229aefdf09910a
Author: Rob Clark <robdclark@xxxxxxxxx>
Date: Thu Jul 23 13:44:56 2015 -0400
drm/msm: fix msm_gem_prime_get_sg_table()
We need to return a new sgt, since the caller takes ownership of it.
Reported-by: Stanimir Varbanov <svarbanov@xxxxxxxxxx>
Signed-off-by: Rob Clark <robdclark@xxxxxxxxx>
commit 53cf037bf846417fd92dc92ddf97267f69b110f4
Author: Linus Lüssing <linus.luessing@xxxxxxxxx>
Date: Tue Jun 30 23:45:26 2015 +0200
batman-adv: Fix potentially broken skb network header access
The two commits noted below added calls to ip_hdr() and ipv6_hdr(). They
need a correctly set skb network header.
Unfortunately we cannot rely on the device drivers to set it for us.
Therefore setting it in the beginning of the according ndo_start_xmit
handler.
Fixes: 1d8ab8d3c176 ("batman-adv: Modified forwarding behaviour for
multicast packets")
Fixes: ab49886e3da7 ("batman-adv: Add IPv4 link-local/IPv6-ll-all-nodes
multicast support")
Signed-off-by: Linus Lüssing <linus.luessing@xxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 3f1e08d0ae6746379b9e21264dae52f4f35c7ad2
Author: Simon Wunderlich <simon@xxxxxxxxxxxxx>
Date: Wed Jun 24 14:50:20 2015 +0200
batman-adv: remove broadcast packets scheduled for purged outgoing if
When an interface is purged, the broadcast packets scheduled for this
interface should get purged as well.
Signed-off-by: Simon Wunderlich <simon@xxxxxxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 1f155101646e6f6cda218534ff6e252ff625137b
Author: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Date: Mon Jun 22 00:36:28 2015 +0800
batman-adv: protect tt request from double deletion
The list_del() calls were changed to list_del_init() to prevent
an accidental double deletion in batadv_tt_req_node_new().
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 8a4023c5b5e30b11f1f383186f4a7222b3b823cf
Author: Linus Lüssing <linus.luessing@xxxxxxxxx>
Date: Tue Jun 16 17:10:26 2015 +0200
batman-adv: Fix potential synchronization issues in mcast tvlv handler
So far the mcast tvlv handler did not anticipate the processing of
multiple incoming OGMs from the same originator at the same time. This
can lead to various issues:
* Broken refcounting: For instance two mcast handlers might both assume
that an originator just got multicast capabilities and will together
wrongly decrease mcast.num_disabled by two, potentially leading to
an integer underflow.
* Potential kernel panic on hlist_del_rcu(): Two mcast handlers might
one after another try to do an
hlist_del_rcu(&orig->mcast_want_all_*_node). The second one will
cause memory corruption / crashes.
(Reported by: Sven Eckelmann <sven@xxxxxxxxxxxxx>)
Right in the beginning the code path makes assumptions about the current
multicast related state of an originator and bases all updates on that.
The
easiest and least error prune way to fix the issues in this case is to
serialize multiple mcast handler invocations with a spinlock.
Fixes: 60432d756cf0 ("batman-adv: Announce new capability via multicast
TVLV")
Signed-off-by: Linus Lüssing <linus.luessing@xxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 9c936e3f4c4fad07abb6c082a89508b8f724c88f
Author: Linus Lüssing <linus.luessing@xxxxxxxxx>
Date: Tue Jun 16 17:10:25 2015 +0200
batman-adv: Make MCAST capability changes atomic
Bitwise OR/AND assignments in C aren't guaranteed to be atomic. One
OGM handler might undo the set/clear of a specific bit from another
handler run in between.
Fix this by using the atomic set_bit()/clear_bit()/test_bit() functions.
Fixes: 60432d756cf0 ("batman-adv: Announce new capability via multicast
TVLV")
Signed-off-by: Linus Lüssing <linus.luessing@xxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit ac4eebd48461ec993e7cb614d5afe7df8c72e6b7
Author: Linus Lüssing <linus.luessing@xxxxxxxxx>
Date: Tue Jun 16 17:10:24 2015 +0200
batman-adv: Make TT capability changes atomic
Bitwise OR/AND assignments in C aren't guaranteed to be atomic. One
OGM handler might undo the set/clear of a specific bit from another
handler run in between.
Fix this by using the atomic set_bit()/clear_bit()/test_bit() functions.
Fixes: e17931d1a61d ("batman-adv: introduce capability initialization
bitfield")
Signed-off-by: Linus Lüssing <linus.luessing@xxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 4635469f5c617282f18c69643af36cd8c0acf707
Author: Linus Lüssing <linus.luessing@xxxxxxxxx>
Date: Tue Jun 16 17:10:23 2015 +0200
batman-adv: Make NC capability changes atomic
Bitwise OR/AND assignments in C aren't guaranteed to be atomic. One
OGM handler might undo the set/clear of a specific bit from another
handler run in between.
Fix this by using the atomic set_bit()/clear_bit()/test_bit() functions.
Fixes: 3f4841ffb336 ("batman-adv: tvlv - add network coding container")
Signed-off-by: Linus Lüssing <linus.luessing@xxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 65d7d46050704bcdb8121ddbf4110bfbf2b38baa
Author: Linus Lüssing <linus.luessing@xxxxxxxxx>
Date: Tue Jun 16 17:10:22 2015 +0200
batman-adv: Make DAT capability changes atomic
Bitwise OR/AND assignments in C aren't guaranteed to be atomic. One
OGM handler might undo the set/clear of a specific bit from another
handler run in between.
Fix this by using the atomic set_bit()/clear_bit()/test_bit() functions.
Fixes: 17cf0ea455f1 ("batman-adv: tvlv - add distributed arp table
container")
Signed-off-by: Linus Lüssing <linus.luessing@xxxxxxxxx>
Signed-off-by: Marek Lindner <mareklindner@xxxxxxxxxxxxx>
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxxxxx>
commit 1a8e7fab70c8d7cad2e606e7b21d46e42e51c2fd
Author: Mengdong Lin <mengdong.lin@xxxxxxxxx>
Date: Mon Aug 10 22:48:30 2015 +0800
ASoC: topology: Change pass number of DAI smaller than graph
The PCM DAIs need to be loaded and added to ASoC core ealier than the
graph (route). Otherwise, adding routes will fail for missing DAIs.
Signed-off-by: Mengdong Lin <mengdong.lin@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 708ab62bef1ed3a3cf065a4138bd87f5d083cfeb
Author: Christoph Hellwig <hch@xxxxxx>
Date: Mon Aug 10 23:07:08 2015 -0400
pmem: switch to devm_ allocations
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
[djbw: tools/testing/nvdimm/ and memunmap_pmem support]
Reviewed-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 7d3dcf26a6559fa82af3f53e2c8b163cec95fdaf
Author: Christoph Hellwig <hch@xxxxxx>
Date: Mon Aug 10 23:07:07 2015 -0400
devres: add devm_memremap
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit a33ee95f8f456c241897a4b6153610b8488d009d
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Tue Jul 21 17:01:19 2015 +0200
drm/bridge: Put Kconfig entries in a separate menu
Put the Kconfig entries for bridge drivers into a separate menu so that
they are automatically grouped and don't clutter up the top-level menu.
While at it, move the bridge menu towards the end of the top-level menu
where the panel menu is already located.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 58c467ece486e9bd1e26b4fd68e8cdef8501952d
Author: Heiko Schocher <hs@xxxxxxx>
Date: Tue Jun 9 07:51:22 2015 +0200
drm/panel: Add support for LG LG4573 480x800 4.3" panel
The LG4573 is used on the LG LCD LB043WV2-SD01, an industrial 4.3" TFT
panel with SPI control interface.
Signed-off-by: Heiko Schocher <hs@xxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit a99fb6269d1af432c051ed552aaea807f9f906c9
Author: Gary Bisson <gary.bisson@xxxxxxxxxxxxxxxxxxx>
Date: Wed Jun 10 18:44:23 2015 +0200
drm/panel: Add display timing for Okaya RS800480T-7X0GP
Add support for the Okaya RS800480T-7X0GP to the DRM simple panel
driver.
The RS800480T-7X0GP is a WVGA (800x480) panel with an 18-bit parallel
LCD interface. It supports pixel clocks in the range of 30-40 MHz.
This panel details can be found at:
http://boundarydevices.com/product/7-800x480-display/
Signed-off-by: Gary Bisson <gary.bisson@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 58c948d8c4145d354457bdfd654b828007722c44
Author: Gary Bisson <gary.bisson@xxxxxxxxxxxxxxxxxxx>
Date: Wed Jun 10 18:44:22 2015 +0200
of: Add Okaya Electric America vendor prefix
This patch adds vendor prefix for Okaya Electronic America, a provider
of LCD modules and display technologies.
Signed-off-by: Gary Bisson <gary.bisson@xxxxxxxxxxxxxxxxxxx>
Acked-by: Rob Herring <robh@xxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit c6e87f91f0445e80656eddae84429ad7d687dc3f
Author: jianwei wang <jianwei.wang.chn@xxxxxxxxx>
Date: Wed Jul 29 16:30:02 2015 +0800
drm/panel: simple: Add support for NEC NL4827HC19-05B 480x272 panel
This adds support for the NEC NL4827HC19-05B 480x272 panel to the DRM
simple panel driver.
Signed-off-by: Alison Wang <b18965@xxxxxxxxxxxxx>
Signed-off-by: Xiubo Li <lixiubo@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jianwei Wang <jianwei.wang.chn@xxxxxxxxx>
Acked-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
[treding@xxxxxxxxxx: add .bpc field for panel]
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit d718d79e57039ccf59f638efe7c9ede2bfabc6f1
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Apr 8 16:52:33 2015 +0200
drm/panel: simple: Add support for AUO B080UAN01
The AUO B080UAN01 is an 8.0" WUXGA TFT LCD panel connected using four
DSI lanes. It can be supported by the simple-panel driver.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit d901d2ba8a1577ea213e4c4e22e9ca1f67db61dd
Author: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
Date: Wed Aug 12 12:32:13 2015 +0200
drm/panel: simple: Correct minimum hsync length of the HannStar
HSD070PWW1 panel
According to the data sheet, the minimum horizontal blanking interval
is 54 clocks (1 + 52 + 1), but tests with a Nitrogen6X have shown the
minimum working horizontal blanking interval to be 60 clocks.
Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 58d6a7bc4f851b5bd43280eab145bab992cb7ebe
Author: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
Date: Wed Aug 12 12:32:12 2015 +0200
drm/panel: simple: Add bus format for HannStar HSD070PWW1 LVDS panel
The bus format both specifies the bpc and the way the individual bits get
serialized into the 7 LVDS timeslots.
While the is only one standard mapping for 6 bpc and so the driver could
infer the bit mapping from the bpc alone, there are more options for the
8 bpc case which makes specifiying the bus format mandatory.
To keep things consistent across panels and to set a precedent for new
panel additions add the proper bus format.
Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 1b0838b5a794456ca36ce02b405bd7bcc85bfba0
Author: Franklin S Cooper Jr <fcooper@xxxxxx>
Date: Wed Aug 12 08:26:19 2015 -0500
ARM: davinci: Set proper SPI prescale limit value
SPI Davinci driver has been updated to allow SOCs to specify their minimum
prescale value. Update the various SOCs board files that use this driver
with
their proper prescaler limit.
Acked-by: Sekhar Nori <nsekhar@xxxxxx>
Signed-off-by: Franklin S Cooper Jr <fcooper@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 330b48bd700d5cdc3d1922c4e50f0626ab8ec002
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Tue Apr 14 15:39:51 2015 +0200
drm/bridge: Add vendor prefixes
Use vendor prefixes for Kconfig symbols and filenames. This should make
it easier to identify the various bridge drivers and to organize the
directory.
v2: fix object name for dw-hdmi (Fabio Estevam)
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit ad3a942bd22fd40a0f4ddaf2759946ce945662af
Author: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Date: Mon Jun 1 18:47:55 2015 -0700
regulator: core: Print at debug level on debugfs creation failure
Failure to create a debugfs node is not an error, but we print a
warning upon failure to create the node. Downgrade this to a
debug printk so that we're quiet here. This allows multiple
drivers to request a CPU's regulator so that CPUfreq and AVSish
drivers can coexist.
The downside of this approach is that whoever gets to debugfs first
the others who come later to not have any debugfs attributes associated
with them.
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit dce0332c85c4d9eb5d96182c56f63cd20566f073
Author: Maciej S. Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 5 17:29:02 2015 +0200
ASoC: fsl_ssi: adjust set DAI format in AC'97 mode
Adjust set DAI format function in fsl_ssi driver
so it doesn't fail and clears RXDIR in AC'97 mode.
Signed-off-by: Maciej Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 8ed0c842153434fa3aeeb89d16b71ac7dc8e12ee
Author: Maciej S. Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 5 17:26:44 2015 +0200
ASoC: fsl_ssi: instantiate AC'97 CODEC
Instantiate AC'97 CODEC in fsl_ssi driver AC'97 mode.
Signed-off-by: Maciej Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 04143d614f3af84a3f39e79a24a7ca740bd39efd
Author: Maciej S. Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 5 17:25:31 2015 +0200
ASoC: fsl_ssi: add AC'97 ops setting check and cleanup
Check whether setting AC'97 ops succeeded and clean them
on removal so the fsl_ssi driver can be reloaded.
Signed-off-by: Maciej Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 06cb373692083d169ab080b31c55af91d22b6d99
Author: Maciej S. Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 5 17:24:10 2015 +0200
ASoC: fsl_ssi: enable AC'97 asymmetric rates
AC'97 bus can support asymmetric playback/capture rates
so enable them in this case in fsl_ssi driver.
Signed-off-by: Maciej Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 793e3e9eeffc3e270483a450bc08e60f38e401ff
Author: Maciej S. Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 5 17:22:53 2015 +0200
ASoC: fsl_ssi: AC'97 DAI driver needs probe method too
AC'97 DAI driver struct need the same probe method as
I2S one to setup DMA params in fsl_ssi driver.
Signed-off-by: Maciej Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 8277df3c66f1a8cecfadc29f7394f623263b4445
Author: Maciej S. Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 5 17:21:35 2015 +0200
ASoC: fsl_ssi: enable IPG clock during AC'97 reg access
IPG clock have to be enabled during AC'97 CODEC register
access in fsl_ssi driver.
Signed-off-by: Maciej Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit b4d97f022ac07c26d8f41f105b6c9c9a699875a2
Author: Antony Pavlov <antonynpavlov@xxxxxxxxx>
Date: Tue Jun 16 11:37:04 2015 +0300
mtd: spi-nor: add Spansion S25FL204K support
Spansion S25FL204K is a 4-Mbit 3.0V Serial Flash Memory
with Uniform 4 kB Sectors.
Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx>
Acked-by: RafaÅ? MiÅ?ecki <zajec5@xxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 842c12ddb49ef271ff978cbd022777d3d2c7787f
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Thu Aug 13 14:02:05 2015 -0300
mtd: spi-nor: Improve Kconfig help text for SPI_FSL_QUADSPI
The current "We only connect the NOR to this controller now." text
is not very clear, so explain it better by saying that generic SPI
is not supported by SPI_FSL_QUADSPI and only SPI NOR is.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit f617b9587c1662a2352b90cb64ad8bcf0ff4d0af
Author: Joachim Eastwood <manabian@xxxxxxxxx>
Date: Thu Aug 13 19:19:40 2015 +0200
mtd: spi-nor: add driver for NXP SPI Flash Interface (SPIFI)
Add SPI-NOR driver for the SPI Flash Interface (SPIFI)
controller that is found on newer NXP MCU devices.
The controller supports serial SPI Flash devices with 1-, 2-
and 4-bit width in either SPI mode 0 or 3. The controller
can operate in either command or memory mode. In memory mode
the Flash is exposed as normal memory and can be directly
accessed by the CPU.
Signed-off-by: Joachim Eastwood <manabian@xxxxxxxxx>
Reviewed-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit 89f271c4d052063a72af2622f285f70caac91845
Author: Joachim Eastwood <manabian@xxxxxxxxx>
Date: Thu Jul 9 22:19:07 2015 +0200
doc: dt: add documentation for nxp,lpc1773-spifi
Add device tree binding documentation for the SPI Flash Interface
(SPIFI) found on NXP LPC18xx and LPC43xx devies.
Signed-off-by: Joachim Eastwood <manabian@xxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit c16340973fcb6461474a9f811f7f3ff2f946b24c
Author: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Date: Mon Aug 3 11:31:26 2015 -0300
nand: pxa3xx: Increase initial buffer size
The initial buffer is used for the initial commands used to detect
a flash device (STATUS, READID and PARAM).
ONFI param page is 256 bytes, and there are three redundant copies
to be read. JEDEC param page is 512 bytes, and there are also three
redundant copies to be read. Hence this buffer should be at least
512 x 3. This commits rounds the buffer size to 2048.
Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
commit ca861dd0c5e36c4a2cf454049a45a961c855290a
Author: Martin Sperl <kernel@xxxxxxxxxxxxxxxx>
Date: Tue Jul 28 14:03:12 2015 +0000
spi: bcm2835: set up spi-mode before asserting cs-gpio
When using reverse polarity for clock (spi-cpol) on a device
the clock line gets altered after chip-select has been asserted
resulting in an additional clock beat, which confuses hardware.
This did not show when using native-CS, as the same register
is used to control cs as well as polarity, so the changes came
into effect at the same time. Unfortunately this is not true
with gpio-cs.
To avoid this situation this patch moves the setup of polarity
(spi-cpol and spi-cpha) outside of the chip-select into
prepare_message, which is run prior to asserting chip-select.
Also fixes resetting 3-wire mode after use of rx-mode, so that
a 3-Wire sequence TX, RX, TX works as well (right now it runs
TX, RX, RX instead)
Reported-by: Noralf Tronnes <noralf@xxxxxxxxxxx>
Signed-off-by: Martin Sperl <kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 07ea400e1b26726f21b2c2299d187d6eb7eb4324
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Wed Aug 12 12:12:33 2015 +0200
regmap: Fix regmap_can_raw_write check
This function is missing a check if map->bus->write is implemented. If
it is not implemented arbitrary raw writes are not possible.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit c329061be51bef655f28c9296093984c977aff85
Author: Kishon Vijay Abraham I <kishon@xxxxxx>
Date: Mon Jul 27 16:54:10 2015 +0530
regulator: pbias: Fix broken pbias disable functionality
regulator_disable of pbias always writes '0' to the enable_reg.
However actual disable value of pbias regulator is not always '0'.
Fix it by populating the disable_val in pbias_reg_info for the
various platforms and assign it to the disable_val of
pbias regulator descriptor. This will be used by
regulator_disable_regmap while disabling pbias regulator.
Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
commit 6ec689542b5bc516187917d49b112847dfb75b0b
Author: Vishal Verma <vishal.l.verma@xxxxxxxxx>
Date: Wed Jul 29 14:58:09 2015 -0600
libnvdimm, btt: write and validate parent_uuid
When a BTT is instantiated on a namespace it must validate the namespace
uuid matches the 'parent_uuid' stored in the btt superblock. This
property enforces that changing the namespace UUID invalidates all
former BTT instances on that storage. For "IO namespaces" that don't
have a label or UUID, the parent_uuid is set to zero, and this
validation is skipped. For such cases, old BTTs have to be invalidated
by forcing the namespace to raw mode, and overwriting the BTT info
blocks.
Based on a patch by Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Vishal Verma <vishal.l.verma@xxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit ab45e7632717b811e0786e46ca5ad279cb731b66
Author: Vishal Verma <vishal.l.verma@xxxxxxxxx>
Date: Wed Jul 29 14:58:08 2015 -0600
libnvdimm, btt: consolidate arena validation
Use arena_is_valid as a common routine for checking the validity of an
info block from both discover_arenas, and nd_btt_probe.
As a result, don't check for validity of the BTT's UUID, and lbasize.
The checksum in the BTT info block guarantees self-consistency, and when
we're called from nd_btt_probe, we don't have a valid uuid or lbasize
available to check against.
Also cleanup to return a bool instead of an int.
Signed-off-by: Vishal Verma <vishal.l.verma@xxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit fbde1414acc0440024083bf0c391b259bcfc4826
Author: Vishal Verma <vishal.l.verma@xxxxxxxxx>
Date: Wed Jul 29 14:58:07 2015 -0600
libnvdimm, btt: clean up internal interfaces
Consolidate the parameters passed to arena_is_valid into just nd_btt,
and an info block to increase re-usability.
Similarly, btt_arena_write_layout doesn't need to be passed a uuid, as
it can be obtained from arena->nd_btt.
Signed-off-by: Vishal Verma <vishal.l.verma@xxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit e836a256e8fd579c9d7a3685f22981225a1ca451
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Wed Aug 12 18:42:56 2015 -0400
pmem: convert to generic memremap
Kill arch_memremap_pmem() and just let the architecture specify the
flags to be passed to memremap(). Default to writethrough by default.
Suggested-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Reviewed-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 3103dc0304fd9c8ab576977cd98140d4fbac1730
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Mon Aug 10 23:07:06 2015 -0400
visorbus: switch from ioremap_cache to memremap
In preparation for deprecating ioremap_cache() convert its usage in
visorbus to memremap.
Cc: Benjamin Romer <benjamin.romer@xxxxxxxxxx>
Cc: David Kershner <david.kershner@xxxxxxxxxx>
Acked-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 92281dee825f6d2eb07c441437e4196a44b0861c
Author: Dan Williams <dan.j.williams@xxxxxxxxx>
Date: Mon Aug 10 23:07:06 2015 -0400
arch: introduce memremap()
Existing users of ioremap_cache() are mapping memory that is known in
advance to not have i/o side effects. These users are forced to cast
away the __iomem annotation, or otherwise neglect to fix the sparse
errors thrown when dereferencing pointers to this memory. Provide
memremap() as a non __iomem annotated ioremap_*() in the case when
ioremap is otherwise a pointer to cacheable memory. Empirically,
ioremap_<cacheable-type>() call sites are seeking memory-like semantics
(e.g. speculative reads, and prefetching permitted).
memremap() is a break from the ioremap implementation pattern of adding
a new memremap_<type>() for each mapping type and having silent
compatibility fall backs. Instead, the implementation defines flags
that are passed to the central memremap() and if a mapping type is not
supported by an arch memremap returns NULL.
We introduce a memremap prototype as a trivial wrapper of
ioremap_cache() and ioremap_wt(). Later, once all ioremap_cache() and
ioremap_wt() usage has been removed from drivers we teach archs to
implement arch_memremap() with the ability to strictly enforce the
mapping type.
Cc: Arnd Bergmann <arnd@xxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
commit 9ed71e7ad95eb9885420e8d33f33bd4d49e1b775
Author: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 23:36:52 2015 +0100
DocBook: Fix non-determinstic installation of duplicate man pages
Some kernel-doc sections are included in multiple DocBook files. This
means the mandocs target will generate the same manual page multiple
times with different metadata (author name/address and manual title,
taken from the including DocBook file). If it's invoked in a parallel
build, the output is non-determinstic.
Build the manual pages in a separate subdirectory per DocBook file,
then sort and de-duplicate when installing them (which is serialised).
Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
[jc: fixed conflicts with the docs tree]
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
commit e1d46d30d133e7909e7dde06a4e867225c7e079b
Author: Junjie Mao <junjie.mao@xxxxxxxxx>
Date: Fri Jul 17 10:29:00 2015 +0800
ASoC: Intel: fix runtime pm imbalance on error
pm_runtime_get_sync() increments the runtime PM usage counter even the
call returns an error code. Thus a pairing decrement is needed on the
error handling path to keep the counter balanced.
Signed-off-by: Junjie Mao <junjie.mao@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit fbf917e14eb65689ad80290170f7d615be711fb7
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Wed Aug 12 11:10:49 2015 +0800
ASoC: cs42l73: Use case range at appropriate place
The readable registers are in continuous ranges: 0x01 ~ 0x03, 0x05 ~ 0x5f.
Use case range syntax makes the code shorter with better readability when
we have a large number of continuous switch cases.
No functional change with this patch.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Brian Austin <brian.austin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 7f325bfc933d140337e55507821d6bb021321059
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Wed Aug 12 11:09:39 2015 +0800
ASoC: cs42l56: Use case range at appropriate place
The readable registers are in continuous range: 0x01 ~ 0x2e.
Use case range syntax makes the code shorter with better readability when
we have a large number of continuous switch cases.
No functional change with this patch.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Brian Austin <brian.austin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 4caae9546d2cf7dbc7a12d451f847d7b58912bda
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Wed Aug 12 11:08:37 2015 +0800
ASoC: cs42l52: Use case range at appropriate place
The readable registers are in continuous range: 0x01 ~ 0x34.
Use case range syntax makes the code shorter with better readability when
we have a large number of continuous switch cases.
No functional change with this patch.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Brian Austin <brian.austin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit c17633081a0dc4c9f8c28b7a77ac5b63a1780e49
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Wed Aug 12 11:07:46 2015 +0800
ASoC: cs35l32: Use case range at appropriate places
Use case range syntax makes the code shorter with better readability when
we have a large number of continuous switch cases.
Below are the summary of readable/volatile/precious registers.
The readable registers:
0x01 ~ 0x0D, 0x0F ~ 0x1C
The volatile registers:
0x01 ~ 0x05, 0x15 ~ 0x18
The precious registers:
0x15 ~ 0x18
No functional change with this patch.
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Brian Austin <brian.austin@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 470805eb9f31be7b0b94cb8e0cbeb5910c47ce37
Author: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Date: Thu Aug 13 12:59:21 2015 +0530
ASoC: tegra: Convert to managed resources
Use managed resource functions devm_clk_put and
devm_snd_soc_register_component to simplify error handling.
To be compatible with the change various gotos are replaced
with direct returns, and unneeded labels are dropped.
Signed-off-by: Vaishali Thakkar <vthakkar1994@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit dbe71b9d86ee77cf58a92657c43b0e48954dc62b
Author: Lars-Peter Clausen <lars@xxxxxxxxxx>
Date: Wed Aug 12 13:58:38 2015 +0200
ASoC: ssm4567: Add sense support
The ssm4567 has sensing circuitry that can be used to monitor the current
and voltage on the speaker amplifier output has well as the VBAT input.
This data can be output over the I2S interface so it can be processed by a
DSP or similar.
This patch adds the sense capture output stream to the CODEC DAI as well
as
DAPM widgets that ensure that the sensing circuitry is powered up when the
capture stream is active.
Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 7f4f800131a281a1e1738c0bc45659c1260dc96a
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Fri Aug 14 13:16:27 2015 -0300
perf trace: Move vfs_getname storage to per thread area
We were storing the vfs_getname payload (i.e. ptr->string) into
the trace wide storage area (struct trace), so that we could use the
last payload when setting up the fd->pathname per thread tables, oops,
not a good idea for multi cpu tracing sessions...
Fix it by moving it to the per thread area (struct thread_trace).
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-3j05ttqyaem7kh7oubvr1keo@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 75067ddecf21271631bc018d2fb23ddd09b66aae
Author: Antti Koskipaa <antti.koskipaa@xxxxxxxxxxxxxxx>
Date: Fri Jul 10 14:10:55 2015 +0300
drm/i915: Per-DDI I_boost override
An OEM may request increased I_boost beyond the recommended values
by specifying an I_boost value to be applied to all swing entries for
a port. These override values are specified in VBT.
v2: rebase and remove unused iboost_bit variable
Issue: VIZ-5676
Signed-off-by: Antti Koskipaa <antti.koskipaa@xxxxxxxxxxxxxxx>
Reviewed-by: David Weinehall <david.weinehall@xxxxxxxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 622147fdad5425f6f572f84ce709303e5e0500b7
Merge: 5a2376d d2944cf
Author: Daniel Vetter <daniel.vetter@xxxxxxxx>
Date: Fri Aug 14 18:10:35 2015 +0200
Merge tag 'drm-intel-fixes-2015-08-14' into drm-intel-next-fixes
Backmerge drm-intel-fixes because a bunch of atomic patch backporting
we had to do lead to horrible conflicts.
Conflicts:
drivers/gpu/drm/drm_crtc.c
Just a bit of context conflict between -next and -fixes.
drivers/gpu/drm/i915/intel_atomic.c
drivers/gpu/drm/i915/intel_display.c
Atomic conflicts, always pick the code from -next.
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx>
commit 5a2376d1360bfc9ebf3b554dd8db1922d42cee4b
Author: Jani Nikula <jani.nikula@xxxxxxxxx>
Date: Fri Aug 14 10:53:17 2015 +0300
drm/i915/skl: WaIgnoreDDIAStrap is forever, always init DDI A
There is currently conflicting documentation on which steppings the
workaround is needed, up to C vs. forever. However there is post-C
stepping hardware that doesn't report port presence on DDI A, leading to
black screen on eDP. Assume the strap isn't connected, and try to enable
DDI A on these machines. (We'll still check the VBT for the info in DDI
init.)
Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Cc: Mika Westerberg <mika.westerberg@xxxxxxxxx>
Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit f79b468eca20dae31b6fcaaa738a7f99b764837d
Author: Thulasimani,Sivakumar <sivakumar.thulasimani@xxxxxxxxx>
Date: Fri Aug 7 15:14:30 2015 +0530
drm/i915: fix checksum write for automated test reply
DP spec requires the checksum of the last block read to be written
when replying to TEST_EDID_READ. This patch fixes the current code
to do the same.
v2: removed loop for jumping blocks and performed direct addition
as recommended by Daniel
Signed-off-by: Sivakumar Thulasimani <sivakumar.thulasimani@xxxxxxxxx>
Reviewed-by: Sonika Jindal <sonika.jindal@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit ca5a0fbd53be86d2bf44769741e02e66feeacc0a
Author: Mika Kuoppala <mika.kuoppala@xxxxxxxxx>
Date: Tue Aug 11 15:44:31 2015 +0100
drm/i915: Contain the WA_REG macro
Prevent leaking the if scoping by containing the WA_REG
macro inside its own scope.
Reported-by: Arun Siluvery <arun.siluvery@xxxxxxxxxxxxxxx>
Signed-off-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx>
Reviewed-by: Dave Gordon <david.s.gordon@xxxxxxxxx>
[danvet: Appease checkpatch.]
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 37876df61f279099334e0108bac9d28ee9789052
Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Date: Sat Aug 8 14:02:36 2015 +0100
drm/i915: Remove the failed context from the fpriv->context_idr
If we encounter an allocation failure during ppggt creation (trivial
even with 16Gib+ RAM!), we need to remove the dead context from the
fpriv->context_idr along with the references.
gem_exec_ctx: page allocation failure: order:0, mode:0x8004
CPU: 3 PID: 27272 Comm: gem_exec_ctx Tainted: G W 4.2.0-rc5+
#37
0000000000000000 ffff880086ff7a78 ffffffff816b947a ffff88041ed90038
0000000000008004 ffff880086ff7b08 ffffffff8114b1a5 ffff880086ff7ac8
ffffffff8108d848 0000000000000000 ffffffff81ce84b8 0000000000000000
Call Trace:
[<ffffffff816b947a>] dump_stack+0x45/0x57
[<ffffffff8114b1a5>] warn_alloc_failed+0xd5/0x120
[<ffffffff8108d848>] ? __wake_up+0x48/0x60
[<ffffffff8114e0ed>] __alloc_pages_nodemask+0x73d/0x8e0
[<ffffffffc0472238>] ? i915_gem_execbuffer2+0x148/0x240 [i915]
[<ffffffffc0474240>] __setup_page_dma+0x30/0x110 [i915]
[<ffffffffc0477f61>] gen8_ppgtt_init+0x31/0x2f0 [i915]
[<ffffffffc04785e0>] i915_ppgtt_init+0x30/0x80 [i915]
[<ffffffffc0478928>] i915_ppgtt_create+0x48/0xc0 [i915]
[<ffffffffc046c9c2>] i915_gem_create_context+0x1c2/0x390 [i915]
[<ffffffffc046d9cb>] i915_gem_context_create_ioctl+0x5b/0xa0 [i915]
leading to an oops in i915_gem_context_close. Also note that this
benchmark should not be running out of memory in the first place...
Testcase: igt/benchmark/gem_exec_ctx -b create # ppgtt >= 2
Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit eb5be9d0e7e78fd2b9f34c63dd2535ab6f985739
Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Date: Fri Aug 7 20:24:15 2015 +0100
drm/i915: Report IOMMU enabled status for GPU hangs
The IOMMU for Intel graphics has historically had many issues resulting
in random GPU hangs. Lets include its status when capturing the GPU hang
error state for post-mortem analysis.
Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 031a8936dc660e7ae2485eb7493eba1876cf25fe
Author: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 17:09:17 2015 +0300
drm/i915: Check idle to active before processing CSQ
If idle to active bit is set, the rest of the fields
in CSQ are not valid.
Bail out early if this is the case in order to prevent
rest of the loop inspecting stale values.
This was found by Bspec/code inspection. Doesn't seem to fix any of
the known issues.
Signed-off-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx>
Reviewed-by: Arun Siluvery <arun.siluvery@xxxxxxxxxxxxxxx>
[danvet: Add note about how this was found.]
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 500ea70d503ed9ba448611049a4a718c2761a5f2
Author: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Date: Fri Aug 7 17:01:16 2015 -0700
drm/i915: Set alternate aux for DDI-E
There is no correspondent Aux channel for DDI-E.
So we need to rely on VBT to let us know witch one
is being used instead.
v2: Removing some trailing spaces and giving proper
credit to Xiong that added a nice way to avoid port
conflicts by setting supports_dp = 0 when using
equivalent aux for DDI-E.
Credits-to: Xiong Zhang <xiong.y.zhang@xxxxxxxxx>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Reviewed-by: Xiong Zhang <xiong.y.zhang@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit a513e3d75a3bb41cf2648764a2567879f6d138e5
Author: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Date: Thu Aug 6 15:51:37 2015 +0800
drm/i915: Set power domain for DDI-E
DDI-E and DDI-A share 4 the same DDI-A lanes.
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Reviewed-by: Xiong Zhang <xiong.y.zhang@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 3774eb507e7b7df7f9b7d8d867eea330c7146aaa
Author: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx>
Date: Mon Aug 10 14:57:32 2015 -0300
drm/i915: fix stolen bios_reserved checks
I started digging this when I noticed that the BDW code was just
reserving 1mb by coincidence since it was reading reserved fields.
Then I noticed we didn't have any values set for SNB and earlier, and
that the HSW sizes were wrong. After that, I noticed that the reserved
area has a specific start, and may not exactly end where the stolen
memory ends. I also noticed the base pointer can be zero. So I decided
to just write a single patch fixing everything instead of 20 patches
that would be much harder to review.
This patch may solve random stolen memory corruption/problems on
almost all platforms. Notice that since this is always dealing with
the top of the stolen memory, the problems are not so easy to
reproduce - especially since FBC is still disabled by default.
One of the major differences of this patch is that we now look at both
the size and base address. By only looking at the size we were
assuming that the reserved area was always at the very top of
stolen, which is not always true.
After we merge the patch series that allows user space to allocate
stolen memory we'll be able to write IGT tests that maybe catch the
bugs fixed by this patch.
v2:
- s/BIOS reserved/stolen reserved/g (Chris)
- Don't DRM_ERROR if we can't do anything about it (Chris)
- Improve debug messages (Chris).
- Use the gen7 version instead of gen6 on HSW. Tom found some
documentation problems, so I think with gen7 we're on the safer
side (Tom).
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx>
Reviewed-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit cc53699b25b59eb1020af8064f99edd0014b7071
Author: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 17:00:59 2015 +0300
drm/i915: Use masked write for Context Status Buffer Pointer
This register needs to be updated with masked writes.
This was found by code inspection and comparison with Bspec and
doesn't seem to fix any known issue.
Signed-off-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx>
Reviewed-by: Michel Thierry <michel.thierry@xxxxxxxxx>
[danvet: Add note about impact.]
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 9bd9dfb4f9a1edcbb561a80d00c234fbe11dc1a6
Author: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 16:51:00 2015 +0300
drm/i915/skl WaDisableSbeCacheDispatchPortSharing
Add WaDisableSbeCacheDispatchPortSharing:skl
Cc: Arun Siluvery <arun.siluvery@xxxxxxxxxxxxxxx>
Signed-off-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx>
Reviewed-by: Arun Siluvery <arun.siluvery@xxxxxxxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 02196c776ec67e05d3003926ba648bd2eab20e29
Author: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 16:48:58 2015 +0300
drm/i915: Spam less on dp aux send/receive problems
If we encounter frequent problems with dp aux channel
communications, we end up spamming the dmesg with the
exact similar trace and status.
Inject a new backtrace only if we have new information
to share as otherwise we flush out all other important
stuff.
Signed-off-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 842315ee7e416fa2f37c649c8a9ae6d6960b42a6
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 12:37:11 2015 +0200
drm/i915: Handle return value in intel_pin_and_fence_fb_obj, v2.
-EDEADLK has special meaning in atomic, but get_fence may call
i915_find_fence_reg which can return -EDEADLK.
This has special meaning in the atomic world, so convert the error
to -EBUSY for this case.
Changes since v1:
- Add comment in the code.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 4740b0f2b80cc7810bf5fa871189c318b08dbc46
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 12:37:10 2015 +0200
drm/i915: Only update mode related state if a modeset happened.
The rest will be a noop anyway, since without modeset there will be
no updated dplls and no modeset state to update.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 2d406bb0d95c8dfdee4389471869a6e48c7b3432
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 12:37:09 2015 +0200
drm/i915: Remove connectors_active.
There are no more users, byebye!
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit e02f9a0610c1cbc6395858d1f2b68c48b820a971
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 12:37:08 2015 +0200
drm/i915: Remove connectors_active from intel_dp.c, v2.
Now that everything's atomic, checking encoder->base.crtc is enough.
This function doesn't have the locks to dereference crtc->state, but
stealing an encoder bound to any crtc is probably enough reason to warn.
Changes since v1:
- Commit message.
Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 873ffe69a9097fb241fff2967ea6f0bf2c179195
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 12:37:07 2015 +0200
drm/i915: Remove connectors_active from sanitization, v2.
connectors_active will be removed, so just calculate this instead.
Changes since v1:
- Look for the right pointer in intel_sanitize_encoder.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 4d688a2a15a52225289754627fc3a35f68c125ec
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 12:37:06 2015 +0200
drm/i915: Get rid of dpms handling.
This is now done completely atomically.
Keep connectors_active for now, but make it mirror crtc_state->active.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 4d20cd860bbe908ef62aa4673eeac8f8f2c43735
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 12:37:05 2015 +0200
drm/i915: Make crtc checking use the atomic state, v2.
Instead of allocating pipe_config on the stack use the old
crtc_state, it's only going to freed from this point on.
All crtc' are now only checked once during modeset,
because false positives can happen with encoders after
dpms changes and to limit the amount of errors for 1 failure.
Changes since v1:
- crtc_state -> old_crtc_state
- state -> old_state
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 7c60d1984afa482f0648d963206124df6dca325e
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 12:37:04 2015 +0200
drm/i915: Remove connectors_active from state checking.
Connectors are updated atomically now, so the only interaction
with the encoder is through base.crtc.
If it's NULL the encoder's not part of any crtc, and if it's
not NULL then active should be equal to crtc_state->active.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 7b89b8de4e90d3c08f845e2b559929c8f77981ae
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 12:37:03 2015 +0200
drm/i915: Remove some unneeded checks from check_crtc_state.
This is handled by the atomic core now, no need to check this for ourself.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 35dd3c6450a6dc05781e391d6669df34044a7e0f
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 13:49:22 2015 +0200
drm/i915: Convert connector checking to atomic, v3.
Right now dpms callbacks can still fiddle with the connector state,
but it can only turn connectors off.
This is remediated by only checking crtc->state->active when the
connector is active, and ignore crtc->state->active when the
connector is off.
connectors_active is no longer checked, and will be removed later
in this series together with dpms.
Another check for !encoder->crtc is performed by check_encoder_state
too, so it can be removed.
Changes since v1:
- Add commit message.
- rename state to old_state.
- Move deletion of mst_port check to mst patch.
Changes since v2:
- Fix a null pointer dereference on MST now hw readout is fixed.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 20fae983c6667d038e810c618e3340946b8dc506
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Thu Aug 6 13:47:36 2015 +0200
drm/i915: Update atomic state when removing mst connector, v3.
Fully remove the MST connector from the atomic state, and remove the
early returns in check_*_state for MST connectors.
With atomic the state can be made consistent all the time.
Thanks to Sivakumar Thulasimani for the idea of using
drm_atomic_helper_set_config.
Changes since v1:
- Remove the MST check in intel_connector_check_state too.
Changes since v2:
- Use drm_atomic_helper_set_config.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Cc: Sivakumar Thulasimani <sivakumar.thulasimani@xxxxxxxxx>
Reviewed-by: Sivakumar Thulasimani <sivakumar.thulasimani@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit ee165b1a6e0269e5badde679f72fe39d3d15a7d4
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 12:37:00 2015 +0200
drm/i915: Validate the state after an atomic modeset only, and pass the
state.
First step in removing dpms and validating atomic state.
There can still be a mismatch in the connector state because the dpms
callbacks are still used, but this can not happen immediately after a
modeset.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Reviewed-by: Ander Conselvan de Oliveira <conselvan2@xxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit c4e2d043ffb3714e63931aec52b8b920cc767367
Author: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 12:36:59 2015 +0200
drm/i915: Make the force_thru workaround atomic, v2.
Set connectors_changed to force a modeset if the panel fitter's force
enabled on eDP.
Changes since v1:
- Use connectors_changed instead of active_changed because it's a
routing update.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 8f9c98df949333f08b74e5df1caacf7e2c5e8552
Author: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
Date: Sun Jul 19 16:09:12 2015 +0300
mac80211: fix BIT position for TDLS WIDE extended cap
The bit was not according to ieee80211 specification.
Fix that.
Reviewed-by: Arik Nemtsov <arik@xxxxxxxxxx>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 40d9a38ad3b7029be9c278738b67cbdb6349ce85
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date: Mon Jul 13 12:26:46 2015 +0200
mac80211: use DECLARE_EWMA
Instead of using the out-of-line average calculation, use the new
DECLARE_EWMA() macro to declare a signal EWMA, and use that.
This actually *reduces* the code size slightly (on x86-64) while
also reducing the station info size by 80 bytes.
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 2377799c084d86d22074cd4acd20edc32024d669
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date: Mon Jul 13 12:17:25 2015 +0200
average: provide macro to create static EWMA
Having the EWMA parameters stored in the runtime struct imposes
memory requirements for the constant values that could just be
inlined in the code. This particularly makes sense if there are
a lot of such structs, for example in mac80211 in the station
table where each station has a number of these in an array, and
there can be many stations.
Provide a macro DECLARE_EWMA() that declares the necessary struct
and inline functions to access it with the parameters hard-coded;
using this also means the user no longer needs to 'select AVERAGE'
as it's entirely self-contained.
In the mac80211 case, on x86-64, this actually slightly *reduces*
code size, while also saving 80 bytes of runtime memory per sta.
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 2459cd876e2828dc63c19ea5dadf8a94a8f11244
Author: Su Kang Yin <cantona@xxxxxxxxxxx>
Date: Fri Aug 7 16:54:10 2015 +0800
mac80211_hwsim: unregister genetlink family properly
During hwsim_init_netlink(), we should call genl_unregister_family()
if failed on netlink_register_notifier() since the genetlink is
already registered.
Signed-off-by: Su Kang Yin <cantona@xxxxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit b119ad6e726cc805f739f8f6843b9de4df1f895e
Author: Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx>
Date: Thu Aug 6 23:47:33 2015 +0200
mac80211: add rate mask logic for vht rates
Define rc_rateidx_vht_mcs_mask array and rate_idx_match_vht_mcs_mask()
method in order to apply mcs mask for vht rates
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit e910867bd285bb8470c47076d99d0325aaea895c
Author: Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx>
Date: Thu Aug 6 23:47:32 2015 +0200
mac80211: define rate_control_apply_mask_ratetbl()
Define rate_control_apply_mask_ratetbl() in order to apply ratemask in
rate_control_set_rates() for station rate table
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 90c66bd2232ae6d3c88c1f3378e3028fded642b3
Author: Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx>
Date: Thu Aug 6 23:47:31 2015 +0200
mac80211: remove ieee80211_tx_rate dependency in rate mask code
Remove ieee80211_tx_rate dependency in rate_idx_match_legacy_mask(),
rate_idx_match_mcs_mask() and rate_idx_match_mask() in order to use the
previous logic to define a ratemask in rate_control_set_rates() for
station rate table. Moreover move rate mask definition logic in
rate_control_cap_mask()
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 35225eb7a5589407299033bfa7e1ac723b17e2b5
Author: Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx>
Date: Thu Aug 6 23:47:30 2015 +0200
mac80211: remove ieee80211_tx_info from rate_control_apply_mask signature
Remove unnecessary ieee80211_tx_info pointer from rate_control_apply_mask
signature. rate_control_apply_mask() will be used to define a ratemask in
rate_control_set_rates() for station rate table
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@xxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 4b819f6cc4221ea6dd250e006f7b9ab0f6c71b45
Author: Bertold Van den Bergh <bertold.vandenbergh@xxxxxxxxxxxxxxxx>
Date: Wed Aug 5 16:02:50 2015 +0200
mac80211: Make OCB mode set BSSID
Perform the BSS_CHANGED_BSSID action when joining an OCB network.
This is required to set the broadcast BSSID in some network drivers.
Signed-off-by: Bertold Van den Bergh
<bertold.vandenbergh@xxxxxxxxxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit cc11729893558b374316e6142dc383f0508436c8
Author: Bertold Van den Bergh <bertold.vandenbergh@xxxxxxxxxxxxxxxx>
Date: Wed Aug 5 16:02:42 2015 +0200
mac80211: Only accept data frames in OCB mode
Currently OCB mode accepts frames with bssid==broadcast and type!=beacon.
Some non-data frames are sent matching this, for example probe responses.
This results in unnecessary creation of STA entries.
Signed-off-by: Bertold Van den Bergh
<bertold.vandenbergh@xxxxxxxxxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 5765f9f66e72ddedfe04e057a5a01454d7b67157
Author: Bertold Van den Bergh <bertold.vandenbergh@xxxxxxxxxxxxxxxx>
Date: Wed Aug 5 16:02:28 2015 +0200
mac80211: Set txrc.bss to true for OCB interfaces
To make mac80211 accept the multicast rate requested by the user the
rate control should be told that it is operating in BSS mode.
Without this, the default rate is selected in rate_control_send_low
(!pubsta and !txrc->bss)
Signed-off-by: Bertold Van den Bergh
<bertold.vandenbergh@xxxxxxxxxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 876dc9308e8b8a8fb57059234e57f4145c870c3c
Author: Bertold Van den Bergh <bertold.vandenbergh@xxxxxxxxxxxxxxxx>
Date: Wed Aug 5 16:02:21 2015 +0200
nl80211: Allow setting multicast rate on OCB interfaces
Allow setting multicast rate on OCB interfaces.
Current behaviour results in EOPNOTSUPP when attempting this.
Signed-off-by: Bertold Van den Bergh
<bertold.vandenbergh@xxxxxxxxxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 9189ee31df40f88808daee10aa7f99ba43ff8b13
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Mon Aug 3 10:55:24 2015 +0200
cfg80211: propagate set_wiphy failure to userspace
If driver failed to setup wiphy params (e.g. rts
threshold, fragmentation treshold) userspace
wasn't properly notified about this. This could
lead to user confusion who would think the command
succeeded even if that wasn't the case.
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 4edd56981c8fbb349b1529a2feaf772636eb1c83
Author: Matthias May <matthias.may@xxxxxxxxxxx>
Date: Fri Jul 17 15:28:39 2015 +0200
cfg80211: regulatory: handle 5 and 10 MHz channels properly
The original assumption of 20MHz wide channels hasn't been true since
the addition of support for 5 and 10 MHz channels.
Change the code to no longer disable all channels that don't fit into
the 20MHz grid, but instead set the appropriate flags to disable
operation on specific bandwidths.
Signed-off-by: Matthias May <matthias.may@xxxxxxxxxxx>
[reword commit message]
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 74346841e6f5df5f7b83d5904435d273c507dba6
Author: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx>
Date: Thu Aug 13 16:09:28 2015 +0200
spi/spi-xilinx: Fix spurious IRQ ACK on irq mode
The ACK of an inexistent IRQ can trigger an spurious IRQ that breaks the
txrx logic. This has been observed on axi_quad_spi:3.2 core.
This patch only ACKs IRQs that have not been Acknowledge jet.
Reported-by: Edward Kigwana <ekigwana@xxxxxxxxxx>
Tested-by: Edward Kigwana <ekigwana@xxxxxxxxxx>
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 9d8352864907f0ad76124c5b28f65b5a382d7d7c
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Fri Aug 14 17:54:07 2015 +0800
ASoC: adav80x: Remove .read_flag_mask setting from adav80x_regmap_config
Don't set .read_flag_mask for adav803, it's for adav801 only.
Fixes: 0c2d69645628 ("ASoC: adav80x: Split SPI and I2C code into
different modules")
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Acked-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 3ee550f12c1529a023f71c9b5becb3351911047b
Author: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Date: Fri Aug 14 16:17:16 2015 +0100
modsign: Handle signing key in source tree
Since commit 1329e8cc69 ("modsign: Extract signing cert from
CONFIG_MODULE_SIG_KEY if needed"), the build system has carefully coped
with the signing key being specified as a relative path in either the
source or or the build trees.
However, the actual signing of modules has not worked if the filename
is relative to the source tree.
Fix that by moving the config_filename helper into scripts/Kbuild.include
so that it can be used from elsewhere, and then using it in the top-level
Makefile to find the signing key file.
Kill the intermediate $(MODPUBKEY) and $(MODSECKEY) variables too, while
we're at it. There's no need for them.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
commit 62172c81f2d6c2311284467d6aaa00bd8967e136
Author: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Date: Fri Aug 14 15:33:56 2015 +0100
modsign: Use if_changed rule for extracting cert from module signing key
We couldn't use if_changed for this before, because it didn't live in
the kernel/ directory so we couldn't add it to $(targets). It was easier
just to leave it as it was.
Now it's in the certs/ directory we can use if_changed, the same as we
do for the trusted certificate list.
Aside from making things consistent, this means we don't need to depend
explicitly on the include/config/module/sig/key.h file. And we also get
to automatically do the right thing and re-extract the cert if the user
does odd things like using a relative filename and then playing silly
buggers with adding/removing that file in both the source and object
trees. We always favour the one in the object tree if it exists, and
now we'll correctly re-extract the cert when it changes. Previously we'd
*only* re-extract the cert if the config option changed, even if the
actual file we're using did change.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
commit cfc411e7fff3e15cd6354ff69773907e2c9d1c0c
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Fri Aug 14 15:20:41 2015 +0100
Move certificate handling to its own directory
Move certificate handling out of the kernel/ directory and into a certs/
directory to get all the weird stuff in one place and move the generated
signing keys into this directory.
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Reviewed-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
commit bc18e31c3042f14fa5f2ff5c21136e2fdf4140f8
Author: Julian Scheel <julian@xxxxxxxx>
Date: Fri Aug 14 16:14:45 2015 +0200
ALSA: usb-audio: Fix parameter block size for UAC2 control requests
USB Audio Class version 2.0 supports three different parameter block
sizes for
CUR requests, which are 1 byte (5.2.3.1 Layout 1 Parameter Block), 2 bytes
(5.2.3.2 Layout 2 Parameter Block) and 4 bytes (5.2.3.3 Layout 3 Parameter
Block). Use the correct size according to the specific control as it was
already done for UACv1. The allocated block size for control requests is
increased to support the 4 byte worst case.
Signed-off-by: Julian Scheel <julian@xxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
commit 258d9bc5e77fa40e290a0bd480d5349224374480
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Aug 14 16:17:52 2015 +0200
ARM: tegra: Update multi_v7_defconfig
Add Tegra-specific configuration options to multi_v7_defconfig:
* HDA controller and codec support
* Watchdog support
* Nouveau (for GK20A GPU) support
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 461cfe4e2f5d000f76a38fb7cefd2fedf42c9026
Author: Tuomas Tynkkynen <ttynkkynen@xxxxxxxxxx>
Date: Wed May 13 17:58:51 2015 +0300
ARM: tegra: Update default configuration
* CPU frequency scaling for Tegra124
* Nouveau (for GK20A GPU) support
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit f0d9ac7510ee06162c9db31851a1169ae716867e
Merge: 1f408d5 73c8f0c 05aa7d6
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Fri Aug 14 08:21:16 2015 -0500
Merge branches 'pci/host-dra7xx' and 'pci/host-iproc' into next
* pci/host-dra7xx:
ARM: dts: am57xx-evm: Add 'gpios' property with gpio2_8
PCI: dra7xx: Add support to make GPIO drive PERST# line
PCI: dra7xx: Clear MSE bit during suspend so clocks will idle
PCI: dra7xx: Add PM support
PCI: dra7xx: Disable pm_runtime on get_sync failure
* pci/host-iproc:
PCI: iproc: Allow BCMA bus driver to be built as module
PCI: iproc: Add arm64 support
PCI: iproc: Delete unnecessary checks before phy calls
commit 1f408d57437e53ae9aa6edb335ff9fe7ba7aba2c
Merge: 5a4f3cf 2db0f71 f7ef134 3e14675 95e1658
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Fri Aug 14 08:16:29 2015 -0500
Merge branches 'pci/hotplug', 'pci/iommu', 'pci/irq' and
'pci/virtualization' into next
* pci/hotplug:
PCI: pciehp: Remove ignored MRL sensor interrupt events
PCI: pciehp: Remove unused interrupt events
PCI: pciehp: Handle invalid data when reading from non-existent devices
PCI: Hold pci_slot_mutex while searching bus->slots list
PCI: Protect pci_bus->slots with pci_slot_mutex, not pci_bus_sem
PCI: pciehp: Simplify pcie_poll_cmd()
PCI: Use "slot" and "pci_slot" for struct hotplug_slot and struct
pci_slot
* pci/iommu:
PCI: Remove pci_ats_enabled()
PCI: Stop caching ATS Invalidate Queue Depth
PCI: Move ATS declarations to linux/pci.h so they're all together
PCI: Clean up ATS error handling
PCI: Use pci_physfn() rather than looking up physfn by hand
PCI: Inline the ATS setup code into pci_ats_init()
PCI: Rationalize pci_ats_queue_depth() error checking
PCI: Reduce size of ATS structure elements
PCI: Embed ATS info directly into struct pci_dev
PCI: Allocate ATS struct during enumeration
iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth
* pci/irq:
PCI: Kill off set_irq_flags() usage
* pci/virtualization:
PCI: Add ACS quirks for Intel I219-LM/V
commit 9e8df8a219635c5af36a49d78c1f69009b780339
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 14 17:41:26 2015 +1000
cxl: EEH support
EEH (Enhanced Error Handling) allows a driver to recover from the
temporary failure of an attached PCI card. Enable basic CXL support
for EEH.
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 13e68d8bd05c998cae452a4f3400af1e8edd852e
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 14 17:41:25 2015 +1000
cxl: Allow the kernel to trust that an image won't change on PERST.
Provide a kernel API and a sysfs entry which allow a user to specify
that when a card is PERSTed, it's image will stay the same, allowing
it to participate in EEH.
cxl_reset is used to reflash the card. In that case, we cannot safely
assert that the image will not change. Therefore, disallow cxl_reset
if the flag is set.
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 4e1efb403c1c016ae831bd9988a7d2e5e0af41a0
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 14 17:41:24 2015 +1000
cxl: Don't remove AFUs/vPHBs in cxl_reset
If the driver doesn't participate in EEH, the AFUs will be removed
by cxl_remove, which will be invoked by EEH.
If the driver does particpate in EEH, the vPHB needs to stick around
so that the it can particpate.
In both cases, we shouldn't remove the AFU/vPHB.
Reviewed-by: Cyril Bur <cyrilbur@xxxxxxxxx>
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit d76427b0d89524fdb623774a22a005ba5c400134
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 14 17:41:23 2015 +1000
cxl: Refactor AFU init/teardown
As with an adapter, some aspects of initialisation are done only once
in the lifetime of an AFU: for example, allocating memory, or setting
up sysfs/debugfs files.
However, we may want to be able to do some parts of the initialisation
multiple times: for example, in error recovery we want to be able to
tear down and then re-map IO memory and IRQs.
Therefore, refactor AFU init/teardown as follows.
- Create two new functions: 'cxl_configure_afu', and its pair
'cxl_deconfigure_afu'. As with the adapter functions,
these (de)configure resources that do not need to last the entire
lifetime of the AFU.
- Allocating and releasing memory remain the task of 'cxl_alloc_afu'
and 'cxl_release_afu'.
- Once-only functions that do not involve allocating/releasing memory
stay in the overarching 'cxl_init_afu'/'cxl_remove_afu' pair.
However, the task of picking an AFU mode and activating it has been
broken out.
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit c044c4154247372c86b468644de88a4e48f903e9
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 14 17:41:22 2015 +1000
cxl: Refactor adaptor init/teardown
Some aspects of initialisation are done only once in the lifetime of
an adapter: for example, allocating memory for the adapter,
allocating the adapter number, or setting up sysfs/debugfs files.
However, we may want to be able to do some parts of the
initialisation multiple times: for example, in error recovery we
want to be able to tear down and then re-map IO memory and IRQs.
Therefore, refactor CXL init/teardown as follows.
- Keep the overarching functions 'cxl_init_adapter' and its pair,
'cxl_remove_adapter'.
- Move all 'once only' allocation/freeing steps to the existing
'cxl_alloc_adapter' function, and its pair 'cxl_release_adapter'
(This involves moving allocation of the adapter number out of
cxl_init_adapter.)
- Create two new functions: 'cxl_configure_adapter', and its pair
'cxl_deconfigure_adapter'. These two functions 'wire up' the
hardware --- they (de)configure resources that do not need to
last the entire lifetime of the adapter
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 575e6986f028711287fbbf250e5289a089bac8cb
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 14 17:41:21 2015 +1000
cxl: Clean up adapter MMIO unmap path.
- MMIO pointer unmapping is guarded by a null pointer check.
However, iounmap doesn't null the pointer, just invalidate it.
Therefore, explicitly null the pointer after unmapping.
- afu_desc_mmio also needs to be unmapped.
- PCI regions are allocated in cxl_map_adapter_regs.
Therefore they should be released in unmap, not elsewhere.
Acked-by: Cyril Bur <cyrilbur@xxxxxxxxx>
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit e640d2fc811ff8cc1451f92490d3ccc2adcad179
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 14 17:41:20 2015 +1000
cxl: Make IRQ release idempotent
Check if an IRQ is mapped before releasing it.
This will simplify future EEH code by allowing unconditional unmapping
of IRQs.
Acked-by: Cyril Bur <cyrilbur@xxxxxxxxx>
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 05155772f642a5b0e421adf2017f993759bf7f95
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 14 17:41:19 2015 +1000
cxl: Allocate and release the SPA with the AFU
Previously the SPA was allocated and freed upon entering and leaving
AFU-directed mode. This causes some issues for error recovery - contexts
hold a pointer inside the SPA, and they may persist after the AFU has
been detached.
We would ideally like to allocate the SPA when the AFU is allocated, and
release it until the AFU is released. However, we don't know how big the
SPA needs to be until we read the AFU descriptor.
Therefore, restructure the code:
- Allocate the SPA only once, on the first attach.
- Release the SPA only when the entire AFU is being released (not
detached). Guard the release with a NULL check, so we don't free
if it was never allocated (e.g. dedicated mode)
Acked-by: Cyril Bur <cyrilbur@xxxxxxxxx>
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 0b3f9c757cabad4b8101c5fcddddd029ed5506a6
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 14 17:41:18 2015 +1000
cxl: Drop commands if the PCI channel is not in normal state
If the PCI channel has gone down, don't attempt to poke the hardware.
We need to guard every time cxl_whatever_(read|write) is called. This
is because a call to those functions will dereference an offset into an
mmio register, and the mmio mappings get invalidated in the EEH
teardown.
Check in the read/write functions in the header.
We give them the same semantics as usual PCI operations:
- a write to a channel that is down is ignored.
- a read from a channel that is down returns all fs.
Also, we try to access the MMIO space of a vPHB device as part of the
PCI disable path. Because that's a read that bypasses most of our usual
checks, we handle it explicitly.
As far as user visible warnings go:
- Check link state in file ops, return -EIO if down.
- Be reasonably quiet if there's an error in a teardown path,
or when we already know the hardware is going down.
- Throw a big WARN if someone tries to start a CXL operation
while the card is down. This gives a useful stacktrace for
debugging whatever is doing that.
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 588b34be20bc3dd7441c108c95039933699467ab
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 14 17:41:17 2015 +1000
cxl: Convert MMIO read/write macros to inline functions
We're about to make these more complex, so make them functions
first.
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit e642d11bdbfe8eb10116ab3959a2b5d75efda832
Author: Daniel Axtens <dja@xxxxxxxxxx>
Date: Fri Aug 14 16:03:19 2015 +1000
powerpc/eeh: Probe after unbalanced kref check
In the complete hotplug case, EEH PEs are supposed to be released
and set to NULL. Normally, this is done by eeh_remove_device(),
which is called from pcibios_release_device().
However, if something is holding a kref to the device, it will not
be released, and the PE will remain. eeh_add_device_late() has
a check for this which will explictly destroy the PE in this case.
This check in eeh_add_device_late() occurs after a call to
eeh_ops->probe(). On PowerNV, probe is a pointer to pnv_eeh_probe(),
which will exit without probing if there is an existing PE.
This means that on PowerNV, devices with outstanding krefs will not
be rediscovered by EEH correctly after a complete hotplug. This is
affecting CXL (CAPI) devices in the field.
Put the probe after the kref check so that the PE is destroyed
and affected devices are correctly rediscovered by EEH.
Fixes: d91dafc02f42 ("powerpc/eeh: Delay probing EEH device during
hotplug")
Cc: stable@xxxxxxxxxxxxxxx
Cc: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Daniel Axtens <dja@xxxxxxxxxx>
Acked-by: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit 0e38c35815f50e5a347977d76fb5eb4c3bf020b5
Merge: e4fc02f 3d04c92
Author: James Morris <james.l.morris@xxxxxxxxxx>
Date: Fri Aug 14 17:35:10 2015 +1000
Merge branch 'smack-for-4.3' of https://github.com/cschaufler/smack-next
into next
commit 10be6c0f27d729dcebaa0ac5f168009244d71fed
Author: Ben YoungTae Kim <ytkim@xxxxxxxxxxxxxxxx>
Date: Thu Aug 13 22:09:42 2015 -0700
Bluetooth: hciuart: Fix to use boolean flag with u32 type
debugfs_create_bool is asking to put u32 type pointer instead of bool
so that passing bool type with u32* cast will cause memory corruption
to read that value since it is handled by 4 bytes instead of 1 byte
inside.
Signed-off-by: Ben Young Tae Kim <ytkim@xxxxxxxxxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit e63dbd16ab7be41f5b66a70f1082242d76dd21d7
Author: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>
Date: Wed Aug 5 12:38:31 2015 +0530
powerpc: Add an inline function to update POWER8 HID0
Section 3.7 of Version 1.2 of the Power8 Processor User's Manual
prescribes that updates to HID0 be preceded by a SYNC instruction and
followed by an ISYNC instruction (Page 91).
Create an inline function name update_power8_hid0() which follows this
recipe and invoke it from the static split core path.
Signed-off-by: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Sam Bobroff <sam.bobroff@xxxxxxxxxxx>
Tested-by: Sam Bobroff <sam.bobroff@xxxxxxxxxxx>
Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
commit d52736e24fe2e927c26817256f8d1a3c8b5d51a0
Merge: 0344338 193125d
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 13 22:43:22 2015 -0700
Merge branch 'vrf-lite'
David Ahern says:
====================
VRF-lite - v6
In the context of internet scale routing a requirement that always comes
up is the need to partition the available routing tables into disjoint
routing planes. A specific use case is the multi-tenancy problem where
each tenant has their own unique routing tables and in the very least
need different default gateways.
This patch allows the ability to create virtual router domains (aka VRFs
(VRF-lite to be specific) in the linux packet forwarding stack. The main
observation is that through the use of rules and socket binding to
interfaces,
all the facilities that we need are already present in the
infrastructure. What
is missing is a handle that identifies a routing domain and can be used to
gather applicable rules/tables and uniqify neighbor selection. The scheme
used
needs to preserves the notions of ECMP, and general routing principles.
This driver is a cross between functionality that the IPVLAN driver
and the Team drivers provide where a device is created and packets
into/out of the routing domain are shuttled through this device. The
device is then used as a handle to identify the applicable rules. The
VRF device is thus the layer3 equivalent of a vlan device.
The very important point to note is that this is only a Layer3 concept
so L2 tools (e.g., LLDP) do not need to be run in each VRF, processes can
run in unaware mode or select a VRF to be talking through. Also the
behavioral model is a generalized application of the familiar VRF-Lite
model with some performance paths that need optimization. (Specifically
the output route selector that Roopa, Robert, Thomas and EricB are
currently discussing on the MPLS thread)
High Level points
=================
1. Simple overlay driver (minimal changes to current stack)
* uses the existing fib tables and fib rules infrastructure
2. Modelled closely after the ipvlan driver
3. Uses current API and infrastructure.
* Applications can use SO_BINDTODEVICE or cmsg device indentifiers
to pick VRF (ping, traceroute just work)
* Standard IP Rules work, and since they are aggregated against the
device, scale is manageable
4. Completely orthogonal to Namespaces and only provides separation in
the routing plane (and ARP)
N2
N1 (all configs here) +---------------+
+--------------+ | |
|swp1 :10.0.1.1+----------------------+swp1 :10.0.1.2 |
| | | |
|swp2 :10.0.2.1+----------------------+swp2 :10.0.2.2 |
| | +---------------+
| VRF 1 |
| table 5 |
| |
+---------------+
| |
| VRF 2 | N3
| table 6 | +---------------+
| | | |
|swp3 :10.0.2.1+----------------------+swp1 :10.0.2.2 |
| | | |
|swp4 :10.0.3.1+----------------------+swp2 :10.0.3.2 |
+--------------+ +---------------+
Given the topology above, the setup needed to get the basic VRF
functions working would be
Create the VRF devices and associate with a table
ip link add vrf1 type vrf table 5
ip link add vrf2 type vrf table 6
Install the lookup rules that map table to VRF domain
ip rule add pref 200 oif vrf1 lookup 5
ip rule add pref 200 iif vrf1 lookup 5
ip rule add pref 200 oif vrf2 lookup 6
ip rule add pref 200 iif vrf2 lookup 6
ip link set vrf1 up
ip link set vrf2 up
Enslave the routing member interfaces
ip link set swp1 master vrf1
ip link set swp2 master vrf1
ip link set swp3 master vrf2
ip link set swp4 master vrf2
Connected and local routes are automatically moved from main and local
tables to the VRF table.
ping using VRF0 is simply
ping -I vrf0 10.0.1.2
Design Highlights
=================
If a device is enslaved to a VRF device (ie., associated with a VRF)
then:
1. Rx path
The master device index is used as the iif for all lookups.
2. Tx path
Similarly, for Tx the VRF device oif is used in the flow to direct
lookups to the table associated with the VRF via its rule. From there
the FLOWI_FLAG_VRFSRC flag is used to indicate that the oif should
not be used for FIB table lookups.
3. Connected and local routes
On link up for a device, connected and local routes are added to the
table associated with the VRF device, rather than the local and main
tables.
4. Socket lookups
Sockets operating in the VRF must be bound to the VRF device. As such
socket lookups compare the VRF device index to sk_bound_dev_if.
5. Neighbor entries
Neighbor entries are not impacted by the VRF device. Entries are
associated with a particular interface; the VRF association is indirect
via the interface-to-VRF device enslavement.
Version 6
- addressed comments from DaveM
- added patch to properly set oif in ip_send_unicast_reply. Needs to be
set to VRF device for proper FIB lookup
- added patch to handle IP fragments
Version 5
- dropped patch regarding socket lookups; no longer needed
+ removed vrf helpers no longer needed after this patch is dropped
- removed dev_open and close operations
+ no need to reset vrf data on an ifdown and creates problems if a
slave is deleted while the vrf interface is down (Thanks, Nikolay)
- cleanups for sparse warnings
+ make C=2 is now clean for vrf driver
Version 4
- builds are clean with and without VRF device enabled (no, yes and
module)
- tightened the driver implementation
+ device add/delete, slave add/remove, and module unload are all clean
- fixed RCU references
+ with RCU and lock debugging enabled changes are clean through the
suite of tests
- TX path uses custom dst, so patch refactoring rtable allocation is
dropped along with the patch adding rt_nexthop helper
- dropped the task patch that adds default bind to interface for sockets
and the associated chvrf example command
+ the patches are a convenience for running unmodified code. They
are not needed for the core functionality. Any application with
support for SO_BINDTODEVICE works properly with this patch set.
Version 3
- addressed comments from first 2 RFCs with the exception of the name
Nicolas: We will do the name conversion once we agree on what the
correct name should be (vrf, mrf or something else)
- packets flow through the VRF device in both directions allowing the
following:
- tcpdump -i vrf<n>
- tc rules on vrf device
- netfilter rules on vrf device
TO-DO
=====
1. IPv6
2. ipsec, xfrms
- dst patch accepted into ipsec-next; will post VRF patch once merge
happens
3. listen filter to allow 1 socket to work with multiple VRF devices
- i.e., bind to VRF's a, b, c only or NOT VRFs e, f, g
Eric B:
I have ipsec working with VRFs implemented using the VRF driver,
including the worst case scenario of complete duplication in the
networking config.
Thanks to Nikolay for his many, many code reviews whipping the device
driver into shape, and bug-Fixes and ideas from Hannes, Roopa Prabhu,
Jon Toppins, Jamal.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 193125dbd8eb292d88feb201f030889b488b0a02
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 14:59:10 2015 -0600
net: Introduce VRF device driver
This driver borrows heavily from IPvlan and teaming drivers.
Routing domains (VRF-lite) are created by instantiating a VRF master
device with an associated table and enslaving all routed interfaces that
participate in the domain. As part of the enslavement, all connected
routes for the enslaved devices are moved to the table associated with
the VRF device. Outgoing sockets must bind to the VRF device to function.
Standard FIB rules bind the VRF device to tables and regular fib rule
processing is followed. Routed traffic through the box, is forwarded by
using the VRF device as the IIF and following the IIF rule to a table
that is mated with the VRF.
Example:
Create vrf 1:
ip link add vrf1 type vrf table 5
ip rule add iif vrf1 table 5
ip rule add oif vrf1 table 5
ip route add table 5 prohibit default
ip link set vrf1 up
Add interface to vrf 1:
ip link set eth1 master vrf1
Signed-off-by: Shrijeet Mukherjee <shm@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9972f134a273d6dc52d912a3513fa06b426de9b4
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 14:59:09 2015 -0600
net: frags: Add VRF device index to cache and lookup
Fragmentation cache uses information from the IP header to reassemble
packets. That information can be duplicated across VRFs -- same source
and destination addresses, protocol and id. Handle fragmentation with
VRFs by adding the VRF device index to entries in the cache and the
lookup arg.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f7ba868b71bc858cf06de11fc8150c4552cfad81
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 14:59:08 2015 -0600
net: Use VRF index for oif in ip_send_unicast_reply
If output device is not specified use VRF device if input device is
enslaved. This is needed to ensure tcp acks and resets go out VRF device.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 3bfd847203c6d89532f836ad3f5b4ff4ced26dd9
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 14:59:07 2015 -0600
net: Use passed in table for nexthop lookups
If a user passes in a table for new routes use that table for nexthop
lookups. Specifically, this solves the case where a connected route does
not exist in the main table, but only another table and then a subsequent
route is added with a next hop using the connected route. ie.,
$ ip route ls
default via 10.0.2.2 dev eth0
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
169.254.0.0/16 dev eth0 scope link metric 1003
192.168.56.0/24 dev eth1 proto kernel scope link src 192.168.56.51
$ ip route ls table 10
1.1.1.0/24 dev eth2 scope link
Without this patch adding a nexthop route fails:
$ ip route add table 10 2.2.2.0/24 via 1.1.1.10
RTNETLINK answers: Network is unreachable
With this patch the route is added successfully.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 021dd3b8a142d482cb65a27bf6644e3764001460
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 14:59:06 2015 -0600
net: Add routes to the table associated with the device
When a device associated with a VRF is brought up or down routes
should be added to/removed from the table associated with the VRF.
fib_magic defaults to using the main or local tables. Have it use
the table with the device if there is one.
A part of this is directing prefsrc validations to the correct
table as well.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 30bbaa19500559d7625c65632195413f639b3b97
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 14:59:05 2015 -0600
net: Fix up inet_addr_type checks
Currently inet_addr_type and inet_dev_addr_type expect local addresses
to be in the local table. With the VRF device local routes for devices
associated with a VRF will be in the table associated with the VRF.
Provide an alternate inet_addr lookup to use a specific table rather
than defaulting to the local table.
inet_addr_type_dev_table keeps the same semantics as inet_addr_type but
if the passed in device is enslaved to a VRF then the table for that VRF
is used for the lookup.
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 15be405eb2ea943ac5fa2aab7d0ba282e9ef1301
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 14:59:04 2015 -0600
net: Add inet_addr lookup by table
Currently inet_addr_type and inet_dev_addr_type expect local addresses
to be in the local table. With the VRF device local routes for devices
associated with a VRF will be in the table associated with the VRF.
Provide an alternate inet_addr lookup to use a specific table rather
than defaulting to the local table.
Signed-off-by: Shrijeet Mukherjee <shm@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9a24abfa42613fefc68963a98c2b7ab7fd7e374c
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 14:59:03 2015 -0600
udp: Handle VRF device in sendmsg
For unconnected UDP sockets using a VRF device lookup source address
based on VRF table. This allows the UDP header to be properly setup
before showing up at the VRF device via the dst.
Signed-off-by: Shrijeet Mukherjee <shm@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 613d09b30f8b589d5a9b49775054c8865db95d1c
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 14:59:02 2015 -0600
net: Use VRF device index for lookups on TX
As with ingress use the index of VRF master device for route lookups on
egress. However, the oif should only be used to direct the lookups to a
specific table. Routes in the table are not based on the VRF device but
rather interfaces that are part of the VRF so do not consider the oif for
lookups within the table. The FLOWI_FLAG_VRFSRC is used to control this
latter part.
Signed-off-by: Shrijeet Mukherjee <shm@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit cd2fbe1b6b517ca7c0e80b103c674fdf5bd50f76
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 14:59:01 2015 -0600
net: Use VRF device index for lookups on RX
On ingress use index of VRF master device for route lookups if real device
is enslaved. Rules are expected to be installed for the VRF device to
direct lookups to a specific table.
Signed-off-by: Shrijeet Mukherjee <shm@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4e3c89920cd3a6cfce22c6f537690747c26128dd
Author: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 14:59:00 2015 -0600
net: Introduce VRF related flags and helpers
Add a VRF_MASTER flag for interfaces and helper functions for determining
if a device is a VRF_MASTER.
Add link attribute for passing VRF_TABLE id.
Add vrf_ptr to netdevice.
Add various macros for determining if a device is a VRF device, the index
of the master VRF device and table associated with VRF device.
Signed-off-by: Shrijeet Mukherjee <shm@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David Ahern <dsa@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0344338bd883e5e4a2f80409ed8260cd65d69e3b
Author: Andy Gospodarek <gospo@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 15:26:35 2015 -0400
net: addr IFLA_OPERSTATE to netlink message for ipv6 ifinfo
This is useful information to include in ipv6 netlink messages that
report interface information. IFLA_OPERSTATE is already included in
ipv4 messages, but missing for ipv6. This closes that gap.
Signed-off-by: Andy Gospodarek <gospo@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit da65ad1fe399d77234a4caa50008c6b87f1fe401
Author: Sasha Levin <sasha.levin@xxxxxxxxxx>
Date: Thu Aug 13 14:03:16 2015 -0400
net: allow sleeping when modifying store_rps_map
Commit 10e4ea751 ("net: Fix race condition in store_rps_map") has moved
the
manipulation of the rps_needed jump label under a spinlock. Since changing
the state of a jump label may sleep this is incorrect and causes warnings
during runtime.
Make rps_map_lock a mutex to allow sleeping under it.
Fixes: 10e4ea751 ("net: Fix race condition in store_rps_map")
Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
Acked-by: Tom Herbert <tom@xxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 968d7cb82aad3c6bfada79a8e26d65a1fb3f618a
Merge: 35103d1 8efdda4
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 13 21:31:14 2015 -0700
Merge branch 'mv88e6xxx-hw-vlan'
Vivien Didelot says:
====================
net: dsa: mv88e6xxx: add hardware VLAN support
This patchset brings support to access hardware VLAN entries in DSA and
mv88e6xxx, through switchdev VLAN objects.
In the following example, ports swp[0-2] belong to bridge br0, and ports
swp[3-4] belong to bridge br1. Here's an example of what can be achieved
after this patchset:
# bridge vlan add dev swp1 vid 100 master
# bridge vlan add dev swp2 vid 100 master
# bridge vlan add dev swp3 vid 100 master
# bridge vlan add dev swp4 vid 100 master
# bridge vlan del dev swp1 vid 100 master
The above commands correctly programmed hardware VLAN 100 for port swp2,
while ports swp3 and swp4 use software VLAN 100, as shown with:
# bridge vlan
port vlan ids
swp0 None
swp0
swp1 None
swp1
swp2 100
swp2 100
swp3 100
swp3
swp4 100
swp4
br0 None
br1 None
Assuming that port 5 is the CPU port, the hardware VLAN table would
contain the following data:
VID FID SID 0 1 2 3 4 5 6
100 8 0 x x t x x t x
Where 'x' means excluded, and 't' means tagged.
Also, adding an FDB entry to VLAN 100 for port swp2 like this:
# bridge fdb add 3c:97:0e:11:6e:30 dev swp2 vlan 100
Would result in the following example output:
# bridge fdb
# 01:00:5e:00:00:01 dev eth0 self permanent
# 01:00:5e:00:00:01 dev eth1 self permanent
# 00:50:d2:10:78:15 dev swp0 master br0 permanent
# 00:50:d2:10:78:15 dev swp2 vlan 100 master br0 permanent
# 3c:97:0e:11:6e:30 dev swp2 vlan 100 self static
# 00:50:d2:10:78:15 dev swp3 master br1 permanent
# 00:50:d2:10:78:15 dev swp3 vlan 100 master br1 permanent
And the Address Translation Unit would contain:
DB T/P Vec State Addr
008 Port 004 e 3c:97:0e:11:6e:30
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8efdda4a1b609ac40c4729109215f9c77f938fdc
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 12:52:23 2015 -0400
net: dsa: mv88e6xxx: use port 802.1Q mode Secure
This commit changes the 802.1Q mode of each port from Disabled to
Secure. This enables the VLAN support, by checking the VTU entries on
ingress.
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0d3b33e60206f40c802581fa35316a6ccdb00caa
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 12:52:22 2015 -0400
net: dsa: mv88e6xxx: add VLAN Load support
Implement port_pvid_set and port_vlan_add to add new entries in the VLAN
hardware table, and join ports to them.
The patch also implement the STU Get Next and Load Purge operations,
since it is required to have a valid STU entry for at least all VLANs.
Each VLAN has its own forwarding database, with FID num_ports+1 to 4095.
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7dad08d738222e998bc27f67f73be713d64cecb8
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 12:52:21 2015 -0400
net: dsa: mv88e6xxx: add VLAN Purge support
Add support for the VTU Load Purge operation and implement the
port_vlan_del driver function to remove a port from a VLAN entry, and
delete the VLAN if the given port was its last member.
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 02512b6fccecb4cfac9a253686712e790b01ff91
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 12:52:20 2015 -0400
net: dsa: mv88e6xxx: add VLAN support to FDB dump
Add an helper function to read the next valid VLAN entry for a given
port. It is used in the VID to FID conversion function to retrieve the
forwarding database assigned to a given VLAN port.
Finally update the FDB getnext operation to iterate on the next valid
port VLAN when the end of the current database is reached.
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b8fee95710639f1075534178701b64b66a180617
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 12:52:19 2015 -0400
net: dsa: mv88e6xxx: add VLAN Get Next support
Implement the port_pvid_get and vlan_getnext driver functions required
to dump VLAN entries from the hardware, with the VTU Get Next operation.
Some functions and structure will be shared with STU operations, since
their table format are similar (e.g. STU data entries are accessible
with the same registers as VTU entries, except with an offset of 2).
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 6b17e864477fbc73772708655dea7fe4139c14f6
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 12:52:18 2015 -0400
net: dsa: mv88e6xxx: flush VTU and STU entries
Implement the VTU Flush operation (which also flushes the STU), so that
warm boots won't preserved old entries.
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 111495361598205967f1be4e07d4726b0f762d60
Author: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 12:52:17 2015 -0400
net: dsa: add support for switchdev VLAN objects
Add new functions in DSA drivers to access hardware VLAN entries through
SWITCHDEV_OBJ_PORT_VLAN objects:
- port_pvid_get() and vlan_getnext() to dump a VLAN
- port_vlan_del() to exclude a port from a VLAN
- port_pvid_set() and port_vlan_add() to join a port to a VLAN
The DSA infrastructure will ensure that each VLAN of the given range
does not already belong to another bridge. If it does, it will fallback
to software VLAN and won't program the hardware.
Signed-off-by: Vivien Didelot <vivien.didelot@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 35103d11173b8fea874183f8aa508ae71234d299
Author: Andy Gospodarek <gospo@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 10:39:01 2015 -0400
net: ipv6 sysctl option to ignore routes when nexthop link is down
Like the ipv4 patch with a similar title, this adds a sysctl to allow
the user to change routing behavior based on whether or not the
interface associated with the nexthop was an up or down link. The
default setting preserves the current behavior, but anyone that enables
it will notice that nexthops on down interfaces will no longer be
selected:
net.ipv6.conf.all.ignore_routes_with_linkdown = 0
net.ipv6.conf.default.ignore_routes_with_linkdown = 0
net.ipv6.conf.lo.ignore_routes_with_linkdown = 0
...
When the above sysctls are set, not only will link status be reported to
userspace, but an indication that a nexthop is dead and will not be used
is also reported.
1000::/8 via 7000::2 dev p7p1 metric 1024 dead linkdown pref medium
1000::/8 via 8000::2 dev p8p1 metric 1024 pref medium
7000::/8 dev p7p1 proto kernel metric 256 dead linkdown pref medium
8000::/8 dev p8p1 proto kernel metric 256 pref medium
9000::/8 via 8000::2 dev p8p1 metric 2048 pref medium
9000::/8 via 7000::2 dev p7p1 metric 1024 dead linkdown pref medium
fe80::/64 dev p7p1 proto kernel metric 256 dead linkdown pref medium
fe80::/64 dev p8p1 proto kernel metric 256 pref medium
This also adds devconf support and notification when sysctl values
change.
v2: drop use of rt6i_nhflags since it is not needed right now
Signed-off-by: Andy Gospodarek <gospo@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Dinesh Dutt <ddutt@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit cea45e208d700e9d633a636384a49f19cda979b7
Author: Andy Gospodarek <gospo@xxxxxxxxxxxxxxxxxxx>
Date: Thu Aug 13 10:39:00 2015 -0400
net: track link status of ipv6 nexthops
Add support to track current link status of ipv6 nexthops to match
recent changes that added support for ipv4 nexthops. This takes a
simple approach to track linkdown status for next-hops and simply
checks the dev for the dst entry and sets proper flags that to be used
in the netlink message.
v2: drop use of rt6i_nhflags since it is not needed right now
Signed-off-by: Andy Gospodarek <gospo@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Dinesh Dutt <ddutt@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8e3d04fd7d70679eed631ba5889f81b2d9415404
Author: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Date: Thu Aug 13 09:44:22 2015 +0530
cxgb4: Add MPS tracing support
Handle TRACE_PKT, stack can sniff them on the first port
Add debubfs enrty to configure tracing for offload traffic like iWARP
& iSCSI for debugging purpose.
Signed-off-by: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit f02e58f91a121ec909efad06b0a7aa806e1f7a84
Author: yalin wang <yalin.wang2010@xxxxxxxxx>
Date: Thu Aug 13 12:01:33 2015 +0800
net/fddi: remove HWM_REVERSE() macro
HWM_REVERSE() macro is unused, remove it.
Signed-off-by: yalin wang <yalin.wang2010@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e4fc02f24c223ee8d668bf2d39bb8a2dbd61b40e
Merge: aa62eff e9a5e8c
Author: James Morris <james.l.morris@xxxxxxxxxx>
Date: Fri Aug 14 12:08:39 2015 +1000
Merge tag 'modsign-pkcs7-20150812-3' of
git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs into next
commit 96625eadca1bb8832fb502f0899a543695f1ba35
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Tue Mar 17 17:32:45 2015 +0800
usb: chipidea: add tx/rx burst size configuration interface
The user can adjust it through dts or platform data
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit bd6e9d115df7fc6f11f3021c6fc05e3eaeb04a32
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Fri Aug 7 15:08:02 2015 +0800
Doc: usb: ci-hdrc-usb2: add tx(rx)-burst-config-dword for binding doc
It is used to override the default setting for burst size, changing
burst size takes effect only when the SBUSCFG.AHBBRST = 0.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit ed6e5eb50f7f07561d6a40f18bc11484736098db
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Wed Nov 5 14:58:32 2014 +0800
usb: chipidea: usbmisc_imx: add non-burst setting for imx6
With this setting and AHBBRST at SBUSCFG as "Incremental burst of
unspecified length", each non-burst size can be taken as single
transfer. It is benefit for non-burst size transfer.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit 65668718f2c5b76d5f4513564a3c56672bb07892
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Tue Mar 17 14:21:00 2015 +0800
usb: chipidea: add ahb burst configuration interface
The users can change it through dts or platform data if they
want to change the default value.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit c6fba7b750efe64a69dd83e0ff7249abd0e783aa
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Tue Jul 28 13:33:15 2015 +0800
Doc: usb: ci-hdrc-usb2: add ahb-burst-config for binding doc
It is used to change ahb burst configuration for platforms, it is
vendor specific.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit 0ef877a408ebaa4d65ab1f886100dab198bf673e
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Thu Oct 30 11:10:04 2014 +0800
usb: chipidea: imx: add stream mode enable for device mode at
imx6sl/imx6sx
Stream mode enable is known for better performance, this stream mode
enable patch has been passed with stress tests at device mode for
imx6sl and imx6sx, and no issue is found.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit 8022d3d51c6fb14736e26fd13caca91a38e07580
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Thu Oct 30 09:15:15 2014 +0800
usb: chipidea: define stream mode disable for both roles
The system bus and chipidea IP have different limitations for
both host and device mode.
For example, with below errata, we need to enable SDIS(Stream Disable
Mode) at host mode. But we don't want it for device mode at the
same system.
TAR 9000378958
Title: Non-Double Word Aligned Buffer Address Sometimes Causes Host to
Hang on OUT Retry
Impacted Configuration: Host mode, all transfer types
Description:
The host core operating in streaming mode may under run while sending
the data packet of an OUT transaction. This under run can occur if
there are unexpected system delays in fetching the remaining packet
data from memory. The host forces a bad CRC on the packet, the device
detects the error and discards the packet. The host then retries a Bulk,
Interrupt, or Control transfer if an under run occurs according to the
USB specification. During simulations, it was found that the host does
not issue the retry of the failed bulk OUT. It does not issue any other
transactions except SOF packets that have incorrect frame numbers.
The second failure mode occurs if the under run occurs on an ISO OUT
transaction and the next ISO transaction is a zero byte packet. The host
does not issue any transactions (including SOFs). The device detects a
Suspend condition, reverts to full speed, and waits for resume signaling.
A third failure mode occurs when the host under runs on an ISO OUT and
the next ISO in the schedule is an ISO OUT with two max packets of 1024
bytes each. The host should issue MDATA for the first OUT followed by
DATA1 for the second. However, it drops the MDATA transaction, and
issues the DATA1 transaction.
The system impact of this bug is the same regardless of the failure mode
observed. The host core hangs, the ehci_ctrl state machine waits for the
protocol engine to send the completion status for the corrupted
transaction, which never occurs. No indication is sent to the host
controller driver, no register bits change and no interrupts occur.
Eventually the requesting application times out.
Detailed internal behavior:
The EHCI control state machine (ehci_ctrl) in the DMA block is responsible
for parsing the schedules and initiating all transactions. The ehci_ctrl
state machine passes the transaction details to the protocol block by
writing the transaction information in to the TxFIFO. It then asserts
the pe_hst_run_pkt signal to inform the host protocol state machine
(pe_hst_state) that there is a packet in the TxFIFO.
A tag of 0x0 indicates a start of packet with the data providing the
following information:
35:32 Tag
31:30 Reserved
29:23 Endpoint (lowest 4 bits)
22:16 Address
15:10 Reserved
9:8 Endpoint speed
7:6 Endpoint type
5:6 Data Toggle
3:0 PID
The pe_hst_state reads the packet information and constructs the packet
and issues it to the PHY interface.
The ehci_ctrl state machine writes the start transaction information in
to the TxFIFO as 0x03002910c for the OUT packet that had the under run
error. However, it writes 0xC3002910C for the retry of the Out
transaction, which is incorrect.
The pe_hst_state enters a bus timeout state after sending the bad CRC
for the packet that under ran. It then purges any data that was back
filled in to the TxFIFO for the packet that under ran. The pe_hst_state
machine stops purging the TxFIFO when it is empty or if it reads a
location that has a tag of 0x0, indicating a start of packet command.
The pe_hst_state reads 0xC3002910C and discards it as it does not decode
to a start of packet command. It continues to purge the OUT data that
has been pre-buffered for the OUT retry . The pe_hst_state detects the
hst_packet_run signal and attempts to read the PID and address
information from the TxFIFO. This location has packet data and so does
not decode to a valid PID and so falls through to the PE_HST_SOF_LOAD
state where the frame_num_counter is updated. The frame_num_counter
is updated with the data in the TxFIFO. In this case, the data is
incorrect as the ehci_ctrl state machine did not initiate the load.
The hst_pe_state machine detects the SOF request signal and sends an
SOF with the bad frame number. Meanwhile, the ehci_ctrl state machine
waits indefinitely in the run_pkt state waiting for the completion
status from pe_hst_state machine, which will never happen.
The ISO failure case is similar except that there is no retry for ISO.
The ehci_ctrl state machine moves to the next transfer in the periodic
schedule. If the under run occurs on the last entry of the periodic
list then it moves to the Async schedule.
In the case of ISO OUT simulations, the next ISO is a zero byte OUT
and again the start of packet command gets corrupted. The TxFIFO is
empty when the hst_pe_state attempts to read the Address and PID
information as the transaction is a zero byte packet. This results
in the hst_pe_state machine staying in the GET_PID state, which means
that it does not issue any transactions (including SOFs). The device
detects a Suspend condition and reverts to full speed mode and waits
for a Resume or Reset signal.
The EHCI specification allows a Non-DoubleWord (32 bits) offset to
be used as a current offset for Buffer Pointer Page 0 of the qTD.
In Non-DoubleWord aligned cases, the core reads the packet data
from the AHB memory, performs the alignment operation before writing
it in to the TxFIFO as a 32 bit data word. An End Of Packet tag (EOP)
is written to the TxFIFO after all the packet data has been written
in to the TxFIFO. The alignment function is reset to Idle by the EOP
tag. The corruption of the start of packet command arises because the
packet buffer for the OUT transaction that under ran is not aligned
to a DoubleWord, and hence no EOP tag is written to the TxFIFO. The
alignment function is still active when the start packet information
is written in to the TxFIFO for the retry of the bulk packet or for
the next transaction in the case of an under run on an ISO. This
results in the corruption of the start tag and the transaction
information.
Click for waveform showing the command 0x 0000300291 being written in
to the TX FIFO for the Out that under ran.
Click for waveform showing the command 0xC3002910C written to the
TxFIFO instead of 0x 0000300291
Versions affected: Versions 2.10a and previous versions
How discovered: Customer simulation
Workaround:
1- The EHCI specification allows a non-DoubleWord offset to be used
as a current offset for Buffer Pointer Page 0 of the qTD. However,
if a DoubleWord offset is used then this issue does not arise.
2- Use non streaming mode to eliminate under runs.
Resolution:
The fix involves changes to the traffic state machine in the
vusb_hs_dma_traf block. The ehci_ctrl state machine updates the context
information by encoding the transaction results on the
hst_op_context_update signals at the end of a transaction. The signal
hst_op_context_update is added to the traffic state machine, and the
tx_fifo_under_ran_r signal is generated if the transaction results in
an under run error. Click for waveform
The traffic state machine then traverses to the do_eop states if the
tx_fifo_under_ran error is asserted. Thus an EOP tag is written in to
the TxFIFO as shown in this waveform .
The EOP tag resets the align state machine to the Idle state ensuring
that the next command written by the echi_ctrl state machine does not
get corrupted.
File(s) modified:
RTL code fixed: â?¦..
Method of reproducing: This failure cannot be reproduced in the current
test bench.
Date Found: March 2010
Date Fixed: June 2010
Update information:
Added the RTL code fix
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit a4da4f12b4a7e7072753ebae9b2ccd72b89c3392
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Tue Jul 28 10:08:32 2015 +0800
usb: chipidea: udc: zero-length packet is only needed for TX
The zero-length packet is the sendor tells the receiver that there
is no more data, so it is only needed at the TX side.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit 11a27098e884b8eb797f1579ebc51cb0e0510cc3
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Wed Aug 5 10:16:19 2015 +0800
usb: chipidea: host: override hcd reset API
The system configuration API should be called before the controller
run, otherwise, undefined results may occur. So, we override hcd
reset API, and add system configuration API after controller reset.
Cc: Li Jun <peter.chen@xxxxxxxxxxxxx>
Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit ef12da914ed696745b495bea22aea137e88cffb6
Author: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
Date: Thu Aug 6 15:09:54 2015 +0200
usb: chipidea: imx: properly check for usbmisc
If usbmisc hasn't probed yet, defer the probe.
It's not enough to check if the platform device for the OF node of the
usbmisc has been registered, but it also needs to have been probed
already before we can call imx_usbmisc_init().
This can happen if the order in which devices are probed change due to
async probing or on-demand probing of dependencies.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
commit bc24937943d9f71a1e32b5dc4e2f0ef8fcc07b64
Author: Li Jun <jun.li@xxxxxxxxxxxxx>
Date: Wed Jul 29 13:11:11 2015 +0800
usb: chipidea: debug: add runtime pm for register access
Add runtime pm operations for registers access to avoid system hang.
Signed-off-by: Li Jun <jun.li@xxxxxxxxxxxxx>
commit 158ec071fb5243e5c49259d2dbc4c8dbaed24c47
Author: Nicholas Krause <xerofoify@xxxxxxxxx>
Date: Sat Jun 27 00:34:48 2015 -0400
usb:chipidea:Make the function hw_alloc_repmap have a return type of void
This makes the function hw_alloc_repmap be declared to have a return
type of void now due to this particular function never returning
a error code to its caller due to this function always running
successfully to completion nor it's caller putting the return
value into a variable in order to check if a error code is passed
from the function hw_alloc_repmap when calling this function.
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
commit 1311d6e3ea3316e9d2383219a36353ad335f6932
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Tue Jul 14 15:43:02 2015 +0800
usb: chipidea: host: delete the redundancy ci_hdrc struct
The struct ci_hdrc is the drvdata for hcd device, so we don't
need to introduce extra ci_hdrc structure for ehci.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit df96ed8dced21426c54c7f69cf7513e75280957a
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Mon Sep 22 16:45:39 2014 +0800
usb: chipidea: introduce ITC tuning interface
ITC (Interrupt Threshold Control) is used to set the maximum rate at which
the host/device controller will issue interrupts. The default value is 8
(1ms)
for it. EHCI core will modify it to 1, but device mode keeps it as default
value.
In some use cases like Android ADB, it only has one usb request for each
direction, and maximum payload data is only 4KB, so the speed is 4MB/s
at most, it needs controller to trigger interrupt as fast as possible
to increase the speed. The USB performance will be better if the interrupt
can be triggered faster.
Reduce ITC value is benefit for USB performance, but the interrupt number
is increased at the same time, it may increase cpu utilization too.
Most of use case cares about performance, but some may care about
cpu utilization, so, we leave a platform interface for user.
We set ITC as 1 (1 micro-frame) as default value which is aligned
with ehci core default value.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit 1bd57127d4aaff518cf93f4809ec2f11b2baf865
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Wed Jul 15 13:53:05 2015 +0800
Doc: usb: ci-hdrc-usb2: add itc-setting at binding doc
It is used to configure the ITC (in register USBCMD) value
for kinds of applications.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit bf9c85e78d0fec61360ece46dacf9ab71ba89361
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Tue Mar 17 10:40:50 2015 +0800
usb: chipidea: introduce ci_platform_configure
It is used to configure controller parameters according to
platform data, like speed, stream mode, etc, both host and
device's initialization need it, most of code are the
same for both roles, with this new interface, it can reduce
the duplicated code and be easy to maintain in future.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit 9d2effea12a3a7139daf04a2be97f18d3e6913a3
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Wed Jul 15 13:56:26 2015 +0800
usb: chipidea: otg_fsm: delete the duplicated reset controller operation
At host_stop, it will call usb_remove_hcd, and reset controller later.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit 3520d462b95fff1c445faec6f54953cd8da25ca7
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Fri Jul 17 08:44:24 2015 +0800
usb: chipidea: udc: add USB_DEVICE_A_HNP_SUPPORT request support
We can support USB OTG 1.3 USB_DEVICE_A_HNP_SUPPORT request when
the driver supports OTG FSM mode.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit e765bfb73ff711b1d139a4438af9ecedabb07d34
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Thu Jun 18 11:43:34 2015 +0800
usb: chipidea: imx: enable CI_HDRC_SET_NON_ZERO_TTHA
For i.mx platform, set ttctrl.ttha with non-zero value only affects
sitd, and ehci core makes sure the schedule is not full when accepts
new request, so it will not occur the transaction which will acorss
the SoF.
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit 28362673129e7d4510a5a92a8b68ee47f282210b
Author: Peter Chen <peter.chen@xxxxxxxxxxxxx>
Date: Thu Jun 18 11:51:53 2015 +0800
usb: chipidea: add ttctrl.ttha control interface
The register of ttctrl.ttha describes like below:
- Internal TT Hub Address Representation
- RW
- Default = 0000000b
This field is used to match against the Hub Address field in QH & siTD
to determine if the packet is routed to the internal TT for directly
attached FS/LS devices. If the Hub Address in the QH or siTD does not
match this address then the packet will be broadcast on the High Speed
ports destined for a downstream High Speed hub with the address in the
QH/siTD.
In silicon RTL, this entry only affects QH and siTD, and the hub.addr at
both QH and siTD are 0 in ehci core for chipidea (with hcd->has_tt = 1).
So, for QH, if the "usage_tt" flag at RTL is 0, set
CI_HDRC_SET_NON_ZERO_TTHA
will not affect QH (with non-hs device); for siTD, set this flag
will change remaining space requirement for the last transaction from 1023
bytes to 188 bytes, it can increase the number of transactions within one
frame, ehci periodic schedule code will not queue the packet if the frame
space
is full, so it is safe to set this flag for siTD.
With this flag, it can fix the problem Alan Stern reported below:
http://www.spinics.net/lists/linux-usb/msg123125.html
And may fix Michael Tessier's problem too.
http://www.spinics.net/lists/linux-usb/msg118679.html
CC: stern@xxxxxxxxxxxxxxxxxxx
CC: michael.tessier@xxxxxxxxxxxx
Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
commit 8f9cb50789e76f3e224e8861adf650e55c747af4
Merge: e1474e7 a63c580
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Aug 14 10:15:24 2015 +1000
Merge tag 'drm-amdkfd-next-fixes-2015-08-05' of
git://people.freedesktop.org/~gabbayo/linux into drm-next
Two small bug fixes for the code you pulled for 4.3:
- Used a SHIFT define instead of a MASK define to check if a bit is
turned on
when destroying hqd. Luckily, this is in gfx7 interface file with
amdgpu,
which was used only for bring-up purposes of amdgpu, so no real effect
on
a running system
- Used a logical AND instead of a bitwise AND operator, when initializing
sdma virtual memory when using SDMA queues
* tag 'drm-amdkfd-next-fixes-2015-08-05' of
git://people.freedesktop.org/~gabbayo/linux:
drm/amdkfd: fix bug when initializing sdma vm
drm/amdgpu: fix bug when amdkfd destroys hqd
commit e1474e7bdf6b16db41cc12b8e7b3fefd8668f3cf
Merge: 1ce4200 29d1dc6
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Aug 14 10:14:23 2015 +1000
Merge branch 'drm-sti-next-atomic-2015-08-11' of
http://git.linaro.org/people/benjamin.gaignard/kernel into drm-next
This serie of patches fix minor bugs around how driver sub-components are
bind and planes z-ordering.
The main part is about atomic support: using more atomic helpers allow us
to simplify the code (~300 lines removed) and to ahve a better match
between
drm concepts (planes and crtc) and hardware split.
[airlied: fixed up conflict in atomic code]
* 'drm-sti-next-atomic-2015-08-11' of
http://git.linaro.org/people/benjamin.gaignard/kernel:
drm/sti: atomic crtc/plane update
drm/sti: rename files and functions
drm/sti: code clean up
drm/sti: fix dynamic z-ordering
drm: sti: fix sub-components bind
commit dd19f83d6cd90e4b7a601da2ed40d2a9d70aaf10
Author: Scott Feldman <sfeldma@xxxxxxxxx>
Date: Wed Aug 12 18:45:25 2015 -0700
rocker: hook ndo_neigh_destroy to cleanup neigh refs in driver
Rocker driver tracks arp_tbl neighs to resolve IPv4 route nexthops. The
driver uses NETEVENT_NEIGH_UPDATE for neigh adds and updates, but there is
no event when the neigh is removed from the device (such as when the
device
goes admin down). This patches hooks ndo_neigh_destroy so the driver can
know when a neigh is removed from the device. In response, the driver
will
purge the neigh entry from its internal tbl.
I didn't find an in-tree users of ndo_neigh_destroy, so I'm not sure if
this ndo is vestigial or if there are out-of-tree users. In any case, it
does what I need here. An alternative design would be to generate
NETEVENT_NEIGH_UPDATE event when neigh is being destroyed, setting state
to
NUD_NONE so driver knows neigh entry is dead.
Signed-off-by: Scott Feldman <sfeldma@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c8beb5b2613418e7ac1ffaee1f0796e77a4000be
Author: Scott Feldman <sfeldma@xxxxxxxxx>
Date: Wed Aug 12 18:44:13 2015 -0700
rocker: print switch ID consistent with phys_switch_id sysfs node
On sucessful probe, driver prints the switch ID. This patch changes the
format of the printed ID to match what's used in sysfs phys_switch_id
node.
Signed-off-by: Scott Feldman <sfeldma@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7bbac697e4a6e64cc4bae26d57310c916aa0da7a
Author: Leo Yan <leo.yan@xxxxxxxxxx>
Date: Mon Aug 3 09:30:25 2015 +0800
Documentation: minor typo fix in mailbox.txt
Fix minor typo so that can pass correct pointer variable for
container_of().
Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx>
[jc: tweaked formatting]
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
commit 1ce4200df02aac780fe92c92b31497891c36c3ac
Merge: e5dafc0 d485363
Author: Dave Airlie <airlied@xxxxxxxxxx>
Date: Fri Aug 14 10:02:21 2015 +1000
Merge tag 'topic/drm-misc-2015-08-13' of
git://anongit.freedesktop.org/drm-intel into drm-next
Final drm-misc pull for 4.3:
- fbdev emulation Kconfig option for everyone thanks to Archit. It's not
everything yet bit this is fairly tricky since it spawns all drivers.
- vgaarb & vgaswitcheroo polish from Thierry
- some drm_irq.c cleanups (Thierry)
- struct_mutex crusade from me
- more fbdev panic handling removal
- various things all over in drm core&helpers
* tag 'topic/drm-misc-2015-08-13' of
git://anongit.freedesktop.org/drm-intel: (65 commits)
drm/atomic: Use KMS VBLANK API
drm/irq: Document return values more consistently
drm/irq: Make pipe unsigned and name consistent
drm/irq: Check for valid VBLANK before dereference
drm/irq: Remove negative CRTC index special-case
drm/plane: Remove redundant extern
drm/plane: Use consistent data types for format count
vga_switcheroo: Remove unnecessary checks
vga_switcheroo: Wrap overly long lines
vga_switcheroo: Use pr_fmt()
vga_switcheroo: Cleanup header comment
vga_switcheroo: Use pr_*() instead of printk()
vgaarb: Fix a few checkpatch errors and warnings
vgaarb: Use vgaarb: prefix consistently in messages
vgaarb: Stop complaining about absent devices
drm/atomic: fix null pointer access to mode_fixup callback
drm/i915: Use CONFIG_DRM_FBDEV_EMULATION
drm/core: Set mode to NULL when connectors in a set drops to 0.
drm/atomic: Call ww_acquire_done after check phase is complete
drm/atomic: Paper over locking WARN in default_state_clear
...
commit c28446c2b78fde4b47a4baf3b2cf7c3c4ca621dc
Merge: 5bbbcc0 0b50dc4
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 13 16:58:29 2015 -0700
Merge branch 'smsc911x-acpi'
Jeremy Linton says:
====================
Enable smsc911x for use with ACPI
This set of patches enables the front Ethernet port on the
ARM Juno development platform when used with an ACPI enabled kernel.
These patches covert the of_property* calls in the driver to the
DT/ACPI agnostic device_property* calls, and add the arm hardware
id to the acpi_match_table.
To support the above changes I copied a couple routines from
of_net into the properties.c file, and modified them to
be ACPI/DT agnostic. I'm not 100% sure this is the correct location
for these functions. But I think they are required to avoid having
a dozen different implementations scattered across assorted Ethernet
adapters that are being enabled to use ACPI properties.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 0b50dc4fc971cc788b0974ebd70f06efff1ad5d8
Author: Jeremy Linton <jeremy.linton@xxxxxxx>
Date: Wed Aug 12 17:06:27 2015 -0500
Convert smsc911x to use ACPI as well as DT
Add ACPI bindings for the smsc911x driver. Convert the DT specific calls
to nonspecific device* calls, This allows the driver to work
with both ACPI and DT configurations. Ethernet should now work when using
ACPI on ARM Juno.
Signed-off-by: Jeremy Linton <jeremy.linton@xxxxxxx>
Reviewed-by: Graeme Gregory <graeme.gregory@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4c96b7dc0d393f12c17e0d81db15aa4a820a6ab3
Author: Jeremy Linton <jeremy.linton@xxxxxxx>
Date: Wed Aug 12 17:06:26 2015 -0500
Add a matching set of device_ functions for determining mac/phy
OF has some helper functions for parsing MAC and PHY settings.
In cases where the platform is providing this information rather
than the device itself, there needs to be similar functions for ACPI.
These functions are slightly modified versions of the ones in
of_net which can use information provided via DT or ACPI.
Signed-off-by: Jeremy Linton <jeremy.linton@xxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4983953dbd038fd720e7e16eb9bad5d8ea059ccf
Author: David Drysdale <drysdale@xxxxxxxxxx>
Date: Mon Aug 10 09:00:44 2015 +0100
Documentation: describe how to add a system call
Add a document describing the process of adding a new system call,
including the need for a flags argument for future compatibility, and
covering 32-bit/64-bit concerns (albeit in an x86-centric way).
Signed-off-by: David Drysdale <drysdale@xxxxxxxxxx>
Reviewed-by: Michael Kerrisk <mtk.manpages@xxxxxxxxx>
Reviewed-by: Eric B Munson <emunson@xxxxxxxxxx>
Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>
Reviewed-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
commit 5bbbcc0073331d4e37c9f91c59cfc9f5d2033860
Merge: 646244b b340b26
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 13 16:52:20 2015 -0700
Merge branch 'tcp-loss-probe'
Yuchung Cheng says:
====================
minor tail loss probe improvements
This patch series enhance the tail loss probe (TLP) on some error
conditions. When TLP fails to send a probe, it will no longer
extend the RTO. When it fails to send a new packet because of
receiver window limit, it'll try to retransmit the last packet.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b340b26454e7ba0f5d04b4bd5c4c782f1628ebe1
Author: Yuchung Cheng <ycheng@xxxxxxxxxx>
Date: Wed Aug 12 11:18:19 2015 -0700
tcp: TLP retransmits last if failed to send new packet
When TLP fails to send new packet because of receive window
limit, it should fall back to retransmit the last packet instead.
Signed-off-by: Yuchung Cheng <ycheng@xxxxxxxxxx>
Signed-off-by: Neal Cardwell <ncardwell@xxxxxxxxxx>
Signed-off-by: Nandita Dukkipati <nanditad@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit fcd16c0a95a8faf4d310f94d831b22f901c5a744
Author: Yuchung Cheng <ycheng@xxxxxxxxxx>
Date: Wed Aug 12 11:18:18 2015 -0700
tcp: don't extend RTO on failed loss probe attempts
If TLP was unable to send a probe, it extended the RTO to
now + icsk_rto. But extending the RTO makes little sense
if no TLP probe went out. With this commit, instead of
extending the RTO we re-arm it relative to the transmit time
of the write queue head.
Signed-off-by: Yuchung Cheng <ycheng@xxxxxxxxxx>
Signed-off-by: Neal Cardwell <ncardwell@xxxxxxxxxx>
Signed-off-by: Nandita Dukkipati <nanditad@xxxxxxxxxx>
Acked-by: Eric Dumazet <edumazet@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 646244b223090e379070d149312b222867e42aa6
Merge: 182ad46 21696f7
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 13 16:51:00 2015 -0700
Merge branch 'cpsw-errata-workaround'
Mugunthan V N says:
====================
Add AM335x PG1.0 CPSW errata workaround
With commit 870915feabdc ("drivers: net: cpsw: remove
disable_irq/enable_irq as irq can be masked from cpsw itself"),
CPSW on AM335x beagle bone white is broken as there is a errata
for AM335x PG1.0. This patch series implements the workaround by
disabling the interrupts from ARM IRQ controller for AM335x SoC
in addition to the masking of interrupts in CPSW.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 21696f717b3404f17dfd5433d391ef55fbcb812b
Author: Mugunthan V N <mugunthanvnm@xxxxxx>
Date: Wed Aug 12 15:22:55 2015 +0530
ARM: dts: am33xx: update cpsw compatible
CPSW driver has been updated with compatibles for enabling errata
workarounds. So updating cpsw compatibles.
Signed-off-by: Mugunthan V N <mugunthanvnm@xxxxxx>
Acked-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e2095318aff16019fdedf2002222ae7076a51935
Author: Mugunthan V N <mugunthanvnm@xxxxxx>
Date: Wed Aug 12 15:22:54 2015 +0530
ARM: dts: dra7: update cpsw compatible
CPSW driver has been updated with compatibles for enabling errata
workarounds. So updating cpsw compatibles.
Signed-off-by: Mugunthan V N <mugunthanvnm@xxxxxx>
Acked-by: Tony Lindgren <tony@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7da1160002f1d59e79e7d89da474ff7c679a07a5
Author: Mugunthan V N <mugunthanvnm@xxxxxx>
Date: Wed Aug 12 15:22:53 2015 +0530
drivers: net: cpsw: add am335x errata workarround for interrutps
As per Am335x Errata [1] Advisory 1.0.9, The CPSW C0_TX_PEND and
C0_RX_PEND interrupt outputs provide a single transmit interrupt
that combines transmit channel interrupts TXPEND[7:0] and a
single receive interrupt that combines receive channel interrupts
RXPEND[7:0]. The TXPEND[0] and RXPEND[0] interrupt outputs are
connected to the ARM Cortex-A8 interrupt controller (INTC) rather
than the C0_TX_PEND and C0_RX_PEND interrupt outputs. So even
though CPSW interrupt is cleared by writing appropriate values to
EOI register the interrupt is not cleared in IRQ controller. So
interrupt is still pending and CPU is struck in ISR, the
workaround is to disable the interrupts in ARM irq controller.
[1] http://www.ti.com/lit/er/sprz360f/sprz360f.pdf
Signed-off-by: Mugunthan V N <mugunthanvnm@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 81db32a3c4627605a0e950d27a403ea02447ab60
Author: Tim Bird <tim.bird@xxxxxxxxxxxxxx>
Date: Mon Aug 10 15:16:16 2015 -0700
doc: Add more workqueue functions to the documentation
There are some workqueue functions declared in workqueue.h, so include
that in the workqueue section of the DocBook docs.
Signed-off-by: Tim Bird <tim.bird@xxxxxxxxxxxxxx>
Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Signed-off-by: Jonathan Corbet <corbet@xxxxxxx>
commit 182ad468e70fc7e8ff2e5d64344c690beaa00ddd
Merge: e8fed98 5b3e2e1
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Thu Aug 13 16:23:11 2015 -0700
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/ethernet/cavium/Kconfig
The cavium conflict was overlapping dependency
changes.
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 7229b87bb269c9e18cabbc43c5fb01c81d097b24
Author: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Sun Aug 9 22:37:46 2015 -0700
Input: elants_i2c - fix for devm_gpiod_get API change
Flags are now mandatory for devm_gpiod_get(). So let's use proper flag
to configure gpio for output instead of doing this by hand.
Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
[Dmitry: GPIOD_ASIS -> GPIOD_OUT_LOW]
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
commit f7ef1340bb501717372a39f4807d0ad519ebd432
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Mon Jul 20 09:23:37 2015 -0500
PCI: Remove pci_ats_enabled()
Remove pci_ats_enabled(). There are no callers outside the ATS code
itself. We don't need to check ats_cap, because if we don't find an ATS
capability, we'll never set ats_enabled.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Joerg Roedel <jroedel@xxxxxxx>
commit a71f938f3a9a7bc879296cd34ecae9effe5edf3f
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Mon Jul 20 09:24:32 2015 -0500
PCI: Stop caching ATS Invalidate Queue Depth
Stop caching the Invalidate Queue Depth in struct pci_dev.
pci_ats_queue_depth() is typically called only once per device, and it
returns a fixed value per-device, so callers who need the value frequently
can cache it themselves.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Joerg Roedel <jroedel@xxxxxxx>
commit ff9bee895c4d11a519a6b2c49451376025a6af4e
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Fri Jul 17 15:55:48 2015 -0500
PCI: Move ATS declarations to linux/pci.h so they're all together
Move ATS declarations to linux/pci.h so they're all in one place.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Joerg Roedel <jroedel@xxxxxxx>
commit a021f3019db7b40f0fe85b0a64c6be21e3665fbf
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Fri Jul 17 15:43:27 2015 -0500
PCI: Clean up ATS error handling
There's no need to BUG() if we enable ATS when it's already enabled. We
don't need to BUG() when disabling ATS on a device that doesn't support
ATS
or if it's already disabled. If ATS is enabled, certainly we found an ATS
capability in the past, so it should still be there now.
Clean up these error paths.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Joerg Roedel <jroedel@xxxxxxx>
commit c39127dbaf6c267f18d1cac14e2b0ecbfaa52d63
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Fri Jul 17 15:38:13 2015 -0500
PCI: Use pci_physfn() rather than looking up physfn by hand
Use the pci_physfn() helper rather than looking up physfn by hand.
No functional change.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Joerg Roedel <jroedel@xxxxxxx>
commit afdd596c42c4540308eae9f4c685d9bccc525cfc
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Fri Jul 17 15:35:18 2015 -0500
PCI: Inline the ATS setup code into pci_ats_init()
The ATS setup code in ats_alloc_one() is only used by pci_ats_init(), so
inline it there. No functional change.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Joerg Roedel <jroedel@xxxxxxx>
commit 3c765399524308ab36777a443ce77e19810a97d7
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Fri Jul 17 15:30:26 2015 -0500
PCI: Rationalize pci_ats_queue_depth() error checking
We previously returned -ENODEV for devices that don't support ATS (except
that we always returned 0 for VFs, whether or not they support ATS).
For consistency, always return -EINVAL (not -ENODEV) if the device doesn't
support ATS. Return zero for VFs that support ATS.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Joerg Roedel <jroedel@xxxxxxx>
commit 67930995d7fb8ae7d2078822b563010b289ace2e
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Fri Jul 17 15:27:34 2015 -0500
PCI: Reduce size of ATS structure elements
The extended capabilities list is linked with 12-bit pointers, and the ATS
Smallest Translation Unit and Invalidate Queue Depth fields are both 5
bits.
Use u16 and u8 to hold the extended capability address and the stu and
qdep
values. No functional change.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Joerg Roedel <jroedel@xxxxxxx>
commit d544d75ac96aa1b0a8a378826626a0fbd8ce4380
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Fri Jul 17 15:15:19 2015 -0500
PCI: Embed ATS info directly into struct pci_dev
The pci_ats struct is small and will get smaller, so I don't think it's
worth allocating it separately from the pci_dev struct.
Embed the ATS fields directly into struct pci_dev.
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Joerg Roedel <jroedel@xxxxxxx>
commit edc90fee916b4f0d14af9c6b5c08666747488ef8
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Fri Jul 17 15:05:46 2015 -0500
PCI: Allocate ATS struct during enumeration
Previously, we allocated pci_ats structures when an IOMMU driver called
pci_enable_ats(). An SR-IOV VF shares the STU setting with its PF, so
when
enabling ATS on the VF, we allocated a pci_ats struct for the PF if it
didn't already have one. We held the sriov->lock to serialize threads
concurrently enabling ATS on several VFS so only one would allocate the PF
pci_ats.
Gregor reported a deadlock here:
pci_enable_sriov
sriov_enable
virtfn_add
mutex_lock(dev->sriov->lock) # acquire sriov->lock
pci_device_add
device_add
BUS_NOTIFY_ADD_DEVICE notifier chain
iommu_bus_notifier
amd_iommu_add_device # iommu_ops.add_device
init_iommu_group
iommu_group_get_for_dev
iommu_group_add_device
__iommu_attach_device
amd_iommu_attach_device # iommu_ops.attach_device
attach_device
pci_enable_ats
mutex_lock(dev->sriov->lock) # deadlock
There's no reason to delay allocating the pci_ats struct, and if we
allocate it for each device at enumeration-time, there's no need for
locking in pci_enable_ats().
Allocate pci_ats struct during enumeration, when we initialize other
capabilities.
Note that this implementation requires ATS to be enabled on the PF first,
before on any of the VFs because the PF controls the STU for all the VFs.
Link: http://permalink.gmane.org/gmane.linux.kernel.iommu/9433
Reported-by: Gregor Dick <gdick@xxxxxxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Reviewed-by: Joerg Roedel <jroedel@xxxxxxx>
commit 2ec3182f9c20a9eef0dacc0512cf2ca2df7be5ad
Author: Dongsu Park <dpark@xxxxxxxxxx>
Date: Fri Dec 19 14:53:03 2014 +0100
Documentation: update notes in biovecs about arbitrarily sized bios
Update block/biovecs.txt so that it includes a note on what kind of
effects arbitrarily sized bios would bring to the block layer.
Also fix a trivial typo, bio_iter_iovec.
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Kent Overstreet <kent.overstreet@xxxxxxxxx>
Cc: Jonathan Corbet <corbet@xxxxxxx>
Cc: linux-doc@xxxxxxxxxxxxxxx
Signed-off-by: Dongsu Park <dpark@xxxxxxxxxx>
Signed-off-by: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit b54ffb73cadcdcff9cc1ae0e11f502407e3e2e4c
Author: Kent Overstreet <kent.overstreet@xxxxxxxxx>
Date: Tue May 19 14:31:01 2015 +0200
block: remove bio_get_nr_vecs()
We can always fill up the bio now, no need to estimate the possible
size based on queue parameters.
Acked-by: Steven Whitehouse <swhiteho@xxxxxxxxxx>
Signed-off-by: Kent Overstreet <kent.overstreet@xxxxxxxxx>
[hch: rebased and wrote a changelog]
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 6cf66b4caf9c71f64a5486cadbd71ab58d0d4307
Author: Kent Overstreet <kent.overstreet@xxxxxxxxx>
Date: Mon Dec 22 12:48:42 2014 +0100
fs: use helper bio_add_page() instead of open coding on bi_io_vec
Call pre-defined helper bio_add_page() instead of open coding for
iterating through bi_io_vec[]. Doing that, it's possible to make some
parts in filesystems and mm/page_io.c simpler than before.
Acked-by: Dave Kleikamp <shaggy@xxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: linux-fsdevel@xxxxxxxxxxxxxxx
Signed-off-by: Kent Overstreet <kent.overstreet@xxxxxxxxx>
[dpark: add more description in commit message]
Signed-off-by: Dongsu Park <dpark@xxxxxxxxxx>
Signed-off-by: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 8ae126660fddbeebb9251a174e6fa45b6ad8f932
Author: Kent Overstreet <kent.overstreet@xxxxxxxxx>
Date: Mon Apr 27 23:48:34 2015 -0700
block: kill merge_bvec_fn() completely
As generic_make_request() is now able to handle arbitrarily sized bios,
it's no longer necessary for each individual block driver to define its
own ->merge_bvec_fn() callback. Remove every invocation completely.
Cc: Jens Axboe <axboe@xxxxxxxxx>
Cc: Lars Ellenberg <drbd-dev@xxxxxxxxxxxxxxxx>
Cc: drbd-user@xxxxxxxxxxxxxxxx
Cc: Jiri Kosina <jkosina@xxxxxxx>
Cc: Yehuda Sadeh <yehuda@xxxxxxxxxxx>
Cc: Sage Weil <sage@xxxxxxxxxxx>
Cc: Alex Elder <elder@xxxxxxxxxx>
Cc: ceph-devel@xxxxxxxxxxxxxxx
Cc: Alasdair Kergon <agk@xxxxxxxxxx>
Cc: Mike Snitzer <snitzer@xxxxxxxxxx>
Cc: dm-devel@xxxxxxxxxx
Cc: Neil Brown <neilb@xxxxxxx>
Cc: linux-raid@xxxxxxxxxxxxxxx
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: "Martin K. Petersen" <martin.petersen@xxxxxxxxxx>
Acked-by: NeilBrown <neilb@xxxxxxx> (for the 'md' bits)
Acked-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Signed-off-by: Kent Overstreet <kent.overstreet@xxxxxxxxx>
[dpark: also remove ->merge_bvec_fn() in dm-thin as well as
dm-era-target, and resolve merge conflicts]
Signed-off-by: Dongsu Park <dpark@xxxxxxxxxx>
Signed-off-by: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 7140aafce2fc14c5af02fdb7859b6bea0108be3d
Author: Kent Overstreet <kent.overstreet@xxxxxxxxx>
Date: Wed Sep 25 13:37:01 2013 -0700
md/raid5: get rid of bio_fits_rdev()
Remove bio_fits_rdev() as sufficient merge_bvec_fn() handling is now
performed by blk_queue_split() in md_make_request().
Cc: Neil Brown <neilb@xxxxxxx>
Cc: linux-raid@xxxxxxxxxxxxxxx
Acked-by: NeilBrown <neilb@xxxxxxx>
Signed-off-by: Kent Overstreet <kent.overstreet@xxxxxxxxx>
[dpark: add more description in commit message]
Signed-off-by: Dongsu Park <dpark@xxxxxxxxxx>
Signed-off-by: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 7ef6b12a1966f273afb750e19e1e8129bea48fec
Author: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Date: Wed May 6 22:51:24 2015 -0700
md/raid5: split bio for chunk_aligned_read
If a read request fits entirely in a chunk, it will be passed directly to
the
underlying device (providing it hasn't failed of course). If it doesn't
fit,
the slightly less efficient path that uses the stripe_cache is used.
Requests that get to the stripe cache are always completely split up as
necessary.
So with RAID5, ripping out the merge_bvec_fn doesn't cause it to stop
work,
but could cause it to take the less efficient path more often.
All that is needed to manage this is for 'chunk_aligned_read' do some bio
splitting, much like the RAID0 code does.
Cc: Neil Brown <neilb@xxxxxxx>
Cc: linux-raid@xxxxxxxxxxxxxxx
Acked-by: NeilBrown <neilb@xxxxxxx>
Signed-off-by: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit b49a0871be31a745b2ef7912653683a1876ff701
Author: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Date: Fri May 22 00:46:56 2015 -0700
block: remove split code in blkdev_issue_{discard,write_same}
The split code in blkdev_issue_{discard,write_same} can go away
now that any driver that cares does the split. We have to make
sure bio size doesn't overflow.
For discard, we set max discard sectors to (1<<31)>>9 to ensure
it doesn't overflow bi_size and hopefully it is of the proper
granularity as long as the granularity is a power of two.
Acked-by: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Signed-off-by: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 0e28997ec476bad4c7dbe0a08775290051325f53
Author: Kent Overstreet <kent.overstreet@xxxxxxxxx>
Date: Mon Dec 2 18:30:25 2013 -0800
btrfs: remove bio splitting and merge_bvec_fn() calls
Btrfs has been doing bio splitting from btrfs_map_bio(), by checking
device limits as well as calling ->merge_bvec_fn() etc. That is not
necessary any more, because generic_make_request() is now able to
handle arbitrarily sized bios. So clean up unnecessary code paths.
Cc: Chris Mason <clm@xxxxxx>
Cc: Josef Bacik <jbacik@xxxxxx>
Cc: linux-btrfs@xxxxxxxxxxxxxxx
Signed-off-by: Kent Overstreet <kent.overstreet@xxxxxxxxx>
Signed-off-by: Chris Mason <clm@xxxxxx>
[dpark: add more description in commit message]
Signed-off-by: Dongsu Park <dpark@xxxxxxxxxx>
Signed-off-by: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 749b61dab30736eb95b1ee23738cae90973d4fc3
Author: Kent Overstreet <kent.overstreet@xxxxxxxxx>
Date: Sat Nov 23 23:11:25 2013 -0800
bcache: remove driver private bio splitting code
The bcache driver has always accepted arbitrarily large bios and split
them internally. Now that every driver must accept arbitrarily large
bios this code isn't nessecary anymore.
Cc: linux-bcache@xxxxxxxxxxxxxxx
Signed-off-by: Kent Overstreet <kent.overstreet@xxxxxxxxx>
[dpark: add more description in commit message]
Signed-off-by: Dongsu Park <dpark@xxxxxxxxxx>
Signed-off-by: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit c66a14d07c136cc35d4dcb84bfc7bc188be24d4c
Author: Kent Overstreet <kent.overstreet@xxxxxxxxx>
Date: Sat Nov 23 22:30:22 2013 -0800
block: simplify bio_add_page()
Since generic_make_request() can now handle arbitrary size bios, all we
have to do is make sure the bvec array doesn't overflow.
__bio_add_page() doesn't need to call ->merge_bvec_fn(), where
we can get rid of unnecessary code paths.
Removing the call to ->merge_bvec_fn() is also fine, as no driver that
implements support for BLOCK_PC commands even has a ->merge_bvec_fn()
method.
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Jens Axboe <axboe@xxxxxxxxx>
Signed-off-by: Kent Overstreet <kent.overstreet@xxxxxxxxx>
[dpark: rebase and resolve merge conflicts, change a couple of comments,
make bio_add_page() warn once upon a cloned bio.]
Signed-off-by: Dongsu Park <dpark@xxxxxxxxxx>
Signed-off-by: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 54efd50bfd873e2dbf784e0b21a8027ba4299a3e
Author: Kent Overstreet <kent.overstreet@xxxxxxxxx>
Date: Thu Apr 23 22:37:18 2015 -0700
block: make generic_make_request handle arbitrarily sized bios
The way the block layer is currently written, it goes to great lengths
to avoid having to split bios; upper layer code (such as bio_add_page())
checks what the underlying device can handle and tries to always create
bios that don't need to be split.
But this approach becomes unwieldy and eventually breaks down with
stacked devices and devices with dynamic limits, and it adds a lot of
complexity. If the block layer could split bios as needed, we could
eliminate a lot of complexity elsewhere - particularly in stacked
drivers. Code that creates bios can then create whatever size bios are
convenient, and more importantly stacked drivers don't have to deal with
both their own bio size limitations and the limitations of the
(potentially multiple) devices underneath them. In the future this will
let us delete merge_bvec_fn and a bunch of other code.
We do this by adding calls to blk_queue_split() to the various
make_request functions that need it - a few can already handle arbitrary
size bios. Note that we add the call _after_ any call to
blk_queue_bounce(); this means that blk_queue_split() and
blk_recalc_rq_segments() don't need to be concerned with bouncing
affecting segment merging.
Some make_request_fn() callbacks were simple enough to audit and verify
they don't need blk_queue_split() calls. The skipped ones are:
* nfhd_make_request (arch/m68k/emu/nfblock.c)
* axon_ram_make_request (arch/powerpc/sysdev/axonram.c)
* simdisk_make_request (arch/xtensa/platforms/iss/simdisk.c)
* brd_make_request (ramdisk - drivers/block/brd.c)
* mtip_submit_request (drivers/block/mtip32xx/mtip32xx.c)
* loop_make_request
* null_queue_bio
* bcache's make_request fns
Some others are almost certainly safe to remove now, but will be left
for future patches.
Cc: Jens Axboe <axboe@xxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: Ming Lei <ming.lei@xxxxxxxxxxxxx>
Cc: Neil Brown <neilb@xxxxxxx>
Cc: Alasdair Kergon <agk@xxxxxxxxxx>
Cc: Mike Snitzer <snitzer@xxxxxxxxxx>
Cc: dm-devel@xxxxxxxxxx
Cc: Lars Ellenberg <drbd-dev@xxxxxxxxxxxxxxxx>
Cc: drbd-user@xxxxxxxxxxxxxxxx
Cc: Jiri Kosina <jkosina@xxxxxxx>
Cc: Geoff Levand <geoff@xxxxxxxxxxxxx>
Cc: Jim Paris <jim@xxxxxxxx>
Cc: Philip Kelleher <pjk1939@xxxxxxxxxxxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Nitin Gupta <ngupta@xxxxxxxxxx>
Cc: Oleg Drokin <oleg.drokin@xxxxxxxxx>
Cc: Andreas Dilger <andreas.dilger@xxxxxxxxx>
Acked-by: NeilBrown <neilb@xxxxxxx> (for the 'md/md.c' bits)
Acked-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Reviewed-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
Signed-off-by: Kent Overstreet <kent.overstreet@xxxxxxxxx>
[dpark: skip more mq-based drivers, resolve merge conflicts, etc.]
Signed-off-by: Dongsu Park <dpark@xxxxxxxxxx>
Signed-off-by: Ming Lin <ming.l@xxxxxxxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit bdd2648e50508cbb2eb6d1c303e4d2d6d7505400
Author: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Date: Wed Aug 12 07:41:11 2015 +0900
ARM: EXYNOS: switch to using generic cpufreq driver for exynos4x12
The new CPU clock type allows the use of generic CPUfreq driver.
Switch Exynos4x12 to using generic cpufreq driver.
Previously (when exynos-cpufreq driver was used with boost
functionality) ARM_EXYNOS_CPU_FREQ_BOOST_SW config option
(which enabled boost functionality) selected EXYNOS_THERMAL
one. After switching Exynos4x12 platforms to use cpufreq-dt
driver boost support is enabled in the cpufreq-dt driver
itself (because there are turbo OPPs defined in the board's
DTS file). However we still would like to allow enabling
boost support only if thermal support is also enabled for
Exynos platforms. To achieve this make ARCH_EXYNOS config
option select THERMAL and EXYNOS_THERMAL ones.
Please also note that the switch to use the generic cpufreq-dt
driver fixes the minor issue present with the old code (support
for 'boost' mode in the exynos-cpufreq driver was enabled for
all supported SoCs even though 'boost' frequency was provided
only for Exynos4x12 ones).
Cc: Tomasz Figa <tomasz.figa@xxxxxxxxx>
Cc: Thomas Abraham <thomas.ab@xxxxxxxxxxx>
Cc: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Tested-by: Tobias Jakobi <tjakobi@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Tested-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit 86a76027457633488b0a83d5e2bb944159885605
Author: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Date: Thu Aug 13 06:55:41 2015 +0900
perf probe: Fix to add missed brace around if block
The commit 75186a9b09e4 (perf probe: Fix to show lines of sys_ functions
correctly) introduced a bug by a missed brace around if block. This
fixes to add it.
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Fixes: 75186a9b09e4 ("perf probe: Fix to show lines of sys_ functions
correctly")
Link:
http://lkml.kernel.org/r/20150812215541.9088.62425.stgit@xxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 2e169bb3ccc20fea5e6f59d1abcea249c6598163
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Aug 13 12:01:10 2015 +0200
iommu/io-pgtable-arm: Move init-fn declarations to io-pgtable.h
Avoid extern declarations in c files.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 6e6cfbc859481b2af7282170ff732fa5e035d842
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Aug 13 11:15:13 2015 +0200
iommu/msm: Use BUG_ON instead of if () BUG()
Found by a coccicheck script.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 543c8dcf1d3762c6fe372acf78eedc8898709106
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Aug 13 11:56:59 2015 +0200
iommu/vt-d: Access iomem correctly
This fixes wrong accesses to iomem introduced by the kdump
fixing code.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit b690420a406256c83ef2c7e96466052e5cab7676
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Aug 13 11:32:18 2015 +0200
iommu/vt-d: Make two functions static
These functions are only used in that file and can be
static.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit dc02e46e8d0234eed9f6e42f50763b406c380bc4
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Aug 13 11:15:13 2015 +0200
iommu/vt-d: Use BUG_ON instead of if () BUG()
Found by a coccicheck script.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 30e93761fbf706c0f8a6f7d1abc1b0ddbeea208c
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Aug 13 11:13:17 2015 +0200
iommu/vt-d: Return false instead of 0 in irq_remapping_cap()
The function return type is bool, so return false instead
of 0.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 23d3a98c13ee0ffe2647121fac7533282643e6f1
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Aug 13 11:15:13 2015 +0200
iommu/amd: Use BUG_ON instead of if () BUG()
Found by a coccicheck script.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 7aec51cbf0646cc15d719b08caea931576dc7f2a
Author: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Date: Wed Aug 12 15:48:37 2015 -0700
perf tools: Support static linking with libdw
The Fedora 22 version of libdw requires a couple of extra libraries to
link. With a dynamic link the dependencies are pulled in automatically,
but this doesn't work for static linking. Add the needed libraries
explicitely to the feature probe and the Makefile.
v2: Explicitly check for static linking and only add the dependencies
when -static is set. This is to avoid regressions on Arnaldo's system.
Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439419717-20601-1-git-send-email-andi@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 4160cd9e5ef9ac9f1c9c429e1606bf08a56c8a49
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Aug 13 11:31:48 2015 +0200
iommu/amd: Make a symbol static
Symbol is only used in that file and can be static.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit a130e69f28ba1d180242b581a15d09f06dad9227
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Aug 13 11:07:25 2015 +0200
iommu/amd: Simplify allocation in irq_remapping_alloc()
Allocate the irq data only in the loop.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 5e3863a74fb70d6a432504ba2fa16a998cd3736b
Author: Jonas Rabenstein <jonas.rabenstein@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri Aug 14 02:36:14 2015 +0900
cpufreq: exynos: Remove unselectable rule for arm-exynos-cpufreq.o
Commit 966f2a71a92d ("cpufreq: exynos: remove Exynos4x12 specific
cpufreq driver support") deleted option ARM_EXYNOS_CPUFREQ but missed
to delete a rule in drivers/cpufreq/Makefile which depends on that
option.
Remove unselectable rule for arm-exynos-cpufreq.o
from drivers/cpufreq/Makefile.
Signed-off-by: Jonas Rabenstein <jonas.rabenstein@xxxxxxxxxxxxxxxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit ba032795463bfc461937dbde7a345103a47f969b
Author: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Date: Fri Aug 14 02:29:48 2015 +0900
ARM: dts: add iommu property to JPEG device for exynos4
JPEG codec node has been added in parallel to the patch, which
added support for IOMMU to Exynos platform, so JPEG device for
Exynos4 SoCs lacked IOMMU property. This patch fixes this issue.
Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>
Reviewed-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit c8b34e36ca1a3e4c8ada87acefbb25119ee89347
Author: Alexis Ballier <aballier@xxxxxxxxxx>
Date: Fri Aug 14 02:27:33 2015 +0900
ARM: dts: enable SPI1 for exynos4412-odroidu3
SPI1 is available on IO Port #2 (as depicted on their website)
in PCB Revision 0.5 of Hardkernel Odroid U3 board.
The shield connects a 256KiB spi-nor flash on that bus.
Signed-off-by: Alexis Ballier <aballier@xxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit e0b12512b40c7a1cc0825773d118ecfdb464be41
Author: Michal Suchanek <hramrach@xxxxxxxxx>
Date: Thu Jul 30 23:12:43 2015 +0900
ARM: dts: Add SPI CS on exynos5250-snow
Although there is only one choice of chipselect it is necessary to
specify it. The driver cannot claim the gpio otherwise.
Signed-off-by: Michal Suchanek <hramrach@xxxxxxxxx>
Acked-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Acked-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit 5600f8cc8aa8bdcf335e84a7f85eae204b379bae
Author: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Date: Thu Jul 30 23:02:22 2015 +0900
ARM: dts: Add CPU cooling binding for exynos3250 boards
This patch add the cooling device to control the overheating issue on
Exynos3250-based Rinato/Monk board.
Signed-off-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Acked-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
Acked-by Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit df09df6f9ac384fef825c2c21c62cd576acda17f
Author: Chanho Park <parkch98@xxxxxxxxx>
Date: Thu Jul 30 23:11:00 2015 +0900
ARM: dts: add exynos5422-cpus.dtsi to correct cpu order
The odroid-xu3 board which is based on exynos5422 not exynos5800
is booted from cortex-a7 core unlike exynos5800. The odroid-xu3's
cpu order is quite strange. cpu0 and cpu5-7 are cortex-a7 cores and
cpu1-4 are cortex-a15 cores. To correct this mis-odering, I added
exynos5422-cpus.dtsi and reversing cpu orders from exynos5420.
Now, cpu0-3 are cortex-a7 and cpu4-7 are cortex-a15.
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Chanho Park <parkch98@xxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit f44997412e5b39b6a1231f16555120c5b2aae0ed
Author: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Date: Wed Aug 12 07:38:45 2015 +0900
ARM: dts: add CPU OPP and regulator supply property for exynos4x12
For Exynos4x12 platforms, add CPU operating points (using
opp-v2 bindings) and CPU regulator supply properties for
migrating from Exynos specific cpufreq driver to using
generic cpufreq driver.
Based on the earlier work by Thomas Abraham.
Cc: Doug Anderson <dianders@xxxxxxxxxxxx>
Cc: Andreas Faerber <afaerber@xxxxxxx>
Cc: Thomas Abraham <thomas.ab@xxxxxxxxxxx>
Reviewed-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Tested-by: Tobias Jakobi <tjakobi@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Tested-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit 48816affd931c44045913873dff21693cd7fc948
Author: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Date: Fri Jul 24 12:55:21 2015 +0900
ARM: dts: Add CPU OPP and regulator supply property for exynos3250
This patch add CPU operating points which include CPU frequency and
regulator voltage to use generic cpufreq drivers.
Signed-off-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Acked-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit 846c53009170bae6cfe0b75eb793c6966d2c0f83
Author: Thomas Abraham <thomas.ab@xxxxxxxxxxx>
Date: Wed Jul 1 15:10:36 2015 +0200
ARM: dts: add CPU OPP and regulator supply property for exynos5250
For Exynos5250 platforms, add CPU operating points and CPU regulator
supply properties for migrating from Exynos specific cpufreq driver
to using generic cpufreq driver.
Cc: Doug Anderson <dianders@xxxxxxxxxxxx>
Cc: Andreas Faerber <afaerber@xxxxxxx>
Signed-off-by: Thomas Abraham <thomas.ab@xxxxxxxxxxx>
[b.zolnierkie: split Exynos5250 support from the original patch]
[b.zolnierkie: added CPU regulator supply property for Spring boards]
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Reviewed-by: Javier Martinez Canillas <javier@xxxxxxxxxxxx>
Tested-by: Javier Martinez Canillas <javier@xxxxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit 58c036a7ac417013bc01d09ae876265069e189d9
Author: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Date: Fri Jul 24 12:58:41 2015 +0900
ARM: EXYNOS: Add exynos3250 compatible to use generic cpufreq driver
This patch add exynos3250 compatible string to exynos_cpufreq_matches
for supporting generic cpufreq driver on Exynos3250.
Signed-off-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Acked-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit c913f022dacad8c92ce1ed6bca7587e45a3b380e
Author: Thomas Abraham <thomas.ab@xxxxxxxxxxx>
Date: Wed Jul 1 15:10:37 2015 +0200
ARM: EXYNOS: switch to using generic cpufreq driver for exynos5250
The new CPU clock type allows the use of generic CPUfreq driver.
Switch Exynos5250 to using generic cpufreq driver.
Cc: Tomasz Figa <tomasz.figa@xxxxxxxxx>
Signed-off-by: Thomas Abraham <thomas.ab@xxxxxxxxxxx>
[b.zolnierkie: split Exynos5250 support from the original patch]
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Reviewed-by: Javier Martinez Canillas <javier@xxxxxxxxxxxx>
Tested-by: Javier Martinez Canillas <javier@xxxxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit 966f2a71a92d1e7adafb5c62d1634beb451b1500
Author: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Date: Wed Aug 12 07:44:22 2015 +0900
cpufreq: exynos: remove Exynos4x12 specific cpufreq driver support
Exynos4x12 based platforms have switched over to use generic
cpufreq driver for cpufreq functionality. So the Exynos
specific cpufreq support for these platforms can be removed.
Also once Exynos4x12 based platforms support have been removed
the shared exynos-cpufreq driver is no longer needed and can
be deleted.
Based on the earlier work by Thomas Abraham.
Cc: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Cc: Thomas Abraham <thomas.ab@xxxxxxxxxxx>
Reviewed-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Tested-by: Tobias Jakobi <tjakobi@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Tested-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit cd6aceef028afc3fa216e3e7bc94cc31632cad43
Author: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Date: Wed Aug 12 07:36:47 2015 +0900
clk: exynos4x12: add cpu clock configuration data and instantiate cpu
clock
With the addition of the new Samsung specific cpu-clock type, the
arm clock can be represented as a cpu-clock type. Add the CPU clock
configuration data and instantiate the CPU clock type for Exynos4x12.
Based on the earlier work by Thomas Abraham.
Cc: Tomasz Figa <tomasz.figa@xxxxxxxxx>
Cc: Michael Turquette <mturquette@xxxxxxxxxxxx>
Cc: Thomas Abraham <thomas.ab@xxxxxxxxxxx>
Reviewed-by: Javier Martinez Canillas <javier@xxxxxxxxxxxxxxx>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Acked-by: Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx>
Tested-by: Tobias Jakobi <tjakobi@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
Tested-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene@xxxxxxxxxx>
commit 41609892701e26724b8617201f43254cadf2e7ae
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Wed Aug 12 15:59:45 2015 +0530
blk-cgroup: Drop unlikely before IS_ERR(_OR_NULL)
IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag and there
is no need to do that again from its callers. Drop it.
Acked-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxx>
commit 11cec15bf3fb498206ef63b1fa26c27689e02d0e
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Thu Aug 6 14:20:31 2015 +0200
iommu/tegra-smmu: Parameterize number of TLB lines
The number of TLB lines was increased from 16 on Tegra30 to 32 on
Tegra114 and later. Parameterize the value so that the initial default
can be set accordingly.
On Tegra30, initializing the value to 32 would effectively disable the
TLB and hence cause massive latencies for memory accesses translated
through the SMMU. This is especially noticeable for isochronuous clients
such as display, whose FIFOs would continuously underrun.
Fixes: 891846516317 ("memory: Add NVIDIA Tegra memory controller support")
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 1ec0e115f8604940491861d207cc1e1478db97b3
Author: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
Date: Tue May 19 16:49:12 2015 +0200
ARM: tegra: cpuidle: implement cpuidle_state.enter_freeze()
This callback is expected to do the same as enter() but it has to
guarantee that interrupts aren't enabled at any point in its execution,
as the tick is frozen.
It will be called when the system goes to suspend-to-idle and will
reduce power usage because CPUs won't be awaken for unnecessary IRQs.
By setting the CPUIDLE_FLAG_TIMER_STOP flag, we can reuse the same code
for both the enter() and enter_freeze() callbacks.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
Cc: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit fc0cf1773434c153a831067a29935e4627803583
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Mon Feb 23 15:24:11 2015 +0100
ARM: tegra: Disable cpuidle if PSCI is available
This is only relevant on Tegra114 and Tegra124, because earlier Tegra
generations used Cortex-A9 without secure extensions.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 592431b0369dc7a1f4a68f15ff0c48d94b66297f
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Tue Aug 4 15:25:03 2015 +0200
soc/tegra: pmc: Use existing pclk reference
The driver requests the pclk clock at probe time already and stores its
reference to it in struct tegra_pmc, so there is no need to look it up
everytime it is needed. Use the existing reference instead.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 4a4466a6a418b96d6cb07ffb46cefa13df8f12ef
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Jul 3 11:50:27 2015 +0200
soc/tegra: pmc: Remove unnecessary return statement
Functions returning no value don't need an explicit return statement.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit e538674740e632b57091f72cc06c0b03b45fb021
Author: Andreas Gruenbacher <andreas.gruenbacher@xxxxxxxxx>
Date: Tue Aug 11 11:30:31 2015 +0200
nfsd: Fix two typos in comments
(espect -> expect) and (no -> know)
Signed-off-by: Andreas Gruenbacher <agruenba@xxxxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 9462510ce31e2b91156bdcc33e4c737e6768e5f8
Author: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
Date: Tue Jul 14 10:29:55 2015 +0200
pinctrl: tegra: Only set the gpio range if needed
If the gpio DT node has the gpio-ranges property, the range will be
added by the gpio core and doesn't need to be added by the pinctrl
driver.
By having the gpio-ranges property, we have an explicit dependency from
the gpio node to the pinctrl node and we can stop using the deprecated
pinctrl_add_gpio_range() function.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
Acked-by: Stephen Warren <swarren@xxxxxxxxxx>
Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit c87fb4a378f93f114b9906e180d83877cee4e7f4
Author: J. Bruce Fields <bfields@xxxxxxxxxx>
Date: Thu Aug 6 12:47:02 2015 -0400
lockd: NLM grace period shouldn't block NFSv4 opens
NLM locks don't conflict with NFSv4 share reservations, so we're not
going to learn anything new by watiting for them.
They do conflict with NFSv4 locks and with delegations.
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 4bc6603778e473938ae815123b786e724084790c
Author: Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
Date: Thu Jul 30 09:52:13 2015 -0400
nfsd: include linux/nfs4.h in export.h
export.h refers to the pnfs_layouttype enum, which is defined there.
Signed-off-by: Jeff Layton <jeff.layton@xxxxxxxxxxxxxxx>
Reviewed-by: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 7c9fd23ff12e04f36be5ae5ff5dfe72fb913f215
Author: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Date: Fri Jul 31 14:58:21 2015 +0900
soc: tegra: Remove redundant $(CONFIG_ARCH_TEGRA) in Makefile
Kbuild descends into drivers/soc/tegra/ only when CONFIG_ARCH_TEGRA
is enabled. (see drivers/soc/Makefile)
$(CONFIG_ARCH_TEGRA) in drivers/soc/tegra/Makefile always evaluates
to 'y'.
Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 15ee1f7d1432c8a781df5d8f92c18bd952088667
Author: Heiko Stuebner <heiko@xxxxxxxxx>
Date: Tue Aug 11 18:12:03 2015 +0800
clk: rockchip: add pclk_pd_pmu to the list of rk3288 critical clocks
pclk_pd_pmu needs to keep running and with the upcoming gpio clock
handling this is not always the case anymore. So add it to the list
of critical clocks for now.
Signed-off-by: Heiko Stuebner <heiko@xxxxxxxxx>
Signed-off-by: Lin Huang <hl@xxxxxxxxxxxxxx>
Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
Acked-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 588c43a7bd5a53ae523b318e1db16bdd59963a3c
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Mon Mar 23 10:45:12 2015 +0100
memory: tegra: Add Tegra210 support
Add the table of memory clients and SWGROUPs for Tegra210 to enable SMMU
support for this new SoC.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 3c01cf3befa66cc21f06672685cf59a53056887a
Author: Paul Walmsley <paul@xxxxxxxxx>
Date: Thu Jun 4 19:33:48 2015 +0000
memory: tegra: Add support for a variable-size client ID bitfield
Recent versions of the Tegra MC hardware extend the size of the client
ID bitfield in the MC_ERR_STATUS register by one bit. While one could
simply extend the bitfield for older hardware, that would allow data
from reserved bits into the driver code, which is generally a bad idea
on principle. So this patch instead passes in the client ID mask from
from the per-SoC MC data.
There's no MC support for T210 (yet), but when that support winds up
in the kernel, the appropriate soc->client_id_mask value for that chip
will be 0xff.
Based on an original patch by David Ung <davidu@xxxxxxxxxx>.
Signed-off-by: Paul Walmsley <paul@xxxxxxxxx>
Cc: Paul Walmsley <pwalmsley@xxxxxxxxxx>
Cc: Thierry Reding <treding@xxxxxxxxxx>
Cc: David Ung <davidu@xxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 4080e99b8341f81c4ed1e17d8ef44d171c473a1b
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:30:12 2015 +0100
iommu/tegra-smmu: Factor out tegra_smmu_set_pde()
This code is used both when creating a new page directory entry and when
tearing it down, with only the PDE value changing between both cases.
Factor the code out so that it can be reused.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
[treding@xxxxxxxxxx: make commit message more accurate]
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 7ffc6f066eb73b07a0ef7c94d05107aef271ac21
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Thu Aug 6 14:56:39 2015 +0200
iommu/tegra-smmu: Extract tegra_smmu_pte_get_use()
Extract the use count reference accounting into a separate function and
separate it from allocating the PTE.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
[treding@xxxxxxxxxx: extract and write commit message]
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 707917cbc6ac0c0ea968b5eb635722ea84808286
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:30:02 2015 +0100
iommu/tegra-smmu: Use __GFP_ZERO to allocate zeroed pages
Rather than explicitly zeroing pages allocated via alloc_page(), add
__GFP_ZERO to the gfp mask to ask the allocator for zeroed pages.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 05a65f06f69fa6c487c2933f2971d9ec4e33eb0d
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:29:57 2015 +0100
iommu/tegra-smmu: Remove PageReserved manipulation
Remove the unnecessary manipulation of the PageReserved flags in the
Tegra SMMU driver. None of this is required as the page(s) remain
private to the SMMU driver.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit e3c971960fd41fc55235ba05b95e053355cb0e73
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:29:52 2015 +0100
iommu/tegra-smmu: Convert to use DMA API
Use the DMA API instead of calling architecture internal functions in
the Tegra SMMU driver.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit d62c7a886c2bc9f9258164814245dc0678b9a52e
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:29:46 2015 +0100
iommu/tegra-smmu: smmu_flush_ptc() wants device addresses
Pass smmu_flush_ptc() the device address rather than struct page
pointer.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit b8fe03827b192a23d04e99c40d72e6b938fa6576
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:29:41 2015 +0100
iommu/tegra-smmu: Split smmu_flush_ptc()
smmu_flush_ptc() is used in two modes: one is to flush an individual
entry, the other is to flush all entries. We know at the call site
which we require. Split the function into smmu_flush_ptc_all() and
smmu_flush_ptc().
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 4b3c7d10765403ab19628fb7d530b8ce1c50b81d
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:29:36 2015 +0100
iommu/tegra-smmu: Move flush_dcache to tegra-smmu.c
Drivers should not be using __cpuc_* functions nor outer_cache_flush()
directly. This change partly cleans up tegra-smmu.c.
The only difference between cache handling of the tegra variants is
Denver, which omits the call to outer_cache_flush(). This is due to
Denver being an ARM64 CPU, and the ARM64 architecture does not provide
this function. (This, in itself, is a good reason why these should not
be used.)
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
[treding@xxxxxxxxxx: fix build failure on 64-bit ARM]
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 32924c76b0cbc67aa4cf0741f7bc6c37f097aaf3
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:29:31 2015 +0100
iommu/tegra-smmu: Use kcalloc() to allocate counter array
Use kcalloc() to allocate the use-counter array for the page directory
entries/page tables. Using kcalloc() allows us to be provided with
zero-initialised memory from the allocators, rather than initialising
it ourselves.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 853520fa96511e4a49942d2cba34a329528c7e41
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:29:26 2015 +0100
iommu/tegra-smmu: Store struct page pointer for page tables
Store the struct page pointer for the second level page tables, rather
than working back from the page directory entry. This is necessary as
we want to eliminate the use of physical addresses used with
arch-private functions, switching instead to use the streaming DMA API.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 0b42c7c1132f331fba263f0d2ca23544770584b7
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:29:21 2015 +0100
iommu/tegra-smmu: Fix page table lookup in unmap/iova_to_phys methods
Fix the page table lookup in the unmap and iova_to_phys methods.
Neither of these methods should allocate a page table; a missing page
table should be treated the same as no mapping present.
More importantly, using as_get_pte() for an IOVA corresponding with a
non-present page table entry increments the use-count for the page
table, on the assumption that the caller of as_get_pte() is going to
setup a mapping. This is an incorrect assumption.
Fix both of these bugs by providing a separate helper which only looks
up the page table, but never allocates it. This is akin to pte_offset()
for CPU page tables.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 34d35f8cbe51bf93faf3214ee5b5d6f8ae7df4c1
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:29:16 2015 +0100
iommu/tegra-smmu: Add iova_pd_index() and iova_pt_index() helpers
Add a pair of helpers to get the page directory and page table indexes.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 8482ee5ea1097445f6498ee522965f5311667763
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:29:10 2015 +0100
iommu/tegra-smmu: Factor out common PTE setting
Factor out the common PTE setting code into a separate function.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit b98e34f0c6f1c4ac7af41afecc4a26f5f2ebe68d
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:29:05 2015 +0100
iommu/tegra-smmu: Fix unmap() method
The Tegra SMMU unmap path has several problems:
1. as_pte_put() can perform a write-after-free
2. tegra_smmu_unmap() can perform cache maintanence on a page we have
just freed.
3. when a page table is unmapped, there is no CPU cache maintanence of
the write clearing the page directory entry, nor is there any
maintanence of the IOMMU to ensure that it sees the page table has
gone.
Fix this by getting rid of as_pte_put(), and instead coding the PTE
unmap separately from the PDE unmap, placing the PDE unmap after the
PTE unmap has been completed.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 9113785c3e918187b6b0c084c60e0344a2f1685c
Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 13:29:00 2015 +0100
iommu/tegra-smmu: Fix iova_to_phys() method
iova_to_phys() has several problems:
(a) iova_to_phys() is supposed to return 0 if there is no entry present
for the iova.
(b) if as_get_pte() fails, we oops the kernel by dereferencing a NULL
pointer. Really, we should not even be trying to allocate a page
table at all, but should only be returning the presence of the 2nd
level page table. This will be fixed in a subsequent patch.
Treat both of these conditions as "no mapping" conditions.
Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 8152d8cc593095fab36d7b71365bd32c9c1dfd29
Author: Marcus Cooper <codekipper@xxxxxxxxx>
Date: Wed Aug 12 19:27:48 2015 +0200
pinctrl: sun4i: add spdif to pin description.
Signed-off-by: Marcus Cooper <codekipper@xxxxxxxxx>
Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 929550b9f9f870d73489df98318a740183c2e955
Author: Dirk Behme <dirk.behme@xxxxxxxxxxxx>
Date: Tue Aug 11 15:51:59 2015 +0300
gpio: mxc: fix section mismatch warning
Fix the section mismatch warning
WARNING: vmlinux.o(.text+0x2b2788): Section mismatch in reference from
the function mxc_gpio_probe() to the function .init.text:mxc_gpio_init_gc()
The function mxc_gpio_probe() references
the function __init mxc_gpio_init_gc().
This is often because mxc_gpio_probe lacks a __init
annotation or the annotation of mxc_gpio_init_gc is wrong.
Signed-off-by: Dirk Behme <dirk.behme@xxxxxxxxxxxx>
Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@xxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 39ba928f8b34720b60c68d4c1bb274ae219ab39e
Author: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Date: Thu Aug 13 20:06:41 2015 +0800
spi: Mediatek: fixup cpu_to_le32 incorrect usage
writel() already does a cpu_to_le32 conversion, so
remove cpu_to_le32().
Signed-off-by: Leilk Liu <leilk.liu@xxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit d3fb9800146b7ad96b7604755c1a943fe1abbde2
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Thu Aug 13 18:09:49 2015 +0530
regulator: core: Spelling fix
Trivial spell fix, s/succesfully/successfully.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 0bf413558eb5668fe92b1a1931dc26b0df5908ae
Merge: 3d3cacc ba68227
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 13 15:05:06 2015 +0200
Merge tag 'qcom-soc-for-4.3' of
git://codeaurora.org/quic/kernel/agross-msm into next/drivers
Qualcomm ARM Based SoC Updates for 4.3
* Add SMEM driver
* Add SMD driver
* Add RPM over SMD driver
* Select QCOM_SCM by default
* tag 'qcom-soc-for-4.3' of git://codeaurora.org/quic/kernel/agross-msm:
devicetree: soc: Add Qualcomm SMD based RPM DT binding
soc: qcom: Driver for the Qualcomm RPM over SMD
soc: qcom: Add Shared Memory Driver
soc: qcom: Add device tree binding for Shared Memory Device
drivers: qcom: Select QCOM_SCM unconditionally for QCOM_PM
soc: qcom: Add Shared Memory Manager driver
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 129e5824cd96d9289679973f0ff7c48e88d569bb
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Mon Jul 27 11:10:15 2015 +0800
sunrpc: Switch to using hash list instead single list
Switch using list_head for cache_head in cache_detail,
it is useful of remove an cache_head entry directly from cache_detail.
v8, using hash list, not head list
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Reviewed-by: NeilBrown <neilb@xxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit c8c081b70cb563cc4d41ab9933fa3323c6f6ffca
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Mon Jul 27 11:09:42 2015 +0800
sunrpc/nfsd: Remove redundant code by exports seq_operations functions
Nfsd has implement a site of seq_operations functions as sunrpc's cache.
Just exports sunrpc's codes, and remove nfsd's redundant codes.
v8, same as v6
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Reviewed-by: NeilBrown <neilb@xxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 9936f2ae37482aff54ce53918c69b378bb50097c
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Mon Jul 27 11:09:10 2015 +0800
sunrpc: Store cache_detail in seq_file's private directly
Cleanup.
Just store cache_detail in seq_file's private,
an allocated handle is redundant.
v8, same as v6.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Reviewed-by: NeilBrown <neilb@xxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 7ba6cad6c88f1bf0b7d66d9628d7c3f36ecb4bfe
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Wed Jun 24 16:33:37 2015 +0800
nfsd: New helper nfsd4_cb_sequence_done() for processing more cb errors
According to Christoph's advice, this patch introduce a new helper
nfsd4_cb_sequence_done() for processing more callback errors, following
the example of the client's nfs41_sequence_done().
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
commit 509b642ec1cb161f0e9d349bb6bd416554955b3a
Merge: ab39aab d93ac74
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 13 14:48:09 2015 +0200
Merge tag 'berlin64-for-v4.3-1' of
git://git.infradead.org/users/hesselba/linux-berlin into next/arm64
Initial support for Marvell Berlin4CT ARM64 SoC
* tag 'berlin64-for-v4.3-1' of
git://git.infradead.org/users/hesselba/linux-berlin:
arm64: dts: Add dts files for Marvell Berlin4CT SoC
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 952cfbd38e263ae81fbb4e575fe40d220891d68b
Author: Ulises Brindis <ubrindis56@xxxxxxxxx>
Date: Wed Aug 5 10:23:07 2015 -0700
gpio/mxc: mask gpio interrupts in suspend
Currently in the FSL platform all GPIO interrupts in a bank are muxed
into two GPIO lines to the GPC interrupt controller. In each GPIO bank
GPIOs 0-15 are OR'ed into one GPC interrupt controller interrupt and 16-31
are OR'ed into another. With the current code, if any of the 0-15 or
16-31 interrupts are marked as wakeup capable, all interrupts belonging
to that sub-bank (either 0-15 or 16-31) will wake up the device. This is
because interrupts are only being masked at the interrupt controller
and not at the GPIO controller.
This patch allows masking of GPIO interrupts at the GPIO controller during
suspend if they have not been labeled wakeup capable. This patch uses
preexisting IRQCHIP_MASK_ON_SUSPEND flag while initializing the GPIO
interrupts to get the desired behavior.
Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
Cc: Alexandre Courbot <gnurou@xxxxxxxxx>
Cc: linux-gpio@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <edubezval@xxxxxxxxx>
Signed-off-by: Ulises Brindis <ubrindis56@xxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 627c89b4d7c0a916b7702e23ded6e063dcb14ad5
Author: Axel Lin <axel.lin@xxxxxxxxxx>
Date: Wed Aug 5 22:37:41 2015 +0800
gpio: omap: Fix missing raw locks conversion
Fix below build warning:
CC drivers/gpio/gpio-omap.o
drivers/gpio/gpio-omap.c: In function 'omap_gpio_irq_type':
drivers/gpio/gpio-omap.c:504:3: warning: passing argument 1 of
'spin_unlock_irqrestore' from incompatible pointer type [enabled by default]
include/linux/spinlock.h:360:29: note: expected 'struct spinlock_t *' but
argument is of type 'struct raw_spinlock_t *'
Fixes: commit 4dbada2be460 ("gpio: omap: use raw locks for locking")
Signed-off-by: Axel Lin <axel.lin@xxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 5f6f02cd49d61e9856ff2c337578316a1a1b3f88
Merge: 3afa129 cbfe8fa
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Thu Aug 13 14:42:55 2015 +0200
Merge tag 'v4.2-rc4' into devel
Linux 4.2-rc4
commit 627b1516a390e19fb26b1c0c9bd2546722524965
Author: Wei Chen <Wei.Chen@xxxxxxx>
Date: Wed Aug 5 03:22:14 2015 +0000
pinctrl: atlas7: clear ugly branch statements for pull and drivestrength
To set/get atlas7 pull & drive strength, we use lots of if/else
to check pad type. But except mask value or immediate value, all
actions in these conditional branches are the same.
So we use predefined pull info table and drive strength table
to reduce these redundancy code.
Signed-off-by: Wei Chen <Wei.Chen@xxxxxxx>
Signed-off-by: Barry Song <Baohua.Song@xxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 94fdc2e627d1b479a117cd8b9ece5f4613a5c956
Author: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx>
Date: Thu Aug 6 12:46:31 2015 -0400
orinoco: Do not call wiphy_unregister() from free_orinocodev()
alloc_orinocodev() would allocate the wiphy entry, but it would only get
registered much later in orinoco_init(). If something failed in the init
process inbetween the call to alloc_orinocodev() and the completion
of orinoco_init(), the drivers would end up calling wiphy_unregister()
with a NULL pointer causing beautiful OOPS fireworks.
Explicitly call wiphy_unregister() instead in the right places.
Signed-off-by: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit cb9d61e5304e2880180e4ccf685a298c868094e0
Author: Aniket Nagarnaik <aniketn@xxxxxxxxxxx>
Date: Thu Aug 6 00:39:16 2015 -0700
mwifiex: claim sdio bus while downloading the firmware
Our 8887 A2 chip can have separate firmware images for
bluetooth and WLAN. We observed an issue during parallel
downloading of these images by btmrvl and mwifiex drivers.
This patch claims sdio bus before starting of the firmware
download in mwifiex and releases it after completion to
fix the problem.
Signed-off-by: Aniket Nagarnaik <aniketn@xxxxxxxxxxx>
Signed-off-by: Amitkumar Karwar <akarwar@xxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 2375fa2b36feaf34c7728ee999dc4d8f4d92031d
Author: chunfan chen <jeffc@xxxxxxxxxxx>
Date: Wed Aug 5 06:09:42 2015 -0700
mwifiex: fix unable to connect hidden SSID AP on DFS channel
We will check if any hidden SSID found in passive scan channels
and do specific SSID active scan for those channels.
Signed-off-by: chunfan chen <jeffc@xxxxxxxxxxx>
Signed-off-by: Amitkumar Karwar <akarwar@xxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit eee7f1961b9d85d1fbd1febf73c90d421cc75536
Author: Zhaoyang Liu <liuzy@xxxxxxxxxxx>
Date: Wed Aug 5 06:09:41 2015 -0700
mwifiex: add firmware dump support for SD8997
This patch adds firmware dump feature for SD8997 chipset.
The difference here is only one memory type is needed
to save all firmware information. Device dump information
will be uploaded to usersapace file.
Signed-off-by: Zhaoyang Liu <liuzy@xxxxxxxxxxx>
Signed-off-by: Cathy Luo <cluo@xxxxxxxxxxx>
Signed-off-by: Amitkumar Karwar <akarwar@xxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 6d85ef00d9dfe3bb61b021476465fa4e371ed076
Author: Zhaoyang Liu <liuzy@xxxxxxxxxxx>
Date: Wed Aug 5 06:09:40 2015 -0700
mwifiex: add support for 8997 chipset
This patch adds support for 8997 chipset to mwifiex
with SDIO/PCIe/USB interface.
The corresponding firmware image files are located in:
"mrvl/sd8997_uapsta.bin"
"mrvl/pcie8997_uapsta.bin"
"mrvl/usb8997_uapsta.bin"
Signed-off-by: Zhaoyang Liu <liuzy@xxxxxxxxxxx>
Signed-off-by: Cathy Luo <cluo@xxxxxxxxxxx>
Signed-off-by: Amitkumar Karwar <akarwar@xxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 9ef7e25ff62033065ec019425a9c769374455a1a
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Tue Apr 14 14:57:14 2015 +0200
drm/panel: Add Samsung prefix to panel drivers
The likelihood of getting a large number of panel drivers from different
vendors is quite high. Add a prefix to the two existing Samsung panel
drivers to set a guideline for future patch submissions. Using vendor
prefixes consistently should allow a cleaner organization of the tree.
Acked-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 3b1f0e86958b8afcfb6980f987c41e149480f9bd
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Tue Aug 4 10:49:27 2015 +0300
mwifiex: usb: return an error if kmalloc fails
The current code returns success if kmalloc fails.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Acked-by: Amitkumar Karwar <akarwar@xxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 3544f9f150bb58a3678c161a505b186893971c8a
Author: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Date: Mon Aug 3 16:15:53 2015 -0500
rtlwifi: rtl8192c-common: Fix two typos
In this driver, two variables are masked by one quantity, and then tested
against a second number with more bits that the mask. Accordingly, the
test always fails. To minimize the possibility of such typos, a symbolic
definition of the mask is created and used.
The separate load and mask operations are also combined into a single
statement.
Reported-by: David Binderman <dcb314@xxxxxxxxxxx>
Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Cc: David Binderman <dcb314@xxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 8d882bcf82743f20b0546088f935a718b4ae6f60
Author: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Date: Mon Aug 3 15:56:16 2015 -0500
rtlwifi: rtl8192ee: Fix firmware header endian issues
This driver is converted to use the common firmware header struct.
Because the old header definition failed to indicate that the multi-byte
entries should be little endian, several problems were thus exposed.
These are fixed.
Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 201b63c7c907bcc89bb11797ce2ca2a93027004b
Author: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Date: Mon Aug 3 15:56:15 2015 -0500
rtlwifi: rtl888ee: Fix firmware header endian issues
This driver is converted to use the common firmware header struct.
Because the old header definition failed to indicate that the multi-byte
entries should be little endian, several problems were thus exposed.
These are fixed.
Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit b290b57d18aa0e1d35caf209ccc12ac3ef14a6b3
Author: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Date: Mon Aug 3 15:56:14 2015 -0500
rtlwifi: rtl8192de: Fix firmware header endian issues
This driver is converted to use the common firmware header struct.
Because the old header definition failed to indicate that the multi-byte
entries should be little endian, several problems were thus exposed.
These are fixed.
Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 253f10abb7c24665988cf0abda65acaa40ce5815
Author: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Date: Mon Aug 3 15:56:13 2015 -0500
rtlwifi: rtl8821ae: Fix firmware endian issues
This driver is converted to use the common firmware header struct.
Because the old header definition failed to indicate that the multi-byte
entries should be little endian, several problems were thus exposed.
These are fixed.
Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 7c24d086ef9ccbffc46f5f9e2680f292ca356166
Author: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Date: Mon Aug 3 15:56:12 2015 -0500
rtlwifi: rtl8723ae: rtl8723be: rtl8723com: Fix firmware header endian
issues
The drivers are converted to use the common firmware header struct.
Because the old header definition failed to indicate that the multi-byte
entries should be little endian, several problems were thus exposed.
These are fixed.
Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit e41c513599187bd100644566bde86541c01db1d6
Author: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Date: Mon Aug 3 15:56:11 2015 -0500
rtlwifi: rtl8192ce: rtl8192cu: Fix endian issue
Commit e996db69833a (rtlwifi: rtl8192c: Add init codes for "fw_version"
and "fw_subversion") added initialization for fw_version, but failed to
note that the variable in the firmware header is little-endian. The
following Sparse warning results:
CHECK drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c:242:36: warning:
incorrect type in assignment (different base types)
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c:242:36: expected
unsigned short [unsigned] [usertype] fw_version
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c:242:36: got
restricted __le16 [usertype] version
When fixing this problem, I noticed that several of the drivers contain
nearly identical copies of the firmware header struct, and that only the
one
used in rtl8192c{e,u} had correct endian notation. The struct has been
moved into a common header, and the other drivers will be fixed in
subsequant patches.
Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit d3928d0946bf75dc6709a08b12839ecb889f2564
Author: Vineet Gupta <Vineet.Gupta1@xxxxxxxxxxxx>
Date: Thu Jul 9 13:43:18 2015 +0530
brcmfmac: dhd_sdio.c: use existing atomic_or primitive
There's already a generic implementation so use that instead.
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit ab63cb8b0cc84a89f65e418357d7e6b9b914c89a
Author: Nicholas Mc Guire <hofrat@xxxxxxxxx>
Date: Thu May 14 18:56:16 2015 +0200
ath9k: match wait_for_completion_timeout return type
Return type of wait_for_completion_timeout is unsigned long not int.
As time_left is exclusively used for wait_for_completion_timeout here its
type is simply changed to unsigned long.
API conformance testing for completions with coccinelle spatches are being
used to locate API usage inconsistencies:
./drivers/net/wireless/ath/ath9k/link.c:197
int return assigned to unsigned long
Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m,
Patch is against 4.1-rc3 (localversion-next is -next-20150514)
Signed-off-by: Nicholas Mc Guire <hofrat@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 61fc39204bc0db0070267fe0f7920c38b0af87ef
Author: Nicholas Mc Guire <hofrat@xxxxxxxxx>
Date: Thu May 14 18:43:41 2015 +0200
ath9k_htc: wmi: match wait_for_completion_timeout return type
Return type of wait_for_completion_timeout is unsigned long not int.
As time_left is exclusively used for wait_for_completion_timeout here its
type is simply changed to unsigned long.
API conformance testing for completions with coccinelle spatches are being
used to locate API usage inconsistencies:
./drivers/net/wireless/ath/ath9k/wmi.c:331
int return assigned to unsigned long
Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m,
CONFIG_ATH9K_HTC=m
Patch is against 4.1-rc3 (localversion-next is -next-20150514)
Signed-off-by: Nicholas Mc Guire <hofrat@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 39ce8150a079e3ae6ed9abf26d7918a558ef7c19
Author: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Date: Tue Aug 4 15:03:14 2015 +0300
pinctrl: baytrail: Serialize all register access
There is a hardware issue in Intel Baytrail where concurrent GPIO register
access might result reads of 0xffffffff and writes might get dropped
completely.
Prevent this from happening by taking the serializing lock in all places
where it is possible that more than one thread might be accessing the
hardware concurrently.
Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 70a56550a664ce93583f59ef1b885e7616c942e4
Author: Nicholas Mc Guire <hofrat@xxxxxxxxx>
Date: Thu May 14 18:25:26 2015 +0200
ath9k_htc: drv_init: match wait_for_completion_timeout return type
Return type of wait_for_completion_timeout is unsigned long not int.
As time_left is exclusively used for wait_for_completion_timeout here its
type is simply changed to unsigned long.
API conformance testing for completions with coccinelle spatches are being
used to locate API usage inconsistencies:
./drivers/net/wireless/ath/ath9k/htc_drv_init.c:81
int return assigned to unsigned long
Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m,
CONFIG_ATH9K_HTC=m
Patch is against 4.1-rc3 (localversion-next is -next-20150514)
Signed-off-by: Nicholas Mc Guire <hofrat@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 5ab49db8e007c4479be1a682ea64d9b562aa4880
Author: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Date: Tue Aug 4 15:03:13 2015 +0300
pinctrl: baytrail: Drop FSF mailing address
The FSF address is already mentioned in the COPYING file. No need to
duplicate that information to individual files.
Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 34edd5f6839db083b625d473efa4145449cd1af0
Author: Nicholas Mc Guire <hofrat@xxxxxxxxx>
Date: Thu May 14 17:29:54 2015 +0200
ath9k_htc: match wait_for_completion_timeout return type
Return type of wait_for_completion_timeout is unsigned long not int.
As time_left is exclusively used for wait_for_completion_timeout here its
type is simply changed to unsigned long.
API conformance testing for completions with coccinelle spatches are being
used to locate API usage inconsistencies:
./drivers/net/wireless/ath/ath9k/htc_hst.c:171
int return assigned to unsigned long
./drivers/net/wireless/ath/ath9k/htc_hst.c:277
int return assigned to unsigned long
./drivers/net/wireless/ath/ath9k/htc_hst.c:206
int return assigned to unsigned long
Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m,
CONFIG_ATH9K_HTC=m
Patch is against 4.1-rc3 (localversion-next is -next-20150514)
Signed-off-by: Nicholas Mc Guire <hofrat@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 07a06ae99ef9b8eda3ec0b69c8f477856042a511
Author: Lin Huang <hl@xxxxxxxxxxxxxx>
Date: Tue Aug 11 18:12:04 2015 +0800
pinctrl: rockchip: only enable gpio clock when it setting
gpio can keep state even the clock disable, for save power
consumption, only enable gpio clock when it setting
Signed-off-by: Lin Huang <hl@xxxxxxxxxxxxxx>
Reviewed-by: Heiko Stuebner <heiko@xxxxxxxxx>
Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
Tested-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit d07cb049af1a3343cf2043618aaa29f8c84f4649
Author: Cheolhyun Park <pch851130@xxxxxxxxx>
Date: Sun Apr 12 16:59:48 2015 +0000
rtlwifi: misspelled code and comments corrected.
Signed-off-by: Cheolhyun Park <pch851130@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
commit 43a0da25c0949f6dba0a8d6296907263f1b97ddd
Merge: 0122a51 c020e37
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Thu Aug 13 13:22:26 2015 +0100
Merge remote-tracking branch 'spi/fix/bcm2835' into spi-fix-bcm2835
commit c70336cc4ca1162808ee71dfe84696cb1cc91eac
Author: Colin Ian King <colin.king@xxxxxxxxxxxxx>
Date: Mon Aug 3 00:10:45 2015 +0100
pinctrl/mediatek: fix spelling mistake in dev_err error message
Trivial change, fix spelling mistake 'invaild' -> 'invalid' in
dev_err message.
Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
Acked-by: Hongzhou Yang <hongzhou.yang@xxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit ffebfc364dcaa5dea1a589d42207834b028df789
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Tue Apr 14 15:37:14 2015 +0200
drm/exynos: Remove PTN3460 dependency
Now that the PTN3460 driver has been rewritten as a proper I2C driver
and there is infrastructure to hook up the bridge with a DRM device, it
is no longer necessary to have this dependency to ensure the correct
build mode.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit ac22a1d3386e195c57e299da3bfad97a061b9616
Author: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Date: Thu Aug 13 09:19:43 2015 +0900
extcon: palmas: Fix build break due to devm_gpiod_get_optional API change
With commit b17d1bf16cc7 ("gpio: make flags mandatory for gpiod_get
functions")
it becomes necessary to pass the flags argument. And this patch adds the
gpio
header file to fix the build breakage when build testing with random
configuration files.
Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Acked-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
commit 459cc2c6800b545a482e428a631d99bca8da7790
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Thu Jul 30 10:34:24 2015 +0200
drm/tegra: sor: Add HDMI support
The SOR1 introduced on Tegra210 supports HDMI 2.0 and DisplayPort. Add
HDMI support and name the debugfs node after the type of SOR. The SOR
introduced with Tegra124 is known simply as "sor", whereas the
additional SOR found on Tegra210 is known as "sor1".
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 3309ac836229d8bc3db7618e04a51334bef13b0a
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Thu Jul 30 10:32:46 2015 +0200
drm/tegra: sor: Add Tegra210 eDP support
The SOR found on Tegra210 is very similar to the version found on
Tegra124, except that it no longer supports LVDS.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 003fc848774fcc7b7f14a2b4f3e6411764f43fc0
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Mon Aug 3 13:16:26 2015 +0200
drm/tegra: dc: Implement atomic DPMS
Move all code into the new canonical ->disable() and ->enable() helper
callbacks so that they play extra nice with atomic DPMS.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 850bab448034f0a601727fe266afd0ef64fef6dc
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Jul 29 17:58:41 2015 +0200
drm/tegra: sor: Restore DPMS
In order to restore DPMS with atomic mode-setting, move all code from
the ->mode_set() callback into ->enable(). At the same time, rename the
->prepare() callback to ->disable() to use the names preferred by atomic
mode-setting. This simplifies the calling sequence and will allow DPMS
to use runtime PM in subsequent patches.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 171e2e6dd912dac625e085919f0822cd94c04ff0
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Jul 29 16:04:44 2015 +0200
drm/tegra: dsi: Restore DPMS
In order to restore DPMS with atomic mode-setting, move all code from
the ->mode_set() callback into ->enable(). At the same time, rename the
->prepare() callback to ->disable() to use the names preferred by atomic
mode-setting. This simplifies the calling sequence and will allow DPMS
to use runtime PM in subsequent patches.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 29871b21c48c7b13adbd056755d923394ff6110b
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Jul 29 09:46:40 2015 +0200
drm/tegra: hdmi: Restore DPMS
In order to restore DPMS with atomic mode-setting, move all code from
the ->mode_set() callback into ->enable(). At the same time, rename the
->prepare() callback to ->disable() to use the names preferred by atomic
mode-setting. This simplifies the calling sequence and will allow DPMS
code to use runtime PM in subsequent patches.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 32c3dee11e8e8ff790a8724c1bfe87a51976d7f8
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Jul 29 10:08:17 2015 +0200
drm/tegra: rgb: Restore DPMS
In order to restore DPMS with atomic mode-setting, move all code from
the ->mode_set() callback into ->enable(). At the same time, rename the
->prepare() callback to ->disable() to use the names preferred by atomic
mode-setting. This simplifies the calling sequence and will allow DPMS
code to use runtime PM in subsequent patches.
While at it, remove the enabled field that hasn't been used since the
demidlayering of the output drivers done in preparation for the atomic
mode-setting conversion.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 530239a8b82c0d051ccda341cb346d3f11a80e70
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Thu Aug 6 11:04:54 2015 +0200
drm/tegra: sor: Use DRM debugfs infrastructure for CRC
Instead of duplicating most of the code to set up a debugfs file, use
the existing DRM core debugfs infrastructure instead.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 51511d05defe92715c19c3e583c9d1ac1c82e1e6
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Thu Jul 30 18:47:07 2015 +0200
drm/tegra: sor: Write correct head state registers
The head state registers are per head, so they must be properly indexed.
This has worked fine so far because all boards with eDP use it as the
primary output, so it is very likely to end up attached to head 0.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 8044449556338fb27b1a03f6b1dbbdbc59e4ebfa
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Jul 29 18:20:01 2015 +0200
drm/tegra: sor: Constify display mode
The data structure is always only read, never written, and can hence be
referred to by a const pointer.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 066d30f8c7547f9ca744cd090092d66847e85de4
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Jul 3 14:16:30 2015 +0200
drm/tegra: sor: Reset the correct debugfs fields
When tearing down debugfs support, make sure to reset the fields to NULL
in the correct order, otherwise the debugfs root will not be properly
removed.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 3ff1f22c882493dcceb25cbca5b516d8e4271151
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Jul 3 14:14:29 2015 +0200
drm/tegra: sor: Set minor after debugfs initialization
The DRM minor is needed to teardown debugfs, so it needs to be tracked
to prevent a crash on driver removal.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 4dbdc740c4beec653920e81470a6e6d69c6ab064
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Mon Apr 27 15:04:26 2015 +0200
drm/tegra: sor: Provide error messages in probe
When probing the SOR device fails, output proper error messages to help
diagnose the cause of the failure.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit a9a9e4fd7c923707a11b1b386cc31156d474039c
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Mon Apr 27 15:01:14 2015 +0200
drm/tegra: sor: Rename registers for consistency
The TRM lists indexed registers without an underscore to separate name
from index. Use that convention in the driver for consistency.
While at it, rename some of the field names to the names used in the
TRM.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 9e532b3ad9a7fc5f00d29c766439ffbdcc403146
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Jul 3 14:56:46 2015 +0200
drm/tegra: dpaux: Disable interrupt when detached
When the DPAUX isn't attached to an SOR the interrupts are not useful.
This also prevents a race that could potentially cause a crash on driver
removal.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 3227166c3bd64dc3a44b7a1bf79efff34ec27aa3
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Mon Apr 27 15:16:26 2015 +0200
drm/tegra: dpaux: Configure pads as I2C by default
The DPAUX code paths already configure the pads in AUX mode, but there
is no way to reconfigure them in I2C mode for HDMI (the DPAUX module is
unused in that case). Enabling the pads in I2C mode by default is the
quickest way to support HDMI. Eventually this may need an explicit call
in the user drivers.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 08f580ef2fcef724db1107545bc14306b7c9eae2
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Mon Apr 27 14:50:30 2015 +0200
drm/tegra: dpaux: Provide error message in probe
When probing the dpaux device fails, output proper error messages to
help diagnose the cause of the failure.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit ddfb406b2f9f83e85734e43d043cdd1b2519df13
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Apr 8 16:56:22 2015 +0200
drm/tegra: dsi: Add Tegra210 support
The DSI host controller hasn't changed from Tegra132 to Tegra210, but
different characterization parameters may be required.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit c06c793084ecf62e77361e671465214a196a2f55
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Apr 10 11:35:21 2015 +0200
drm/tegra: dsi: Add Tegra132 support
The DSI host controller hasn't changed from Tegra124 to Tegra132, but
different characterization parameters may be required.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 7d3385875b7a4722dad4045c65fa51829acd5dff
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Apr 10 11:35:21 2015 +0200
drm/tegra: dsi: Add Tegra124 support
The DSI host controller hasn't changed from Tegra114 to Tegra124, but
different characterization parameters may be required.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit b8be0bdbd52d35aac30fb2d8c295f9a3000873f2
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Apr 8 16:58:07 2015 +0200
drm/tegra: dsi: Use proper back-porch for non-sync video mode
In video modes without sync pulses, the horizontal back-porch needs to
include the horizontal sync width.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 472a6d1fd5f5d37a1c081e69f5c8ad5307ac358f
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 5 16:39:55 2015 +0200
drm/tegra: dc: Rename BASE_COLOR_SIZE* fields
Use an underscore to separate the prefix from the color size suffix.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 76ac3284bb708545e762091ba5d6d0f0dbc008bc
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Aug 7 09:26:57 2015 +0200
drm/tegra: dc: Don't explicitly set owner module
The call to platform_driver_register() will already set up the .owner
field, so there's no need to do it explicitly.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 8fd3ffa902a0d9f282ffa80599970ff1c823b1a8
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Mon Apr 27 14:48:35 2015 +0200
drm/tegra: dc: Rename register for consistency
The horizontal pulse enable bits are named H_PULSE{0,1,2}_ENABLE in the
TRM. Modify the driver to use the same naming for consistency.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 791ddb1e1cea14aa278580b3832cd0f10252aafa
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Tue Jul 28 21:27:05 2015 +0200
drm/tegra: dc: Record statistics
Record interrupt statistics, such as the number of frames and VBLANKs
received and the number of FIFO underflow and overflows.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 01a5da0c104d0ce38d2847da2295c510becddbe0
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Mon Aug 3 13:18:41 2015 +0200
drm/tegra: dc: Request syncpoint earlier
Request a syncpoint for display prior to registering the host1x client.
This will ensure that the syncpoint will be acquired when the KMS driver
initializes.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit e83dcb5bb610a46d10d2d74a67132a75c49804e6
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Tue Jul 28 21:28:55 2015 +0200
drm/tegra: dc: Remove gratuituous blank line
Blank lines at the end of functions are hideous, so get rid of it.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit a1df3b24884d5d8946d6cdf44e6d403e3925b4c6
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Tue Jul 21 16:42:30 2015 +0200
drm/tegra: dc: Clarify comment about cursor treatment
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 6ca1f62f0d69120030469cc0b409bd521cbd67cc
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Apr 1 14:59:40 2015 +0200
drm/tegra: dc: Implement CRC debugfs interface
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 5b4f516f5c6a2d3ac6edf750a40041842f928198
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Mar 27 10:31:58 2015 +0100
drm/tegra: dc: Add Tegra210 support
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 31930d4d0860fc87f93d9b76b0a4e6ac0b823dbf
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Thu Jul 2 17:04:06 2015 +0200
drm/tegra: dc: Reset VBLANK to off
Upon driver load, reset the VBLANK machinery to off to reflect the
hardware state. Since the ->reset() callback is called from the initial
drm_mode_config_reset() call, move the latter after the VBLANK machinery
initialization by drm_vblank_init().
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit fb36d0eed4fe3359aca8e6000c1bd92cc5199718
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Mon Apr 27 15:12:39 2015 +0200
drm/tegra: output: Support low-active hotplug detect
Support low-active hotplug detect signals by storing the GPIO flags
parsed from device tree.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 114bb13968162451f5e1d7fe793f9eb7e0083d9a
Author: Nicolin Chen <nicoleotsuka@xxxxxxxxx>
Date: Wed Aug 12 13:06:12 2015 -0700
ASoC: fsl-asoc-card: Specify codec_dai_name for DAI links
The dev->name of CODEC might not be identical to its codec_dai_name,
so using dev->name to probe the CODEC dai is not a correct approach.
This patch specifies each supporting codec_dai_name instead of using
dev->name any more.
Signed-off-by: Nicolin Chen <nicoleotsuka@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit a13f1dc4c3b7ac7de9d9ac266c0ed0374cae3421
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Tue Aug 11 13:22:44 2015 +0200
drm/tegra: Use SIMPLE_DEV_PM_OPS
Use this macro to reduce some of the boilerplate.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit cdc630b6c677b6d981b368baf44c8b4297adbb09
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Tue Jul 21 16:45:49 2015 +0200
drm/tegra: Allow VBLANK to be disabled
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 15372d4be7f099662dc84e4e35e844bd4373d959
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Fri Apr 10 11:29:41 2015 +0200
gpu: host1x: mipi: Power down regulators when unused
Keep track of the number of users of DSI and CSI pads and power down the
regulators that supply the bricks when all users are gone.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 5e7752436e10427ba598de4f2f6b7889daf586cc
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Apr 8 17:23:20 2015 +0200
gpu: host1x: mipi: Add Tegra210 support
Some changes are needed to the configuration settings for some lanes. In
addition, the clock lanes for the CSI pads can no longer be calibrated.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 7fd3ecad3f768fd2b39fc4db12044437fbf5d735
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Apr 8 17:20:32 2015 +0200
gpu: host1x: mipi: Add Tegra132 support
While Tegra132 has the same pads as Tegra124, some configuration values
need to be programmed slightly differently.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit c22fb79099dbec82b8280106c43f6e800ecc854c
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Apr 8 17:19:19 2015 +0200
gpu: host1x: mipi: Constify OF match table
This table is never modified and can therefore reside in read-only
memory.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 2ed264bf916b689fe0c71ac726995f0876062667
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Apr 8 17:17:44 2015 +0200
gpu: host1x: mipi: Clear calibration status
Before starting a new calibration cycle, make sure to clear the current
status by writing a 1 to the various "calibration done" bits.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 8ed5c0623272663783e052123fea02651464a0a5
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Apr 8 17:06:08 2015 +0200
gpu: host1x: mipi: Fix clock lane register for DSI
Use more consistent names for the clock lane configuration registers and
fix the offset of the upper clock lane configuration register for the
first DSI pad.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 83a3c223cc5678c5ced554fa2819747fd53437c7
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Apr 8 17:03:49 2015 +0200
gpu: host1x: mipi: Parameterize to support future SoCs
Parameterize more of the register programming to accomodate for changes
required by future SoC generations.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
commit 6e588a0d839b51bae49852b68740a25cacc91978
Author: Lars-Peter Clausen <lars@xxxxxxxxxx>
Date: Tue Aug 11 21:38:01 2015 +0200
ASoC: dapm: Consolidate path trace events
The snd_soc_dapm_input_path and snd_soc_dapm_output_path trace events are
identical except for the direction. Instead of having two events have a
single one that has a field that contains the direction.
Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit a3423b02cf745c1418f1f199646c450d6fc9ca4e
Author: Lars-Peter Clausen <lars@xxxxxxxxxx>
Date: Tue Aug 11 21:38:00 2015 +0200
ASoC: dapm: Consolidate input and output path handling
After the recent cleanups and generalizations of the DAPM algorithm the
handling of input and output paths is now fully symmetric. This means by
making some slight changes to the data structure and using arrays with one
entry for each direction, rather than separate fields, it is possible to
create a generic implementation that is capable of handling both input and
output paths.
Unfortunately this generalization significantly increases the code size on
the hot path of is_connected_{input,output}_ep() and
dapm_widget_invalidate_{input,output}_paths(), which has a negative impact
on the overall performance. The inner loops of those functions are quite
small and the generic implementation adds extra pointer arithmetic in a
few
places.
Testing on ARM shows that the combined code size of the specialized
functions is about 50% larger than the generalized function in relative
numbers. But in absolute numbers its less than 200 bytes, which is still
quite small. On the other hand the generalized function increases the
execution time of dapm_power_one_widget() by 30%. Given that this function
is one of the most often called functions of the DAPM framework the
trade-off of getting better performance at expense of generating slightly
larger code at seems to be worth it.
To avoid this still keep two versions of these functions around, one for
input and one for output. But have a generic implementation of the
algorithm which gets inlined by those two versions. And then let the
compiler take care of optimizing it and removing he extra instructions.
This still reduces the source code size as well as the makes making
changes
to the implementation more straight forward since the same change does no
longer need to be done in two separate places. Also on the slow paths we
can use a generic implementations that handle both input and output paths.
Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 30abbe7727b23c6661daeea5d36be36ed7a41665
Author: Lars-Peter Clausen <lars@xxxxxxxxxx>
Date: Tue Aug 11 21:37:59 2015 +0200
ASoC: dapm: dapm_dai_get_connected_widgets: Fix missing mutex unlock
Make sure to unlock the DAPM mutex when dapm_widget_list_create() fails.
This means the function will now generate a trace_snd_soc_dapm_connected
event, even if the creation of the list fails. But that was the behavior
before the patch that introduced the unlock issue, so that should be fine.
Fixes: 1ce43acff0c0 ("ASoC: dapm: Simplify list creation in
dapm_dai_get_connected_widgets()")
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit e04cafbc38c70af2aad3810ce24ab0eba8114779
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Wed Aug 5 12:15:24 2015 +0200
ath10k: fix peer limit enforcement
Firmware peer entries are involved in internal
firmware vdev structures. This was not accounted
for and could lead firmware to crash due to asking
it to do more than it could.
Fixes: 039a0051ec1a ("ath10k: allocate fw resources for iface
combinations")
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit adaeed74bc085bc59991cd6e23ee7f720b6c6aab
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Wed Aug 5 12:15:23 2015 +0200
ath10k: don't remove peer that doesn't exist
If peer creation failed during offchannel Tx the
driver attempted to delete the peer nonetheless.
This caused the ar->num_peers counter to be
incorrectly decremented. This subsequently could
cause the counter to drop below 0 and also
eventually lead to firmware crash because host
would think there are less peer entries created in
firmware then there really were.
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 16ea9b8ac45bf11d48af6013283e141e8ed86348
Author: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx>
Date: Wed Aug 12 18:04:04 2015 +0200
spi/spi-xilinx: Fix mixed poll/irq mode
Once the module process a transfer in irq mode, the next poll transfer
will not work because the transmitter is left in inhibited state.
Fixes: 22417352f6b7f623 (Use polling mode on small transfers)
Reported-by: Edward Kigwana <ekigwana@xxxxxxxxxx>
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@xxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
commit 6f7429c29b9979d64d067543caec940bbc023340
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Wed Aug 5 12:08:38 2015 +0200
ath10k: fix hw reconfig on wow failure
When WoWLAN resume fails with retval 1 mac80211
will attempt to reconfig the device in a similar
manner when hw restart is requested. This wasn't
handled properly and yielded call trace warnings
and the device ended up not working.
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 84e3df60f0daba5b1e7874101502d0b030afb867
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Wed Aug 5 06:55:37 2015 +0200
ath10k: initialize fw_features var
If firmware did not have any feature flags set the
var would be left with values found on the stack
(i.e. garbage) yielding print string like this:
(...) features \xffffffa6m:^R\xfffffffbÔ?\xffffffc4^E
Fixes: b27bc5a40f91 ("ath10k: dump fw features during probing")
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit a48e2cc8992a13a58cff04e54e05f959d418554b
Author: Vivek Natarajan <nataraja@xxxxxxxxxxxxxxxx>
Date: Tue Aug 4 10:45:12 2015 +0530
ath10k: Enable MU MIMO txbf support for QCA99X0
This patch enables MU-MIMO transmit beamforming support
for QCA99X0 chipsets.
Signed-off-by: Vivek Natarajan <nataraja@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 08e75ea84cb595c52f140049fcf6362679473592
Author: Vivek Natarajan <nataraja@xxxxxxxxxxxxxxxx>
Date: Tue Aug 4 10:45:11 2015 +0530
ath10k: Support different txbf configuration schemes
qca61x4 uses the vdev param as a sole sufficient configuration
for txbf while qca99x0 enables txbf during peer assoc by
combining the vdev param value with peer assoc's vht capabilities
This patch gets the appropriate txbf configuration scheme
before passing the wmi command to enable the same in the firmware.
Signed-off-by: Vivek Natarajan <nataraja@xxxxxxxxxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 4585b000ace6438d0b142746baab658056b223d9
Author: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Date: Mon Aug 3 12:46:38 2015 +0300
pinctrl: cherryview: Serialize all register access
There is a hardware issue in Intel Braswell/Cherryview where concurrent
GPIO register access might results reads of 0xffffffff and writes might
get
dropped.
Prevent this from happening by taking the serializing lock for all places
where it is possible that more than one thread might be accessing the
hardware concurrently.
Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 39b87ad166114b842159e5384a948b168cfa61d8
Author: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Date: Sat Aug 1 12:38:52 2015 +0900
pinctrl: UniPhier: PH1-Pro5: add I2C ch6 pin-mux setting
The initial version of this driver missed to add I2C ch6 pin-muxing.
Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 92092fe528e79c9bd25784ca0ef341d5a1d1b642
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Mon Aug 3 11:16:43 2015 +0200
ath10k: reject 11b tx fragmentation configuration
Even though there's a WMI enum for fragmentation
threshold no known firmware actually implements
it. Moreover it is not possible to rely frame
fragmentation to mac80211 because firmware clears
the "more fragments" bit in frame control making
it impossible for remote devices to reassemble
frames.
Hence implement a dummy callback just to say
fragmentation isn't supported. This effectively
prevents mac80211 from doing frame fragmentation
in software.
This fixes Tx becoming broken after setting
fragmentation threshold.
Fixes: 1010ba4c5d1c ("ath10k: unregister and remove frag_threshold
callback")
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 4dca0e6edd14e0c8afa19c8ad90f711f1563b52e
Author: Michal Kazior <michal.kazior@xxxxxxxxx>
Date: Mon Aug 3 11:16:42 2015 +0200
ath10k: remove futile fragmentation threshold config
Commit 1010ba4c5d1c ("ath10k: unregister and
remove frag_threshold callback") didn't remove all
instances of (futile) fragmentation threshold
configuration. No known firmware supports the
parameter so don't even bother setting it.
Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx>
Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>
commit 3afa129a9de0957d72165cf08a54e5c69938011c
Author: Gregory Fong <gregory.0xf0@xxxxxxxxx>
Date: Fri Jul 31 18:17:44 2015 -0700
gpio: brcmstb: support wakeup from S5 cold boot
For wake from S5, we need to:
- register a reboot handler
- set wakeup capability before requesting IRQ so wakeup count is
incremented
- mask all GPIO IRQs and clear any pending interrupts during driver
probe to since no driver will yet be registered to handle any IRQs
carried over from boot at that time, and it's possible that the
booted kernel does not request the same IRQ anyway.
This means that /sys/.../power/wakeup_count is valid at boot time, and
we can properly account for S5 wakeup stats. e.g.:
### After waking from S5 from a GPIO key
# cat /sys/bus/platform/drivers/brcmstb-gpio/f04172c0.gpio/power/wakeup
enabled
# cat
/sys/bus/platform/drivers/brcmstb-gpio/f04172c0.gpio/power/wakeup_count
1
Signed-off-by: Gregory Fong <gregory.0xf0@xxxxxxxxx>
Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 19a7b6940b781256ea8821e803d1e5f2933224b1
Author: Gregory Fong <gregory.0xf0@xxxxxxxxx>
Date: Fri Jul 31 18:17:43 2015 -0700
gpio: brcmstb: Add interrupt and wakeup source support
Uses the gpiolib irqchip helpers. For this to work, the irq setup
function is called once per bank instead of once per device. Note
that all known uses of this block have a BCM7120 L2 interrupt
controller as a parent. Supports interrupts for all GPIOs.
In the IRQ handler, we check for raised IRQs for invalid GPIOs and
warn (ratelimited) if they're encountered.
Also, several drivers (e.g. gpio-keys) allow for GPIOs to be
configured as wakeup sources, and this GPIO controller supports that
through a separate interrupt path.
The de-facto standard DT property "wakeup-source" is checked, since
that indicates whether the GPIO controller hardware can wake. Uses
the IRQCHIP_MASK_ON_SUSPEND irq_chip flag because UPG GIO doesn't have
any of its own wakeup source configuration.
Aside regarding gpiolib irqchip helpers: It wasn't obvious (to me)
that you can have multiple chained irqchips and associated IRQ domains
for a single parent IRQ, and as long as the xlate function is written
correctly, a GPIO IRQ request end up checking the correct domain and
will get associated with the correct IRQ. What helps make this clear
is to read
drivers/gpio/gpiolib-of.c:
- of_gpiochip_find_and_xlate()
- of_get_named_gpiod_flags()
drivers/gpio/gpiolib.c:
- gpiochip_find()
Signed-off-by: Gregory Fong <gregory.0xf0@xxxxxxxxx>
Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit 77a775b7ccaf86b0bb67ceaaf3b6d2720e12b506
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Mon Aug 10 11:51:46 2015 +0200
gpio/ABI: document what is already the case
commit 926b663ce8215ba448960e1ff6e58b67a2c3b99b
"gpiolib: allow GPIOs to be named" added the ability to
name GPIO lines by an array of names stored in the GPIO
chip. This was in 2009 and has been an ABI since. Let's
document it properly.
Cc: Daniel Silverstone <dsilvers@xxxxxxxxxxxxxxxxx>
Cc: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Cc: Johan Hovold <johan@xxxxxxxxxx>
Cc: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
commit f9511a4fc47940c7b08ae51567bd9bddb54b8461
Author: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Mon Jul 27 14:11:17 2015 +1000
clk: ti: fix for definition movement
Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit e7895461593506e2e86404a255208876340d4bca
Merge: 93621d7 fd26f88
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 13 12:26:29 2015 +0200
Merge tag 'rpi-dt-for-armsoc-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi into next/dt
- New Firmware node and accompanying binding document
* tag 'rpi-dt-for-armsoc-4.3' of
git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi:
dt/bindings: Add binding for the Raspberry Pi firmware driver
ARM: bcm2835: Add the firmware driver information to the RPi DT
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 16478b61f0d88a08163b92af27f0e77f471576ce
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Tue Aug 11 17:17:18 2015 +0200
ARM/fb: ep93xx: switch framebuffer to use modedb only
All the EP93xx boards exclusively use modedb to look up video
modes from the command line. Root out the parametrization of
custom video modes from the platform data and board files
and simplify the driver.
Cc: Jean-Christophe Plagniol-Villard <plagnioj@xxxxxxxxxxxx>
Reviewed-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Acked-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 93621d7037084676b1fe7c1a8d59a98754f846ec
Merge: 6d511a2 6855e5b
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 13 12:19:38 2015 +0200
Merge tag 'socfpga_dts_for_v4.3_part_2' of
git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt
SoCFPGA DTS updates for v4.3, take 2
- Add DTS property "altr,modrst-offset" for reset driver to
use
- Add updated reset defines for the reset driver
- Add reset property for EMACs on Arria10
* tag 'socfpga_dts_for_v4.3_part_2' of
git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
ARM: socfpga: dts: Add resets for EMACs on Arria10
ARM: socfpga: dts: add "altr,modrst-offset" property
dt-bindings: Add reset manager offsets for Arria10
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 6d511a26ce45fc05600f12f02200a65578d67a63
Merge: 85ef6b2 378abcd
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 13 12:14:29 2015 +0200
Merge tag 'v4.3-rockchip32-dts2' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt
Some more devicetree changes, including usbphy support for the
Cortex-A9 SoCs and actually enabling usb on the rk3066-marsboard,
Two more veyron-devices - namely Speedy and Minnie and a fix for
the tsadc.
One slightly more interesting fix is the blocking of the last
16MB of memory on 4GB rk3288 devices. The rk3288 cannot use this
area for dma operations, so things like the mmc or usb controllers
regularly fail when trying to read data. This solution mimicks the
solution from the ChromeOS kernel, who also do not seem to have
found a better solution yet. Here it only moves to the devicetree.
As this issue is also present on the arm64 rk3368, any future
better solution to this problem would need to describe this in
the devicetree as well and could then remove this block.
* tag 'v4.3-rockchip32-dts2' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
ARM: dts: rockchip: add veyron-minnie board
ARM: dts: rockchip: reserve unusable memory region on rk3288
ARM: dts: rockchip: enable usb controller on marsboard
ARM: dts: rockchip: add usb phys to Cortex-A9 socs
ARM: dts: rockchip: set correct dwc2 params for cortex-a9 socs
ARM: dts: rockchip: Add veyron-speedy board
ARM: dts: rockchip: Use correct dts properties for tsadc node on veyron
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 8943835e248bca0df431c717f4edce94fa2b8c8e
Merge: fb3c442 9bb91ae
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 13 12:13:54 2015 +0200
Merge tag 'v4.3-rockchip32-soc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/soc
Improve reliability of resume on rk3288 boards. For whatever
reason resuming from suspend worked sucessfully on the rk3288-evb
but not on other boards, like veyron-devices. Two problems seem
to have existed. For one the stabilization delays for pmic and
oscillator may have been to short and secondly the shallow
suspend seems to need GPIO wakups enabled. Normally this should
be covered by the more generic ARMINT wakeups already and
the reason for this is still investigated at Rockchip, but
meanwhile this makes boards actually resume.
* tag 'v4.3-rockchip32-soc2' of
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
ARM: rockchip: enable PMU_GPIOINT_WAKEUP_EN when entering shallow
suspend
ARM: rockchip: set correct stabilization thresholds in suspend
ARM: rockchip: rename osc_switch_to_32k variable
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit fb3c44267684b76329b20317f2a62dacc452a09d
Author: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Date: Sat Aug 8 21:13:44 2015 +0900
ARM: uniphier: drop v7_invalidate_l1 call at secondary entry
This is unnecessary since commit 02b4e2756e01 ("ARM: v7 setup
function should invalidate L1 cache").
Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit ab39aab323a38a3fb079651952b13ba1868f90fd
Merge: bcfff4d b6e1f7f
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 13 12:10:09 2015 +0200
Merge tag 'v4.2-next-arm64-2' of https://github.com/mbgg/linux-mediatek
into next/arm64
Add SMP support for mt6795 SoC.
* tag 'v4.2-next-arm64-2' of https://github.com/mbgg/linux-mediatek:
ARM64: dts: mt6795: enable basic SMP bringup for MT6795
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 80d352de659b57e69856b00d773d7abefe28bf32
Author: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Date: Fri Jul 31 19:30:07 2015 +0200
ARM: at91/defconfig: at91_dt: remove ARM_AT91_ETHER
CONFIG_ARM_AT91_ETHER doesn't exist anymore, both drivers have been merged
in the macb driver.
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 5bfb1e4113ed88f0da07a3628f5b9be7b5c29384
Author: Josh Wu <josh.wu@xxxxxxxxx>
Date: Fri Jul 31 19:26:36 2015 +0200
ARM: at91/defconfig: at91_dt: enable DRM hlcdc support
This patch adds drm atmel lcdc, simple panel and backlight options.
Signed-off-by: Josh Wu <josh.wu@xxxxxxxxx>
Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 3d3cacc0b8c624d042fe905bbc71f97a4d443cdc
Merge: 0ff818e 44e259a
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 13 12:02:07 2015 +0200
Merge tag 'mvebu-soc-4.3-2' of git://git.infradead.org/linux-mvebu into
next/drivers
mvebu soc changes for v4.3 (part #2)
SoC part of the Dove PMU series
* tag 'mvebu-soc-4.3-2' of git://git.infradead.org/linux-mvebu:
ARM: dove: create a proper PMU driver for power domains, PMU IRQs and
resets
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 85ef6b26d1abc01101cd7a6c8094787990b95c1c
Merge: eb2b508 15979ae
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 13 11:59:56 2015 +0200
Merge tag 'mvebu-dt-4.3-3' of git://git.infradead.org/linux-mvebu into
next/dt
mvebu dt changes for v4.3 (part #3)
- device tree part of the Dove PMU series
- converting a new orion5x based platform to dt: Linkstation Mini
* tag 'mvebu-dt-4.3-3' of git://git.infradead.org/linux-mvebu:
ARM: dts: Convert Linkstation Mini to Device Tree
ARM: dt: dove: add GPU power domain description
ARM: dt: dove: add video decoder power domain description
ARM: dt: dove: wire up RTC interrupt
ARM: dt: Add PMU node, making PMU child devices childs of this node
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit eb2b5084366a93a5d40cd5746a2d178e02d7762c
Merge: 1a08a84 761c586
Author: Olof Johansson <olof@xxxxxxxxx>
Date: Thu Aug 13 11:58:22 2015 +0200
Merge tag 'at91-ab-dt2' of
git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/dt
Second batch of DT changes for 4.3:
- Add the slow clock to the nodes that will use it
- Add hlcd to the at91sam9x5 and at91sam9n12
- Add touchscreen and touch button support to the at91sam9x5ek
* tag 'at91-ab-dt2' of
git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (22 commits)
ARM: at91/dt: sama5d2: use slow clock where necessary
ARM: at91/dt: at91sam9x5dm: add QT1070 touch button controller
ARM: at91/dt: at91sam9x5dm: add support for the touschscreen
ARM: at91/dt: add drm support for at91sam9n12ek
ARM: at91/dt: enable lcd support for at91sam9x5 SoCs
ARM: at91/dt: add at91sam9x5-ek Display Module dtsi
ARM: at91/dt: include lcd dtsi in at91sam9x5 dtsis
ARM: at91/dt: define hlcdc node in at91sam9x5_lcd.dtsi
ARM: at91/dt: sama5d4: use slow clock where necessary
ARM: at91/dt: sama5d3: use slow clock where necessary
ARM: at91/dt: at91sam9x5: use slow clock where necessary
ARM: at91/dt: at91sam9rl: use slow clock where necessary
ARM: at91/dt: at91sam9n12: use slow clock where necessary
ARM: at91/dt: at91sam9g45: use slow clock where necessary
ARM: at91/dt: at91sam9263: use slow clock where necessary
ARM: at91/dt: at91sam9261: use slow clock where necessary
ARM: at91/dt: at91sam9260: use slow clock where necessary
ARM: at91/dt: at91rm9200: use slow clock where necessary
Documentation: dt: rtc: at91rm9200: add clocks property
Documentation: watchdog: at91sam9_wdt: add clocks property
...
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit ae6c0aa6ae4d18d0ae74a58af5c521ec771e3730
Merge: b6bb424 152b283
Author: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Date: Thu Aug 13 11:51:50 2015 +0200
Merge tag 'kvm-s390-next-20150812' of
git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD
KVM: s390: fix and feature for kvm/next (4.3)
1. error handling for irq routes
2. Gracefully handle STP time changes
s390 supports a protocol for syncing different systems via the stp
protocol that will steer the TOD clocks to keep all participating
clocks below the round trip time between the system. In case of
specific out of sync event Linux can opt-in to accept sync checks.
This will result in non-monotonic jumps of the TOD clock, which
Linux will correct via time offsets to keep the wall clock time
monotonic. Now: KVM guests also base their time on the host TOD,
so we need to fixup the offset for them as well.
commit d330615b90d4997909806f8c22be6a3a2c3449b9
Author: Hans Ulli Kroll <ulli.kroll@xxxxxxxxxxxxxx>
Date: Tue Aug 11 22:09:05 2015 +0200
ARM: gemini: Setup timer3 as free running timer
In the original driver it is missed to setup a free running driver.
This timer is needed for the scheduler.
So setup it.
Signed-off-by: Hans Ulli Kroll <ulli.kroll@xxxxxxxxxxxxxx>
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 5dc90739888e741985036994e2e5700c6dc9d118
Author: Hans Ulli Kroll <ulli.kroll@xxxxxxxxxxxxxx>
Date: Tue Aug 11 22:09:04 2015 +0200
ARM: gemini: Use timer1 for clockevent
Use timer1 as clockevent timer.
The old driver uses timer2, which has some issues to setup
Signed-off-by: Hans Ulli Kroll <ulli.kroll@xxxxxxxxxxxxxx>
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 570ceed4e267a6d354653f4884bb8c2b4a975087
Author: Hans Ulli Kroll <ulli.kroll@xxxxxxxxxxxxxx>
Date: Tue Aug 11 22:09:03 2015 +0200
ARM: gemini: Add missing register definitions for gemini timer
Add missing register defintions for the gemini clocksource
Also do some #define' cleanup to make the code more readable.
Signed-off-by: Hans Ulli Kroll <ulli.kroll@xxxxxxxxxxxxxx>
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 75dbf00b443c1763138486e87f4978ff43506f9e
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Mon Jul 27 11:11:11 2015 +0300
mac80211: remove always true condition
The outside if statement checks that IEEE80211_TX_INTFL_MLME_CONN_TX is
set so this condition is always true. Checking twice upsets the static
checkers.
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 4b58c37bb9d4282446f7a0194dbc44325787ac8c
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date: Wed Jul 8 15:41:48 2015 +0300
mac80211: remove ieee80211_aes_cmac_calculate_k1_k2()
The iwlwifi driver was the only driver that used this, but as
it turns out it never needed it, so we can remove it.
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 2001a130d4fa8386b9d7978578dc40aa1f0dad6c
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date: Fri Jun 19 10:20:10 2015 +0200
iwlwifi: mvm: don't set K1/K2 for AES-CMAC
According to firmware engineers, the firmware has never required
these fields and the values have always been calculated, they were
just leftovers from a previous implementation.
Therefore remove the unnecessary calculation.
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit a54868b460b65bd93a5324a7fc35dfd556fe576c
Author: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Date: Thu Aug 6 14:41:13 2015 +0530
ARM: ep93xx/timer: Migrate to new 'set-state' interface
Migrate EP93xx driver to the new 'set-state' interface provided by
clockevents core, the earlier 'set-mode' interface is marked obsolete
now.
This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Reviewed-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Olof Johansson <olof@xxxxxxxxx>
commit 36890997b0d219427e9d9d2aad5d46eb44fe808d
Author: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Date: Sun Aug 2 11:09:54 2015 +0200
rfkill: Allow compile test of GPIO consumers if !GPIOLIB
The GPIO subsystem provides dummy GPIO consumer functions if GPIOLIB is
not enabled. Hence drivers that depend on GPIOLIB, but use GPIO consumer
functionality only, can still be compiled if GPIOLIB is not enabled.
Relax the dependency on GPIOLIB if COMPILE_TEST is enabled, where
appropriate.
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
commit 8cbd4c2f6a996f6cf5dfdf8775d331606cff95bd
Author: Felipe Balbi <balbi@xxxxxx>
Date: Wed Aug 12 14:56:54 2015 -0500
arm: boot: dts: am4372: add ARM timers and SCU nodes
AM437x devices sport SCU, TWD and Global timers,
let's add them to DTS so they have a chance to
probe and be used by Linux.
Signed-off-by: Felipe Balbi <balbi@xxxxxx>
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit 6c36dfe949187dc2729abfad4b083758ac5c2e0e
Author: Borislav Petkov <bp@xxxxxxx>
Date: Wed Aug 12 18:29:45 2015 +0200
x86/ras: Move AMD MCE injector to arch/x86/ras/
This is an x86-specific module and would benefit from being
closer to the arch code. Move it there. Update copyright while
at it.
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439396985-12812-14-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit a79da38494ec23f1a7d6ee734e07e9575fd18b58
Author: Borislav Petkov <bp@xxxxxxx>
Date: Wed Aug 12 18:29:44 2015 +0200
x86/mce: Add a wrapper around mce_log() for injection
Will be used by an injector module in a following patch.
Additionally, add a missing module export reported by 0-DAY
kernel test.
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439396985-12812-13-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 9a7783d02197f299f71b4fa2364a345c05f92b83
Author: Borislav Petkov <bp@xxxxxxx>
Date: Wed Aug 12 18:29:43 2015 +0200
x86/mce: Rename rcu_dereference_check_mce() to mce_log_get_idx_check()
The "rcu_" prefix misleads for it being a proper RCU interface
which is not. It basically checks whether we're preemptible or
holding the chrdev_read mutex.
Rename it accordingly.
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Acked-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439396985-12812-12-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 9b45ef443acde55526485db37440cd3e8f03d544
Author: Borislav Petkov <bp@xxxxxxx>
Date: Wed Aug 12 18:29:42 2015 +0200
RAS: Add a menuconfig option with descriptive text
Text taken a previous patch from "Gong Chen" <gong.chen@xxxxxxxxxxxxxxx>.
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Gong Chen <gong.chen@xxxxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439396985-12812-11-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 1b48465500611a2dc5e75800c61ac352e22d41c3
Author: Xie XiuQi <xiexiuqi@xxxxxxxxxx>
Date: Wed Aug 12 18:29:41 2015 +0200
x86/mce: Reenable CMCI banks when swiching back to interrupt mode
Zhang Liguang reported the following issue:
1) System detects a CMCI storm on the current CPU.
2) Kernel disables the CMCI interrupt on banks owned by the
current CPU and switches to poll mode
3) After the CMCI storm subsides, kernel switches back to
interrupt mode
4) We expect the system to reenable the CMCI interrupt on banks
owned by the current CPU
mce_intel_adjust_timer
|-> cmci_reenable
|-> cmci_discover # owned banks are ignored here
static void cmci_discover(int banks)
...
for (i = 0; i < banks; i++) {
...
if (test_bit(i, owned)) # ownd banks is ignore here
continue;
So convert cmci_storm_disable_banks() to
cmci_toggle_interrupt_mode() which controls whether to enable or
disable CMCI interrupts with its argument.
NB: We cannot clear the owned bit because the banks won't be
polled, otherwise. See:
27f6c573e0f7 ("x86, CMCI: Add proper detection of end of CMCI storms")
for more info.
Reported-by: Zhang Liguang <zhangliguang@xxxxxxxxxx>
Signed-off-by: Xie XiuQi <xiexiuqi@xxxxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # v3.15+
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Cc: huawei.libin@xxxxxxxxxx
Cc: linux-edac <linux-edac@xxxxxxxxxxxxxxx>
Cc: rui.xiang@xxxxxxxxxx
Link:
http://lkml.kernel.org/r/1439396985-12812-10-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 8838eb6c0bf3b6a6494a163947ab3d1700ab45d2
Author: Ashok Raj <ashok.raj@xxxxxxxxx>
Date: Wed Aug 12 18:29:40 2015 +0200
x86/mce: Clear Local MCE opt-in before kexec
kexec could boot a kernel that could be legacy with no knowledge
of LMCE. Hence we should make sure we clear LMCE optin before
kexec reboot.
Signed-off-by: Ashok Raj <ashok.raj@xxxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
Cc: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Cc: linux-edac <linux-edac@xxxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439396985-12812-9-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 4d1d5cdc345d15e09518a2410f7fcd069465ffac
Author: Ashok Raj <ashok.raj@xxxxxxxxx>
Date: Wed Aug 12 18:29:39 2015 +0200
x86/mce: Remove unused function declarations
Remove unused function declarations.
Signed-off-by: Ashok Raj <ashok.raj@xxxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Cc: linux-edac <linux-edac@xxxxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439396985-12812-8-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit eef4dfa0cb83899c782935ac5345532f47073cea
Author: Borislav Petkov <bp@xxxxxxx>
Date: Wed Aug 12 18:29:38 2015 +0200
x86/mce: Kill drain_mcelog_buffer()
This used to flush out MCEs logged during early boot and which
were in the MCA registers from a previous system run. No need
for that now, since we've moved to a genpool.
Suggested-by: Tony Luck <tony.luck@xxxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439396985-12812-7-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit f29a7aff4bd60ebc3da4982f80144a4158c4c74a
Author: Chen, Gong <gong.chen@xxxxxxxxxxxxxxx>
Date: Wed Aug 12 18:29:37 2015 +0200
x86/mce: Avoid potential deadlock due to printk() in MCE context
Printing in MCE context is a no-no, currently, as printk() is
not NMI-safe. If some of the notifiers on the MCE chain call do
so, we may deadlock. In order to avoid that, delay printk() to
process context where it is safe.
Reported-by: Xie XiuQi <xiexiuqi@xxxxxxxxxx>
Signed-off-by: Chen, Gong <gong.chen@xxxxxxxxxxxxxxx>
[ Fold in subsequent patch from Boris for early boot logging. ]
Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx>
[ Kick irq_work in mce_log() directly. ]
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439396985-12812-6-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit fd4cf79fcc4b5130ced8fd8c40378d3cec2e5fa8
Author: Chen, Gong <gong.chen@xxxxxxxxxxxxxxx>
Date: Wed Aug 12 18:29:36 2015 +0200
x86/mce: Remove the MCE ring for Action Optional errors
Use unified genpool to save Action Optional error events and put
Action Optional error handling in the same notification chain as
MCE error decoding.
Signed-off-by: Chen, Gong <gong.chen@xxxxxxxxxxxxxxx>
[ Fold in subsequent patch from Boris for early boot logging. ]
Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx>
[ Correct a lot. ]
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439396985-12812-5-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 061120aed7081b9a4393fbe07b558192f40ad911
Author: Chen, Gong <gong.chen@xxxxxxxxxxxxxxx>
Date: Wed Aug 12 18:29:35 2015 +0200
x86/mce: Don't use percpu workqueues
An MCE is a rare event. Therefore, there's no need to have
per-CPU instances of both normal and IRQ workqueues. Make them
both global.
Signed-off-by: Chen, Gong <gong.chen@xxxxxxxxxxxxxxx>
[ Fold in subsequent patch from Rui/Boris/Tony for early boot logging. ]
Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx>
[ Massage commit message. ]
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439396985-12812-4-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 648ed94038c030245a06e4be59744fd5cdc18c40
Author: Chen, Gong <gong.chen@xxxxxxxxxxxxxxx>
Date: Wed Aug 12 18:29:34 2015 +0200
x86/mce: Provide a lockless memory pool to save error records
printk() is not safe to use in MCE context. Add a lockless
memory allocator pool to save error records in MCE context.
Those records will be issued later, in a printk-safe context.
The idea is inspired by the APEI/GHES driver.
We're very conservative and allocate only two pages for it but
since we're going to use those pages throughout the system's
lifetime, we allocate them statically to avoid early boot time
allocation woes.
Signed-off-by: Chen, Gong <gong.chen@xxxxxxxxxxxxxxx>
[ Rewrite. ]
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439396985-12812-3-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 20d51a426fe9a0d0a63cc3a7488f621c8bac37e1
Author: Borislav Petkov <bp@xxxxxxx>
Date: Wed Aug 12 18:29:33 2015 +0200
x86/mce: Reuse one of the u16 padding fields in 'struct mce'
... to save the error severity of the MCE and whether the
reported address of the error is usable.
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Tony Luck <tony.luck@xxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439396985-12812-2-git-send-email-bp@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit ed293d1ad2b0c28b6abc3bd728b07754bc00f1cd
Author: Rob Herring <robh@xxxxxxxxxx>
Date: Sun Jul 12 09:26:45 2015 -0500
memory: kill off set_irq_flags usage
set_irq_flags is ARM specific with custom flags which have genirq
equivalents. Convert drivers to use the genirq interfaces directly, so we
can kill off set_irq_flags. The translation of flags is as follows:
IRQF_VALID -> !IRQ_NOREQUEST
IRQF_PROBE -> !IRQ_NOPROBE
IRQF_NOAUTOEN -> IRQ_NOAUTOEN
For IRQs managed by an irqdomain, the irqdomain core code handles clearing
and setting IRQ_NOREQUEST already, so there is no need to do this in
.map() functions and we can simply remove the set_irq_flags calls. Some
users also set IRQ_NOPROBE and this has been maintained although it is not
clear that is really needed. There appears to be a great deal of blind
copy and paste of this code.
Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
Acked-by: Roger Quadros <rogerq@xxxxxx>
Cc: linux-omap@xxxxxxxxxxxxxxx
Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
commit a897b5f0393a8a05d230c9248dc5324fb30720a0
Merge: 5f1230c 71ef150
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Thu Aug 13 09:23:53 2015 +0200
Merge tag 'perf-core-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
User visible changes:
- Allow selecting the type of callchains per event, including disabling
callchains in all but one entry in an event list, to save space, and
also
to ask for the callchains collected in one event to be used in other
events. (Kan Liang)
- Beautify more syscall arguments in 'perf trace': (Arnaldo Carvalho de
Melo)
- A bunch more translate file/pathnames from pointers to strings.
- Convert numbers to strings for the 'keyctl' syscall 'option' arg.
- Add missing 'clockid' entries.
- Fix 'perf probe -L sys_*' as it was not showing all the source code
for
syscall functions in the kernel. (Masami Hiramatsu)
- Make ESC unzoom as well in the hists browser, i.e. in 'report' and
'top',
as we're considering repurposing the right and left arrow keys to use
in
horizontal scrolling, i.e. leave just ESC to be used for what <- works
now, and ENTER for what -> does (they are already aliases for ages).
(Arnaldo Carvalho de Melo)
Infrastructure fixes:
- Check for SRCLINE_UNKNOWN case in "srcfile" processing (Andi Kleen)
- Wrap the slsmg_{printf,write_nstring} slang functions behind
ui_browser, so
that we can make the ui_browser based browsers (annotate, menus,
hists, etc) UI
library agnostic and usable with multiple backends (slang now, GTK+
and others
in the future, maybe) (Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit e558017b558d2a477b68961b0da792d4346a01b4
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Wed Aug 12 14:39:38 2015 -0300
crypto: caam - Remove unneeded 'ret' variable
Variable 'ret' is only used for returning the value 0.
We can make it simpler and just return 0 instead.
The semantic patch that makes this change is available
in scripts/coccinelle/misc/returnvar.cocci.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit ac8ad30777467c5258c52aa4899a8a07a3e56b54
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Wed Aug 12 11:48:42 2015 -0300
crypto: caam - Fix error handling in caam_rng_init()
In the error paths we should free the resources that were
previously acquired, so fix it accordingly.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Reviewed-by: Horia Geant? <horia.geanta@xxxxxxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 8669f34e122bad56e4d3ecde5f4720c40261bf4c
Author: Wu Fengguang <fengguang.wu@xxxxxxxxx>
Date: Wed Aug 12 12:50:17 2015 +0800
crypto: qat - fix simple_return.cocci warnings
drivers/crypto/qat/qat_common/adf_sriov.c:258:1-4: WARNING: end returns
can be simpified and declaration on line 212 can be dropped
Simplify a trivial if-return sequence. Possibly combine with a
preceding function call.
Generated by: scripts/coccinelle/misc/simple_return.cocci
CC: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 18be4ebe1f6ba8f5c329a997c2b60c8bba1cf800
Author: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Date: Tue Aug 11 11:05:37 2015 -0700
crypto: qat - Fix unmet direct dependencies for QAT_DH895xCCVF
Reported-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
Signed-off-by: Tadeusz Struk <tadeusz.struk@xxxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 14fee74ca8370e4bfa5c9386e63bfa521b37a505
Author: Chen-Yu Tsai <wens@xxxxxxxx>
Date: Tue Aug 11 13:32:57 2015 +0800
ARM: dts: sun6i: Add security system crypto engine clock and device nodes
A31/A31s have the same "Security System" crypto engine as A10/A20,
but with a separate reset control.
Signed-off-by: Chen-Yu Tsai <wens@xxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit 7ab64628bb4ab139aea9f1238ce6f945be580773
Author: Chen-Yu Tsai <wens@xxxxxxxx>
Date: Tue Aug 11 13:32:56 2015 +0800
crypto: sunxi-ss - Add optional reset control support
On sun6i and later platforms, the reset control is split out of the
clock gates. Add support for an optional reset control.
Signed-off-by: Chen-Yu Tsai <wens@xxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit ca6bc691b1b7cf45862410952806f73c1aa62fe6
Author: Chen-Yu Tsai <wens@xxxxxxxx>
Date: Tue Aug 11 13:32:55 2015 +0800
crypto: sunxi-ss - Document optional reset control bindings
Later Allwinner SoCs split out the reset controls for individual modules
out of the clock gate controls. The "Security System" crypto engine is
no different.
Signed-off-by: Chen-Yu Tsai <wens@xxxxxxxx>
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
commit d420acd816c07c7be31bd19d09cbcb16e5572fa6
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Wed Aug 12 21:04:22 2015 +0200
jump_label/x86: Work around asm build bug on older/backported GCCs
Boris reported that gcc version 4.4.4 20100503 (Red Hat
4.4.4-2) fails to build linux-next kernels that have
this fresh commit via the locking tree:
11276d5306b8 ("locking/static_keys: Add a new static_key interface")
The problem appears to be that even though @key and @branch are
compile time constants, it doesn't see the following expression
as an immediate value:
&((char *)key)[branch]
More recent GCCs don't appear to have this problem.
In particular, Red Hat backported the 'asm goto' feature into 4.4,
'normal' 4.4 compilers will not have this feature and thus not
run into this asm.
The workaround is to supply both values to the asm as immediates
and do the addition in asm.
Suggested-by: H. Peter Anvin <hpa@xxxxxxxxx>
Reported-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Tested-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit e9a5e8cc55286941503f36c5b7485a5aa923b3f1
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Thu Aug 13 04:03:12 2015 +0100
sign-file: Fix warning about BIO_reset() return value
Fix the following warning:
scripts/sign-file.c: In function â??mainâ??:
scripts/sign-file.c:188: warning: value computed is not used
whereby the result of BIO_ctrl() is cast inside of BIO_reset() to an
integer of a different size - which we're not checking but probably
should.
Reported-by: James Morris <jmorris@xxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
commit 15ce414b82b07acb99afda6e4d9bd14f317b6011
Author: Richard Guy Briggs <rgb@xxxxxxxxxx>
Date: Sat Aug 8 10:20:25 2015 -0400
fixup: audit: implement audit by executable
The Intel build-bot detected a sparse warning with with a patch I posted a
couple of days ago that was accepted in the audit/next tree:
Subject: [linux-next:master 6689/6751] kernel/audit_watch.c:543:36:
sparse: dereference of noderef expression
Date: Friday, August 07, 2015, 06:57:55 PM
From: kbuild test robot <fengguang.wu@xxxxxxxxx>
tree: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
master
head: e6455bc5b91f41f842f30465c9193320f0568707
commit: 2e3a8aeb63e5335d4f837d453787c71bcb479796 [6689/6751] Merge
remote- tracking branch 'audit/next'
sparse warnings: (new ones prefixed by >>)
>> kernel/audit_watch.c:543:36: sparse: dereference of noderef expression
kernel/audit_watch.c:544:28: sparse: dereference of noderef expression
34d99af5 Richard Guy Briggs 2015-08-05 541 int audit_exe_compare(struct
task_struct *tsk, struct audit_fsnotify_mark *mark)
34d99af5 Richard Guy Briggs 2015-08-05 542 {
34d99af5 Richard Guy Briggs 2015-08-05 @543 unsigned long ino =
tsk->mm- >exe_file->f_inode->i_ino;
34d99af5 Richard Guy Briggs 2015-08-05 544 dev_t dev =
tsk->mm->exe_file- >f_inode->i_sb->s_dev;
:::::: The code at line 543 was first introduced by commit
:::::: 34d99af52ad40bd498ba66970579a5bc1fb1a3bc audit: implement audit by
executable
tsk->mm->exe_file requires RCU access. The warning was reproduceable by
adding
"C=1 CF=-D__CHECK_ENDIAN__" to the build command, and verified eliminated
with
this patch.
Signed-off-by: Richard Guy Briggs <rgb@xxxxxxxxxx>
Signed-off-by: Paul Moore <pmoore@xxxxxxxxxx>
commit 772111ab01eace6a7e4cf821a4348cec64a97c92
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Thu Aug 13 02:51:33 2015 +0100
PKCS#7: Add MODULE_LICENSE() to test module
Add a MODULE_LICENSE() line to the PKCS#7 test key module to fix this
warning:
WARNING: modpost: missing MODULE_LICENSE() in
crypto/asymmetric_keys/pkcs7_test_key.o
Whilst we're at it, also add a module description.
Reported-by: James Morris <jmorris@xxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
commit 3d04c92403d377918c9a3bddab6ee103f0db25dd
Author: Casey Schaufler <casey@xxxxxxxxxxxxxxxx>
Date: Wed Aug 12 11:56:02 2015 -0700
Smack - Fix build error with bringup unconfigured
The changes for mounting binary filesystems was allied
improperly, with the list of tokens being in an ifdef that
it shouldn't have been. Fix that, and a couple style issues
that were bothering me.
Reported-by: Jim Davis <jim.epost@xxxxxxxxx>
Signed-off-by: Casey Schaufler <casey@xxxxxxxxxxxxxxxx>
commit e8fed985d7bd6cda695e196028b54a5f3d2d91bb
Author: Rick Jones <rick.jones2@xxxxxx>
Date: Wed Aug 12 10:23:14 2015 -0700
documentation: bring vxlan documentation more up-to-date
A few things have changed since the previous version of the vxlan
documentation was written, so update it and correct some grammar and
such while we are at it.
Signed-off-by: Rick Jones <rick.jones2@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit b0c6ce24911fcb64715de9569f0f7b4f54d1d045
Author: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Date: Wed Aug 12 12:10:23 2015 -0300
net: fec: Remove unneeded use of IS_ERR_VALUE() macro
There is no need to use the IS_ERR_VALUE() macro for checking
the return value from pm_runtime_* functions.
Just do a simple negative test instead.
The semantic patch that makes this change is available
in scripts/coccinelle/api/pm_runtime.cocci.
Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 140d8b335a9beb234fd0ed9a15aa6a47f47fd771
Author: Wei-Chun Chao <weichunc@xxxxxxxxxxxx>
Date: Wed Aug 12 07:57:12 2015 -0700
bpf: fix bpf_perf_event_read() loop upper bound
Verifier rejects programs incorrectly.
Fixes: 35578d798400 ("bpf: Implement function bpf_perf_event_read()")
Cc: Kaixu Xia <xiakaixu@xxxxxxxxxx>
Cc: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: Wei-Chun Chao <weichunc@xxxxxxxxxxxx>
Acked-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit dcef70704d6c2792c6025ceba9708554d441a4bb
Merge: 7655078 a4011fd
Author: David S. Miller <davem@xxxxxxxxxxxxx>
Date: Wed Aug 12 16:42:12 2015 -0700
Merge branch 'cxgb4-more-debug-info'
Hariprasad Shenai says:
====================
Add some more debug info
This patch series adds the following.
Add more info for sge_qinfo dump
Differentiate tid and stids between different regions, and add a debugfs
entry to dump all the tid info
This patch series has been created against net-next tree and includes
patches on cxgb4 driver.
We have included all the maintainers of respective drivers. Kindly review
the change and let us know in case of any review comments.
====================
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit a4011fd470d334253a425942b29e65844642d0ff
Author: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Date: Wed Aug 12 16:55:07 2015 +0530
cxgb4: Add debugfs support to dump tid info
Add debugfs support to dump tid info like stid, sftid, tids, atid and
hwtids
Signed-off-by: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 2248b29349fa8c59e8bf7e13197f7d5303c0a86a
Author: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Date: Wed Aug 12 16:55:06 2015 +0530
cxgb4: Differentiate between stids between server and filter region
For T4 adapter, offloaded servers tid for IPv4 connections are
allocated from filter region. So add a new field for server filter tid if
server tid is allocated from filter region.
Signed-off-by: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 9a1bb9f64e31febbcf289809343bc7bbbac15519
Author: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Date: Wed Aug 12 16:55:05 2015 +0530
cxgb4: Differentiates between TIDs being used in TCAM and HASH
For the tid info, differentiate from which region the TID is allocated
from. It can be from TCAM region or HASH region.
Signed-off-by: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit e106a4d9ede30cc83b95bbd8ccf75a4aad8b0557
Author: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Date: Wed Aug 12 16:55:04 2015 +0530
cxgb4: Add some more details to sge qinfo
Adding more details to sge qinfo for debugging purpose.
Signed-off-by: Hariprasad Shenai <hariprasad@xxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 76550786c6780d95db1b2de56a115a84347b242d
Author: Mugunthan V N <mugunthanvnm@xxxxxx>
Date: Wed Aug 12 15:31:43 2015 +0530
net: ipv4: increase dhcp inter device timeout
When a system has multiple ethernet devices and during DHCP
request (for using NFS), the system waits only for HZ/2 which is
500mS before switching to another interface for DHCP.
There are some routers (Ex: Trendnet routers) which responds to
DHCP request at about 560mS. When the system has only one
ethernet interface there is no issue as the timeout is 2S and the
dev xid doesn't changes and only retries.
But when the system has multiple Ethernet like DRA74x with CPSW
in dual EMAC mode, the DHCP response is dropped as the dev xid
changes while shifting to the next device. So changing inter
device timeout to HZ (which is 1S).
Signed-off-by: Mugunthan V N <mugunthanvnm@xxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 5ed3ccbd5ac11414d61c16182718e68868becc16
Author: Kaixu Xia <xiakaixu@xxxxxxxxxx>
Date: Wed Aug 12 09:37:53 2015 +0000
bpf: fix build warnings and add function read_trace_pipe()
There are two improvements in this patch:
1. Fix the build warnings;
2. Add function read_trace_pipe() to print the result on
the screen;
Before this patch, we can get the result through /sys/kernel/de
bug/tracing/trace_pipe and get nothing on the screen.
By applying this patch, the result can be printed on the screen.
$ ./tracex6
...
tracex6-705 [003] d..1 131.428593: : CPU-3 19981414
sshd-683 [000] d..1 131.428727: : CPU-0 221682321
sshd-683 [000] d..1 131.428821: : CPU-0 221808766
sshd-683 [000] d..1 131.428950: : CPU-0 221982984
sshd-683 [000] d..1 131.429045: : CPU-0 222111851
tracex6-705 [003] d..1 131.429168: : CPU-3 20757551
sshd-683 [000] d..1 131.429170: : CPU-0 222281240
sshd-683 [000] d..1 131.429261: : CPU-0 222403340
sshd-683 [000] d..1 131.429378: : CPU-0 222561024
...
Signed-off-by: Kaixu Xia <xiakaixu@xxxxxxxxxx>
Acked-by: Alexei Starovoitov <ast@xxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 47b344b27a003fcdaccbdc07b3d558a7ccdfec04
Author: Ron Angeles <ronangeles@xxxxxxxxx>
Date: Tue Aug 11 23:01:20 2015 -0700
net: atl1c: add BQL support
This BQL implementation is mostly derived from its related driver, alx.
Tested on AR8131 (rev c0) [1969:1063]. Saturated a 100mbps link with 5
concurrent runs of netperf. Ping latency dropped from 14ms to 3ms.
Signed-off-by: Ron Angeles <ronangeles@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8d6a9f5676f0e734967ac3739f5c6a28a0b047d9
Author: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
Date: Wed Jul 1 11:31:27 2015 +0200
storvsc: use shost_for_each_device() instead of open coding
Comment in struct Scsi_Host says that drivers are not supposed to access
__devices directly. storvsc_host_scan() doesn't happen in irq context
so we can just use shost_for_each_device().
Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
Reviewed-by: Long Li <longli@xxxxxxxxxxxxx>
Acked-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit cb1cf0804fe582f8a626c3cc591cb3127536137c
Author: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
Date: Thu Jun 25 18:12:11 2015 +0200
storvsc: be more picky about scmnd->sc_data_direction
Under the 'default' case in scmnd->sc_data_direction we have 3 options:
- DMA_NONE which we handle correctly.
- DMA_BIDIRECTIONAL which is never supposed to be set by SCSI stack.
- Garbage value.
Do WARN() and return -EINVAL in the last two cases. virtio_scsi does
BUG_ON() here but it looks like an overkill.
Reported-by: Radim KrÄ?máÅ? <rkrcmar@xxxxxxxxxx>
Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
Acked-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 10978e48ccc1718dce5c2d275b761ab99c593a81
Author: Seymour, Shane M <shane.seymour@xxxxxx>
Date: Wed Jun 24 06:54:35 2015 +0000
st: convert DRIVER_ATTR macros to DRIVER_ATTR_RO
Convert DRIVER_ATTR macros to DRIVER_ATTR_RO requested by
Greg KH. Also switched to using scnprintf instead of snprintf
per Documentation/filesystems/sysfs.txt.
Suggested-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Shane Seymour <shane.seymour@xxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Reviewed-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Acked-by: Kai Mäkisara <kai.makisara@xxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit b5960e6e2b5c52520cec5888c3feb71b71ba1980
Author: Andrew Schwartzmeyer <andschwa@xxxxxxxxxxxxx>
Date: Tue Aug 11 17:14:32 2015 -0700
hv_netvsc: Implement set_channels ethtool op
This enables the use of ethtool --set-channels devname combined N to
change the number of vRSS queues. Separate rx, tx, and other parameters
are not supported. The maximum is rsscap.num_recv_que. It passes the
given value to rndis_filter_device_add through the device_info->num_chn
field.
If the procedure fails, it attempts to recover to the prior state. If
the recovery fails, it logs an error and aborts.
Current num_chn is saved and restored when changing the MTU.
Signed-off-by: Andrew Schwartzmeyer <andschwa@xxxxxxxxxxxxx>
Reviewed-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 8ebdcc52b9b8a53e3ba2643f515d41fff44d4743
Author: Andrew Schwartzmeyer <andschwa@xxxxxxxxxxxxx>
Date: Tue Aug 11 17:14:31 2015 -0700
hv_netvsc: Set vRSS with num_chn in RNDIS filter
Uses device_info->num_chn to pass user provided number of vRSS
queues (from ethtool --set-channels) to rndis_filter_device_add. If
nonzero and less than the maximum, set net_device->num_chn to the given
value; else default to prior algorithm.
Always initialize struct device_info to 0, otherwise not all its fields
are guaranteed to be 0, which is necessary when checking if num_chn has
been purposefully set.
Signed-off-by: Andrew Schwartzmeyer <andschwa@xxxxxxxxxxxxx>
Reviewed-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit d57f6232c157f03db7cb1ae62a3dcc548014a530
Author: Woojung.Huh@xxxxxxxxxxxxx <Woojung.Huh@xxxxxxxxxxxxx>
Date: Tue Aug 11 15:23:33 2015 +0000
lan78xx: Remove BUG_ON()
Removing BUG_ON()
Signed-off-by: Woojung Huh <woojung.huh@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 81c38e811af6107b9941c6716e82c6fd93308541
Author: Woojung.Huh@xxxxxxxxxxxxx <Woojung.Huh@xxxxxxxxxxxxx>
Date: Tue Aug 11 15:21:41 2015 +0000
lan78xx: Fix Smatch Warnings
lan78xx.c:2282 tx_complete() warn: variable dereferenced before check
'skb' (see line 2249)
lan78xx.c:2885 lan78xx_bh() info: ignoring unreachable code.
lan78xx.c:3159 lan78xx_probe() info: ignoring unreachable code.
Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Signed-off-by: Woojung Huh <woojung.huh@xxxxxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit c3ffe0ca4a75ec1b5183e6141bed4dfcde4309fb
Author: Tobias Klauser <tklauser@xxxxxxxxxx>
Date: Mon Aug 10 12:26:32 2015 +0200
net: eth: altera: Remove sgdmadesclen member from altera_tse_private
altera_tse_private->sgdmadesclen is always assigned assigned the same
value and never changes during runtime. Remove the struct member and
use a new define for sizeof(struct sgdma_descrip) instead.
Signed-off-by: Tobias Klauser <tklauser@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
commit 4b75de8615050c1b0dd8d7794838c42f74ed36ba
Author: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
Date: Wed Aug 12 15:00:12 2015 -0500
fs: Set the size of empty dirs to 0.
Before the make_empty_dir_inode calls were introduce into proc, sysfs,
and sysctl those directories when stated reported an i_size of 0.
make_empty_dir_inode started reporting an i_size of 2. At least one
userspace application depended on stat returning i_size of 0. So
modify make_empty_dir_inode to cause an i_size of 0 to be reported for
these directories.
Cc: stable@xxxxxxxxxxxxxxx
Reported-by: Tejun Heo <tj@xxxxxxxxxx>
Acked-by: Tejun Heo <tj@xxxxxxxxxx>
Signed-off-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
commit 76c44f6d80e151d230844db7ffc058ac21b9e3f2
Author: Mikulas Patocka <mpatocka@xxxxxxxxxx>
Date: Sun Jun 21 16:31:33 2015 -0400
dm snapshot: don't invalidate on-disk image on snapshot write overflow
When the snapshot overflows because of a write to the origin, the on-disk
image has to be invalidated. However, when the snapshot overflows because
of a write to the snapshot, the on-disk image doesn't have to be
invalidated. Change the behavior so that the on-disk image is not
invalidated in this case.
When the snapshot overflows, the variable snapshot_overflowed is set.
All writes to the snapshot are disallowed to minimize filesystem
corruption - this condition is cleared when the snapshot is deactivated
and activated.
The user can extend the overflowed snapshot, deactivate and activate it
again, run fsck (if journaling filesystem is not used) mount it and
recover the data.
Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
commit a93429c300483fa2509ae949a7915a01bd0acd20
Author: linux <linux@xxxxxxxxxxxxxxxxxx>
Date: Fri Jul 31 11:25:55 2015 +0800
hptiop: Support HighPoint RR36xx HBAs and Support SAS tape and SAS media
changer
Support HighPoint RR36xx HBAs which are based on Marvell Frey.
Support SAS tape and SAS media changer.
[jejb: remove now unused label]
Signed-off-by: HighPoint Linux Team <linux@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit faf00da544045fdc1454f3b9e6d7f65c841de302
Author: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
Date: Mon Aug 10 18:25:44 2015 -0500
userns,pidns: Force thread group sharing, not signal handler sharing.
The code that places signals in signal queues computes the uids, gids,
and pids at the time the signals are enqueued. Which means that tasks
that share signal queues must be in the same pid and user namespaces.
Sharing signal handlers is fine, but bizarre.
So make the code in fork and userns_install clearer by only testing
for what is functionally necessary.
Also update the comment in unshare about unsharing a user namespace to
be a little more explicit and make a little more sense.
Acked-by: Oleg Nesterov <oleg@xxxxxxxxxx>
Signed-off-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
commit 12c641ab8270f787dfcce08b5f20ce8b65008096
Author: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
Date: Mon Aug 10 17:35:07 2015 -0500
unshare: Unsharing a thread does not require unsharing a vm
In the logic in the initial commit of unshare made creating a new
thread group for a process, contingent upon creating a new memory
address space for that process. That is wrong. Two separate
processes in different thread groups can share a memory address space
and clone allows creation of such proceses.
This is significant because it was observed that mm_users > 1 does not
mean that a process is multi-threaded, as reading /proc/PID/maps
temporarily increments mm_users, which allows other processes to
(accidentally) interfere with unshare() calls.
Correct the check in check_unshare_flags() to test for
!thread_group_empty() for CLONE_THREAD, CLONE_SIGHAND, and CLONE_VM.
For sighand->count > 1 for CLONE_SIGHAND and CLONE_VM.
For !current_is_single_threaded instead of mm_users > 1 for CLONE_VM.
By using the correct checks in unshare this removes the possibility of
an accidental denial of service attack.
Additionally using the correct checks in unshare ensures that only an
explicit unshare(CLONE_VM) can possibly trigger the slow path of
current_is_single_threaded(). As an explict unshare(CLONE_VM) is
pointless it is not expected there are many applications that make
that call.
Cc: stable@xxxxxxxxxxxxxxx
Fixes: b2e0d98705e60e45bbb3c0032c48824ad7ae0704 userns: Implement unshare
of the user namespace
Reported-by: Ricky Zhou <rickyz@xxxxxxxxxxxx>
Reported-by: Kees Cook <keescook@xxxxxxxxxxxx>
Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>
Signed-off-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
commit 1c46ae0af6df0bbde66c5e868563be57f18a27b4
Merge: a73e99c 41d903c
Author: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 12:43:41 2015 -0700
Merge tag 'iio-for-4.3b-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
Jonathan writes:
Second set of new device support, features and cleanup for the 4.3 cycle.
Take 2 also includes a fix set that was too late for the 4.2 cycle.
As we had a lot of tools and docs work in this set, I have broken those
out into their own categories in this description.
Fixes from the pull request '4th set of IIO fixes for the 4.2 cycle'.
* Poll functions for both event chardev and the buffer one were returning
negative error codes (via a positive value).
* A recent change to lsiio adding some error handling that was wrong and
stopped the tool working.
* bmg160 was missing some dependencies in Kconfig
* berlin2-adc had a misshandled register (wrote a value rather than a
bitmap)
New device support
* TI opt3001 light sensor
* TXC PA12 ALS and proximity sensor.
* mcp3301 ADC support (in mcp320x driver)
* ST lsm303agr accelerometer and magnetometer drivers (plus some
st-sensors
common support to allow different WHOAMI register addresses, devices
with
fixed scale and allow interrupt equiped magnetometers).
* ADIS16305, ADIS16367, ADIS16445IMUs (in the adis16400 driver)
* ADIS16266 gyro (in the adis16260 driver)
* ADIS16137 gyro (in the adis16136 driver)
New functionality
* mmc35240 DT bindings.
* Inverse unit conversion macros to aid handing of values written to sysfs
attributes.
Core cleanup
* Forward declaration of struct iio_trigger to avoid a compile warning.
Driver cleanup / fixes
* mxs-lradc
- Clarify which parts are supported.
- Fix spelling erorrs.
- Missing/extra includes
- reorder includes
- add datasheet name listings for all usable channels (to allow them
to be bound by name from consumer drivers)
* acpi-als - add some function prefixes as per general iio style.
* bmc150_magn - replace a magic value with the existing define.
* vf610 - determine possible sample frequencies taking into account the
electrical characteristics (defining a minimum sample time)
* dht11
- whitespace
- additional docs
- avoid mulitple assignments in one line
- Use the new funciton ktime_get_resolution_ns to cleanup a nasty trick
previously used for timing.
* Fix all drivers that consider 0 a valid IRQ for historical reasons.
* Export I2C module alias info where previously missing (to allow
autoprobing)
* Export OF module alias info where previously missing.
* mmc35240 - switch some variables into arrays to improve readability.
* mlx90614 - define some magic numbers for readability.
* bmc150_magn
- expand area locked by a mutex to cover all the use of the
data->buffer.
- use descriptive naming for a mask instead of a magic value.
* berin2-adc
- pass up an error code rather that a generic error
- constify the iio_chan_spec
- some other little tidy ups.
* stk8312
- fix a dependency on triggered buffers in kconfig
- add a check for invalid attribute values
- improve error handling by returning error codes where possible and
return immediately where relevant
- rework macro defs to use GENMASK etc
- change some variable types to reduce unnecessary casting
- clean up code style
- drop a local buffer copy for bulk reads and use the one in
data->buffer
instead.
* adis16400 - the adis16448 gyroscope scale was wrong.
* adis16480 - some more wrong scales for various parts.
* adis16300 - has an undocumented product id and serial number registers
so
use them.
* iio_simple_dummy - fix some wrong code indentation.
* bmc150-accel - use the chip ID to detect the chip present rather than
verifying the expected part was there. This was in response to a wrong
ACPI entry on the WinBook TW100.
* mma8452
- fix _get_hp_filter_index
- drop a double include
- pass up an error code rather than rewriting it
- range check input values to attribute writes
- register defs tidy up using GENMASK and reordering them to be easier
to
follow.
- various coding style cleanups
- put the Kconfig entry in the write place (alphabetically).
Tools related
* Tools cleanup - drop an explicity NULL comparison, some unnecessary
braces,
use the ARRAY_SIZE macro, send error messages to stderr instead of
dropping
them in the middle of normal output.
* Fix tools to allow that scale and offset attributes are optional.
* More tools fixes including allowing true 32bit data (previously an
overflow
prevented more than 31bits)
* Drop a stray header guard that ended up in a c file.
* Make calc_digits static as it isn't exported or in the header.
* Set ci_array pointer to NULL after free as a protection against non safe
usage of the tools core code. Also convert a double pointer to a single
one as the extra level of indirection was unnecessary.
Docs
* DocBook introduction by Daniel Baluta. Glad we are beginning to
draw together some more introductory docs to suplement the various
tools / examples.
* Drop bytes_per_datum sysfs attribute docs as it no longer exists.
* A whole load of missing / fixing of kernel-doc for the core of IIO.
* Document the trigger name sysfs attribute in the ABI docs.
* Minor typos in the ABI docs related to power down modes.
commit 15398566f0ea95c66d202b8705dba4f59b9ba01c
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Fri Aug 7 09:06:37 2015 -0700
hwmon: (ltc2978) Add support for LTC3887
LTC3887 is an enhanced version of LTC3880 and supports the same commands.
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit e8047a2686d32854e4b82bd5d328da61025fb01a
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Fri Aug 7 01:04:56 2015 -0700
hwmon: (ltc2978) Add additional chip IDs for LTM4676 and LTM4676A
Per datasheet, the chip ID for LTM4676 is 0x448x. This was observed
in real systems. In addition to that, chip ID 0x4401 was observed
as well. Research shows that the chip ID has been changed from 0x440x
to 0x448x in datasheet revision C. Add support for the additional chip ID.
Also add the chip ID for LTM4676A, which is functionally identical
to LTM4676.
Reported-by: Ananda Babu Nettam <anandab@xxxxxxxxxxx>
Cc: Ananda Babu Nettam <anandab@xxxxxxxxxxx>
Cc: Amit U Jain <amjain@xxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit bf89386f166b18c21b2b7a2c5b6e496726c4f25f
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Jun 8 10:29:45 2015 -0700
hwmon: (ltc2978) Add support for LTC3882
LTC3882 is mostly compatible with LTC3880. Major differences are that it
does not measure the input current, and it no longer supports LTC's legacy
mechanism to identify the chip.
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 836954dadcb351d65cf96584f22c9e437169bd49
Author: Guenter Roeck <linux@xxxxxxxxxxxx>
Date: Mon Jun 8 10:14:00 2015 -0700
hwmon: (ltc2978) Move code to read chip ID into separate function
Verifying the chip type is getting more complicated with new chips,
since not all chips support the same mechanism to read the chip type.
Move the code into a separate function to simplify adding support for
those chips.
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
commit 58830550f009c5f60f702c9d3021f8c3be0012b0
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Aug 4 17:18:10 2015 -0400
NFSv4.1/pnfs: Remove redundant wakeup in pnfs_send_layoutreturn()
pnfs_clear_layoutreturn_waitbit() should already be calling
rpc_wake_up(&NFS_SERVER(ino)->roc_rpcwaitq) for us.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit e1c06f80dcca54cd323d1b98eb385a2c05c6e06b
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Aug 4 16:40:08 2015 -0400
NFSv4.1/pnfs: Remove redundant check in pnfs_layoutgets_blocked()
layoutget now should already be serialised w.r.t. layout returns
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 2d8ae84fbc32a14bba176cf9c20d5eb2a3d42791
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Aug 4 16:15:48 2015 -0400
NFSv4.1/pnfs: Remove redundant lo->plh_block_lgets in layoutreturn
The NFS_LAYOUT_RETURN bit already suffices to ensure that layoutget
is blocked.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 5c4a79fb2b1cd80cb58986f6acf402721901c545
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Aug 4 15:57:13 2015 -0400
NFSv4.1/pnfs: Don't prevent layoutgets when doing return-on-close
If there is an outstanding return-on-close, then we just want new
layoutget requests to wait rather than fail.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 8f70f53a87007bdbb34c79d11178a153914f5db1
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Aug 4 16:09:44 2015 -0400
NFSv4.1/pnfs: Fix serialisation of layout return and layoutget
We should always test for outstanding layout returns, whether or not
pnfs_should_retry_layoutget() is true.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit a4497a58e4043a925b7b308bd2c32f0744eca440
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Tue Aug 4 15:41:50 2015 -0400
NFSv4.1/pnfs: Remove redundant checks in pnfs_layoutgets_blocked()
If there are no valid layout segments, then we should already have
checked in pnfs_update_layout() whether or not this is the first
layoutget.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 27571297a7e9a2a845c232813a7ba7e1227f5ec6
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Mon Aug 3 17:38:33 2015 -0400
pNFS: Tighten up locking around DS commit buckets
I'm not aware of any bugreports around this issue, but the locking
around the pnfs_commit_bucket is inconsistent at best. This patch
tightens it up by ensuring that the 'bucket->committing' list is always
changed atomically w.r.t. the 'bucket->clseg' layout segment tracking.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 442d75628a3040bbfeb4a1f743b70a8afec0adbc
Author: Seymour, Shane M <shane.seymour@xxxxxx>
Date: Tue Jun 23 08:11:00 2015 +0000
st: convert to using driver attr groups for sysfs
This patch changes the st driver to use attribute groups so
driver sysfs files are created automatically. See the
following for reference:
http://kroah.com/log/blog/2013/06/26/how-to-create-a-sysfs-file-correctly/
Signed-off-by: Shane Seymour <shane.seymour@xxxxxx>
Reviewed-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Acked-by: Kai Mäkisara <kai.makisara@xxxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 0847ef88c3c9318d85e92fc42369df0e0190e1ab
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Thu Jul 30 21:40:06 2015 +0800
NFS: Remove duplicate svc_xprt_put from nfs41_callback_up
The xprt created by svc_create_xprt have be added to serv->sv_permsocks.
So putting the xprt directly is useless.
Otherwise, there is a more svc_xprt_put after the xprt be freed.
v2, same as v1.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit efcbc04e16dfa95fef76309f89710dd1d99a5453
Author: NeilBrown <neilb@xxxxxxxx>
Date: Thu Jul 30 13:00:56 2015 +1000
NFSv4: don't set SETATTR for O_RDONLY|O_EXCL
It is unusual to combine the open flags O_RDONLY and O_EXCL, but
it appears that libre-office does just that.
[pid 3250] stat("/home/USER/.config", {st_mode=S_IFDIR|0700,
st_size=8192, ...}) = 0
[pid 3250]
open("/home/USER/.config/libreoffice/4-suse/user/extensions/buildid",
O_RDONLY|O_EXCL <unfinished ...>
NFSv4 takes O_EXCL as a sign that a setattr command should be sent,
probably to reset the timestamps.
When it was an O_RDONLY open, the SETATTR command does not
identify any actual attributes to change.
If no delegation was provided to the open, the SETATTR uses the
all-zeros stateid and the request is accepted (at least by the
Linux NFS server - no harm, no foul).
If a read-delegation was provided, this is used in the SETATTR
request, and a Netapp filer will justifiably claim
NFS4ERR_BAD_STATEID, which the Linux client takes as a sign
to retry - indefinitely.
So only treat O_EXCL specially if O_CREAT was also given.
Signed-off-by: NeilBrown <neilb@xxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 5ef8d792fabedeb932375b23735bc7a1a3e8684d
Author: Kinglong Mee <kinglongmee@xxxxxxxxx>
Date: Thu Jul 30 21:41:08 2015 +0800
NFS: Error out when register_shrinker fail in register_nfs_fs
Commit 1d3d4437ea "vmscan: per-node deferred work" have made
register_shrinker can return an intergater error.
If register_shrinker() fail, the later unregister_shrinker() will
cause a NULL pointer access.
v2, same as v1.
Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 3ff448b5b7dc7ad4d664588c343da1e5e2ce18dd
Author: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
Date: Fri Jun 12 01:50:45 2015 +0300
bfa: fix leak of bfad_im_port_index on module unload
Resources allocated within bfad_im_port_index idr are not deallocated
on module unload. The patch adds idr_destroy() in exit function.
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 24a9a9610ce3ba36fd87c1d2f2c9106de6b7e832
Author: Jeff Layton <jlayton@xxxxxxxxxxxxxxx>
Date: Mon Aug 3 07:44:53 2015 -0400
sunrpc: increase UNX_MAXNODENAME from 32 to __NEW_UTS_LEN bytes
The current limit of 32 bytes artificially limits the name string that
we end up stuffing into NFSv4.x client ID blobs. If you have multiple
hosts with long hostnames that only differ near the end, then this can
cause NFSv4 client ID collisions.
Linux nodenames are actually limited to __NEW_UTS_LEN bytes (64), so use
that as the limit instead. Also, use XDR_QUADLEN to specify the slack
length, just for clarity and in case someone in the future changes this
to something not evenly divisible by 4.
Reported-by: Michael Skralivetsky <michael.skralivetsky@xxxxxxxxxxxxxxx>
Signed-off-by: Jeff Layton <jeff.layton@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit c8ad8894e92b853df5a766061ee9cde7e10e682f
Author: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
Date: Wed Aug 5 17:31:58 2015 -0400
NFSv4.2/pnfs: Use GFP_NOIO for layoutstat reporting in the writeback path
Prevent a potential deadlock.
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 41d903c00051d8f31c98a8136edbac67e6f8688f
Author: Cristina Opriceana <cristina.opriceana@xxxxxxxxx>
Date: Mon Aug 3 13:00:47 2015 +0300
iio: event: Remove negative error code from iio_event_poll
Negative return values are not supported by iio_event_poll since
its return type is unsigned int.
Fixes: f18e7a068a0a3 ("iio: Return -ENODEV for file operations if the
device has been unregistered")
Signed-off-by: Cristina Opriceana <cristina.opriceana@xxxxxxxxx>
Cc: <Stable@xxxxxxxxxxxxxxx>
Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxxx>
commit 1bdc0293901cbea23c6dc29432e81919d4719844
Author: Cristina Opriceana <cristina.opriceana@xxxxxxxxx>
Date: Mon Aug 3 13:37:40 2015 +0300
iio: industrialio-buffer: Fix iio_buffer_poll return value
Change return value to 0 if no device is bound since
unsigned int cannot support negative error codes.
Fixes: f18e7a068 ("iio: Return -ENODEV for file operations if the
device has been unregistered")
Signed-off-by: Cristina Opriceana <cristina.opriceana@xxxxxxxxx>
Cc: <Stable@xxxxxxxxxxxxxxx>
Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxxx>
commit af255cd562aaa72455f9022a26afacd68f3fbf73
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date: Tue Aug 4 16:21:49 2015 +0200
iio: lsiio: fix error code handling error
commit acf50b3586f8d8a7530b905e111dda41876d38f4
"tools:iio:lsiio: add error handling"
introduced error handling of errors returned from
read_sysfs_string(), but with a simple if (retval),
missing the fact that these functions return a positive
value if the read was successful.
As a result lsiio regresses and does not show any
devices on my filesystem. Fix this by checking for
only negative error codes.
Cc: Hartmut Knaack <knaack.h@xxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Acked-by: Hartmut Knaack <knaack.h@xxxxxx>
Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxxx>
commit d099d7b8316f3ebd63472d207c4801a464330016
Author: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Date: Mon Aug 10 16:47:32 2015 +0800
pnfs/flexfiles: LAYOUTSTATS ii_count should be ops instead of bytes
Turned out I misinterpreted the spec...
Cc: Tom Haynes <thomas.haynes@xxxxxxxxxxxxxxx>
Reported-by: Jean Spector <jean@xxxxxxxxxxxxxxx>
Signed-off-by: Peng Tao <tao.peng@xxxxxxxxxxxxxxx>
Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx>
commit 06d2f6ca5a38abe92f1f3a132b331eee773868c3
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Wed Jul 29 15:46:03 2015 +0200
iio: bmg160: IIO_BUFFER and IIO_TRIGGERED_BUFFER are required
This patch adds selects for IIO_BUFFER and IIO_TRIGGERED_BUFFER. Without
IIO_BUFFER, the driver does not compile.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>
Cc: <Stable@xxxxxxxxxxxxxxx>
Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxxx>
commit 57cb06762d5e587d58005b17b0fa99bd1e391c29
Author: Hartmut Knaack <knaack.h@xxxxxx>
Date: Tue Jul 28 00:38:57 2015 +0200
iio:adc:berlin2-adc: Fix register definition
Active channel number is stored in BERLIN2_SM_CTRL as value, instead of a
bit map.
The masks for channel interrupts and data ready are a 16 bits wide bit
map each, instead of just 4 bits.
Also correct the data mask for the temperature sensor, which was
Reported-by: Antoine Tenart <antoine.tenart@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Hartmut Knaack <knaack.h@xxxxxx>
Acked-by: Antoine Tenart <antoine.tenart@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxxx>
commit ce83a4ca18391cfe823629c3863108d265e976f8
Author: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Date: Fri Jun 5 14:20:40 2015 -0700
libfc: Fix a typo in a source code comment
Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>
Signed-off-by: Vasu Dev <vasu.dev@xxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 0a66ac17abf2bd03e30fbe20b1847258b960b683
Author: Johannes Thumshirn <jthumshirn@xxxxxxx>
Date: Fri May 22 11:15:02 2015 +0200
mvsas: always iounmap resources
In case pci_resource_start() or pci_resource_len() reutrn 0, mvsas_ioremap
returns without doing an iounmap() of mvi->regs_ex.
Found by the cocinelle tool.
Signed-off-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit a30c2a3bf8571c6748dd16edc10b32d45ed71a72
Author: Thadeu Lima de Souza Cascardo <cascardo@xxxxxxxxxxxxxxxxxx>
Date: Thu Apr 30 09:13:05 2015 -0300
qla2xxx: prevent board_disable from running during EEH
Commit f3ddac1918fe963bcbf8d407a3a3c0881b47248b ("[SCSI] qla2xxx:
Disable adapter when we encounter a PCI disconnect.") has introduced a
code that disables the board, releasing some resources, when reading
0xffffffff.
In case this happens when there is an EEH, this read will trigger EEH
detection and set PCI channel offline. EEH will be able to recover the
card from this state by doing a reset, so it's a better option than
simply disabling the card.
Since eeh_check_failure will mark the channel as offline before
returning the read value, in case there really was an EEH, we can simply
check for pci_channel_offline, preventing the board_disable code from
running if it's true.
Without this patch, EEH code will try to access those same resources
that board_disable will try to free. This race can cause EEH recovery to
fail.
[ 504.370577] EEH: Notify device driver to resume
[ 504.370580] qla2xxx [0001:07:00.0]-9002:2: The device failed to resume
I/O from slot/link_reset.
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@xxxxxxxxxxxxxxxxxx>
Acked-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit d8571b1ecbd497d78923e046262872e3206b2deb
Author: Suresh Thiagarajan <Suresh.Thiagarajan@xxxxxxxx>
Date: Thu Feb 12 12:04:37 2015 +0530
pm80xx: Added pm8006 controller support
Signed-off-by: Suresh Thiagarajan <Suresh.Thiagarajan@xxxxxxxx>
Signed-off-by: Viswas G <Viswas.G@xxxxxxxx>
Acked-by: Jack Wang <xjtuwjp@xxxxxxxxx>
Signed-off-by: James Bottomley <JBottomley@xxxxxxxx>
commit 54fbde8a94a8a78547597215c9e4be590d075ee0
Author: Sinclair Yeh <syeh@xxxxxxxxxx>
Date: Wed Jul 29 12:38:02 2015 -0700
drm/vmwgfx: Fix copyright headers
Updating and fixing copyright headers.
Bump version minor to signal vgpu10 support.
Signed-off-by: Sinclair Yeh <syeh@xxxxxxxxxx>
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Reviewed-by: Brian Paul <brianp@xxxxxxxxxx>
commit fd11a3c0bd39162547e8abe44e1aaa11059c15f5
Author: Sinclair Yeh <syeh@xxxxxxxxxx>
Date: Mon Aug 10 10:56:15 2015 -0700
drm/vmwgfx: Add DX query support. Various fixes.
Add support for vgpu10 queries. Functional- and formatting fixes.
Signed-off-by: Sinclair Yeh <syeh@xxxxxxxxxx>
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
commit 0fca749e9a085ac4623a807ab12c37fc09851e3c
Author: Neha Bhende <nbhende@xxxxxxxxxx>
Date: Mon Aug 10 10:51:07 2015 -0700
drm/vmwgfx: Add command parser support for a couple of DX commands
Add support for SVGA_3D_CMD_DX_BUFFER_COPY and
SVGA_3D_CMD_DX_PRED_COPY_REGION
Signed-off-by: Neha Bhende <nbhende@xxxxxxxxxx>
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
commit 2f633e5e40798d5c8db512118b5e464b62f7ff06
Author: Charmaine Lee <charmainel@xxxxxxxxxx>
Date: Mon Aug 10 10:45:11 2015 -0700
drm/vmwgfx: Command parser fixes for DX
Implement support for a couple of missing commands and fix a command
parser
error path. Also fix uninitialized devcaps and surface size computation.
Signed-off-by: Charmaine Lee <charmainel@xxxxxxxxxx>
Signed-off-by: Sinclair Yeh <syeh@xxxxxxxxxx>
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
commit d80efd5cb3dec16a8d1aea9b8a4a7921972dba65
Author: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Date: Mon Aug 10 10:39:35 2015 -0700
drm/vmwgfx: Initial DX support
Initial DX support.
Co-authored with Sinclair Yeh, Charmaine Lee and Jakob Bornecrantz.
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Signed-off-by: Sinclair Yeh <syeh@xxxxxxxxxx>
Signed-off-by: Charmaine Lee <charmainel@xxxxxxxxxx>
commit 8ce75f8ab9044fe11caaaf2b2c82471023212f9f
Author: Sinclair Yeh <syeh@xxxxxxxxxx>
Date: Wed Jul 8 21:20:39 2015 -0700
drm/vmwgfx: Update device includes for DX device functionality
Add DX includes and move all device includes to a separate directory.
Co-authored with Thomas Hellstrom, Charmaine Lee and above all,
the VMware device team.
Signed-off-by: Sinclair Yeh <syeh@xxxxxxxxxx>
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Signed-off-by: Charmaine Lee <charmainel@xxxxxxxxxx>
commit 5101020c78c9f242fe77bd7986bc24f7b800172a
Author: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Date: Fri Jul 10 22:31:08 2015 -0700
drm: export the DRM permission check code
This way drm_ioctl_permit() can be used by drivers
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
commit 05c9501859c8bd80635d7299c384e2a8db7c0ce1
Author: Sinclair Yeh <syeh@xxxxxxxxxx>
Date: Tue Aug 11 22:53:39 2015 -0700
drm/vmwgfx: Fix crash when unloading vmwgfx v2
This patch fixes two issues. One, when a surface is a proxy for a DMA
buffer, it holds an extra reference that needs to be cleared.
Two, when fbdev is enabled, we need to unpin the framebuffer before
unloading the driver. This is done by a call to vmw_fb_off().
v2
Moved unreferencing surface to from vmw_framebuffer_surface_destroy()
to vmw_kms_new_framebuffer()
Added "struct vmw_framebuffer *vfb = NULL;" to silence a compiler
warning.
Removed error checking after calling vmw_surface/dmabuf_reference()
Signed-off-by: Sinclair Yeh <syeh@xxxxxxxxxx>
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
commit df45e9d410fc07ab816b006414f52ec4e2fbf2d7
Author: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Date: Wed Aug 12 09:30:09 2015 -0700
drm/vmwgfx: Fix framebuffer creation on older hardware
On older hardware, texture max width and height is not available, so set
it to something reasonable, like 8192.
Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx>
commit 65ade7d34bb6436104f1fdcce899bd81707da2e1
Author: Sinclair Yeh <syeh@xxxxxxxxxx>
Date: Thu Jul 16 10:49:13 2015 -0700
drm/vmwgfx: Fixed topology boundary checking for Screen Targets
For a Screen Target capable display device, the display topology is
limited by SVGA_REG_MAX_PRIMARY_BOUNDING_BOX_MEM. Two values are
checked against this limit:
1. Size of the bounding box enclosing all the displays, and
2. Size of the total number of displays, e.g. framebuffers
The limitations above mean we do not have exact max width and
height for the topology. The best current option is to set those to
the maximum texture width/height.
Signed-off-by: Sinclair Yeh <syeh@xxxxxxxxxx>
Reviewed-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx>
commit 9a5ad7d0e3e1c6c0c11df89fbc5376f8aaf7a90f
Author: Jungseok Lee <jungseoklee85@xxxxxxxxx>
Date: Wed Aug 12 15:16:19 2015 +0100
arm64: Add __exception_irq_entry definition for function graph
The gic_handle_irq() is defined with __exception_irq_entry attribute.
A single remaining work is to add its definition as ARM did. Below
shows how function graph data is changed with these hunks.
A prologue of an interrupt handler is drawn as follows.
- current status
0) 0.208 us | cpuidle_not_available();
0) | default_idle_call() {
0) | arch_cpu_idle() {
0) | __handle_domain_irq() {
0) | irq_enter() {
0) 0.313 us | rcu_irq_enter();
0) 0.261 us | __local_bh_disable_ip();
- with this change
0) 0.625 us | cpuidle_not_available();
0) | default_idle_call() {
0) | arch_cpu_idle() {
0) ==========> |
0) | gic_handle_irq() {
0) | __handle_domain_irq() {
0) | irq_enter() {
0) 0.885 us | rcu_irq_enter();
0) 0.781 us | __local_bh_disable_ip();
An epilogue of an interrupt handler is recorded as follows.
- current status
0) 0.261 us | idle_cpu();
0) | rcu_irq_exit() {
0) 0.521 us | rcu_eqs_enter_common.isra.46();
0) 2.552 us | }
0) ! 322.448 us | }
0) ! 583.437 us | }
0) # 1656.041 us | }
0) # 1658.073 us | }
- with this change
0) 0.677 us | idle_cpu();
0) | rcu_irq_exit() {
0) 1.770 us | rcu_eqs_enter_common.isra.46();
0) 7.968 us | }
0) # 1803.541 us | }
0) # 2626.667 us | }
0) # 2632.969 us | }
0) <========== |
0) # 14425.00 us | }
0) # 14430.98 us | }
Cc: AKASHI Takahiro <takahiro.akashi@xxxxxxxxxx>
Cc: Marc Zyngier <marc.zyngier@xxxxxxx>
Cc: Rabin Vincent <rabin@xxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Signed-off-by: Jungseok Lee <jungseoklee85@xxxxxxxxx>
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
commit 71ef150ee06df29c5b427307dc0bacfe06a8baea
Author: Kan Liang <kan.liang@xxxxxxxxx>
Date: Tue Aug 11 06:30:50 2015 -0400
perf tests: Add tests to callgraph and time parse
Add tests in tests/parse-events.c to check call-graph and time option.
Signed-off-by: Kan Liang <kan.liang@xxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439289050-40510-4-git-send-email-kan.liang@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 9e207ddfa20781e56465ce9a537f0a377c9d34fb
Author: Kan Liang <kan.liang@xxxxxxxxx>
Date: Tue Aug 11 06:30:49 2015 -0400
perf report: Show call graph from reference events
Introduce --show-ref-call-graph for perf report to print reference
callgraph for no callgraph event.
Here is an example.
perf report --show-ref-call-graph --stdio
# To display the perf.data header info, please use
--header/--header-only options.
#
#
# Total Lost Samples: 0
#
# Samples: 5 of event 'cpu/cpu-cycles,call-graph=fp/'
# Event count (approx.): 144985
#
# Children Self Command Shared Object Symbol
# ........ ........ ....... ................
........................................
#
72.30% 0.00% sleep [kernel.vmlinux] [k]
entry_SYSCALL_64_fastpath
|
---entry_SYSCALL_64_fastpath
|
|--22.62%-- __GI___libc_nanosleep
--77.38%-- [...]
......
# Samples: 6 of event 'cpu/instructions,call-graph=no/', show reference
callgraph
# Event count (approx.): 172780
#
# Children Self Command Shared Object Symbol
# ........ ........ ....... ................
........................................
#
73.16% 0.00% sleep [kernel.vmlinux] [k]
entry_SYSCALL_64_fastpath
|
---entry_SYSCALL_64_fastpath
|
|--31.44%-- __GI___libc_nanosleep
--68.56%-- [...]
Signed-off-by: Kan Liang <kan.liang@xxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439289050-40510-3-git-send-email-kan.liang@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit f9db0d0f1b2cf030083c83d3ed3a4bbae6bdc8b7
Author: Kan Liang <kan.liang@xxxxxxxxx>
Date: Tue Aug 11 06:30:48 2015 -0400
perf callchain: Allow disabling call graphs per event
This patch introduce "call-graph=no" to disable per-event callgraph.
Here is an example.
perf record -e
'cpu/cpu-cycles,call-graph=fp/,cpu/instructions,call-graph=no/' sleep 1
perf report --stdio
# To display the perf.data header info, please use
--header/--header-only options.
#
#
# Total Lost Samples: 0
#
# Samples: 6 of event 'cpu/cpu-cycles,call-graph=fp/'
# Event count (approx.): 774218
#
# Children Self Command Shared Object Symbol
# ........ ........ ....... ................
........................................
#
61.94% 0.00% sleep [kernel.vmlinux] [k]
entry_SYSCALL_64_fastpath
|
---entry_SYSCALL_64_fastpath
|
|--97.30%-- __brk
|
--2.70%-- mmap64
_dl_check_map_versions
_dl_check_all_versions
61.94% 0.00% sleep [kernel.vmlinux] [k] perf_event_mmap
|
---perf_event_mmap
|
|--97.30%-- do_brk
| sys_brk
| entry_SYSCALL_64_fastpath
| __brk
|
--2.70%-- mmap_region
do_mmap_pgoff
vm_mmap_pgoff
sys_mmap_pgoff
sys_mmap
entry_SYSCALL_64_fastpath
mmap64
_dl_check_map_versions
_dl_check_all_versions
......
# Samples: 6 of event 'cpu/instructions,call-graph=no/'
# Event count (approx.): 359692
#
# Children Self Command Shared Object Symbol
# ........ ........ ....... ................
.................................
#
89.03% 0.00% sleep [unknown] [.] 0xffff6598ffff6598
89.03% 0.00% sleep ld-2.17.so [.]
_dl_resolve_conflicts
89.03% 0.00% sleep [kernel.vmlinux] [k] page_fault
Signed-off-by: Kan Liang <kan.liang@xxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439289050-40510-2-git-send-email-kan.liang@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit d457c96392bb418bd998f3ccf93e0e4c958fcd0f
Author: Kan Liang <kan.liang@xxxxxxxxx>
Date: Tue Aug 11 06:30:47 2015 -0400
perf callchain: Per-event type selection support
This patchkit adds the ability to set callgraph mode (fp, dwarf, lbr) per
event. This in term can reduce sampling overhead and the size of the
perf.data.
Here is an example.
perf record -e
'cpu/cpu-cycles,period=1000,call-graph=fp,time=1/,cpu/instructions,call-graph=lbr/'
sleep 1
perf evlist -v
cpu/cpu-cycles,period=1000,call-graph=fp,time=1/: type: 4, size: 112,
config: 0x3c, { sample_period, sample_freq }: 1000, sample_type:
IP|TID|TIME|CALLCHAIN|PERIOD|IDENTIFIER, read_format: ID, disabled: 1,
inherit: 1, mmap: 1, comm: 1, enable_on_exec: 1, task: 1, sample_id_all:
1, exclude_guest: 1, mmap2: 1, comm_exec: 1
cpu/instructions,call-graph=lbr/: type: 4, size: 112, config: 0xc0, {
sample_period, sample_freq }: 4000, sample_type:
IP|TID|TIME|CALLCHAIN|PERIOD|BRANCH_STACK|IDENTIFIER, read_format: ID,
disabled: 1, inherit: 1, freq: 1, enable_on_exec: 1, sample_id_all: 1,
exclude_guest: 1
Signed-off-by: Kan Liang <kan.liang@xxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439289050-40510-1-git-send-email-kan.liang@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 75186a9b09e47072f442f43e292cd47180b67b5c
Author: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Date: Wed Aug 12 10:24:07 2015 +0900
perf probe: Fix to show lines of sys_ functions correctly
"perf probe --lines sys_poll" shows only the first line of sys_poll,
because the SYSCALL_DEFINE macro:
----
SYSCALL_DEFINE*(foo,...)
{
body;
}
----
is expanded as below (on debuginfo)
----
static inline int SYSC_foo(...)
{
body;
}
int SyS_foo(...) <- is an alias of sys_foo.
{
return SYSC_foo(...);
}
----
So, "perf probe --lines sys_foo" decodes SyS_foo function and it also
skips
inlined functions(SYSC_foo) inside the target function because those
functions
are usually defined somewhere else.
To fix this issue, this fix checks whether the inlined function is
defined at
the same point of the target function, and if so, it doesn't skip the
inline
function.
Reported-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Link:
http://lkml.kernel.org/r/20150812012406.11811.94691.stgit@xxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 228c37ff980f5643401a1667f5ab7c6f38602cf8
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Tue Aug 11 12:38:54 2015 +0100
sign-file: Document dependency on OpenSSL devel libraries
The revised sign-file program is no longer a script that wraps the openssl
program, but now rather a program that makes use of OpenSSL's crypto
library. This means that to build the sign-file program, the kernel build
process now has a dependency on the OpenSSL development packages in
addition to OpenSSL itself.
Document this in Kconfig and in module-signing.txt.
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Reviewed-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
commit 99db44350672c8a5ee9a7b0a6f4cd6ff10136065
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Wed Aug 5 15:22:27 2015 +0100
PKCS#7: Appropriately restrict authenticated attributes and content type
A PKCS#7 or CMS message can have per-signature authenticated attributes
that are digested as a lump and signed by the authorising key for that
signature. If such attributes exist, the content digest isn't itself
signed, but rather it is included in a special authattr which then
contributes to the signature.
Further, we already require the master message content type to be
pkcs7_signedData - but there's also a separate content type for the data
itself within the SignedData object and this must be repeated inside the
authattrs for each signer [RFC2315 9.2, RFC5652 11.1].
We should really validate the authattrs if they exist or forbid them
entirely as appropriate. To this end:
(1) Alter the PKCS#7 parser to reject any message that has more than one
signature where at least one signature has authattrs and at least one
that does not.
(2) Validate authattrs if they are present and strongly restrict them.
Only the following authattrs are permitted and all others are
rejected:
(a) contentType. This is checked to be an OID that matches the
content type in the SignedData object.
(b) messageDigest. This must match the crypto digest of the data.
(c) signingTime. If present, we check that this is a valid,
parseable
UTCTime or GeneralTime and that the date it encodes fits within
the validity window of the matching X.509 cert.
(d) S/MIME capabilities. We don't check the contents.
(e) Authenticode SP Opus Info. We don't check the contents.
(f) Authenticode Statement Type. We don't check the contents.
The message is rejected if (a) or (b) are missing. If the message is
an Authenticode type, the message is rejected if (e) is missing; if
not Authenticode, the message is rejected if (d) - (f) are present.
The S/MIME capabilities authattr (d) unfortunately has to be allowed
to support kernels already signed by the pesign program. This only
affects kexec. sign-file suppresses them (CMS_NOSMIMECAP).
The message is also rejected if an authattr is given more than once
or
if it contains more than one element in its set of values.
(3) Add a parameter to pkcs7_verify() to select one of the following
restrictions and pass in the appropriate option from the callers:
(*) VERIFYING_MODULE_SIGNATURE
This requires that the SignedData content type be pkcs7-data and
forbids authattrs. sign-file sets CMS_NOATTR. We could be more
flexible and permit authattrs optionally, but only permit minimal
content.
(*) VERIFYING_FIRMWARE_SIGNATURE
This requires that the SignedData content type be pkcs7-data and
requires authattrs. In future, this will require an attribute
holding the target firmware name in addition to the minimal set.
(*) VERIFYING_UNSPECIFIED_SIGNATURE
This requires that the SignedData content type be pkcs7-data but
allows either no authattrs or only permits the minimal set.
(*) VERIFYING_KEXEC_PE_SIGNATURE
This only supports the Authenticode SPC_INDIRECT_DATA content type
and requires at least an SpcSpOpusInfo authattr in addition to the
minimal set. It also permits an SPC_STATEMENT_TYPE authattr (and
an S/MIME capabilities authattr because the pesign program doesn't
remove these).
(*) VERIFYING_KEY_SIGNATURE
(*) VERIFYING_KEY_SELF_SIGNATURE
These are invalid in this context but are included for later use
when limiting the use of X.509 certs.
(4) The pkcs7_test key type is given a module parameter to select between
the above options for testing purposes. For example:
echo 1 >/sys/module/pkcs7_test_key/parameters/usage
keyctl padd pkcs7_test foo @s </tmp/stuff.pkcs7
will attempt to check the signature on stuff.pkcs7 as if it contains
a
firmware blob (1 being VERIFYING_FIRMWARE_SIGNATURE).
Suggested-by: Andy Lutomirski <luto@xxxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Reviewed-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
Reviewed-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
commit f29299b4801076e14bb149cb2fc44bd8dc2f51cc
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Fri Jul 31 11:43:23 2015 +0100
KEYS: Add a name for PKEY_ID_PKCS7
Add a name for PKEY_ID_PKCS7 into the pkey_id_type_name array.
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
commit fd19a3d195be23e8d9d0d66576b96ea25eea8323
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Wed Jul 29 16:58:32 2015 +0100
PKCS#7: Improve and export the X.509 ASN.1 time object decoder
Make the X.509 ASN.1 time object decoder fill in a time64_t rather than a
struct tm to make comparison easier (unfortunately, this makes readable
display less easy) and export it so that it can be used by the PKCS#7 code
too.
Further, tighten up its parsing to reject invalid dates (eg. weird
characters, non-existent hour numbers) and unsupported dates (eg.
timezones
other than 'Z' or dates earlier than 1970).
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Reviewed-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
commit 770f2b98760ef0500183d7206724aac762433e2d
Author: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Date: Mon Jul 20 21:16:34 2015 +0100
modsign: Use extract-cert to process CONFIG_SYSTEM_TRUSTED_KEYS
Fix up the dependencies somewhat too, while we're at it.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
commit 84706caae9e06363db4f956cde4f9715ce5c0ef3
Author: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Date: Mon Jul 20 21:16:33 2015 +0100
extract-cert: Cope with multiple X.509 certificates in a single file
This is not required for the module signing key, although it doesn't do
any
harm â?? it just means that any additional certs in the PEM file are also
trusted by the kernel.
But it does allow us to use the extract-cert tool for processing the extra
certs from CONFIG_SYSTEM_TRUSTED_KEYS, instead of that horrid awk|base64
hack.
Also cope with being invoked with no input file, creating an empty output
file as a result.
Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
commit ed8c20762a314124cbdd62e9d3e8aa7aa2a16020
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Mon Jul 20 21:16:33 2015 +0100
sign-file: Generate CMS message as signature instead of PKCS#7
Make sign-file use the OpenSSL CMS routines to generate a message to be
used as the signature blob instead of the PKCS#7 routines. This allows us
to change how the matching X.509 certificate is selected. With PKCS#7 the
only option is to match on the serial number and issuer fields of an X.509
certificate; with CMS, we also have the option of matching by subjectKeyId
extension. The new behaviour is selected with the "-k" flag.
Without the -k flag specified, the output is pretty much identical to the
PKCS#7 output.
Whilst we're at it, don't include the S/MIME capability list in the
message
as it's irrelevant to us.
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Reviewed-By: David Woodhouse <David.Woodhouse@xxxxxxxxx
commit 60d65cacd7c2d84a6dcad69bcb57bbf0220c8643
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Mon Jul 20 21:16:33 2015 +0100
PKCS#7: Support CMS messages also [RFC5652]
Since CMS is an evolution of PKCS#7, with much of the ASN.1 being
compatible, add support for CMS signed-data messages also [RFC5652 sec 5].
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Reviewed-By: David Woodhouse <David.Woodhouse@xxxxxxxxx>
commit a4c6e57f4f5fa65cbdb8cc1c14ff5ca7c56766c3
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Mon Jul 20 21:16:32 2015 +0100
X.509: Change recorded SKID & AKID to not include Subject or Issuer
The key identifiers fabricated from an X.509 certificate are currently:
(A) Concatenation of serial number and issuer
(B) Concatenation of subject and subjectKeyID (SKID)
When verifying one X.509 certificate with another, the AKID in the target
can be used to match the authoritative certificate. The AKID can specify
the match in one or both of two ways:
(1) Compare authorityCertSerialNumber and authorityCertIssuer from the
AKID
to identifier (A) above.
(2) Compare keyIdentifier from the AKID plus the issuer from the target
certificate to identifier (B) above.
When verifying a PKCS#7 message, the only available comparison is between
the IssuerAndSerialNumber field and identifier (A) above.
However, a subsequent patch adds CMS support. Whilst CMS still supports a
match on IssuerAndSerialNumber as for PKCS#7, it also supports an
alternative - which is the SubjectKeyIdentifier field. This is used to
match to an X.509 certificate on the SKID alone. No subject information
is
available to be used.
To this end change the fabrication of (B) above to be from the X.509 SKID
alone. The AKID in keyIdentifier form then only matches on that and does
not include the issuer.
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Reviewed-By: David Woodhouse <David.Woodhouse@xxxxxxxxx>
commit 2c7fd3675ef1867d0d0c39e9f0bb5ddb67bfc7a7
Author: David Howells <dhowells@xxxxxxxxxx>
Date: Mon Jul 20 21:16:31 2015 +0100
PKCS#7: Check content type and versions
We only support PKCS#7 signed-data [RFC2315 sec 9] content at the top
level,
so reject anything else. Further, check that the version numbers in
SignedData and SignerInfo are 1 in both cases.
Note that we don't restrict the inner content type. In the PKCS#7 code we
don't parse the data attached there, but merely verify the signature over
it.
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
Reviewed-By: David Woodhouse <David.Woodhouse@xxxxxxxxx>
commit 63ab1749f39aeec27b0dcf71cd7996d862c5ad63
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Wed Aug 12 12:42:58 2015 -0300
perf hists browser: Make ESC unzoom as well
In addition to <-, that may be repurposed for horizontal scrolling.
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-w3rctelxr4yxrjufx7z3fclb@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit d4853630b334017cab9a4602f5e9677e3b792c8a
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 17:00:35 2015 +0200
drm/atomic: Use KMS VBLANK API
Instead of using the legacy VBLANK API, use the new KMS API. This is
part of an effort to convert all existing users so that the KMS API can
be changed to properly use per-CRTC data.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit c30e11fc66fe21882c46e176ed695728ebd4293a
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 17:00:33 2015 +0200
drm/irq: Document return values more consistently
Some of the functions are documented inconsistently. Add Returns:
sections where missing and use consistent style to describe the return
value.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit cc1ef118fc099295ae6aabbacc8af94d8d8885eb
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 17:00:31 2015 +0200
drm/irq: Make pipe unsigned and name consistent
Name all references to the pipe number (CRTC index) consistently to make
it easier to distinguish which is a pipe number and which is a pointer
to struct drm_crtc.
While at it also make all references to the pipe number unsigned because
there is no longer any reason why it should ever be negative.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 7d1de851632d013023cd7c89eb8664f62e5beb2c
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 17:00:30 2015 +0200
drm/irq: Check for valid VBLANK before dereference
When accessing the array of per-CRTC VBLANK structures we must always
check that the index into the array is valid before dereferencing to
avoid crashing.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
[danvet: Squash in my own whitespace ocd fixup in drm_vblank_count.]
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit fc0a446152877d3a4e40166ddb19b6e0cb5f6567
Author: viresh kumar <viresh.kumar@xxxxxxxxxx>
Date: Mon Aug 10 11:42:26 2015 +0530
dm: remove unlikely() before IS_ERR()
IS_ERR() already contains an 'unlikely' compiler flag so there is no
need to do that again from IS_ERR() callers.
Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
commit e80d1c805a3b2f0ad2081369be5dc5deedd5ee59
Author: Vivek Goyal <vgoyal@xxxxxxxxxx>
Date: Fri Jul 31 09:20:36 2015 -0400
dm: do not override error code returned from dm_get_device()
Some of the device mapper targets override the error code returned by
dm_get_device() and return either -EINVAL or -ENXIO. There is nothing
gained by this override. It is better to propagate the returned error
code unchanged to caller.
This work was motivated by hitting an issue where the underlying device
was busy but -EINVAL was being returned. After this change we get
-EBUSY instead and it is easier to figure out the problem.
Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
commit ab37844d6169c2dd6f96e665b07b692ba1a4c180
Author: Mikulas Patocka <mpatocka@xxxxxxxxxx>
Date: Wed Jul 1 17:30:36 2015 -0400
dm: test return value for DM_MAPIO_SUBMITTED
In properly written code we should not assume that DM_MAPIO_SUBMITTED is
zero. We should test the return value for DM_MAPIO_SUBMITTED rather than
testing it for zero.
Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
commit 4fb9aa5abdb791defedb3a5ce254ad193e82d77b
Author: Sami Tolvanen <samitolvanen@xxxxxxxxxx>
Date: Mon Jun 29 14:14:00 2015 +0100
dm verity: remove unused mempool
Since commit 003b5c571 ("block: Convert drivers to immutable biovecs"),
vec_mempool in struct dm_verity is no longer used. Remove it and
related definitions.
Signed-off-by: Sami Tolvanen <samitolvanen@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
commit e44b6a5a3c711c1ada4cf7135bf9dbf860caffd2
Author: Joe Thornber <ejt@xxxxxxxxxx>
Date: Thu Jul 30 09:29:40 2015 +0100
dm cache: move wake_waker() from free_migrations() to where it is needed
This stops spurious wake ups from calls to prealloc_free_structs().
Signed-off-by: Joe Thornber <ejt@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
commit 8c747fd0c3f514233afaca98139c03cca2cf2d2f
Author: Vivek Goyal <vgoyal@xxxxxxxxxx>
Date: Mon Jul 6 11:55:41 2015 -0400
dm btree remove: remove unused function get_nr_entries()
rebalance_children() calls get_nr_entries() and assigns the result to an
unused local 'child_entries' variable. Remove get_nr_entries() and
cleanup rebalance_children() accordingly.
Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
commit 0a8d4c3ef8f14cbd26d97767e3676722d4eebee5
Author: Vivek Goyal <vgoyal@xxxxxxxxxx>
Date: Mon Jul 6 11:55:40 2015 -0400
dm btree: remove unused "dm_block_t root" parameter in
btree_split_sibling()
Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
commit 4051aab762f161826f15ea63c8baaf33cb5e6fe3
Author: Joe Thornber <ejt@xxxxxxxxxx>
Date: Fri Jun 26 13:25:12 2015 +0100
dm cache policy smq: change the mutex to a spinlock
We no longer sleep in any of the smq functions, so this can become a
spinlock. Switching from mutex to spinlock improves performance when
the fast cache device is a very low latency device (e.g. NVMe SSD).
The switch to spinlock also allows for removal of the extra tick_lock;
which is no longer needed since the main lock being a spinlock now
fulfills the locking requirements needed by interrupt context.
Signed-off-by: Joe Thornber <ejt@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
commit 2a7d3d6d5ddbd202c09f228829cd03609a8efb23
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 17:00:24 2015 +0200
drm/irq: Remove negative CRTC index special-case
The drm_send_vblank_event() function treats negative CRTC indices as
meaning that a driver doesn't have proper VBLANK handling. This is the
only place where DRM needs negative CRTC indices, so in order to enable
subsequent cleanup, remove this special case and replace it by the more
obvious check for whether or not VBLANK support was initialized.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit b54a0935b03888c8412aa5acbf873af9d753fbdd
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 16:54:29 2015 +0200
drm/plane: Remove redundant extern
Use of the extern keyword for function prototypes is unnecessary, so it
can be removed.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 45e3743aff6f3fbe3f08d43d443dc2d7b5396a31
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 16:54:28 2015 +0200
drm/plane: Use consistent data types for format count
Rather than a mix of the the sized uint32_t and signed integer, use an
unsized unsigned int to specify the format count.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 798ae0f6693deac4a07377d0c45b4325b7026278
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 16:32:12 2015 +0200
vga_switcheroo: Remove unnecessary checks
debugfs_remove() gracefully ignores NULL parameters, so the explicit
checks can be removed.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 7491bfb446741b1dd65aadda54bade18bfaba442
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 16:32:11 2015 +0200
vga_switcheroo: Wrap overly long lines
Wrap overly long lines to make checkpatch happy. While at it, also add
blank lines after declarations to eliminate additional problems flagged
by checkpatch.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 9b0be1ebec804c5698541a86486a0b2a4143279d
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 16:32:10 2015 +0200
vga_switcheroo: Use pr_fmt()
Use pr_fmt() to define the "vga_switcheroo: " prefix that is prepended
to all output messages emitted by pr_*() functions. This allows making
existing strings much shorter and eliminates a bunch of warnings from
checkpatch about lines being overly long.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 713092783082a1469d329cb63be7c7a0992b2448
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 16:32:09 2015 +0200
vga_switcheroo: Cleanup header comment
The header comment uses a weird combination of formatting styles. Make
it consistent.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit bf8252b3fc247f8634df521af429101064fc43d1
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 16:32:08 2015 +0200
vga_switcheroo: Use pr_*() instead of printk()
This silences a bunch of checkpatch warnings and makes the code shorter.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 5d90ccf908bd806f0767bc07310e4c25c8501369
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 16:32:07 2015 +0200
vgaarb: Fix a few checkpatch errors and warnings
Wrap overly long lines (offending lines were mostly comments, so trivial
to fix up) and a number of other coding style issues pointed out by the
checkpatch tool.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 8b7e2e865fef94d6a46746c3b7f334b910814031
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 16:32:06 2015 +0200
vgaarb: Use vgaarb: prefix consistently in messages
Define the pr_fmt() macro to causes all messages emitted by pr_*()
functions to be prefixed with "vgaarb: ".
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit eb6944f2fc01d5c83bce37fa0e68810565f78a75
Author: Thierry Reding <treding@xxxxxxxxxx>
Date: Wed Aug 12 16:32:05 2015 +0200
vgaarb: Stop complaining about absent devices
Some setups do not register a default VGA device, in which case the VGA
arbiter will still complain about the (non-existent) PCI device being a
non-VGA device.
Fix this by making the error message conditional on a default VGA device
having been set up. Note that the easy route of erroring out early isn't
going to work because otherwise priv->target won't be properly updated.
Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
commit 50d78bcf5d06871a0b3adcb3cbec6e6ca33f226a
Author: Frederic Danis <frederic.danis@xxxxxxxxxxxxxxx>
Date: Wed Aug 12 12:46:01 2015 +0200
Bluetooth: hci_bcm: Fix "implicit declaration"
The kbuild test robot reported implicit declaration of function
'acpi_dev_get_resources'.
Surround ACPI function by CONFIG_ACPI test.
Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
Signed-off-by: Frederic Danis <frederic.danis@xxxxxxxxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit 62aaefa7d03804aef30639ab362f845b1f3e92ed
Author: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Date: Wed Aug 12 09:20:56 2015 +0200
Bluetooth: hci_bcm: improve use of gpios API
devm_gpiod_get currently has an optional parameter to set initial
direction and value for the requested gpio. Make use of this to simplify
the driver and make it not fail to build when this parameter is made
mandatory (which is scheduled for 4.3-rc1).
Moreover use the _optional variant of devm_gpiod_get to simplify error
handling (which also gets more strict for free).
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
commit f303e50766298feac17c8715e29ecd14b2c12680
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Jul 23 18:37:13 2015 +0200
iommu/vt-d: Avoid duplicate device_domain_info structures
When a 'struct device_domain_info' is created as an alias
for another device, this struct will not be re-used when the
real device is encountered. Fix that to avoid duplicate
device_domain_info structures being added.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 08a7f456a759e971caf0cc13987a963de2b0ae7c
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Jul 23 18:09:11 2015 +0200
iommu/vt-d: Only insert alias dev_info if there is an alias
For devices without an PCI alias there will be two
device_domain_info structures added. Prevent that by
checking if the alias is different from the device.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 127c761598f7fbe7ffe6650cdc491eb57c5aaecd
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Jul 23 17:44:46 2015 +0200
iommu/vt-d: Pass device_domain_info to __dmar_remove_one_dev_info
This struct contains all necessary information for the
function already. Also handle the info->dev == NULL case
while at it.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 2309bd793ead6d5e4ace611502aa87b3202856ca
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Wed Jul 22 17:29:47 2015 +0200
iommu/vt-d: Remove dmar_global_lock from device_notifier
The code in the locked section does not touch anything
protected by the dmar_global_lock. Remove it from there.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 55d940430ab91b89ff5fc7240555544d86475783
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Wed Jul 22 16:50:40 2015 +0200
iommu/vt-d: Get rid of domain->iommu_lock
When this lock is held the device_domain_lock is also
required to make sure the device_domain_info does not vanish
while in use. So this lock can be removed as it gives no
additional protection.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit de7e888646466e6c32cdd41124c0164cfed4abcb
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Wed Jul 22 11:58:07 2015 +0200
iommu/vt-d: Only call domain_remove_one_dev_info to detach old domain
There is no need to make a difference here between VM and
non-VM domains, so simplify this code here.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit d160aca5276d093fc68d6ff48888586c90309d03
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Wed Jul 22 11:52:53 2015 +0200
iommu/vt-d: Unify domain->iommu attach/detachment
Move the code to attach/detach domains to iommus and vice
verce into a single function to make sure there are no
dangling references.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit c6c2cebd665933216785246a1d15b4112fa74bbf
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Wed Jul 22 13:11:53 2015 +0200
iommu/vt-d: Establish domain<->iommu link in dmar_insert_one_dev_info
This makes domain attachment more synchronous with domain
deattachment. The domain<->iommu link is released in
dmar_remove_one_dev_info.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit dc534b25d11f42e6b4caa5b1918f549d9c0e9d4d
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Wed Jul 22 12:44:02 2015 +0200
iommu/vt-d: Pass an iommu pointer to domain_init()
This allows to do domain->iommu attachment after domain_init
has run.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 2452d9db1218fdb1c29afb921838c323987f5799
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Thu Jul 23 16:20:14 2015 +0200
iommu/vt-d: Rename iommu_detach_dependent_devices()
Rename this function and the ones further down its
call-chain to domain_context_clear_*. In particular this
means:
iommu_detach_dependent_devices -> domain_context_clear
iommu_detach_dev_cb -> domain_context_clear_one_cb
iommu_detach_dev -> domain_context_clear_one
These names match a lot better with its
domain_context_mapping counterparts.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit e6de0f8dfcd0395efee874db97536531555d91af
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Wed Jul 22 16:30:36 2015 +0200
iommu/vt-d: Rename domain_remove_one_dev_info()
Rename the function to dmar_remove_one_dev_info to match is
name better with its dmar_insert_one_dev_info counterpart.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 5db31569e9503654477b504de7161d01f85f7261
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Wed Jul 22 12:40:43 2015 +0200
iommu/vt-d: Rename dmar_insert_dev_info()
Rename this function to dmar_insert_one_dev_info() to match
the name better with its counter part function
domain_remove_one_dev_info().
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit cc4e2575cc96b1aac910f56e1d7ef45d219b40b2
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Wed Jul 22 10:04:36 2015 +0200
iommu/vt-d: Move context-mapping into dmar_insert_dev_info
Do the context-mapping of devices from a single place in the
call-path and clean up the other call-sites.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 76f45fe35c7a54e6fe5539660db2c8cfb23a2972
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 18:25:11 2015 +0200
iommu/vt-d: Simplify domain_remove_dev_info()
Just call domain_remove_one_dev_info() for all devices in
the domain instead of reimplementing the functionality.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit b608ac3b6d54c38d6cf0eb91547f0f960633eb2d
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 18:19:08 2015 +0200
iommu/vt-d: Simplify domain_remove_one_dev_info()
Simplify this function as much as possible with the new
iommu_refcnt field.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 42e8c186b595a32918933b3dec445f0bf0f486f6
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 15:50:02 2015 +0200
iommu/vt-d: Simplify io/tlb flushing in intel_iommu_unmap
We don't need to do an expensive search for domain-ids
anymore, as we keep track of per-iommu domain-ids.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 29a27719abaa4d74aed928803c1aa9437bbdde89
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 17:17:12 2015 +0200
iommu/vt-d: Replace iommu_bmp with a refcount
This replaces the dmar_domain->iommu_bmp with a similar
reference count array. This allows us to keep track of how
many devices behind each iommu are attached to the domain.
This is necessary for further simplifications and
optimizations to the iommu<->domain attachment code.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit af1089ce388b2d14c8331b96567b7e3b7eb5f35b
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 15:45:19 2015 +0200
iommu/vt-d: Kill dmar_domain->id
This field is now obsolete because all places use the
per-iommu domain-ids. Kill the remaining uses of this field
and remove it.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 0dc7971594aad73b50722878ea7175055a4fdfcd
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 15:40:06 2015 +0200
iommu/vt-d: Don't pre-allocate domain ids for si_domain
There is no reason for this special handling of the
si_domain. The per-iommu domain-id can be allocated
on-demand like for any other domain. So remove the
pre-allocation code.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit a1ddcbe9301023928f877b675a40914427928f2a
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 15:20:32 2015 +0200
iommu/vt-d: Pass dmar_domain directly into iommu_flush_iotlb_psi
This function can figure out the domain-id to use itself
from the iommu_did array. This is more reliable over
different domain types and brings us one step further to
remove the domain->id field.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit de24e55395698e29f2a0582ae1899fa0001f829a
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 14:53:04 2015 +0200
iommu/vt-d: Simplify domain_context_mapping_one
Get rid of the special cases for VM domains vs. non-VM
domains and simplify the code further to just handle the
hardware passthrough vs. page-table case.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 28ccce0d954a1cf3baba335bf12581357112fb35
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 14:45:31 2015 +0200
iommu/vt-d: Calculate translation in domain_context_mapping_one
There is no reason to pass the translation type through
multiple layers. It can also be determined in the
domain_context_mapping_one function directly.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit e2411427f7d3ddcf8d5f35d5ab0a397180deac3a
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 11:18:21 2015 +0200
iommu/vt-d: Get rid of iommu_attach_vm_domain()
The special case for VM domains is not needed, as other
domains could be attached to the iommu in the same way. So
get rid of this special case.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 8bf478163e69e42973c7070179a11815139e5bf0
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 10:41:21 2015 +0200
iommu/vt-d: Split up iommu->domains array
This array is indexed by the domain-id and contains the
pointers to the domains attached to this iommu. Modern
systems support 65536 domain ids, so that this array has a
size of 512kb, per iommu.
This is a huge waste of space, as the array is usually
sparsely populated. This patch makes the array
two-dimensional and allocates the memory for the domain
pointers on-demand.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 9452d5bfe5c3df6befb89835d2c44920e03bd390
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 10:00:56 2015 +0200
iommu/vt-d: Add access functions for iommu->domains
This makes it easier to change the layout of the data
structure later.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit c0e8a6c8033e205835fa5e67db7ab4589d2491b2
Author: Joerg Roedel <jroedel@xxxxxxx>
Date: Tue Jul 21 09:39:46 2015 +0200
iommu/vt-d: Keep track of per-iommu domain ids
Instead of searching in the domain array for already
allocated domain ids, keep track of them explicitly.
Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
commit 517dfdb315fa2da9b144f6fa494b4f54b490de7e
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Tue Aug 11 12:50:55 2015 -0300
perf ui browser: Introduce ui_browser__printf()
To remove direct access to libslang functions, with the immediate goal
of implementing horizontal scrolling at the ui_browser level, but also
because we may at some point want to implement ui_browser with other UIs
in addition to the current libslang implementation.
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-w0niblabqrkecs4o0eogfy6c@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 26270a008251ec36431623bd992252934bbe529a
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Tue Aug 11 12:24:27 2015 -0300
perf ui browser: Introduce ui_browser__write_nstring()
To remove direct access to libslang functions, with the immediate goal
of implementing horizontal scrolling at the ui_browser level, but also
because we may at some point want to implement ui_browser with other UIs
in addition to the current libslang implementation.
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-437ineavoejzou727mr9bxpi@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit b62bee1bdea6d78e444183b04c81ce982a371571
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Tue Aug 11 11:05:36 2015 -0300
perf trace: Beautify keyctl's option arg
8.697 (0.103 ms): pool/2343 keyctl(option: GET_PERSISTENT, arg2: 1000,
arg3: 4294967294, arg4: 140703061514067, arg5: 140703692383680) = 1023192809
8.763 (0.049 ms): pool/2343 keyctl(option: SEARCH, arg2: 1023192809,
arg3: 140703745767772, arg4: 140703745767832, arg5: 4294967294) = 140224497
8.789 (0.016 ms): pool/2343 keyctl(option: SEARCH, arg2: 140224497,
arg3: 140703745767814, arg4: 140703745767900) = 512300257
8.807 (0.011 ms): pool/2343 keyctl(option: READ, arg2: 512300257
) = 13
8.822 (0.008 ms): pool/2343 keyctl(option: READ, arg2: 512300257, arg3:
140703061514000, arg4: 13 ) = 13
8.837 (0.007 ms): pool/2343 keyctl(option: READ, arg2: 140224497
) = 4
8.852 (0.009 ms): pool/2343 keyctl(option: READ, arg2: 140224497, arg3:
140703061514000, arg4: 4 ) = 4
8.869 (0.010 ms): pool/2343 keyctl(option: SEARCH, arg2: 140224497,
arg3: 140703745767772, arg4: 140703061514032) = -1 ENOKEY Required key not
available
8.892 (0.017 ms): pool/2343 keyctl(option: DESCRIBE, arg2: 512300257
) = 43
8.910 (0.012 ms): pool/2343 keyctl(option: DESCRIBE, arg2: 512300257,
arg3: 140703061544384, arg4: 43) = 43
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-013ab219irsxngyumrf5gp8s@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 8d8c66a248dfb9a7e517822b5ef87e357b1605bf
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Tue Aug 11 10:57:02 2015 -0300
perf trace: Use the FD beautifier for socket syscall fds
But we really should have something like 'strace -yy' here...
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-eyrt1ypfq68u4ljagyk2nj1i@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 76b10655818c939e257377f83992975a5f55ffb3
Author: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Date: Tue Aug 11 06:36:55 2015 -0700
perf sort: Check for SRCLINE_UNKNOWN case in "srcfile" processing
Handle the SRCLINE_UNKNOWN case correctly when processing "srcfile".
Commiter note:
We can't just free it, as it was't allocated via malloc, its a guard
variable.
Reported-by: Namhyung Kim <namhyung@xxxxxxxxxx>
Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Link: http://lkml.kernel.org/r/20150811133655.GC4524@xxxxxxxxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 28ebb87c73f9c17266d4f7570d65a1e695df7d9d
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Tue Aug 11 10:38:38 2015 -0300
perf trace: Add missing clockid entries
We were missing:
CLOCK_BOOTTIME, CLOCK_REALTIME_ALARM, CLOCK_BOOTTIME_ALARM,
CLOCK_SGI_CYCLE and CLOCK_TAI.
Add them.
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Milian Wolff <milian.wolff@xxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-d67rwqtwm9jyenwes98kr0cr@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit 090389b6d95c046cc6caca2e7e00adc27829acf2
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Mon Aug 10 19:20:52 2015 -0300
perf trace: Associate some more syscall args with the getname beautifier
This time using 'trinity' to test these:
fchmodat, futimesat, llistxattr, lremovexattr, lstat, mknodat,
mq_unlink, stat and vmsplice.
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Borislav Petkov <bp@xxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Milian Wolff <milian.wolff@xxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/n/tip-a1uqu249nwwh0ixrhm80k4a4@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
commit dcfcf2c2cd71906073beef32aadb1989e8996951
Author: Xiubo Li <lixiubo@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 14:38:18 2015 +0800
ASoC: fsl: fix typos for sound/soc/fsl/*
There are too much noise about the typos for fsl's drivers. So I fix
all the typos here in this patch in almost every file I touched.
Signed-off-by: Xiubo Li <lixiubo@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit b486afbd1baf796a9e4b793b2f9121c12e1469af
Author: Xiubo Li <lixiubo@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Aug 12 15:02:19 2015 +0800
regmap: fix typos in regmap.c
There are two typos in drivers/base/regmap/regmap.c, and they may
introduce some noise when checking new patches.
Signed-off-by: Xiubo Li <lixiubo@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 3cb5ff0220e31bd1043bb18fd5765c9f86928491
Author: Jamie Lentin <jm@xxxxxxxxxxxx>
Date: Tue Aug 11 22:40:52 2015 +0100
HID: lenovo: Hide middle-button press until release
Don't relay a middle button press to userspace until release, and then
only if there was no scroll events inbetween. This is closer to what
Xorg's wheel emulation does, and avoids spurious middle-click pastes.
Signed-off-by: Jamie Lentin <jm@xxxxxxxxxxxx>
Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
commit dbfebb44b7c650dd134a8be07f9afd5862150987
Author: Jamie Lentin <jm@xxxxxxxxxxxx>
Date: Tue Aug 11 22:40:51 2015 +0100
HID: lenovo: Add missing return-value check
Signed-off-by: Jamie Lentin <jm@xxxxxxxxxxxx>
Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
commit 7f65068fb77f173c5466545fc11818de7a35c1f3
Author: Jamie Lentin <jm@xxxxxxxxxxxx>
Date: Tue Aug 11 22:40:50 2015 +0100
HID: lenovo: Use constants for axes names
Signed-off-by: Jamie Lentin <jm@xxxxxxxxxxxx>
Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
commit 609ca5f3cb32c2d11fd8cabe293ff3689e7d2613
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Mon Aug 10 19:43:47 2015 +0100
regulator: core: Use class device list for regulator_list in late init
The regulator_list has exactly the same contents as the list that the
driver core maintains of regulator_class members so is redundant. As a
first step in converting over to use the class device list convert our
iteration in late_initcall() to use the class device iterator.
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 2f9b660b2128c92d66f18ac7fbd7c39a91cec159
Author: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Date: Wed Aug 12 12:12:28 2015 +0200
regmap: Fix integertypes for register address and value
These values are defined as unsigned int in the struct and are assigned
to int values.
This patch fixes the type to be unsigned int instead.
Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx>
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit f120cd6533d21075ab103ae6c225b1697853660d
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Mon Jun 23 13:59:13 2014 +0100
KVM: arm/arm64: timer: Allow the timer to control the active state
In order to remove the crude hack where we sneak the masked bit
into the timer's control register, make use of the phys_irq_map
API control the active state of the interrupt.
This causes some limited changes to allow for potential error
propagation.
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 773299a570725d1f253d6046cd6475209b0dcd55
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Fri Jul 24 11:30:43 2015 +0100
KVM: arm/arm64: vgic: Prevent userspace injection of a mapped interrupt
Virtual interrupts mapped to a HW interrupt should only be triggered
from inside the kernel. Otherwise, you could end up confusing the
kernel (and the GIC's) state machine.
Rearrange the injection path so that kvm_vgic_inject_irq is
used for non-mapped interrupts, and kvm_vgic_inject_mapped_irq is
used for mapped interrupts. The latter should only be called from
inside the kernel (timer, irqfd).
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 6e84e0e0677281b4e7fc634c7e9d085fbcf41b10
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Mon Jun 8 16:13:30 2015 +0100
KVM: arm/arm64: vgic: Add vgic_{get,set}_phys_irq_active
In order to control the active state of an interrupt, introduce
a pair of accessors allowing the state to be set/queried.
This only affects the logical state, and the HW state will only be
applied at world-switch time.
Acked-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 08fd6461e8752d2db233c1f237fa5771bcefc63f
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Mon Jun 8 16:06:13 2015 +0100
KVM: arm/arm64: vgic: Allow HW interrupts to be queued to a guest
To allow a HW interrupt to be injected into a guest, we lookup the
guest virtual interrupt in the irq_phys_map list, and if we have
a match, encode both interrupts in the LR.
We also mark the interrupt as "active" at the host distributor level.
On guest EOI on the virtual interrupt, the host interrupt will be
deactivated.
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 6c3d63c9a26ba56e2ca63a9f68d52f77ae551d91
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Mon Jun 23 17:37:18 2014 +0100
KVM: arm/arm64: vgic: Allow dynamic mapping of physical/virtual interrupts
In order to be able to feed physical interrupts to a guest, we need
to be able to establish the virtual-physical mapping between the two
worlds.
The mappings are kept in a set of RCU lists, indexed by virtual
interrupts.
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 7a67b4b7e04b30345584c1b76a80db628530bf21
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Fri Jun 5 16:45:29 2015 +0100
KVM: arm/arm64: vgic: Relax vgic_can_sample_irq for edge IRQs
We only set the irq_queued flag for level interrupts, meaning
that "!vgic_irq_is_queued(vcpu, irq)" is a good enough predicate
for all interrupts.
This will allow us to inject edge HW interrupts, for which the
state ACTIVE+PENDING is not allowed.
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit fb182cf84568cc33ab41121bc8cc999f7aacbd47
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Mon Jun 8 15:37:26 2015 +0100
KVM: arm/arm64: vgic: Allow HW irq to be encoded in LR
Now that struct vgic_lr supports the LR_HW bit and carries a hwirq
field, we can encode that information into the list registers.
This patch provides implementations for both GICv2 and GICv3.
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 32d2d8010cd7080a0f1712f1084b92657858428e
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Mon Jun 8 15:21:32 2015 +0100
KVM: arm/arm64: vgic: Convert struct vgic_lr to use bitfields
As we're about to cram more information in the vgic_lr structure
(HW interrupt number and additional state information), we switch
to a layout similar to the HW's:
- use bitfields to save space (we don't need more than 10 bits
to represent the irq numbers)
- source CPU and HW interrupt can share the same field, as
a SGI doesn't have a physical line.
Reviewed-by: Alex Bennée <alex.bennee@xxxxxxxxxx>
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit abdf58438356c7baf34bdd98084b094ca3a6a23f
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Mon Jun 8 15:00:28 2015 +0100
arm/arm64: KVM: Move vgic handling to a non-preemptible section
As we're about to introduce some serious GIC-poking to the vgic code,
it is important to make sure that we're going to poke the part of
the GIC that belongs to the CPU we're about to run on (otherwise,
we'd end up with some unexpected interrupts firing)...
Introducing a non-preemptible section in kvm_arch_vcpu_ioctl_run
prevents the problem from occuring.
Reviewed-by: Alex Bennée <alex.bennee@xxxxxxxxxx>
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 9a99d050705318d1cb27979e1c810464347db9db
Author: Marc Zyngier <marc.zyngier@xxxxxxx>
Date: Fri Jun 5 09:33:28 2015 +0100
arm/arm64: KVM: Fix ordering of timer/GIC on guest entry
As we now inject the timer interrupt when we're about to enter
the guest, it makes a lot more sense to make sure this happens
before the vgic code queues the pending interrupts.
Otherwise, we get the interrupt on the following exit, which is
not great for latency (and leads to all kind of bizarre issues
when using with active interrupts at the HW level).
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
Reviewed-by: Alex Bennée <alex.bennee@xxxxxxxxxx>
Reviewed-by: Christoffer Dall <christoffer.dall@xxxxxxxxxx>
commit 48f8bd57756573b08520629a2413227fcdf058f5
Author: Vladimir Murzin <Vladimir.Murzin@xxxxxxx>
Date: Tue Jul 28 10:42:23 2015 +0100
arm64: KVM: remove remaining reference to vgic_sr_vectors
Since commit 8a14849 (arm64: KVM: Switch vgic save/restore to
alternative_insn) vgic_sr_vectors is not used anymore, so remove
remaining leftovers and kill the structure.
Signed-off-by: Vladimir Murzin <vladimir.murzin@xxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit bca556ac468ab4744692926b67cb525cdce850c9
Author: Suzuki K. Poulose <suzuki.poulose@xxxxxxx>
Date: Wed Jun 17 10:00:46 2015 +0100
arm64/kvm: Add generic v8 KVM target
This patch adds a generic ARM v8 KVM target cpu type for use
by the new CPUs which eventualy ends up using the common sys_reg
table. For backward compatibility the existing targets have been
preserved. Any new target CPU that can be covered by generic v8
sys_reg tables should make use of the new generic target.
Signed-off-by: Suzuki K. Poulose <suzuki.poulose@xxxxxxx>
Acked-by: Marc Zyngier <Marc.Zyngier@xxxxxxx>
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
commit 5f1230c9b80b89f404938ff88dfa64a963f74f2c
Merge: 709bc87 4605bb5
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Wed Aug 12 12:16:11 2015 +0200
Merge tag 'perf-core-for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
User visible changes:
- Introduce 'srcfile' sort key: (Andi Kleen)
# perf record -F 10000 usleep 1
# perf report --stdio --dsos '[kernel.vmlinux]' -s srcfile
<SNIP>
# Overhead Source File
26.49% copy_page_64.S
5.49% signal.c
0.51% msr.h
#
It can be combined with other fields, for instance, experiment with
'-s srcfile,symbol'.
There are some oddities in some distros and with some specific DSOs,
being
investigated, so your mileage may vary.
- Update the column width for the "srcline" sort key (Arnaldo Carvalho
de Melo)
- Support per-event 'freq' term: (Namhyung Kim)
$ perf record -e 'cpu/instructions,freq=1234/',cycles -c 1000 sleep 1
$ perf evlist -F
cpu/instructions,freq=1234/: sample_freq=1234
cycles: sample_period=1000
$
Infrastructure changes:
- Move perf_counts struct and functions into separate object (Jiri Olsa)
- Unset perf_event_attr::freq when period term is set (Jiri Olsa)
- Move callchain option parsing code to util.c (Kan Liang)
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 9b9412dc7008f360c8e8ed10a654d3c8719f69d8
Merge: 58ccab9 3dbe43f
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Wed Aug 12 12:12:12 2015 +0200
Merge branch 'for-mingo' of
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull RCU changes from Paul E. McKenney:
- The combination of tree geometry-initialization simplifications
and OS-jitter-reduction changes to expedited grace periods.
These two are stacked due to the large number of conflicts
that would otherwise result.
[ With one addition, a temporary commit to silence a lockdep false
positive. Additional changes to the expedited grace-period
primitives (queued for 4.4) remove the cause of this false
positive, and therefore include a revert of this temporary commit. ]
- Documentation updates.
- Torture-test updates.
- Miscellaneous fixes.
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit ff277d4250fe715b6666219b1a3423b863418794
Author: Andrea Parri <parri.andrea@xxxxxxxxx>
Date: Wed Aug 5 15:56:19 2015 +0200
sched/deadline: Fix comment in enqueue_task_dl()
The "dl_boosted" flag is set by comparing *absolute* deadlines
(c.f., rt_mutex_setprio()).
Signed-off-by: Andrea Parri <parri.andrea@xxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1438782979-9057-2-git-send-email-parri.andrea@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 4ffa08ed4cc4c5d47d197d749aae6f79af91eb73
Author: Andrea Parri <parri.andrea@xxxxxxxxx>
Date: Wed Aug 5 15:56:18 2015 +0200
sched/deadline: Fix comment in push_dl_tasks()
The comment is "misleading"; fix it by adapting a comment from
push_rt_tasks().
Signed-off-by: Andrea Parri <parri.andrea@xxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1438782979-9057-1-git-send-email-parri.andrea@xxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 6c37067e27867db172b988cc11b9ff921175dee5
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Fri May 15 17:43:36 2015 +0200
sched: Change the sched_class::set_cpus_allowed() calling context
Change the calling context of sched_class::set_cpus_allowed() such
that we can assume the task is inactive.
This allows us to easily make changes that affect accounting done by
enqueue/dequeue. This does in fact completely remove
set_cpus_allowed_rt() and greatly reduces set_cpus_allowed_dl().
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: dedekind1@xxxxxxxxx
Cc: juri.lelli@xxxxxxx
Cc: mgorman@xxxxxxx
Cc: riel@xxxxxxxxxx
Cc: rostedt@xxxxxxxxxxx
Link: http://lkml.kernel.org/r/20150515154833.667516139@xxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit c5b2803840817115e9b568d5054e5007ae36176b
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Fri May 15 17:43:35 2015 +0200
sched: Make sched_class::set_cpus_allowed() unconditional
Give every class a set_cpus_allowed() method, this enables some small
optimization in the RT,DL implementation by avoiding a double
cpumask_weight() call.
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: dedekind1@xxxxxxxxx
Cc: juri.lelli@xxxxxxx
Cc: mgorman@xxxxxxx
Cc: riel@xxxxxxxxxx
Cc: rostedt@xxxxxxxxxxx
Link: http://lkml.kernel.org/r/20150515154833.614517487@xxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 25834c73f93af7f0712c98ca4593691592e6b360
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Fri May 15 17:43:34 2015 +0200
sched: Fix a race between __kthread_bind() and sched_setaffinity()
Because sched_setscheduler() checks p->flags & PF_NO_SETAFFINITY
without locks, a caller might observe an old value and race with the
set_cpus_allowed_ptr() call from __kthread_bind() and effectively undo
it:
__kthread_bind()
do_set_cpus_allowed()
<SYSCALL>
sched_setaffinity()
if (p->flags &
PF_NO_SETAFFINITIY)
set_cpus_allowed_ptr()
p->flags |= PF_NO_SETAFFINITY
Fix the bug by putting everything under the regular scheduler locks.
This also closes a hole in the serialization of
task_struct::{nr_,}cpus_allowed.
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Acked-by: Tejun Heo <tj@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: dedekind1@xxxxxxxxx
Cc: juri.lelli@xxxxxxx
Cc: mgorman@xxxxxxx
Cc: riel@xxxxxxxxxx
Cc: rostedt@xxxxxxxxxxx
Link: http://lkml.kernel.org/r/20150515154833.545640346@xxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 7855a35ac07a350e2cd26f09568a6d8e372be358
Author: Byungchul Park <byungchul.park@xxxxxxx>
Date: Mon Aug 10 18:02:55 2015 +0900
sched: Ensure a task has a non-normalized vruntime when returning back to
CFS
Current code ensures that a task has a normalized vruntime when switching
away
from the fair class, but it does not ensure the task has a non-normalized
vruntime when switching back to the fair class.
This is an example breaking this consistency:
1. a task is in fair class and !queued
2. changes its class to RT class (still !queued)
3. changes its class to fair class again (still !queued)
Signed-off-by: Byungchul Park <byungchul.park@xxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439197375-27927-1-git-send-email-byungchul.park@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit e237882b8f83dd1a0eece1608bcb689d4f4b221b
Author: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@xxxxxxx>
Date: Mon Aug 10 20:20:48 2015 -0500
sched/numa: Fix NUMA_DIRECT topology identification
Systems which have all nodes at a distance of at most 1 hop should be
identified as 'NUMA_DIRECT'.
However, the scheduler incorrectly identifies it as 'NUMA_BACKPLANE'.
This is because 'n' is assigned to sched_max_numa_distance but the
code (mis)interprets it to mean 'number of hops'.
Rik had actually used sched_domains_numa_levels for detecting a
'NUMA_DIRECT' topology:
http://marc.info/?l=linux-kernel&m=141279712429834&w=2
But that was changed when he removed the hops table in the
subsequent version:
http://marc.info/?l=linux-kernel&m=141353106106771&w=2
Fixing the issue here.
Signed-off-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@xxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Reviewed-by: Rik van Riel <riel@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Mike Galbraith <efault@xxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1439256048-3748-1-git-send-email-Aravind.Gopalakrishnan@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 29f5f4860a8ef9407736594ec43b4fa4152ac7fa
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Fri Aug 7 20:01:32 2015 +0100
regulator: core: Move more deallocation into class unregister
We really ought to be using the class dvice lifetime management features
more than we are rather than open coding them so take a step towards that
by moving some of the simplest deallocations to the dev_release()
function.
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 1768514eebfa888563049fa165449a1c1eba92d8
Author: Mark Brown <broonie@xxxxxxxxxx>
Date: Fri Aug 7 21:19:26 2015 +0100
regulator: core: Reduce rdev locking region when releasing regulator
When we release a regulator we need to remove references to it from the
rdev which means locking the rdev. Currently we also free resources
associated with the regulator inside the rdev lock but there is no need
to do this, we can reduce the region the lock is held by restricting it
to just actions that affect the rdev.
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
commit 16eefbd1ed4ff474807b1aad50bc2f6317fcb9f4
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Date: Mon Aug 3 11:29:30 2015 +0200
x86/kconfig: Enable CONFIG_JUMP_LABEL in the defconfigs
Enable CONFIG_JUMP_LABEL in the defconfigs, the feature already deals with
GCC not having the asm-goto feature so will not break the build on
older compilers.
Having it enabled generates a faster kernel at very little extra cost
since we already include all the code patching code by having KPROBES
enabled.
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 0ca326de7aa9cb253db9c1a3eb3f0487c8dbf912
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Thu Aug 6 17:54:44 2015 +0100
locking, ARM, atomics: Define our SMP atomics in terms of _relaxed()
operations
By defining our SMP atomics in terms of relaxed operations, we gain
a small reduction in code size and have acquire/release/fence variants
generated automatically by the core code.
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Waiman.Long@xxxxxx
Cc: paulmck@xxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1438880084-18856-9-git-send-email-will.deacon@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit cd074aea9261784e44f292e1132830ec221802c6
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Thu Aug 6 17:54:43 2015 +0100
locking, include/llist: Use linux/atomic.h instead of asm/cmpxchg.h
Including an asm/ header directly is best avoided, so use linux/atomic.h
instead of asm/cmpxchg.h in linux/llist.h.
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Waiman.Long@xxxxxx
Cc: paulmck@xxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1438880084-18856-8-git-send-email-will.deacon@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 77e430e3e45662b696dc49aa53ea0f7ac63f2574
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Thu Aug 6 17:54:42 2015 +0100
locking/qrwlock: Make use of _{acquire|release|relaxed}() atomics
The qrwlock implementation is slightly heavy in its use of memory
barriers, mainly through the use of _cmpxchg() and _return() atomics,
which
imply full barrier semantics.
This patch modifies the qrwlock code to use the more relaxed atomic
routines so that we can reduce the unnecessary barrier overhead on
weakly-ordered architectures.
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Waiman.Long@xxxxxx
Cc: paulmck@xxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1438880084-18856-7-git-send-email-will.deacon@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 2b2a85a4d3534b8884fcfa5bb52837f0e1c672bc
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Thu Aug 6 17:54:41 2015 +0100
locking/qrwlock: Implement queue_write_unlock() using smp_store_release()
Since the following commit:
536fa402221f ("compiler: Allow 1- and 2-byte smp_load_acquire() and
smp_store_release()")
smp_store_release() supports byte accesses, so use that in writer unlock
and remove the conditional macro override.
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Reviewed-by: Waiman Long <Waiman.Long@xxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: paulmck@xxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1438880084-18856-6-git-send-email-will.deacon@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit f5468ffde13fc991bd4d6bdec507ffd5777865bd
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Thu Aug 6 17:54:40 2015 +0100
locking/lockref: Remove homebrew cmpxchg64_relaxed() macro definition
cmpxchg64_relaxed() is now defined by linux/atomic.h, so we can
remove our local definition from the lockref code.
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Waiman.Long@xxxxxx
Cc: paulmck@xxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1438880084-18856-5-git-send-email-will.deacon@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 6d79ef2d30ee5af7315535d1e7bf6fce0008f815
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Thu Aug 6 17:54:39 2015 +0100
locking, asm-generic: Add _{relaxed|acquire|release}() variants for
'atomic_long_t'
This patch adds 'atomic_long_t' wrappers for the new relaxed atomic
operations.
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Waiman.Long@xxxxxx
Cc: paulmck@xxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1438880084-18856-4-git-send-email-will.deacon@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 586b610e43a5ad5096640312fefa6ce931738c7d
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Thu Aug 6 17:54:38 2015 +0100
locking, asm-generic: Rework atomic-long.h to avoid bulk code duplication
We can use some (admittedly ugly) macros to generate the 32-bit and
64-bit based atomic_long implementations from the same code.
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Waiman.Long@xxxxxx
Cc: paulmck@xxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1438880084-18856-3-git-send-email-will.deacon@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 654672d4ba1a6001c365833be895f9477c4d5eab
Author: Will Deacon <will.deacon@xxxxxxx>
Date: Thu Aug 6 17:54:37 2015 +0100
locking/atomics: Add _{acquire|release|relaxed}() variants of some atomic
operations
Whilst porting the generic qrwlock code over to arm64, it became
apparent that any portable locking code needs finer-grained control of
the memory-ordering guarantees provided by our atomic routines.
In particular: xchg, cmpxchg, {add,sub}_return are often used in
situations where full barrier semantics (currently the only option
available) are not required. For example, when a reader increments a
reader count to obtain a lock, checking the old value to see if a writer
was present, only acquire semantics are strictly needed.
This patch introduces three new ordering semantics for these operations:
- *_relaxed: No ordering guarantees. This is similar to what we have
already for the non-return atomics (e.g. atomic_add).
- *_acquire: ACQUIRE semantics, similar to smp_load_acquire.
- *_release: RELEASE semantics, similar to smp_store_release.
In memory-ordering speak, this means that the acquire/release semantics
are RCpc as opposed to RCsc. Consequently a RELEASE followed by an
ACQUIRE does not imply a full barrier, as already documented in
memory-barriers.txt.
Currently, all the new macros are conditionally mapped to the full-mb
variants, however if the *_relaxed version is provided by the
architecture, then the acquire/release variants are constructed by
supplementing the relaxed routine with an explicit barrier.
Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Waiman.Long@xxxxxx
Cc: paulmck@xxxxxxxxxxxxxxxxxx
Link:
http://lkml.kernel.org/r/1438880084-18856-2-git-send-email-will.deacon@xxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit ba33034fffc1189d95301bd865f1c799256e72a2
Author: Christian Borntraeger <borntraeger@xxxxxxxxxx>
Date: Tue Aug 4 09:55:48 2015 +0200
locking, compiler.h: Cast away attributes in the WRITE_ONCE() magic
The kernel build bot showed a new warning triggered by commit:
76695af20c01 ("locking, arch: use WRITE_ONCE()/READ_ONCE() in
smp_store_release()/smp_load_acquire()")
because Sparse does not like WRITE_ONCE() accessing elements
from the (sparse) RCU address space:
fs/afs/inode.c:448:9: sparse: incorrect type in initializer (different
address spaces)
fs/afs/inode.c:448:9: expected struct afs_permits *__val
fs/afs/inode.c:448:9: got void [noderef] <asn:4>*<noident>
Solution is to force cast away the sparse attributes for the initializer
of the union in WRITE_ONCE().
(And as this now gets too long, also split the macro into multiple lines.)
Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Andrey Konovalov <andreyknvl@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Paul McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1438674948-38310-2-git-send-email-borntraeger@xxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit f52609fdabb1c726f8b9fdf64df3161781aa186e
Merge: 20f9ed1 41b9e9f
Author: Ingo Molnar <mingo@xxxxxxxxxx>
Date: Wed Aug 12 11:44:30 2015 +0200
Merge branch 'locking/arch-atomic' into locking/core, because it's ready
for upstream
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit 709bc871923c12b284424f9d47b99dc975ba8b29
Author: Takao Indoh <indou.takao@xxxxxxxxxxxxxx>
Date: Tue Aug 4 18:36:55 2015 +0900
perf/x86/intel/pt: Clean up files of Intel Processor Trace
This patch just cleans up some files of Intel Processor Trace, does not
change its behavior. This patch removes unused definitions and replaces a
constant value with a macro.
Signed-off-by: Takao Indoh <indou.takao@xxxxxxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Alexander Shishkin<alexander.shishkin@xxxxxxxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Cc: H.Peter Anvin <hpa@xxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
http://lkml.kernel.org/r/1438681015-5124-1-git-send-email-indou.takao@xxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
commit c2ad6b51efc5f27d70ce952decd2a15679b83600
Author: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Date: Tue Jul 28 09:00:04 2015 +0300
perf/ring-buffer: Clarify the use of page::private for high-order AUX
allocations
A question [1] was raised about the use of page::private in AUX buffer
allocations, so let's add a clarification about its intended use.
The private field and flag are used by perf's rb_alloc_aux() path to
tell the pmu driver the size of each high-order allocation, so that the
driver can program those appropriately into its hardware. This only
matters for PMUs that don't support hardware scatter tables. Otherwise,
every page in the buffer is just a page.
This patch adds a comment about the private field to the AUX buffer
allocation path.
[1] http://marc.info/?l=linux-kernel&m=143803696607968
Reported-by: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>
Signed-off-by: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link:
|